<?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>70740</bug_id>
          
          <creation_ts>2011-10-24 10:39:38 -0700</creation_ts>
          <short_desc>Remove putVirtual</short_desc>
          <delta_ts>2011-10-25 17:56:14 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>67690</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>489431</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-24 10:39:38 -0700</bug_when>
    <thetext>Now that we have an entry in the MethodTable for both versions of put, we can remove their virtual counterparts and replace all call sites with an explicit lookup in the MethodTable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489511</commentid>
    <comment_count>1</comment_count>
      <attachid>112227</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-24 12:01:48 -0700</bug_when>
    <thetext>Created attachment 112227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489764</commentid>
    <comment_count>2</comment_count>
      <attachid>112272</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-24 16:23:55 -0700</bug_when>
    <thetext>Created attachment 112272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489826</commentid>
    <comment_count>3</comment_count>
      <attachid>112289</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-24 18:32:28 -0700</bug_when>
    <thetext>Created attachment 112289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489835</commentid>
    <comment_count>4</comment_count>
      <attachid>112291</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-24 18:49:46 -0700</bug_when>
    <thetext>Created attachment 112291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490478</commentid>
    <comment_count>5</comment_count>
      <attachid>112291</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-25 17:08:27 -0700</bug_when>
    <thetext>Comment on attachment 112291
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490504</commentid>
    <comment_count>6</comment_count>
      <attachid>112291</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-25 17:56:09 -0700</bug_when>
    <thetext>Comment on attachment 112291
Patch

Clearing flags on attachment: 112291

Committed r98415: &lt;http://trac.webkit.org/changeset/98415&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490505</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-25 17:56:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112227</attachid>
            <date>2011-10-24 12:01:48 -0700</date>
            <delta_ts>2011-10-24 16:23:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70740-20111024120147.patch</filename>
            <type>text/plain</type>
            <size>100784</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgyNTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdm
MjYzODU2NmI5NGZlYzE1ODllMGE5M2JjY2E3N2JiOTk1ZjgyMWMuLjAxNTU2ZTdjMzEyYmNjYzRl
M2RkMjc0YzMwMjdhYmVkN2MyZGI0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDg0IEBACisyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFyYXRpb25zIGFuZCBk
ZWZpbml0aW9ucyBvZiBwdXRWaXJ0dWFsLgorICAgICAgICBBbHNvIHJlcGxhY2VkIGFsbCBjYWxs
IHNpdGVzIHRvIHB1dFZpcnR1YWwgd2l0aCBhIAorICAgICAgICBjb3JyZXNwb25kaW5nIGxvb2t1
cCBpbiB0aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5o
OgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgICog
QVBJL0pTT2JqZWN0UmVmLmNwcDoKKyAgICAgICAgKEpTT2JqZWN0U2V0UHJvcGVydHkpOgorICAg
ICAgICAoSlNPYmplY3RTZXRQcm9wZXJ0eUF0SW5kZXgpOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLmV4cDoKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAg
ICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OnB1dCk6CisgICAgICAgICogZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgor
ICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50
ZXJwcmV0ZXI6OmV4ZWN1dGUpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJpdmF0ZUV4
ZWN1dGUpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChHbG9iYWxPYmplY3Q6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgICog
cnVudGltZS9Bcmd1bWVudHMuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6cHV0UHJvcGVydHkpOgorICAgICAgICAoSlNDOjphcnJheVByb3Rv
RnVuY0NvbmNhdCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jUHVzaCk6CisgICAgICAg
IChKU0M6OmFycmF5UHJvdG9GdW5jUmV2ZXJzZSk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9G
dW5jU2hpZnQpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NsaWNlKToKKyAgICAgICAg
KEpTQzo6YXJyYXlQcm90b0Z1bmNTb3J0KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNT
cGxpY2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1VuU2hpZnQpOgorICAgICAgICAo
SlNDOjphcnJheVByb3RvRnVuY0ZpbHRlcik6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5j
TWFwKToKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogcnVu
dGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAg
ICAgICAoSlNDOjpKU0FycmF5OjpwdXRTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6
OnB1c2gpOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpzaGlmdENvdW50KToKKyAgICAgICAgKEpT
Qzo6SlNBcnJheTo6dW5zaGlmdENvdW50KToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoK
KyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pT
Qnl0ZUFycmF5Lmg6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAoSlND
OjpKU0NlbGw6OnB1dCk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6cHV0QnlJbmRleCk6CisgICAg
ICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTTm90QW5PYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNO
b3RBbk9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OldhbGtlcjo6d2Fsayk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRCeUluZGV4KToKKyAgICAgICAgKEpTQzo6SlNPYmpl
Y3Q6OmRlZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6Cisg
ICAgICAgIChKU0M6OkpTVmFsdWU6OnB1dCk6CisgICAgICAgICogcnVudGltZS9KU1N0YXRpY1Nj
b3BlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaDoK
KyAgICAgICAgKiBydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmg6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKiBy
dW50aW1lL1N0cmluZ09iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3Qu
aDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OnN0cmluZ1Byb3RvRnVuY1NwbGl0KToKKwogMjAxMS0xMC0yNCAgUGF0cmljayBHYW5zdGVyZXIg
IDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBJbnRlcnByZXRlciBidWlsZCBmaXggYWZ0
ZXIgcjk4MTc5LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBi
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggMjdmYmM5Y2Q3NzhhMDU3ZWZh
NTA1ZDIxNzY0NWE3Mzc2YmU4ZjU0YS4uZDhlNDMxZmRjNzY3M2M3YmNlNDNlYjJkMGIzMmUyYmY0
MzU4MDZiZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEt
MTAtMjQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmUgcHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzA3NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdmVkIGFsbCBkZWNsYXJhdGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIHB1
dFZpcnR1YWwuCisgICAgICAgIEFsc28gcmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMgdG8gcHV0Vmly
dHVhbCB3aXRoIGEgCisgICAgICAgIGNvcnJlc3BvbmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RU
YWJsZS4KKworICAgICAgICAqIEpTVmFsdWVXcmFwcGVyLmNwcDoKKyAgICAgICAgKEpTVmFsdWVX
cmFwcGVyOjpKU09iamVjdFNldFByb3BlcnR5KToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmNw
cDoKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6CisKIDIwMTEtMTAtMTkgIEdlb2ZmcmV5IEdh
cmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmVkIFN0cmluZ0ltcGxCYXNl
LCBmdXNpbmcgaXQgaW50byBTdHJpbmdJbXBsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmUwNTM4OTUzODBiYjdl
YjQ1MzA4ZjlkNmY1M2NjNjQ0ZmNkYWU4OS4uMjJiYTMwZWYxMmVjZDNiMTYzYWFiZWE0ODIxOGUx
MWRhZTBhM2M3MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDExLTEwLTI0ICBNYXJr
IEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHB1
dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwNzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLgorCisgICAgICAgIFJlbW92ZWQgYWxsIGRlY2xhcmF0aW9ucyBhbmQgZGVm
aW5pdGlvbnMgb2YgcHV0VmlydHVhbC4KKyAgICAgICAgQWxzbyByZXBsYWNlZCBhbGwgY2FsbCBz
aXRlcyB0byBwdXRWaXJ0dWFsIHdpdGggYSAKKyAgICAgICAgY29ycmVzcG9uZGluZyBsb29rdXAg
aW4gdGhlIE1ldGhvZFRhYmxlLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dT
aGVsbDo6cHV0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmg6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnJ1bnRpbWVPYmplY3RDdXN0b21QdXQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZURl
c2VyaWFsaXplcjo6cHV0UHJvcGVydHkpOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvV2ViU2Ny
aXB0T2JqZWN0Lm1tOgorICAgICAgICAoLVtXZWJTY3JpcHRPYmplY3Qgc2V0VmFsdWU6Zm9yS2V5
Ol0pOgorICAgICAgICAoLVtXZWJTY3JpcHRPYmplY3Qgc2V0V2ViU2NyaXB0VmFsdWVBdEluZGV4
OnZhbHVlOl0pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
OgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbik6CisgICAgICAgICogYnJpZGdlL05QX2pzb2JqZWN0LmNwcDoKKyAgICAgICAgKF9OUE5f
U2V0UHJvcGVydHkpOgorICAgICAgICAqIGJyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tOgorICAg
ICAgICAoSmF2YUpTT2JqZWN0OjpzZXRNZW1iZXIpOgorICAgICAgICAoSmF2YUpTT2JqZWN0Ojpz
ZXRTbG90KToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAg
KiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAgICogYnJpZGdlL3F0L3F0X3J1
bnRpbWUuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Y29udmVydFFWYXJpYW50VG9WYWx1
ZSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAqIGJyaWRn
ZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKyAgICAgICAgKiBicmlkZ2UvdGVz
dHF0YmluZGluZ3MuY3BwOgorICAgICAgICAobWFpbik6CisKIDIwMTEtMTAtMjQgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEZpeCBt
YWtlIGRpc3RjaGVjayBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IGE3ODhjNTFlMjg0MDQ2NmM5
MDkzMzk0MmEzNDQ2NzRiYzFlNjAzNDUuLjQxZWRiNzRmNGUzNTcwODk3OTQzNTkwYjcxMWQ0Yjk1
OTg3NThmOTYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0xMC0yNCAg
TWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBwdXRWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MDc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZWQgYWxsIGRlY2xhcmF0aW9ucyBhbmQgZGVmaW5pdGlvbnMgb2YgcHV0VmlydHVh
bC4KKyAgICAgICAgQWxzbyByZXBsYWNlZCBhbGwgY2FsbCBzaXRlcyB0byBwdXRWaXJ0dWFsIHdp
dGggYSAKKyAgICAgICAgY29ycmVzcG9uZGluZyBsb29rdXAgaW4gdGhlIE1ldGhvZFRhYmxlLgor
CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X2pzX29iamVj
dF9hZGQpOgorCiAyMDExLTEwLTIxICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3Vu
Zy5jb20+CiAKICAgICAgICAgW0VGTF0gQ2hhbmdlIGVmbCBzdHlsZSBsb2NhbCB2YXJpYWJsZXMg
d2l0aCBXZWJLaXQgY29kaW5nIFN0eWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDViZDlkYjQ4ZDlj
YzgwMWI0NGQwNjcwYTExZjIxNzY3NmYwMzVlNWUuLjgzY2YxZDM1MzRkYjgyYmEzNjQ2NjM3YTMy
OWRkZTI4Y2E3ZjlkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0x
MC0yNCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBwdXRWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MDc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbW92ZWQgYWxsIGRlY2xhcmF0aW9ucyBhbmQgZGVmaW5pdGlvbnMgb2YgcHV0
VmlydHVhbC4KKyAgICAgICAgQWxzbyByZXBsYWNlZCBhbGwgY2FsbCBzaXRlcyB0byBwdXRWaXJ0
dWFsIHdpdGggYSAKKyAgICAgICAgY29ycmVzcG9uZGluZyBsb29rdXAgaW4gdGhlIE1ldGhvZFRh
YmxlLgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBy
b3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnNl
dFByb3BlcnR5KToKKwogMjAxMS0xMC0yMyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBnZXRDb25zdHJ1Y3REYXRhVmlydHVhbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwppbmRleCA0OGE1Yjg5NjA1ZGYwMGRlY2EwMzNkYzc0NWY1NTY3NDNjZGU0ZTJhLi42
ZGZhZjc4NzNjOGRmMDVjMGQ1ZTY2MTdjZDRmM2I5NGUwODBmNjdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVy
Z0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzQwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFyYXRpb25z
IGFuZCBkZWZpbml0aW9ucyBvZiBwdXRWaXJ0dWFsLgorICAgICAgICBBbHNvIHJlcGxhY2VkIGFs
bCBjYWxsIHNpdGVzIHRvIHB1dFZpcnR1YWwgd2l0aCBhIAorICAgICAgICBjb3JyZXNwb25kaW5n
IGxvb2t1cCBpbiB0aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAgKiBBcGkvcXdlYmZyYW1lLmNw
cDoKKyAgICAgICAgKFFXZWJGcmFtZTo6YWRkVG9KYXZhU2NyaXB0V2luZG93T2JqZWN0KToKKwog
MjAxMS0xMC0yNCAgRGVlcGFrIFNoZXJ2ZWdoYXIgIDxicHd2NjRAbW90b3JvbGEuY29tPgogCiAg
ICAgICAgIFtRdF0gZmFzdC9ldmVudHMvbWVkaWEtZm9jdXMtaW4tc3RhbmRhbG9uZS1tZWRpYS1k
b2N1bWVudC5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDhmM2IwYjcwNDNiMWZhMjIxZWY0OTRh
YjQxNmIzODcyZDk4NDM4Ni4uZDVhZmM4Nzc5YTJjNmZiMmMzZWQwZWFhYjkwNDNkNTdlMTc4MTc3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJl
cmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHB1dFZpcnR1YWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzQwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBh
bGwgZGVjbGFyYXRpb25zIGFuZCBkZWZpbml0aW9ucyBvZiBwdXRWaXJ0dWFsLgorICAgICAgICBB
bHNvIHJlcGxhY2VkIGFsbCBjYWxsIHNpdGVzIHRvIHB1dFZpcnR1YWwgd2l0aCBhIAorICAgICAg
ICBjb3JyZXNwb25kaW5nIGxvb2t1cCBpbiB0aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5Q
SlNPYmplY3Q6OnNldFByb3BlcnR5KToKKwogMjAxMS0xMC0yNCAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRml4IG1ha2UgZGlzdGNo
ZWNrIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5o
CmluZGV4IDM5OGRkMDNkMDc3NDUwYzAyNjU5Y2I0YWVlYTFlYjYwYzI2YTcyMzEuLjhiN2I2N2Zk
NjRlOGQ5MTk4NGVmOTY3NjRmMzM3MDY4YTVhNDg0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCkBAIC0xODIsNyArMTgyLDYgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAg
ICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVBy
b3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmlu
ZGV4IDFkYmIxZDVjNzI2N2FhMGZmZDM0ZjA2NWJiZDcwYzJkZjQzYzg2N2IuLjM1MGIyZGI2ZDVj
YWU4ZTVjMjYyYzk3OTdhMGQwNDAxMjIyOTgxOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCkBAIC0yMDgsMTIgKzIw
OCw2IEBAIGJvb2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJl
bnQ+Ci12b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6cHV0VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCBzbG90KTsKLX0KLQotdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KIHZvaWQgSlNDYWxs
YmFja09iamVjdDxQYXJlbnQ+OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNf
Y2FzdDxKU0NhbGxiYWNrT2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNPYmplY3RSZWYuY3BwCmluZGV4IDZkNWYwM2Q2NWU0MzdiZmIwMmQxZWNmZGI2NDQ2MWRiYTY0
N2E2Y2UuLjlkNjZkNTg3ZjViN2I3YTYyYWJjNzI3MzcyNmZiMWRlOWE0ZjRlNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC0yNzcsNyArMjc3LDcgQEAg
dm9pZCBKU09iamVjdFNldFByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9i
amVjdCwgSlNTdHJpbmdSZWYgcHJvcGUKICAgICAgICAganNPYmplY3QtPnB1dFdpdGhBdHRyaWJ1
dGVzKGV4ZWMsIG5hbWUsIGpzVmFsdWUsIGF0dHJpYnV0ZXMpOwogICAgIGVsc2UgewogICAgICAg
ICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAganNPYmplY3QtPnB1dFZpcnR1YWwoZXhl
YywgbmFtZSwganNWYWx1ZSwgc2xvdCk7CisgICAgICAgIGpzT2JqZWN0LT5tZXRob2RUYWJsZSgp
LT5wdXQoanNPYmplY3QsIGV4ZWMsIG5hbWUsIGpzVmFsdWUsIHNsb3QpOwogICAgIH0KIAogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewpAQCAtMzEyLDcgKzMxMiw3IEBAIHZvaWQgSlNP
YmplY3RTZXRQcm9wZXJ0eUF0SW5kZXgoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2Jq
ZWN0LCB1bnNpZ25lZCBwCiAgICAgSlNPYmplY3QqIGpzT2JqZWN0ID0gdG9KUyhvYmplY3QpOwog
ICAgIEpTVmFsdWUganNWYWx1ZSA9IHRvSlMoZXhlYywgdmFsdWUpOwogICAgIAotICAgIGpzT2Jq
ZWN0LT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5SW5kZXgsIGpzVmFsdWUpOworICAgIGpzT2Jq
ZWN0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGpzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eUlu
ZGV4LCBqc1ZhbHVlKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKICAgICAgICAg
aWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgICpleGNlcHRpb24gPSB0b1JlZihleGVjLCBleGVj
LT5leGNlcHRpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApp
bmRleCAzOWVlNmU3YTFmOWJmNDllNTE3MGI1ZDc0NzZjYmRjOWI5ZTdmOTE3Li5jNTQ1OWY1OWNm
ZDNiMDAzNTM0MTVmNjUyZmU0NGE5MGZjZjZmZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKQEAgLTE1OSw3ICsxNTksNiBAQCBfX1pOM0pTQzEzU2FtcGxpbmdG
bGFnczVzdGFydEV2CiBfX1pOM0pTQzEzU2FtcGxpbmdGbGFnczdzX2ZsYWdzRQogX19aTjNKU0Mx
M1N0YXRlbWVudE5vZGU2c2V0TG9jRWlpCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxMGdsb2Jh
bEV4ZWNFdgotX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUK
IF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEyZGVmaW5lR2V0dGVyRVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRVBOU184SlNPYmplY3RFagogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0
MTJkZWZpbmVTZXR0ZXJFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUE5TXzhKU09i
amVjdEVqCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxM2NsZWFyUmFyZURhdGFFUE5TXzZKU0Nl
bGxFCkBAIC0yNTgsOCArMjU3LDYgQEAgX19aTjNKU0M0WWFycjExWWFyclBhdHRlcm5DMUVSS05T
XzdVU3RyaW5nRWJiUFBLYwogX19aTjNKU0M0WWFycjExYnl0ZUNvbXBpbGVFUk5TMF8xMVlhcnJQ
YXR0ZXJuRVBOM1dURjIwQnVtcFBvaW50ZXJBbGxvY2F0b3JFCiBfX1pOM0pTQzRZYXJyOWludGVy
cHJldEVQTlMwXzE1Qnl0ZWNvZGVQYXR0ZXJuRVJLTlNfN1VTdHJpbmdFampQaQogX19aTjNKU0M0
Y2FsbEVQTlNfOUV4ZWNTdGF0ZUVOU183SlNWYWx1ZUVOU184Q2FsbFR5cGVFUktOU184Q2FsbERh
dGFFUzJfUktOU183QXJnTGlzdEUKLV9fWk4zSlNDNkpTQ2VsbDEwcHV0VmlydHVhbEVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNs
b3RFCi1fX1pOM0pTQzZKU0NlbGwxMHB1dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1Zh
bHVlRQogX19aTjNKU0M2SlNDZWxsMTFnZXRDYWxsRGF0YUVQUzBfUk5TXzhDYWxsRGF0YUUKIF9f
Wk4zSlNDNkpTQ2VsbDE2Z2V0Q29uc3RydWN0RGF0YUVQUzBfUk5TXzEzQ29uc3RydWN0RGF0YUUK
IF9fWk4zSlNDNkpTQ2VsbDIxZGVsZXRlUHJvcGVydHlWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRQpAQCAtMzA3LDggKzMwNCw2IEBAIF9fWk4zSlNDOERlYnVnZ2VyNmF0
dGFjaEVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDOERlYnVnZ2VyNmRldGFjaEVQTlNf
MTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDOERlYnVnZ2VyRDJFdgogX19aTjNKU0M4SlNPYmpl
Y3QxMHB1dEJ5SW5kZXhFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRQot
X19aTjNKU0M4SlNPYmplY3QxMHB1dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50
aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQotX19aTjNKU0M4SlNPYmpl
Y3QxMHB1dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRQogX19aTjNKU0M4SlNP
YmplY3QxMWhhc0luc3RhbmNlRVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRVMzXwogX19aTjNK
U0M4SlNPYmplY3QxMmRlZmluZUdldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckVQUzBfagogX19aTjNKU0M4SlNPYmplY3QxMmRlZmluZVNldHRlckVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckVQUzBfagpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCA3MGUxYmFlYjZlMGI0MGVjZDA2
NWQ0ZmEyNzlkYzAwMmMxZWVmODdlLi44OGI5YjQ4OTk4YjA1MzNhZWJhOWRkYzA5ODliN2Q0ZWJi
MDA4ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtNzAsMTQgKzcwLDEwIEBAIGJvb2wgRGVidWdnZXJBY3Rp
dmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PERlYnVnZ2VyQWN0aXZhdGlvbio+KGNlbGwp
LT5tX2FjdGl2YXRpb24tPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KIAotdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OnB1dFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpwdXQo
SlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHN0YXRp
Y19jYXN0PERlYnVnZ2VyQWN0aXZhdGlvbio+KGNlbGwpLT5tX2FjdGl2YXRpb24tPnB1dFZpcnR1
YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgRGVidWdnZXJBY3RpdmF0
aW9uKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3RpdmF0aW9uKj4oY2VsbCk7
CisgICAgdGhpc09iamVjdC0+bV9hY3RpdmF0aW9uLT5tZXRob2RUYWJsZSgpLT5wdXQodGhpc09i
amVjdC0+bV9hY3RpdmF0aW9uLmdldCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90
KTsKIH0KIAogdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OnB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4IDNkN2IwMjY4MjFmOTY2NTc4OWZjMDRk
MDM2ZGVlNDg4MGUzOGJmN2MuLmVkYWViYTA2YjRlNTMyZTc4MzQ2NWRjNDIwODE1NGVhMTgzNjAy
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFj
dGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJB
Y3RpdmF0aW9uLmgKQEAgLTQ1LDcgKzQ1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZp
cnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1
dGVzKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggNmM2YmI5YzhhMzJlMGUzMjRkOGFhZTBm
NmRhMjUyYzY4MmJkNTE2NC4uOTliNDc2Njc2ZmM3ZThiMTIyNTYzOWQ4OTQ1NjkxYzI1OGQ1Mjdk
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0z
NzQsMTMgKzM3NCwxMyBAQCBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkFy
cmF5UG9wKEV4ZWNTdGF0ZSosIEpTQXJyYXkqIGFycmF5KQogdm9pZCBERkdfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5SWRTdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEpTQ2VsbCogYmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1lKQogewogICAg
IFB1dFByb3BlcnR5U2xvdCBzbG90KHRydWUpOwotICAgIGJhc2UtPnB1dFZpcnR1YWwoZXhlYywg
KnByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOworICAg
IGJhc2UtPm1ldGhvZFRhYmxlKCktPnB1dChiYXNlLCBleGVjLCAqcHJvcGVydHlOYW1lLCBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKIHZvaWQgREZHX09QRVJBVElP
TiBvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBKU0NlbGwqIGJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkK
IHsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChmYWxzZSk7Ci0gICAgYmFzZS0+cHV0VmlydHVh
bChleGVjLCAqcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xv
dCk7CisgICAgYmFzZS0+bWV0aG9kVGFibGUoKS0+cHV0KGJhc2UsIGV4ZWMsICpwcm9wZXJ0eU5h
bWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBzbG90KTsKIH0KIAogdm9pZCBERkdf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTQ2VsbCogYmFzZSwgSWRlbnRpZmllciogcHJv
cGVydHlOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRl
cnByZXRlci5jcHAKaW5kZXggODM4ZjUxYzU4Yjk3ZTVmYTFiODQ4ZWY0ZTkyM2RkMTFiNTkzMzE0
YS4uYWZmNTA5MDYxODEzZmVlMjdlMTMzYjIyYzc3NTVmNTZkMzMxYTFlMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC03OTEs
NyArNzkxLDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShQcm9ncmFtRXhlY3V0YWJs
ZSogcHJvZ3JhbSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIFMKICAgICAgICAgICAgIGlmIChKU09O
UFBhdGguc2l6ZSgpID09IDEgJiYgSlNPTlBQYXRoWzBdLm1fdHlwZSA9PSBMaXRlcmFsUGFyc2Vy
OjpKU09OUFBhdGhFbnRyeVR5cGVEZWNsYXJlKSB7CiAgICAgICAgICAgICAgICAgaWYgKGdsb2Jh
bE9iamVjdC0+aGFzUHJvcGVydHkoY2FsbEZyYW1lLCBKU09OUFBhdGhbMF0ubV9wYXRoRW50cnlO
YW1lKSkgewogICAgICAgICAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAg
ICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5wdXRWaXJ0dWFsKGNhbGxGcmFtZSwgSlNPTlBQ
YXRoWzBdLm1fcGF0aEVudHJ5TmFtZSwgSlNPTlBWYWx1ZSwgc2xvdCk7CisgICAgICAgICAgICAg
ICAgICAgIGdsb2JhbE9iamVjdC0+bWV0aG9kVGFibGUoKS0+cHV0KGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCBKU09OUFBhdGhbMF0ubV9wYXRoRW50cnlOYW1lLCBKU09OUFZhbHVlLCBzbG90KTsK
ICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0
LT5wdXRXaXRoQXR0cmlidXRlcyhjYWxsRnJhbWUsIEpTT05QUGF0aFswXS5tX3BhdGhFbnRyeU5h
bWUsIEpTT05QVmFsdWUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiAgICAgICAgICAgICAgICAg
Ly8gdmFyIGRlY2xhcmF0aW9ucyByZXR1cm4gdW5kZWZpbmVkCkBAIC0xMjUxLDE0ICsxMjUxLDE0
IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGFibGUqIGV2YWwsIENh
bGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlCiAgICAgICAgICAgICBjb25zdCBJZGVudGlmaWVy
JiBpZGVudCA9IGNvZGVCbG9jay0+dmFyaWFibGUoaSk7CiAgICAgICAgICAgICBpZiAoIXZhcmlh
YmxlT2JqZWN0LT5oYXNQcm9wZXJ0eShjYWxsRnJhbWUsIGlkZW50KSkgewogICAgICAgICAgICAg
ICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgICAgIHZhcmlhYmxlT2JqZWN0
LT5wdXRWaXJ0dWFsKGNhbGxGcmFtZSwgaWRlbnQsIGpzVW5kZWZpbmVkKCksIHNsb3QpOworICAg
ICAgICAgICAgICAgIHZhcmlhYmxlT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXQodmFyaWFibGVP
YmplY3QsIGNhbGxGcmFtZSwgaWRlbnQsIGpzVW5kZWZpbmVkKCksIHNsb3QpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1GdW5jdGlv
bnM7ICsraSkgewogICAgICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbiA9IGNv
ZGVCbG9jay0+ZnVuY3Rpb25EZWNsKGkpOwogICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNs
b3Q7Ci0gICAgICAgICAgICB2YXJpYWJsZU9iamVjdC0+cHV0VmlydHVhbChjYWxsRnJhbWUsIGZ1
bmN0aW9uLT5uYW1lKCksIGZ1bmN0aW9uLT5tYWtlKGNhbGxGcmFtZSwgc2NvcGVDaGFpbiksIHNs
b3QpOworICAgICAgICAgICAgdmFyaWFibGVPYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dCh2YXJp
YWJsZU9iamVjdCwgY2FsbEZyYW1lLCBmdW5jdGlvbi0+bmFtZSgpLCBmdW5jdGlvbi0+bWFrZShj
YWxsRnJhbWUsIHNjb3BlQ2hhaW4pLCBzbG90KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMzUw
Myw3ICszNTAzLDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgICAgICBpZiAo
anNBcnJheS0+Y2FuU2V0SW5kZXgoaSkpCiAgICAgICAgICAgICAgICAgICAgIGpzQXJyYXktPnNl
dEluZGV4KCpnbG9iYWxEYXRhLCBpLCBjYWxsRnJhbWUtPnIodmFsdWUpLmpzVmFsdWUoKSk7CiAg
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBqc0FycmF5LT5KU0FycmF5
OjpwdXRWaXJ0dWFsKGNhbGxGcmFtZSwgaSwgY2FsbEZyYW1lLT5yKHZhbHVlKS5qc1ZhbHVlKCkp
OworICAgICAgICAgICAgICAgICAgICBqc0FycmF5LT5KU0FycmF5OjpwdXRCeUluZGV4KGpzQXJy
YXksIGNhbGxGcmFtZSwgaSwgY2FsbEZyYW1lLT5yKHZhbHVlKS5qc1ZhbHVlKCkpOwogICAgICAg
ICAgICAgfSBlbHNlIGlmIChpc0pTQnl0ZUFycmF5KGdsb2JhbERhdGEsIGJhc2VWYWx1ZSkgJiYg
YXNCeXRlQXJyYXkoYmFzZVZhbHVlKS0+Y2FuQWNjZXNzSW5kZXgoaSkpIHsKICAgICAgICAgICAg
ICAgICBKU0J5dGVBcnJheSoganNCeXRlQXJyYXkgPSBhc0J5dGVBcnJheShiYXNlVmFsdWUpOwog
ICAgICAgICAgICAgICAgIEpTVmFsdWUganNWYWx1ZSA9IGNhbGxGcmFtZS0+cih2YWx1ZSkuanNW
YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCAwYmNmY2Q2YmNjOTgzNmQ2OTdlMmQzMTgy
NTE4Yjg0Nzc5Yzk3YWVmLi5iZWI3ZmViNzBkODAxZWFkOTMxYTg2ODdhYTE1MjBjMDIxN2VlYjUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMTgyLDcgKzE4Miw3IEBAIHByb3RlY3RlZDoKIAog
ICAgICAgICBKU09iamVjdCogYXJyYXkgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGdsb2JhbEV4ZWMo
KSk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRzLnNpemUoKTsgKytp
KQotICAgICAgICAgICAgYXJyYXktPnB1dFZpcnR1YWwoZ2xvYmFsRXhlYygpLCBpLCBqc1N0cmlu
ZyhnbG9iYWxFeGVjKCksIGFyZ3VtZW50c1tpXSkpOworICAgICAgICAgICAgYXJyYXktPm1ldGhv
ZFRhYmxlKCktPnB1dEJ5SW5kZXgoYXJyYXksIGdsb2JhbEV4ZWMoKSwgaSwganNTdHJpbmcoZ2xv
YmFsRXhlYygpLCBhcmd1bWVudHNbaV0pKTsKICAgICAgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEs
IElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiYXJndW1lbnRzIiksIGFycmF5KTsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCmluZGV4IDA4OTAx
Y2EwMjQ2ODVjODJmMjU4ZDAzOWZmN2NhNDRlNzQ5NzExZDQuLjdkN2U5NTI5MWM1YTRmZjZjYmUz
OWFkYmMyNzkwNmMyMGI3ZDAwZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJndW1lbnRzLmNwcApAQCAtMjY5LDExICsyNjksNiBAQCB2b2lkIEFyZ3VtZW50czo6Z2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0
eQogICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMs
IG1vZGUpOwogfQogCi12b2lkIEFyZ3VtZW50czo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgcHV0QnlJbmRleCh0aGlzLCBleGVj
LCBpLCB2YWx1ZSk7Ci19Ci0KIHZvaWQgQXJndW1lbnRzOjpwdXRCeUluZGV4KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIEFy
Z3VtZW50cyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEFyZ3VtZW50cyo+KGNlbGwpOwpAQCAt
Mjg5LDExICsyODQsNiBAQCB2b2lkIEFyZ3VtZW50czo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YQogICAgIEpTT2JqZWN0Ojpw
dXQodGhpc09iamVjdCwgZXhlYywgSWRlbnRpZmllcihleGVjLCBVU3RyaW5nOjpudW1iZXIoaSkp
LCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQgQXJndW1lbnRzOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIHNsb3QpOwotfQotICAgIAogdm9pZCBBcmd1bWVudHM6OnB1dChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgQXJndW1lbnRzKiB0aGlz
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8QXJndW1lbnRzKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IDQ1YTc1Yzk0YjE3MGZhYjI2YjE0YjBmYjMw
YTZjYjllZjM5MmNhNWQuLmI0NmVkYWE2MTI5ZmIyNmNkNTZjNjc1YzNmOWFlZWEyODQ3YjZmNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCkBAIC0xNDEsOSAr
MTQxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVy
dHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3Bl
cnRpZXMpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAg
dmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVj
U3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgICAgICB2aXJ0dWFs
IGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggYzU0
NDAzYjlmNWM5YzFiYmU3OGRmNDY2ZDBlNjk2NTQ3YmZlNjNhYi4uZTBhNTdiZTg3MGE0MWNmZGEw
Mzc2YzA5ZmRjMDM1MWQ3NTM3OTVjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRpYyBKU1Zh
bHVlIGdldFByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iaiwgdW5zaWduZWQg
aW5kZXgpCiBzdGF0aWMgdm9pZCBwdXRQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBvYmosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBvYmotPnB1dFZpcnR1YWwoZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgb2JqLT5tZXRob2RUYWJsZSgpLT5wdXQob2Jq
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogc3RhdGljIHVuc2lnbmVk
IGFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoRXhlY1N0YXRlKiBleGVjLCBpbnQg
YXJndW1lbnQsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgdW5kZWZpbmVkVmFsdWUgPSAwKQpA
QCAtMzU0LDExICszNTQsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVBy
b3RvRnVuY0NvbmNhdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICAgICAgICAgIGlmICh2KQotICAgICAgICAgICAg
ICAgICAgICBhcnItPnB1dFZpcnR1YWwoZXhlYywgbiwgdik7CisgICAgICAgICAgICAgICAgICAg
IGFyci0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChhcnIsIGV4ZWMsIG4sIHYpOwogICAgICAg
ICAgICAgICAgIG4rKzsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGFyci0+cHV0VmlydHVhbChleGVjLCBuLCBjdXJBcmcpOworICAgICAgICAgICAgYXJyLT5t
ZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGFyciwgZXhlYywgbiwgY3VyQXJnKTsKICAgICAgICAg
ICAgIG4rKzsKICAgICAgICAgfQogICAgICAgICBpZiAoaSA9PSBhcmdDb3VudCkKQEAgLTQxMiwx
MSArNDEyLDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNQ
dXNoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBmb3IgKHVuc2lnbmVkIG4gPSAwOyBuIDwgZXhlYy0+
YXJndW1lbnRDb3VudCgpOyBuKyspIHsKICAgICAgICAgLy8gQ2hlY2sgZm9yIGludGVnZXIgb3Zl
cmZsb3c7IHdoZXJlIHNhZmUgd2UgY2FuIGRvIGEgZmFzdCBwdXQgYnkgaW5kZXguCiAgICAgICAg
IGlmIChsZW5ndGggKyBuID49IGxlbmd0aCkKLSAgICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1
YWwoZXhlYywgbGVuZ3RoICsgbiwgZXhlYy0+YXJndW1lbnQobikpOworICAgICAgICAgICAgdGhp
c09iai0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0aGlzT2JqLCBleGVjLCBsZW5ndGggKyBu
LCBleGVjLT5hcmd1bWVudChuKSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgUHV0UHJv
cGVydHlTbG90IHNsb3Q7CiAgICAgICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZShleGVj
LCBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDY0X3Q+KGxlbmd0aCkgKyBzdGF0aWNfY2FzdDxpbnQ2
NF90PihuKSkudG9TdHJpbmcoZXhlYykpOwotICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVh
bChleGVjLCBwcm9wZXJ0eU5hbWUsIGV4ZWMtPmFyZ3VtZW50KG4pLCBzbG90KTsKKyAgICAgICAg
ICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPnB1dCh0aGlzT2JqLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIGV4ZWMtPmFyZ3VtZW50KG4pLCBzbG90KTsKICAgICAgICAgfQogICAgIH0KICAgICBKU1Zh
bHVlIG5ld0xlbmd0aChzdGF0aWNfY2FzdDxpbnQ2NF90PihsZW5ndGgpICsgc3RhdGljX2Nhc3Q8
aW50NjRfdD4oZXhlYy0+YXJndW1lbnRDb3VudCgpKSk7CkBAIC00NDIsMTIgKzQ0MiwxMiBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmV2ZXJzZShFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogCiAgICAgICAgIGlmIChvYmoyKQotICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVh
bChleGVjLCBrLCBvYmoyKTsKKyAgICAgICAgICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPnB1
dEJ5SW5kZXgodGhpc09iaiwgZXhlYywgaywgb2JqMik7CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBrKTsKIAogICAgICAgICBp
ZiAob2JqKQotICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBsazEsIG9iaik7
CisgICAgICAgICAgICB0aGlzT2JqLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHRoaXNPYmos
IGV4ZWMsIGxrMSwgb2JqKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhpc09iai0+ZGVs
ZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGxrMSk7CiAgICAgfQpAQCAtNDc1LDcgKzQ3NSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTaGlmdChFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgICAgICAgICAgICAgIGlmIChvYmopCi0gICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPnB1
dFZpcnR1YWwoZXhlYywgayAtIDEsIG9iaik7CisgICAgICAgICAgICAgICAgICAgIHRoaXNPYmot
Pm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpc09iaiwgZXhlYywgayAtIDEsIG9iaik7CiAg
ICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQ
cm9wZXJ0eVZpcnR1YWwoZXhlYywgayAtIDEpOwogICAgICAgICAgICAgfQpAQCAtNTA3LDcgKzUw
Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTbGljZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgIGlm
ICh2KQotICAgICAgICAgICAgcmVzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIG4sIHYpOworICAgICAg
ICAgICAgcmVzT2JqLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHJlc09iaiwgZXhlYywgbiwg
dik7CiAgICAgfQogICAgIHJlc09iai0+c2V0TGVuZ3RoKG4pOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKQEAgLTU2Niw4ICs1NjYsOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU29ydChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIH0K
ICAgICAgICAgLy8gU3dhcCB0aGVtaW4gYW5kIGkKICAgICAgICAgaWYgKHRoZW1pbiA+IGkpIHsK
LSAgICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgaSwgbWluT2JqKTsKLSAgICAg
ICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgdGhlbWluLCBpT2JqKTsKKyAgICAgICAg
ICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpc09iaiwgZXhlYywgaSwg
bWluT2JqKTsKKyAgICAgICAgICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgo
dGhpc09iaiwgZXhlYywgdGhlbWluLCBpT2JqKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmopOwpAQCAtNjIxLDcgKzYyMSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTcGxpY2UoRXhlY1N0YXRlKiBleGVj
KQogICAgICAgICAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgICAgICAgICAgICAgICAgICBpZiAodikKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNP
YmotPnB1dFZpcnR1YWwoZXhlYywgayArIGFkZGl0aW9uYWxBcmdzLCB2KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpc09iaiwg
ZXhlYywgayArIGFkZGl0aW9uYWxBcmdzLCB2KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4
ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyk7CiAgICAgICAgICAgICAgICAgfQpAQCAtNjM3LDcgKzYz
Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTcGxpY2Uo
RXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAob2JqKQotICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBrICsgYWRkaXRpb25hbEFyZ3Mg
LSAxLCBvYmopOworICAgICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUo
KS0+cHV0QnlJbmRleCh0aGlzT2JqLCBleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MgLSAxLCBvYmop
OwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz
T2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgayArIGFkZGl0aW9uYWxBcmdzIC0gMSk7
CiAgICAgICAgICAgICAgICAgfQpAQCAtNjQ1LDcgKzY0NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTcGxpY2UoRXhlY1N0YXRlKiBleGVjKQogICAgICAg
ICB9CiAgICAgfQogICAgIGZvciAodW5zaWduZWQgayA9IDA7IGsgPCBhZGRpdGlvbmFsQXJnczsg
KytrKQotICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGsgKyBiZWdpbiwgZXhlYy0+
YXJndW1lbnQoayArIDIpKTsKKyAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+cHV0QnlJ
bmRleCh0aGlzT2JqLCBleGVjLCBrICsgYmVnaW4sIGV4ZWMtPmFyZ3VtZW50KGsgKyAyKSk7CiAK
ICAgICBwdXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVu
Z3RoLCBqc051bWJlcihsZW5ndGggLSBkZWxldGVDb3VudCArIGFkZGl0aW9uYWxBcmdzKSk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNjcwLDE0ICs2NzAsMTQgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1VuU2hpZnQoRXhlY1N0
YXRlKiBleGVjKQogICAgICAgICAgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICAgICAgICAgICAgICBpZiAodikKLSAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0
VmlydHVhbChleGVjLCBrICsgbnJBcmdzIC0gMSwgdik7CisgICAgICAgICAgICAgICAgICAgIHRo
aXNPYmotPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpc09iaiwgZXhlYywgayArIG5yQXJn
cyAtIDEsIHYpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgdGhp
c09iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGsgKyBuckFyZ3MgLSAxKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICBmb3IgKHVuc2lnbmVkIGsgPSAwOyBrIDwg
bnJBcmdzOyArK2spCi0gICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgaywgZXhlYy0+
YXJndW1lbnQoaykpOworICAgICAgICB0aGlzT2JqLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4
KHRoaXNPYmosIGV4ZWMsIGssIGV4ZWMtPmFyZ3VtZW50KGspKTsKICAgICBKU1ZhbHVlIHJlc3Vs
dCA9IGpzTnVtYmVyKGxlbmd0aCArIG5yQXJncyk7CiAgICAgcHV0UHJvcGVydHkoZXhlYywgdGhp
c09iaiwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwgcmVzdWx0KTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CkBAIC03MTYsNyArNzE2LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0ZpbHRlcihFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FjaGVkQ2FsbC5jYWxs
KCk7CiAgICAgICAgICAgICBpZiAocmVzdWx0LnRvQm9vbGVhbihleGVjKSkKLSAgICAgICAgICAg
ICAgICByZXN1bHRBcnJheS0+cHV0VmlydHVhbChleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsKKyAg
ICAgICAgICAgICAgICByZXN1bHRBcnJheS0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChyZXN1
bHRBcnJheSwgZXhlYywgZmlsdGVySW5kZXgrKywgdik7CiAgICAgICAgIH0KICAgICAgICAgaWYg
KGsgPT0gbGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRB
cnJheSk7CkBAIC03MzcsNyArNzM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBh
cnJheVByb3RvRnVuY0ZpbHRlcihFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICAgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIGFwcGx5VGhp
cywgZWFjaEFyZ3VtZW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQudG9Cb29sZWFuKGV4ZWMpKQot
ICAgICAgICAgICAgcmVzdWx0QXJyYXktPnB1dFZpcnR1YWwoZXhlYywgZmlsdGVySW5kZXgrKywg
dik7CisgICAgICAgICAgICByZXN1bHRBcnJheS0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChy
ZXN1bHRBcnJheSwgZXhlYywgZmlsdGVySW5kZXgrKywgdik7CiAgICAgfQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocmVzdWx0QXJyYXkpOwogfQpAQCAtNzkzLDcgKzc5Myw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNNYXAoRXhlY1N0YXRlKiBleGVj
KQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAog
ICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBlLCBj
YWxsRGF0YSwgYXBwbHlUaGlzLCBlYWNoQXJndW1lbnRzKTsKLSAgICAgICAgcmVzdWx0QXJyYXkt
PnB1dFZpcnR1YWwoZXhlYywgaywgcmVzdWx0KTsKKyAgICAgICAgcmVzdWx0QXJyYXktPm1ldGhv
ZFRhYmxlKCktPnB1dEJ5SW5kZXgocmVzdWx0QXJyYXksIGV4ZWMsIGssIHJlc3VsdCk7CiAgICAg
fQogCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRBcnJheSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAppbmRleCA4NTMxMDgyNWMw
ZmI0ODE5OWUxNjFmMjMzNDFjOWE4MmFhNmMzZjFjLi4wNmYwYjRjNWNmNjgwMzYzMzUzNGU5Njhj
YTYwM2I2NzA2M2EwOTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5jcHAKQEAgLTE2OSwxMSArMTY5LDYgQEAgYm9vbCBKU0FjdGl2YXRpb246Omdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSlNBY3RpdmF0aW9uOjpwdXRWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIEpTQWN0aXZhdGlvbjo6cHV0KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU0FjdGl2
YXRpb24qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0FjdGl2YXRpb24qPihjZWxsKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKaW5kZXggZDQ0YjJi
NjA2ZGQxODgyNmU3NGVmZGRlMDRlYTY0ZDcwODU0YzdlNS4uYTRlMjZkYWQ5NjQ1OTY5NTZjYWY5
MjY5Mjg0ODNkZDYzMzY5YjNmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBY3RpdmF0aW9uLmgKQEAgLTY1LDcgKzY1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRP
d25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRp
b25Nb2RlKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0
YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNW
YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhB
dHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAK
aW5kZXggYWQzOWEwZGQ0YWE4MWEzN2UyYWUxMmI5M2Q3ZTIzNTgzYmMwOTI0Mi4uYTQ0MGNiODkw
ZTE1YWExZjIxOGM4YmU2NzUxNjY1NTg0YTRjZWUxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTMzNCwxMSArMzM0LDYgQEAgYm9vbCBKU0FycmF5Ojpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXIKICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihl
eGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCi12b2lkIEpTQXJyYXk6OnB1dFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIC8vIEVDTUEgMTUuNC41LjEKIHZv
aWQgSlNBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKQEAgLTM2MywxMSArMzU4LDYgQEAgdm9pZCBKU0FycmF5OjpwdXQoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwKICAgICBK
U09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3Qp
OwogfQogCi12b2lkIEpTQXJyYXk6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25l
ZCBpLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIHB1dEJ5SW5kZXgodGhpcywgZXhlYywgaSwgdmFs
dWUpOwotfQotCiB2b2lkIEpTQXJyYXk6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgSlNBcnJheSogdGhp
c09iamVjdCA9IHN0YXRpY19jYXN0PEpTQXJyYXkqPihjZWxsKTsKQEAgLTQwNiw3ICszOTYsNyBA
QCBORVZFUl9JTkxJTkUgdm9pZCBKU0FycmF5OjpwdXRTbG93Q2FzZShFeGVjU3RhdGUqIGV4ZWMs
IHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdQogICAgIGlmIChpID49IE1JTl9TUEFSU0VfQVJSQVlf
SU5ERVgpIHsKICAgICAgICAgaWYgKGkgPiBNQVhfQVJSQVlfSU5ERVgpIHsKICAgICAgICAgICAg
IFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgcHV0VmlydHVhbChleGVjLCBJZGVu
dGlmaWVyOjpmcm9tKGV4ZWMsIGkpLCB2YWx1ZSwgc2xvdCk7CisgICAgICAgICAgICBtZXRob2RU
YWJsZSgpLT5wdXQodGhpcywgZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgdmFsdWUs
IHNsb3QpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTc4MSw3ICs3NzEs
NyBAQCB2b2lkIEpTQXJyYXk6OnB1c2goRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQog
ICAgIEFycmF5U3RvcmFnZSogc3RvcmFnZSA9IG1fc3RvcmFnZTsKIAogICAgIGlmIChVTkxJS0VM
WShzdG9yYWdlLT5tX2xlbmd0aCA9PSAweEZGRkZGRkZGdSkpIHsKLSAgICAgICAgcHV0VmlydHVh
bChleGVjLCBzdG9yYWdlLT5tX2xlbmd0aCwgdmFsdWUpOworICAgICAgICBtZXRob2RUYWJsZSgp
LT5wdXRCeUluZGV4KHRoaXMsIGV4ZWMsIHN0b3JhZ2UtPm1fbGVuZ3RoLCB2YWx1ZSk7CiAgICAg
ICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAiSW52YWxpZCBhcnJh
eSBsZW5ndGgiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC04MzUsNyArODI1LDcgQEAg
dm9pZCBKU0FycmF5OjpzaGlmdENvdW50KEV4ZWNTdGF0ZSogZXhlYywgaW50IGNvdW50KQogICAg
ICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXMpOwogICAgICAgICAgICAgICAgIEpT
VmFsdWUgcCA9IHByb3RvdHlwZSgpOwogICAgICAgICAgICAgICAgIGlmICgoIXAuaXNOdWxsKCkp
ICYmIChhc09iamVjdChwKS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGksIHNsb3QpKSkKLSAgICAg
ICAgICAgICAgICAgICAgcHV0VmlydHVhbChleGVjLCBpLCBzbG90LmdldFZhbHVlKGV4ZWMsIGkp
KTsKKyAgICAgICAgICAgICAgICAgICAgbWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0aGlzLCBl
eGVjLCBpLCBzbG90LmdldFZhbHVlKGV4ZWMsIGkpKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogCkBAIC04ODQsNyArODc0LDcgQEAgdm9pZCBKU0FycmF5Ojp1bnNoaWZ0Q291bnQoRXhlY1N0
YXRlKiBleGVjLCBpbnQgY291bnQpCiAgICAgICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Qo
dGhpcyk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBwID0gcHJvdG90eXBlKCk7CiAgICAgICAg
ICAgICAgICAgaWYgKCghcC5pc051bGwoKSkgJiYgKGFzT2JqZWN0KHApLT5nZXRQcm9wZXJ0eVNs
b3QoZXhlYywgaSwgc2xvdCkpKQotICAgICAgICAgICAgICAgICAgICBwdXRWaXJ0dWFsKGV4ZWMs
IGksIHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOworICAgICAgICAgICAgICAgICAgICBtZXRob2RU
YWJsZSgpLT5wdXRCeUluZGV4KHRoaXMsIGV4ZWMsIGksIHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5oCmluZGV4IDU2YTNiNzhlZTg1NmYzMjYyM2I1MTU5OGU3YWQyNTUyZjI1
OTBlMDMuLjFmNmE2YmVlMDIwYTE2YTY1Y2IyMjg1MGM1MmJjZDJiMjliZGViMDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTk5LDcgKzk5LDYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwo
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsgLy8gRklYTUU6IE1h
a2UgcHJvdGVjdGVkIGFuZCBhZGQgc2V0SXRlbS4KICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJ
bmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUp
OwogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87
CkBAIC0xNzEsNyArMTcwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcm90ZWN0ZWQ6CiAg
ICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJv
cGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKaW5kZXgg
MDk4MGU5NzIzMTBhODg2ZGU2ODUzNDU2OWUzZWUzZDJlNzUzNTM3ZS4uNjU4MjczOTVkYzVhMTBj
OTMxM2JmYzUwOGM2MmFhNWQ4NTUwOWJjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAtOTcsMTEgKzk3LDYgQEAgYm9vbCBKU0J5dGVBcnJh
eTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNp
Z25lZCBwcm8KICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LCBleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHNsb3QpOwog
fQogCi12b2lkIEpTQnl0ZUFycmF5OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3Qp
OwotfQotCiB2b2lkIEpTQnl0ZUFycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJv
cGVydHlTbG90JiBzbG90KQogewogICAgIEpTQnl0ZUFycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8SlNCeXRlQXJyYXkqPihjZWxsKTsKQEAgLTExNCwxMSArMTA5LDYgQEAgdm9pZCBKU0J5
dGVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU4KICAgICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCi12b2lkIEpTQnl0ZUFycmF5OjpwdXRWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQot
ewotICAgIHB1dEJ5SW5kZXgodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7Ci19Ci0K
IHZvaWQgSlNCeXRlQXJyYXk6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzdGF0aWNf
Y2FzdDxKU0J5dGVBcnJheSo+KGNlbGwpLT5zZXRJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4
IDMzNzA0MTA3YjkzYTgxYWEzODUyZDdjYmE3OTM0MWMwOWVkODE3N2IuLjQ1YWM3MjVlMTlmMGNi
Y2QwYjQzYjgwMjk1ZDMzMmEyYjU0ZGZhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCeXRlQXJyYXkuaApAQCAtOTMsOSArOTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0
YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBz
dGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlT
bG90Jik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpOwogICAgICAgICBzdGF0aWMgdm9p
ZCBwdXRCeUluZGV4KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blBy
b3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgRW51
bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCmluZGV4IGMyNzlhZTVhYTRkMTQ4ZTU2Njdh
NjYzZmEzMGFjZTg5OWQ5YmY5ODcuLjI3OGM0YjIyY2ZjNjc5ZjE5YmViOTMxN2JkMmE5MmU4ODk0
M2QwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApAQCAtOTgs
MjQgKzk4LDE2IEBAIGJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLXZvaWQgSlNDZWxsOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQot
ewotICAgIHB1dCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZv
aWQgSlNDZWxsOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKLSAgICBjZWxsLT50b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkp
LT5wdXRWaXJ0dWFsKGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKLX0KLQotdm9pZCBK
U0NlbGw6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBK
U1ZhbHVlIHZhbHVlKQotewotICAgIHB1dEJ5SW5kZXgodGhpcywgZXhlYywgaWRlbnRpZmllciwg
dmFsdWUpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gY2VsbC0+dG9PYmplY3QoZXhlYywg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICB0aGlzT2JqZWN0LT5tZXRob2RUYWJs
ZSgpLT5wdXQodGhpc09iamVjdCwgZXhlYywgaWRlbnRpZmllciwgdmFsdWUsIHNsb3QpOwogfQog
CiB2b2lkIEpTQ2VsbDo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
dW5zaWduZWQgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBjZWxsLT50b09iamVj
dChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5wdXRWaXJ0dWFsKGV4ZWMsIGlk
ZW50aWZpZXIsIHZhbHVlKTsKKyAgICBKU09iamVjdCogdGhpc09iamVjdCA9IGNlbGwtPnRvT2Jq
ZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7CisgICAgdGhpc09iamVjdC0+
bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0aGlzT2JqZWN0LCBleGVjLCBpZGVudGlmaWVyLCB2
YWx1ZSk7CiB9CiAKIGJvb2wgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NlbGwuaAppbmRleCA3ZTBlNTFmZTFhNzk4NjMyYWM1MzRhMjNkNzNhYzA5OTc3
YWY2OWQ2Li5jZDYzYTE5NmJhZjAwNjc4ZGUzNTEyMDc3OTZhM2Q1OTg2YTUyODdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAtODksOSArODksNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgLy8gT2JqZWN0IG9wZXJhdGlvbnMsIHdpdGggdGhlIHRvT2JqZWN0
IG9wZXJhdGlvbiBpbmNsdWRlZC4KICAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8o
KSBjb25zdDsKICAgICAgICAgY29uc3QgTWV0aG9kVGFibGUqIG1ldGhvZFRhYmxlKCkgY29uc3Q7
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXRCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgICAgIAogICAgICAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uY3BwCmluZGV4IDM4M2I5NTNlMDA5YTg5ZTFjMzAwMTc4YjE4YjZhODg1NDU2NzE4YWEu
LmM5OWRhNGU1NDI2MzAwNjQ2NTQ4MzZmZWZjZWE0ZGJhY2RhNTJjMjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0zMTcsMTEgKzMxNyw2IEBA
IHZvaWQgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFBy
b3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0CiAgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhl
eGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotdm9pZCBKU0Z1bmN0aW9uOjpwdXRWaXJ0
dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIEpTRnVuY3Rpb246OnB1dChK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNGdW5j
dGlvbiogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTRnVuY3Rpb24qPihjZWxsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCBmODVhYTM4MGRjYzE0
MzZkNzQxMzllN2U2ZmQzMjRiZTk1MjMwY2M5Li5iZDdjM2IxZWYwMjU3NGJjYjdiYWI5MDBiZWYw
ZDdmZjAyNWM4NmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5oCkBAIC0xMzQsNyArMTM0LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJv
cGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9k
ZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBw
dXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZp
cnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCBl
OGVjZmE0M2RiYWU3ODBiNjU1NzJhZWQxYTY0OWNiODE1YTQxZmFhLi43MWYzNzFjZDg0YjYzYTg0
YTYxYzgyNzRmMTgxOWQzNGE4NzA2MmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xMzYsMTEgKzEzNiw2IEBAIHZvaWQgSlNH
bG9iYWxPYmplY3Q6OmluaXQoSlNPYmplY3QqIHRoaXNWYWx1ZSkKICAgICByZXNldChwcm90b3R5
cGUoKSk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNHbG9iYWxPYmplY3QqIHRo
aXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KGNlbGwpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggZTY5MDJlOWJj
MzgyYzk4NzJjYTAwOTFiYWMwNjA2MGMzMDlkYjUxYS4uY2M5MmQ4MzgwMDkzNDQxYmMwYWQ1ODI2
MDQwMjEzMTMzNTA0MGViOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oCkBAIC0xODYsNyArMTg2LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzT3duUHJvcGVydHlG
b3JXcml0ZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJik7Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1
dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5P
YmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5j
cHAKaW5kZXggYjVhNWEzMWY1ZTlhMTIyYTc4MDI1NWEwNWMyZTQwZjdkNzAxMjNjNS4uM2Y3OThm
MGQ2NDVhOGQ5YjM0MDliYjgzMTQwMjg1ZTBiNDRiNjI3YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKQEAgLTc0LDIxICs3NCwxMSBAQCBi
b29sIEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBKU05v
dEFuT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
aWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAg
IHB1dCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgSlNO
b3RBbk9iamVjdDo6cHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQogewogICAgIEFTU0VSVF9VTlVTRUQoZXhl
YywgZXhlYy0+aGFkRXhjZXB0aW9uKCkpOwogfQogCi12b2lkIEpTTm90QW5PYmplY3Q6OnB1dFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQotewotICAg
IHB1dEJ5SW5kZXgodGhpcywgZXhlYywgaSwgdmFsdWUpOwotfQotCiB2b2lkIEpTTm90QW5PYmpl
Y3Q6OnB1dEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCwgSlNWYWx1
ZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGV4ZWMsIGV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCA0MTM4
MzFlMjVlZGUzOWJiNmZjNGJhNWZjYjAxZWYzM2U2NjY0ODlhLi4wMDM4MzRiYjJjZWU5MDgxMDEz
YjE3NmNlZWMxNzAzOWIyMTQ5ZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU05vdEFuT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNOb3RBbk9iamVjdC5oCkBAIC03NCwxMCArNzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0
dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwg
UHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1
dEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IDdjNTlhZWZjZTEwZjNjZGU2Yjdm
Y2M2NGVlMTUzNTI3YTYzZDdjMjguLjc1ZGViMmQ3N2RiMzRkNjQ5MGMxNjQxOTMwYTQ4OGQwYTcz
NjNjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3Bw
CkBAIC03MTUsNyArNzE1LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpT
VmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSlNBcnJheSgmbV9l
eGVjLT5nbG9iYWxEYXRhKCksIGFycmF5KSAmJiBhcnJheS0+Y2FuU2V0SW5kZXgoaW5kZXhTdGFj
ay5sYXN0KCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXktPnNldEluZGV4KG1fZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBpbmRleFN0YWNrLmxhc3QoKSwgZmlsdGVyZWRWYWx1ZSk7CiAgICAg
ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LT5wdXRW
aXJ0dWFsKG1fZXhlYywgaW5kZXhTdGFjay5sYXN0KCksIGZpbHRlcmVkVmFsdWUpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYXJyYXktPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgoYXJyYXks
IG1fZXhlYywgaW5kZXhTdGFjay5sYXN0KCksIGZpbHRlcmVkVmFsdWUpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpAQCAtNzc5LDcgKzc3OSw3IEBAIE5FVkVS
X0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgICAg
ICAgICAgICAgaWYgKGZpbHRlcmVkVmFsdWUuaXNVbmRlZmluZWQoKSkKICAgICAgICAgICAgICAg
ICAgICAgb2JqZWN0LT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwobV9leGVjLCBwcm9wKTsKICAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG9iamVjdC0+cHV0VmlydHVhbCht
X2V4ZWMsIHByb3AsIGZpbHRlcmVkVmFsdWUsIHNsb3QpOworICAgICAgICAgICAgICAgICAgICBv
YmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dChvYmplY3QsIG1fZXhlYywgcHJvcCwgZmlsdGVyZWRW
YWx1ZSwgc2xvdCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBqc051bGwoKTsKICAgICAgICAgICAgICAgICBp
bmRleFN0YWNrLmxhc3QoKSsrOwpAQCAtODEwLDcgKzgxMCw3IEBAIE5FVkVSX0lOTElORSBKU1Zh
bHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgfQogICAgIEpTT2JqZWN0
KiBmaW5hbEhvbGRlciA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KG1fZXhlYyk7CiAgICAgUHV0UHJv
cGVydHlTbG90IHNsb3Q7Ci0gICAgZmluYWxIb2xkZXItPnB1dFZpcnR1YWwobV9leGVjLCBtX2V4
ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5lbXB0eUlkZW50aWZpZXIsIG91dFZhbHVl
LCBzbG90KTsKKyAgICBmaW5hbEhvbGRlci0+bWV0aG9kVGFibGUoKS0+cHV0KGZpbmFsSG9sZGVy
LCBtX2V4ZWMsIG1fZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPmVtcHR5SWRlbnRp
Zmllciwgb3V0VmFsdWUsIHNsb3QpOwogICAgIHJldHVybiBjYWxsUmV2aXZlcihmaW5hbEhvbGRl
ciwganNFbXB0eVN0cmluZyhtX2V4ZWMpLCBvdXRWYWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCA3MjhkOWFmYTA2ZGY5MzNiODZkYzRm
NWYxMzg5Yzg4MmJiYjQ3YzZiLi41YjlhZDYxZjYyZjhkMzVmZjJkODk1NTEyMTIwZTUxZTU3YjBk
NTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0x
MTksMTEgKzExOSw2IEBAIHN0YXRpYyB2b2lkIHRocm93U2V0dGVyRXJyb3IoRXhlY1N0YXRlKiBl
eGVjKQogICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJzZXR0aW5n
IGEgcHJvcGVydHkgdGhhdCBoYXMgb25seSBhIGdldHRlciIpKTsKIH0KIAotdm9pZCBKU09iamVj
dDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHB1dCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0KLQogLy8gRUNNQSA4LjYu
Mi4yCiB2b2lkIEpTT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQogewpAQCAtMjAxLDE1ICsxOTYsMTEgQEAgdm9pZCBKU09iamVjdDo6cHV0KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUKICAgICByZXR1cm47CiB9CiAKLXZvaWQgSlNPYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgcHV0
QnlJbmRleCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKLX0KLQogdm9pZCBKU09i
amVjdDo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90
OwotICAgIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2VsbCktPnB1dFZpcnR1YWwoZXhlYywgSWRl
bnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCB2YWx1ZSwgc2xvdCk7CisgICAgSlNP
YmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU09iamVjdCo+KGNlbGwpOworICAgIHRo
aXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dCh0aGlzT2JqZWN0LCBleGVjLCBJZGVudGlmaWVy
Ojpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBKU09i
amVjdDo6cHV0V2l0aEF0dHJpYnV0ZXMoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0
ZXMsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpAQCAtODM0LDcg
KzgyNSw3IEBAIGJvb2wgSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lCiAgICAgICAgICAgICBpZiAoIWRlc2Ny
aXB0b3IudmFsdWUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAg
IFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgcHV0VmlydHVhbChleGVjLCBwcm9w
ZXJ0eU5hbWUsIGRlc2NyaXB0b3IudmFsdWUoKSwgc2xvdCk7CisgICAgICAgICAgICBtZXRob2RU
YWJsZSgpLT5wdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLnZhbHVlKCks
IHNsb3QpOwogICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggMDBiZGJmZjdhMTU3YWE1MzFiMjdm
MTA2OWQ0NmRiNDc3YTRiNDBkYy4uNjM2NTk3MGYwNDk1OTRkYjdlYjllNTFjODI3ZmZhOWU3ZmZi
NmU4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xMDUs
OSArMTA1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
IAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVh
bCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXRXaXRoQXR0cmlidXRlcyhKU0dsb2JhbERhdGEqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIGJvb2wgY2hlY2tS
ZWFkT25seSwgUHV0UHJvcGVydHlTbG90JiBzbG90KTsKQEAgLTgxMiwxMCArODEwLDExIEBAIGlu
bGluZSBKU1ZhbHVlIEpTVmFsdWU6OmdldChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90CiBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXQoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBpZiAoVU5MSUtFTFkoIWlzQ2VsbCgpKSkgewot
ICAgICAgICBzeW50aGVzaXplT2JqZWN0KGV4ZWMpLT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5
TmFtZSwgdmFsdWUsIHNsb3QpOworICAgICAgICBKU09iamVjdCogdGhpc09iamVjdCA9IHN5bnRo
ZXNpemVPYmplY3QoZXhlYyk7CisgICAgICAgIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1
dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICBhc0NlbGwoKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBzbG90KTsKKyAgICBhc0NlbGwoKS0+bWV0aG9kVGFibGUoKS0+cHV0KGFzQ2Vs
bCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogaW5saW5lIHZvaWQg
SlNWYWx1ZTo6cHV0RGlyZWN0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC04Mjgs
MTAgKzgyNywxMSBAQCBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXREaXJlY3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsCiBpbmxpbmUgdm9pZCBKU1ZhbHVl
OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgaWYgKFVOTElLRUxZKCFpc0NlbGwoKSkpIHsKLSAgICAgICAgc3ludGhlc2l6
ZU9iamVjdChleGVjKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKKyAg
ICAgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBzeW50aGVzaXplT2JqZWN0KGV4ZWMpOworICAg
ICAgICB0aGlzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHRoaXNPYmplY3QsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGFz
Q2VsbCgpLT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOworICAgIGFzQ2Vs
bCgpLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGFzQ2VsbCgpLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlKTsKIH0KIAogLy8gLS0tIEpTVmFsdWUgaW5saW5lcyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1N0YXRpY1Njb3BlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RhdGljU2NvcGVPYmplY3QuY3BwCmluZGV4IDdmYTVjNDg5ZWI5YWZiNGJhNDMyZDM5NTlmMWUx
ZTJhYzU1MDQ1MDcuLjRjNjRlZDg5YjAwOWYxNzQzY2EzMGJkZjNkMmJmYmY5MWE3YTllNTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVP
YmplY3QuY3BwCkBAIC00OSwxMSArNDksNiBAQCBKU09iamVjdCogSlNTdGF0aWNTY29wZU9iamVj
dDo6dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gZXhlYy0+
Z2xvYmFsVGhpc1ZhbHVlKCk7CiB9CiAKLXZvaWQgSlNTdGF0aWNTY29wZU9iamVjdDo6cHV0Vmly
dHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHB1dCh0aGlzLCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0KLQogdm9pZCBKU1N0YXRpY1Njb3BlT2Jq
ZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewog
ICAgIEpTU3RhdGljU2NvcGVPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1N0YXRp
Y1Njb3BlT2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKaW5kZXggMDMyMTFmZmYzNzk0Nzk0ODVmYjBkZWZh
NDgxMDgwODUxMzE3ZTcyMS4uZTgyZGIxZTIzODM4NjdmMjk4MmMyZjhkZmQ4NWU2NWU4MWY0NDI5
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29w
ZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2Nv
cGVPYmplY3QuaApAQCAtNDYsNyArNDYsNiBAQCBuYW1lc3BhY2UgSlNDewogICAgICAgICB2aXJ0
dWFsIEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0
ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlw
ZS5jcHAKaW5kZXggNTU0MmMwNjA1ZGQ5YTBhMDg5MmQ1NTEwOTZlNDVmNDAzNzg2NWUxMC4uNGRh
MzU5MmE1NTQ2OGQ4ZGYwYmYzODBmOThlZmEzNWRjZjY0N2MyMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC03NSwxMSArNzUs
NiBAQCB2b2lkIE9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCopCiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8p
KTsKIH0KIAotdm9pZCBPYmplY3RQcm90b3R5cGU6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgT2JqZWN0UHJvdG90eXBlOjpwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIE9iamVjdFByb3RvdHlwZSogdGhp
c09iamVjdCA9IHN0YXRpY19jYXN0PE9iamVjdFByb3RvdHlwZSo+KGNlbGwpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCAwNDEyOTU3
YWJjNzBmMzNmZmUxM2E5MWM5ZjNhNWEyYjQ1NzlkODg3Li5hNzRhMzNlNDc5NWM3MmMxYTdjMmY5
ODI5ZDhhMTgzMzc5MWU2Njg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RQcm90b3R5cGUuaApAQCAtNTAsNyArNTAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIE9iamVjdFByb3RvdHlwZShFeGVjU3RhdGUqLCBTdHJ1Y3R1
cmUqKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMg
dm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVj
dG9yLmNwcAppbmRleCA5MGZhMzcxMzA5ZjBhNDYzNmQ3MTg1MTU3MjZmMDI3ZGYxY2YwMTc5Li42
ZGY1YjM4OTczZTJmN2RkMzQyMThiNjgxYTkzODZlMmNmMzgwM2QyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yOTIs
MTEgKzI5Miw2IEBAIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJCiAgICAgcmV0dXJuIGFzUmVnRXhw
Q29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRSaWdodENvbnRleHQoZXhlYyk7CiB9CiAKLXZvaWQg
UmVnRXhwQ29uc3RydWN0b3I6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19
Ci0KIHZvaWQgUmVnRXhwQ29uc3RydWN0b3I6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgbG9va3VwUHV0PFJlZ0V4cENvbnN0cnVjdG9yLCBJ
bnRlcm5hbEZ1bmN0aW9uPihleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBFeGVjU3RhdGU6OnJl
Z0V4cENvbnN0cnVjdG9yVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PFJlZ0V4cENvbnN0cnVjdG9y
Kj4oY2VsbCksIHNsb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENvbnN0cnVjdG9yLmgKaW5kZXggMmZmOWMxZDMzY2RkODI2MjQ1ZDZmYjZlZTk4ZDRkMTA2
YzVhMGI3OC4uYzQ1MTc5OWVmYzBlYmQ4MzgwYWM5MGYwMTNjZGU4M2I0MGFmZTY3MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBA
IC03MSw3ICs3MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5m
byhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggNWU4MDBlYzZkNDg0OGUy
ZDQ1NjIzNmNhMzA4MDhmMmQ5NzQzNjQ3Yy4uNjI0MTJhYjNiMTNiMTgxMTFlNTJmZGI2YzFlNTRj
MmZlN2VkMDI5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwTWF0Y2hlc0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwTWF0Y2hlc0FycmF5LmgKQEAgLTc2LDExICs3Niw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAgICAgcmV0dXJuIEpTQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2
b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdiwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotICAgICAgICB7Ci0gICAg
ICAgICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2LCBzbG90KTsKLSAgICAgICAg
fQotCiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHYsIFB1dFByb3BlcnR5
U2xvdCYgc2xvdCkKICAgICAgICAgewogICAgICAgICAgICAgUmVnRXhwTWF0Y2hlc0FycmF5KiB0
aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UmVnRXhwTWF0Y2hlc0FycmF5Kj4oY2VsbCk7CkBAIC04
OSwxMSArODQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIEpTQXJyYXk6OnB1dCh0
aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHYsIHNsb3QpOwogICAgICAgICB9CiAgICAg
ICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2KQotICAgICAgICB7Ci0gICAgICAgICAgICBw
dXRCeUluZGV4KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdik7Ci0gICAgICAgIH0KLSAgICAg
ICAgCiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2KQogICAgICAgICB7CiAg
ICAgICAgICAgICBSZWdFeHBNYXRjaGVzQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxS
ZWdFeHBNYXRjaGVzQXJyYXkqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4IGQ1ZTkyNDNlMzI4NjgzZjZhNjc0YWMxMzNlMWJl
YWIxYTcwZmQ2OTguLmU4MmRmYWFhNzIwN2RhODZhYjEwZGI0ZjZhOGQwZGJjODk0NDQ1OTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAt
MTY1LDExICsxNjUsNiBAQCBKU1ZhbHVlIHJlZ0V4cE9iamVjdExhc3RJbmRleChFeGVjU3RhdGUq
LCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKICAgICByZXR1cm4gYXNSZWdF
eHBPYmplY3Qoc2xvdEJhc2UpLT5nZXRMYXN0SW5kZXgoKTsKIH0KIAotdm9pZCBSZWdFeHBPYmpl
Y3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQo
dGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgUmVnRXhw
T2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQog
ewogICAgIGxvb2t1cFB1dDxSZWdFeHBPYmplY3QsIEpTT2JqZWN0PihleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBFeGVjU3RhdGU6OnJlZ0V4cFRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxSZWdF
eHBPYmplY3QqPihjZWxsKSwgc2xvdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE9iamVjdC5oCmluZGV4IDBmYTM2YTUxYTY3MTAyMGNkNWM2YzJlMTA1ODU2MDg0NDc1
Mzg2MmMuLmNjNjQ2MzUxMTA3Mzc5NDNkOGMxZDMyNTg3MThiYjg5NmVhMzViZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC02OCw3ICs2OCw2
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRp
YyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHN0YXRpYyBKU19F
WFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAppbmRleCBiNzIzZTkzMDU4YzljZjI0NDUxNjMy
MGVlNDIwNjc1OTM1MzhhNjA2Li5lMDhjMWUzODk2ZDE1MDJlMGFjNmJjZjM5MmI1MGZiMDIxYTI3
Mzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5j
cHAKQEAgLTc0LDExICs3NCw2IEBAIGJvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwCiAgICAgcmV0dXJu
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBk
ZXNjcmlwdG9yKTsKIH0KIAotdm9pZCBTdHJpbmdPYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgU3RyaW5nT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGlmIChwcm9wZXJ0eU5hbWUg
PT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggZGNlYjFiYjFmYWEwZTc0ZjIyNWZiZWY2NzQw
M2EzNWM2ZDdiYTU4ZC4uYTFmYWNhNDliMDUxZmMzOGVlZWFiNTY4MjA3MzgxNmQzNTAxYjhjOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKQEAgLTUx
LDcgKzUxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
IAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCBhZGJmYzJiMmY1ZmMzMmYwZjk0MTFlMWZkNjdlNzEy
YjhlYjljYWE5Li5lNDkzMGY4NzVjMjEwNWYxNDA5ZmU0YjFlOGE4YTlkZGYxOGM3MjM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAK
QEAgLTg0Niw3ICs4NDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1By
b3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgaWYgKHNlcGFyYXRvclZhbHVl
LmlzVW5kZWZpbmVkKCkpIHsKICAgICAgICAgICAgIC8vIGEuIENhbGwgdGhlIFtbRGVmaW5lT3du
UHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50cyAiMCIsCiAgICAg
ICAgICAgICAvLyAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFMsIFtbV3JpdGFi
bGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9
LCBhbmQgZmFsc2UuCi0gICAgICAgICAgICByZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgMCwganNT
dHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOworICAgICAgICAgICAgcmVz
dWx0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHJlc3VsdCwgZXhlYywgMCwganNTdHJpbmdX
aXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOwogICAgICAgICAgICAgLy8gYi4gUmV0
dXJuIEEuCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAg
ICAgIH0KQEAgLTg1OSw3ICs4NTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIC8vICAgIFBy
b3BlcnR5IERlc2NyaXB0b3Ige1tbVmFsdWVdXTogUywgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0Vu
dW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KICAg
ICAgICAgICAgIC8vIGQuIFJldHVybiBBLgogICAgICAgICAgICAgaWYgKHJlZy0+bWF0Y2goKmds
b2JhbERhdGEsIGlucHV0LCAwKSA8IDApCi0gICAgICAgICAgICAgICAgcmVzdWx0LT5wdXRWaXJ0
dWFsKGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQpKTsK
KyAgICAgICAgICAgICAgICByZXN1bHQtPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgocmVzdWx0
LCBleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7CiAg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgICAgIH0KIApA
QCAtODkwLDcgKzg5MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJv
dG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgLy8gICAgdGhyb3VnaCBx
IChleGNsdXNpdmUpLgogICAgICAgICAgICAgLy8gMi4gQ2FsbCB0aGUgW1tEZWZpbmVPd25Qcm9w
ZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzIFRvU3RyaW5nKGxlbmd0
aEEpLAogICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1dOiBU
LCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJs
ZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgotICAgICAgICAgICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4
ZWMsIHJlc3VsdExlbmd0aCwganNTdWJzdHJpbmcoZXhlYywgaW5wdXQsIHBvc2l0aW9uLCBtYXRj
aFBvc2l0aW9uIC0gcG9zaXRpb24pKTsKKyAgICAgICAgICAgIHJlc3VsdC0+bWV0aG9kVGFibGUo
KS0+cHV0QnlJbmRleChyZXN1bHQsIGV4ZWMsIHJlc3VsdExlbmd0aCwganNTdWJzdHJpbmcoZXhl
YywgaW5wdXQsIHBvc2l0aW9uLCBtYXRjaFBvc2l0aW9uIC0gcG9zaXRpb24pKTsKICAgICAgICAg
ICAgIC8vIDMuIEluY3JlbWVudCBsZW5ndGhBIGJ5IDEuCiAgICAgICAgICAgICAvLyA0LiBJZiBs
ZW5ndGhBID09IGxpbSwgcmV0dXJuIEEuCiAgICAgICAgICAgICBpZiAoKytyZXN1bHRMZW5ndGgg
PT0gbGltaXQpCkBAIC05MDksNyArOTA5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAg
Ly8gICBUb1N0cmluZyhsZW5ndGhBKSwgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1dOiBj
YXBbaV0sIFtbV3JpdGFibGVdXToKICAgICAgICAgICAgICAgICAvLyAgIHRydWUsIFtbRW51bWVy
YWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgogICAgICAg
ICAgICAgICAgIGludCBzdWIgPSBvdmVjdG9yW2kgKiAyXTsKLSAgICAgICAgICAgICAgICByZXN1
bHQtPnB1dFZpcnR1YWwoZXhlYywgcmVzdWx0TGVuZ3RoLCBzdWIgPCAwID8ganNVbmRlZmluZWQo
KSA6IGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBzdWIsIG92ZWN0b3JbaSAqIDIgKyAxXSAtIHN1
YikpOworICAgICAgICAgICAgICAgIHJlc3VsdC0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChy
ZXN1bHQsIGV4ZWMsIHJlc3VsdExlbmd0aCwgc3ViIDwgMCA/IGpzVW5kZWZpbmVkKCkgOiBqc1N1
YnN0cmluZyhleGVjLCBpbnB1dCwgc3ViLCBvdmVjdG9yW2kgKiAyICsgMV0gLSBzdWIpKTsKICAg
ICAgICAgICAgICAgICAvLyBjIEluY3JlbWVudCBsZW5ndGhBIGJ5IDEuCiAgICAgICAgICAgICAg
ICAgLy8gZCBJZiBsZW5ndGhBID09IGxpbSwgcmV0dXJuIEEuCiAgICAgICAgICAgICAgICAgaWYg
KCsrcmVzdWx0TGVuZ3RoID09IGxpbWl0KQpAQCAtOTI4LDcgKzkyOCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQog
ICAgICAgICBpZiAoc2VwYXJhdG9yVmFsdWUuaXNVbmRlZmluZWQoKSkgewogICAgICAgICAgICAg
Ly8gYS4gIENhbGwgdGhlIFtbRGVmaW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2Yg
QSB3aXRoIGFyZ3VtZW50cyAiMCIsCiAgICAgICAgICAgICAvLyAgICAgUHJvcGVydHkgRGVzY3Jp
cHRvciB7W1tWYWx1ZV1dOiBTLCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0
cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgotICAgICAgICAgICAgcmVz
dWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1
ZSwgaW5wdXQpKTsKKyAgICAgICAgICAgIHJlc3VsdC0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRl
eChyZXN1bHQsIGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5w
dXQpKTsKICAgICAgICAgICAgIC8vIGIuICBSZXR1cm4gQS4KICAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICAgICAgfQpAQCAtOTQxLDcgKzk0MSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRl
KiBleGVjKQogICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1d
OiBTLCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3Vy
YWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgogICAgICAgICAgICAgLy8gZC4gUmV0dXJuIEEuCiAg
ICAgICAgICAgICBpZiAoIXNlcGFyYXRvci5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmVz
dWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1
ZSwgaW5wdXQpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQtPm1ldGhvZFRhYmxlKCktPnB1dEJ5
SW5kZXgocmVzdWx0LCBleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUs
IGlucHV0KSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAg
ICAgICAgIH0KIApAQCAtOTUyLDcgKzk1Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgQVNT
RVJUKGxpbWl0KTsKIAogICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIHJlc3VsdC0+
cHV0VmlydHVhbChleGVjLCBwb3NpdGlvbiwganNTaW5nbGVDaGFyYWN0ZXJTdWJzdHJpbmcoZXhl
YywgaW5wdXQsIHBvc2l0aW9uKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LT5tZXRob2RUYWJs
ZSgpLT5wdXRCeUluZGV4KHJlc3VsdCwgZXhlYywgcG9zaXRpb24sIGpzU2luZ2xlQ2hhcmFjdGVy
U3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlvbikpOwogICAgICAgICAgICAgfSB3aGlsZSAo
Kytwb3NpdGlvbiA8IGxpbWl0KTsKIAogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShyZXN1bHQpOwpAQCAtOTY5LDcgKzk2OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgLy8g
ICAgdGhyb3VnaCBxIChleGNsdXNpdmUpLgogICAgICAgICAgICAgLy8gMi4gQ2FsbCB0aGUgW1tE
ZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzIFRv
U3RyaW5nKGxlbmd0aEEpLAogICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRvciB7
W1tWYWx1ZV1dOiBULCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBb
W0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgotICAgICAgICAgICAgcmVzdWx0LT5w
dXRWaXJ0dWFsKGV4ZWMsIHJlc3VsdExlbmd0aCwganNTdWJzdHJpbmcoZXhlYywgaW5wdXQsIHBv
c2l0aW9uLCBtYXRjaFBvc2l0aW9uIC0gcG9zaXRpb24pKTsKKyAgICAgICAgICAgIHJlc3VsdC0+
bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChyZXN1bHQsIGV4ZWMsIHJlc3VsdExlbmd0aCwganNT
dWJzdHJpbmcoZXhlYywgaW5wdXQsIHBvc2l0aW9uLCBtYXRjaFBvc2l0aW9uIC0gcG9zaXRpb24p
KTsKICAgICAgICAgICAgIC8vIDMuIEluY3JlbWVudCBsZW5ndGhBIGJ5IDEuCiAgICAgICAgICAg
ICAvLyA0LiBJZiBsZW5ndGhBID09IGxpbSwgcmV0dXJuIEEuCiAgICAgICAgICAgICBpZiAoKyty
ZXN1bHRMZW5ndGggPT0gbGltaXQpCkBAIC05ODUsNyArOTg1LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
Ly8gICAgIHRocm91Z2ggcyAoZXhjbHVzaXZlKS4KICAgICAvLyAxNS4gQ2FsbCB0aGUgW1tEZWZp
bmVPd25Qcm9wZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzIFRvU3Ry
aW5nKGxlbmd0aEEpLCBQcm9wZXJ0eSBEZXNjcmlwdG9yCiAgICAgLy8gICAgIHtbW1ZhbHVlXV06
IFQsIFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJh
YmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCi0gICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIHJl
c3VsdExlbmd0aCsrLCBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRpb24sIGlucHV0Lmxl
bmd0aCgpIC0gcG9zaXRpb24pKTsKKyAgICByZXN1bHQtPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5k
ZXgocmVzdWx0LCBleGVjLCByZXN1bHRMZW5ndGgrKywganNTdWJzdHJpbmcoZXhlYywgaW5wdXQs
IHBvc2l0aW9uLCBpbnB1dC5sZW5ndGgoKSAtIHBvc2l0aW9uKSk7CiAKICAgICAvLyAxNi4gUmV0
dXJuIEEuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAKaW5kZXggYWZmOWZmM2MyNzdiNmRkZTQzMDQxYjM3
M2RhMTQyZGU2ZTQ3M2VlNC4uNjBkOTk1MTYwNmUxY2RlMTNjNjU0Njg5NWE4MTAyNjE3MmUwNzdi
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNWYWx1ZVdyYXBwZXIuY3BwCkBAIC0xMzYsNyAr
MTM2LDcgQEAgdm9pZCBKU1ZhbHVlV3JhcHBlcjo6SlNPYmplY3RTZXRQcm9wZXJ0eSh2b2lkICpk
YXRhLCBDRlN0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEoKICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9
IEpTT2JqZWN0S0pTVmFsdWUoKEpTVXNlck9iamVjdCopanNWYWx1ZSk7CiAgICAgICAgIEpTT2Jq
ZWN0ICpvYmpWYWx1ZSA9IHB0ci0+R2V0VmFsdWUoKS50b09iamVjdChleGVjKTsKICAgICAgICAg
UHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIG9ialZhbHVlLT5wdXRWaXJ0dWFsKGV4ZWMs
IENGU3RyaW5nVG9JZGVudGlmaWVyKHByb3BlcnR5TmFtZSwgZXhlYyksIHZhbHVlLCBzbG90KTsK
KyAgICAgICAgb2JqVmFsdWUtPm1ldGhvZFRhYmxlKCktPnB1dChvYmpWYWx1ZSwgZXhlYywgQ0ZT
dHJpbmdUb0lkZW50aWZpZXIocHJvcGVydHlOYW1lLCBleGVjKSwgdmFsdWUsIHNsb3QpOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCmluZGV4IDllOWQy
MDY0MDY3OWQxMDhiZDI2ZDVhNzI5MTVhYzFkNmY0YjU3YTAuLmUzMDhlODMzZTUxODY0MDdiYmVi
ODU3OGVmMDMyY2FmNDZhNzBkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9V
c2VyT2JqZWN0SW1wLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdElt
cC5jcHAKQEAgLTE1MiwxMSArMTUyLDYgQEAgYm9vbCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW4KICAgICBy
ZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQogCi12b2lkIFVzZXJPYmplY3RJbXA6OnB1dFZpcnR1YWwoRXhl
Y1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgVXNlck9iamVjdEltcDo6cHV0KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCiB7CiAgICAgVXNlck9iamVjdEltcCog
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFVzZXJPYmplY3RJbXAqPihjZWxsKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IDIwYjYyZjRiNTg5OTk4OTNkN2QyMDMyNzc0
NmIyZWZjMDVkNzE0ODkuLjAzMTBlOTVmYjA4ODQ1YWExNmVlNjIxYzZiOTQ0NjVlMzU1OTFlODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaApAQCAtNTYsNyArNTYsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBKU1ZhbHVlIGNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhl
Yyk7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
ICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAg
SlNWYWx1ZSB0b1ByaW1pdGl2ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlIHBy
ZWZlcnJlZFR5cGUgPSBOb1ByZWZlcmVuY2UpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCAyMjhhMDEzYzE4MDI5OWY5NGY0YjUyYTUwYTQwYjE5ZjgzMTA1ZWVkLi41Y2U2YzgxZjg2NGFk
YjgwYTIxYTI3NzI3MGI2ZWI4MGQwOWJkMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTQx
LDcgKzE0MSw2IEBAIF9fWk43V2ViQ29yZTEwQ2xpZW50UmVjdEMxRXYKIF9fWk43V2ViQ29yZTEw
Q3JlZGVudGlhbEMxRVJLTjNXVEY2U3RyaW5nRVM0X05TXzIxQ3JlZGVudGlhbFBlcnNpc3RlbmNl
RQogX19aTjdXZWJDb3JlMTBDcmVkZW50aWFsQzFFdgogX19aTjdXZWJDb3JlMTBGbG9hdFBvaW50
QzFFUktOU184SW50UG9pbnRFCi1fX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQxMHB1dFZpcnR1YWxF
UE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQ
dXRQcm9wZXJ0eVNsb3RFCiBfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2c19pbmZvRQogX19aTjdX
ZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFTlMxXzEwUGFz
c1JlZlB0cklOU185RE9NV2luZG93RUVFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEVpTlM1X0lO
U180Tm9kZUVFRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50QzFFUktOM1dURjEyQXRvbWljU3Ry
aW5nRWJiTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNf
MTFFdmVudFRhcmdldEVFRU5TNV9JTlNfOUNsaXBib2FyZEVFRWIKQEAgLTg0Myw3ICs4NDIsNiBA
QCBfX1pON1dlYkNvcmU2RWRpdG9yNmluZGVudEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yN0NvbW1h
bmRDMUV2CiBfX1pON1dlYkNvcmU2RWRpdG9yN2NvbW1hbmRFUktOM1dURjZTdHJpbmdFCiBfX1pO
N1dlYkNvcmU2RWRpdG9yN291dGRlbnRFdgotX19aTjdXZWJDb3JlNkpTTm9kZTEwcHV0VmlydHVh
bEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5TMV8x
NVB1dFByb3BlcnR5U2xvdEUKIF9fWk43V2ViQ29yZTZKU05vZGU2c19pbmZvRQogX19aTjdXZWJD
b3JlNlJlZ2lvbjV1bml0ZUVSS1MwXwogX19aTjdXZWJDb3JlNlJlZ2lvbjhzdWJ0cmFjdEVSS1Mw
XwpAQCAtMTA1OCw3ICsxMDU2LDYgQEAgX19aTjdXZWJDb3JlOUhUTUxOYW1lczh2aWRlb1RhZ0UK
IF9fWk43V2ViQ29yZTlIVE1MTmFtZXM5aWZyYW1lVGFnRQogX19aTjdXZWJDb3JlOUhUTUxOYW1l
czlvYmplY3RUYWdFCiBfX1pON1dlYkNvcmU5SFRNTE5hbWVzOXNjcmlwdFRhZ0UKLV9fWk43V2Vi
Q29yZTlKU0VsZW1lbnQxMHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50
aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pON1dlYkNvcmU5
SlNFbGVtZW50NnNfaW5mb0UKIF9fWk43V2ViQ29yZTlQYWdlQ2FjaGUxMXNldENhcGFjaXR5RWkK
IF9fWk43V2ViQ29yZTlQYWdlQ2FjaGUyN3JlbGVhc2VBdXRvcmVsZWFzZWRQYWdlc05vd0V2CkBA
IC0xNjk3LDcgKzE2OTQsNiBAQCBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDI1Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZgogX19aTjNKU0MxM1J1
bnRpbWVNZXRob2Q2c19pbmZvRQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2RDMkVQTlNfMTRKU0ds
b2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUVSTjNXVEY2VmVjdG9ySVBOU184QmluZGluZ3M2TWV0
aG9kRUxtMEVFRQogX19aTjNKU0M4QmluZGluZ3MxMFJvb3RPYmplY3REMUV2Ci1fX1pOM0pTQzhC
aW5kaW5nczEzUnVudGltZU9iamVjdDEwcHV0VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEw
SWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhC
aW5kaW5nczEzUnVudGltZU9iamVjdDExZ2V0Q2FsbERhdGFFUE5TXzZKU0NlbGxFUk5TXzhDYWxs
RGF0YUUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQ
TlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDOEJp
bmRpbmdzMTNSdW50aW1lT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVQTlNfMTRKU0dsb2JhbE9iamVj
dEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNw
cAppbmRleCAwYWUyNDc3OGEzMjE5NjhmOWM0NTg4ZGQyZDA2NGVlN2I5OWVmYjYxLi5kNzc5MzVm
OWUxMjNmMGQ1ZDFmOTA2OGI0NDlmMGM3NzdjYzk3MTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC0zNDQsMTEgKzM0NCw2IEBA
IGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByCiAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCi12b2lkIEpT
RE9NV2luZG93OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0g
ICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lk
IEpTRE9NV2luZG93OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIEpTRE9NV2luZG93KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNET01X
aW5kb3cqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dTaGVsbC5jcHAKaW5kZXggZTNkMzMzY2MzMGNkODM5MzdjMWJjNDRmMDE3ZTE1NWRiMTllYmVh
MS4uNjlkMzQ2ZTUzZWEyNzkyOGVhMjMyNTM5ODAxOTAxYmM1MTNkOTY5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTExNSwxNCAr
MTE1LDEwIEBAIGJvb2wgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllCiAgICAgcmV0dXJuIG1fd2luZG93LT5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsK
IH0KIAotdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOwotfQotCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnB1dChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgc3RhdGljX2Nhc3Q8SlNET01XaW5k
b3dTaGVsbCo+KGNlbGwpLT5tX3dpbmRvdy0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCBzbG90KTsKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiB0aGlzT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KGNlbGwpOworICAgIHRoaXNPYmplY3QtPm1fd2luZG93
LT5tZXRob2RUYWJsZSgpLT5wdXQodGhpc09iamVjdC0+bV93aW5kb3cuZ2V0KCksIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnB1
dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4IDBkNjkyMTYwMjY1MGRk
M2Q4NTQxOGE5MTBkYzQ3Y2M4Y2IwYmNlYTQuLjU5ZmY3OTM5ZDBiZDhmMTRkYjhlZWI3MDM0NzBk
YTFmY2UwNDBmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1NoZWxsLmgKQEAgLTgzLDcgKzgzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0
dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZv
aWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVh
bChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1
bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuY3BwCmluZGV4IDAwY2Q5NjgyYjhjZWUwYmRkNmE5MGVkNzY3ZjRmNmRjMTcxMjNh
MjUuLjJkNjU1M2FmNDVjYzZmZjNhMzA5ZTViOWVjYjM4YTIyYjFhZWVjMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIGJvb2wgcnVudGltZU9iamVjdEN1c3RvbVB1dChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWCiAgICAgICAg
IHJldHVybiAwOwogICAgIGlmICghc2NyaXB0T2JqZWN0LT5oYXNQcm9wZXJ0eShleGVjLCBwcm9w
ZXJ0eU5hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgc2NyaXB0T2JqZWN0LT5wdXRW
aXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIHNjcmlwdE9iamVj
dC0+bWV0aG9kVGFibGUoKS0+cHV0KHNjcmlwdE9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgc2xvdCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDU3OTQzYmVh
YmRiZmRiOGMyOWRhZjA5MzY2OTk2NWQzN2Y0NGQ4MjMuLmIyYTlmOWEwNWI4YzkxOWUxNjdlOWM4
ZDYyMzJhZDRhMTdhMGI1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMTAzMSw3ICsxMDMxLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgaWYgKGFycmF5LT5jYW5TZXRJbmRleChpbmRleCkpCiAgICAgICAgICAgICBh
cnJheS0+c2V0SW5kZXgobV9leGVjLT5nbG9iYWxEYXRhKCksIGluZGV4LCB2YWx1ZSk7CiAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIGFycmF5LT5wdXRWaXJ0dWFsKG1fZXhlYywgaW5kZXgsIHZh
bHVlKTsKKyAgICAgICAgICAgIGFycmF5LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGFycmF5
LCBtX2V4ZWMsIGluZGV4LCB2YWx1ZSk7CiAgICAgfQogCiAgICAgdm9pZCBwdXRQcm9wZXJ0eShK
U09iamVjdCogb2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwgSlNWYWx1ZSB2YWx1
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2Jq
ZWN0Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0K
aW5kZXggNTkxMGUzNTZkZGJmOTM4MjI5MjE3NTU5MTg4NmE0NTFjNTlmZTg3ZS4uYTRkN2M0YWE0
YjUxNWI2MTk4YjRkMjZmZWY1YTM2NTBlZjA5ZThmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KQEAgLTM0OSw3ICszNDksNyBAQCBzdGF0
aWMgdm9pZCBnZXRMaXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRlICpleGVjLCBOU0FycmF5ICphcnJh
eSwgUm9vdE9iamVjdCogcm9vdAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25s
eSk7CiAKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBbc2VsZiBfaW1wXS0+cHV0Vmly
dHVhbChleGVjLCBJZGVudGlmaWVyKGV4ZWMsIHN0cmluZ1RvVVN0cmluZyhTdHJpbmcoa2V5KSkp
LCBjb252ZXJ0T2JqY1ZhbHVlVG9WYWx1ZShleGVjLCAmdmFsdWUsIE9iamNPYmplY3RUeXBlLCBb
c2VsZiBfcm9vdE9iamVjdF0pLCBzbG90KTsKKyAgICBbc2VsZiBfaW1wXS0+bWV0aG9kVGFibGUo
KS0+cHV0KFtzZWxmIF9pbXBdLCBleGVjLCBJZGVudGlmaWVyKGV4ZWMsIHN0cmluZ1RvVVN0cmlu
ZyhTdHJpbmcoa2V5KSkpLCBjb252ZXJ0T2JqY1ZhbHVlVG9WYWx1ZShleGVjLCAmdmFsdWUsIE9i
amNPYmplY3RUeXBlLCBbc2VsZiBfcm9vdE9iamVjdF0pLCBzbG90KTsKIAogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBhZGRFeGNlcHRpb25Ub0NvbnNvbGUoZXhlYyk7
CkBAIC00ODYsNyArNDg2LDcgQEAgc3RhdGljIHZvaWQgZ2V0TGlzdEZyb21OU0FycmF5KEV4ZWNT
dGF0ZSAqZXhlYywgTlNBcnJheSAqYXJyYXksIFJvb3RPYmplY3QqIHJvb3QKICAgICBBU1NFUlQo
IWV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKIAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRp
b25zT25seSk7Ci0gICAgW3NlbGYgX2ltcF0tPnB1dFZpcnR1YWwoZXhlYywgaW5kZXgsIGNvbnZl
cnRPYmpjVmFsdWVUb1ZhbHVlKGV4ZWMsICZ2YWx1ZSwgT2JqY09iamVjdFR5cGUsIFtzZWxmIF9y
b290T2JqZWN0XSkpOworICAgIFtzZWxmIF9pbXBdLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4
KFtzZWxmIF9pbXBdLCBleGVjLCBpbmRleCwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywg
JnZhbHVlLCBPYmpjT2JqZWN0VHlwZSwgW3NlbGYgX3Jvb3RPYmplY3RdKSk7CiAKICAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKICAgICAgICAgYWRkRXhjZXB0aW9uVG9Db25zb2xlKGV4
ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQppbmRleCAyZWMxZTc5ZDlkNWQ2ODc0MjY1YjI4NTE2ODMxZjkzNGVlY2Q5Yzc4Li5i
ZDU4YTk4ZjdhMDgxM2Q1NjBiZjk2OTc2YjlkZGFmMTE0NGM2ZThhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNzk1LDkg
Kzc5NSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgIyBHZXR0ZXJzCiAgICAgaWYgKCRo
YXNTZXR0ZXIpIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZv
aWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0Nl
bGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKLSAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6OkV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTtcbiIpIGlmICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0dGVyIn07CiAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0M6
OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpT
VmFsdWUpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9t
SW5kZXhTZXR0ZXIifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIHB1
dERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpK
U1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1B1dEZ1bmN0aW9uIn07CiAgICAgfQpAQCAtMTA1OCw3
ICsxMDU2LDYgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICIgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZv
KTtcbiIgLgogICAgICAgICAiICAgIH1cbiIpOwogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewotICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNW
YWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlND
OjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIGJvb2wgcHV0RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICB9CkBA
IC0xNDg0LDExICsxNDgxLDYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICB9CiAK
ICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3Rv
dHlwZVB1dEZ1bmN0aW9uIn0pIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7
Y2xhc3NOYW1lfVByb3RvdHlwZTo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBz
bG90KVxuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0KICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6cHV0
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDwke2Ns
YXNzTmFtZX1Qcm90b3R5cGUqPihjZWxsKTtcbiIpOwpAQCAtMTc2MywxMSArMTc1NSw2IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAgaWYgKCRoYXNTZXR0ZXIpIHsKICAg
ICAgICAgICAgIGlmICghJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tUHV0
RnVuY3Rpb24ifSkgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e2NsYXNzTmFtZX06OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdClcbiIp
OwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIHNsb3QpO1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ9XG5cbiIpOwotCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7
Y2xhc3NOYW1lfTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dClcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKQEAgLTE3OTQsMTAg
KzE3ODEsNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9t
SW5kZXhTZXR0ZXIifSkgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9p
ZCAke2NsYXNzTmFtZX06OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHB1dEJ5SW5kZXgodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7XG4iKTsKLSAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0QnlJbmRleChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlKVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNP
YmplY3QgPSBzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9OUF9qc29iamVjdC5jcHAKaW5kZXggZDZiNmU2OWU5YjZiNjU2MmQyYTc2MWQ4ZDM3
ODBlOWIwNjQ3NjI4YS4uOTlkYWQ1MWZjYTQ3Y2NlYzNjZjYwOTBjNmI2MTllNWFiYzNjMGNhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCkBAIC0zMzcsOSArMzM3LDkgQEAg
Ym9vbCBfTlBOX1NldFByb3BlcnR5KE5QUCwgTlBPYmplY3QqIG8sIE5QSWRlbnRpZmllciBwcm9w
ZXJ0eU5hbWUsIGNvbnN0IE5QVmFyaWEKIAogICAgICAgICBpZiAoaS0+aXNTdHJpbmcoKSkgewog
ICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgICAgICBvYmotPmltcC0+
cHV0VmlydHVhbChleGVjLCBpZGVudGlmaWVyRnJvbU5QSWRlbnRpZmllcihleGVjLCBpLT5zdHJp
bmcoKSksIGNvbnZlcnROUFZhcmlhbnRUb1ZhbHVlKGV4ZWMsIHZhcmlhbnQsIHJvb3RPYmplY3Qp
LCBzbG90KTsKKyAgICAgICAgICAgIG9iai0+aW1wLT5tZXRob2RUYWJsZSgpLT5wdXQob2JqLT5p
bXAsIGV4ZWMsIGlkZW50aWZpZXJGcm9tTlBJZGVudGlmaWVyKGV4ZWMsIGktPnN0cmluZygpKSwg
Y29udmVydE5QVmFyaWFudFRvVmFsdWUoZXhlYywgdmFyaWFudCwgcm9vdE9iamVjdCksIHNsb3Qp
OwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG9iai0+aW1wLT5wdXRWaXJ0dWFsKGV4ZWMs
IGktPm51bWJlcigpLCBjb252ZXJ0TlBWYXJpYW50VG9WYWx1ZShleGVjLCB2YXJpYW50LCByb290
T2JqZWN0KSk7CisgICAgICAgICAgICBvYmotPmltcC0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRl
eChvYmotPmltcCwgZXhlYywgaS0+bnVtYmVyKCksIGNvbnZlcnROUFZhcmlhbnRUb1ZhbHVlKGV4
ZWMsIHZhcmlhbnQsIHJvb3RPYmplY3QpKTsKICAgICAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24o
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5p
L2puaV9qc29iamVjdC5tbQppbmRleCAwZjliN2YxNmEyMzdkOTljOGQ4YzU3ZjllNmM0NjgzMjFm
M2FkYzFjLi5lODdjODRlODQ1YzA4YmFmYWJhMTMxNmNiYjlkMmIxMmU1ZTBkYzAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbQpAQCAtMzQ4LDcgKzM0OCw3IEBA
IHZvaWQgSmF2YUpTT2JqZWN0OjpzZXRNZW1iZXIoanN0cmluZyBtZW1iZXJOYW1lLCBqb2JqZWN0
IHZhbHVlKSBjb25zdAogCiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsK
ICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBfaW1wLT5wdXRWaXJ0dWFsKGV4ZWMsIElk
ZW50aWZpZXIoZXhlYywgSmF2YVN0cmluZyhtZW1iZXJOYW1lKS5pbXBsKCkpLCBjb252ZXJ0Sk9i
amVjdFRvVmFsdWUoZXhlYywgdmFsdWUpLCBzbG90KTsKKyAgICBfaW1wLT5tZXRob2RUYWJsZSgp
LT5wdXQoX2ltcCwgZXhlYywgSWRlbnRpZmllcihleGVjLCBKYXZhU3RyaW5nKG1lbWJlck5hbWUp
LmltcGwoKSksIGNvbnZlcnRKT2JqZWN0VG9WYWx1ZShleGVjLCB2YWx1ZSksIHNsb3QpOwogfQog
CiAKQEAgLTM5Myw3ICszOTMsNyBAQCB2b2lkIEphdmFKU09iamVjdDo6c2V0U2xvdChqaW50IGlu
ZGV4LCBqb2JqZWN0IHZhbHVlKSBjb25zdAogCiAgICAgRXhlY1N0YXRlKiBleGVjID0gcm9vdE9i
amVjdC0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKICAgICBKU0xvY2sgbG9jayhTaWxl
bmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIF9pbXAtPnB1dFZpcnR1YWwoZXhlYywgKHVuc2lnbmVk
KWluZGV4LCBjb252ZXJ0Sk9iamVjdFRvVmFsdWUoZXhlYywgdmFsdWUpKTsKKyAgICBfaW1wLT5t
ZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KF9pbXAsIGV4ZWMsICh1bnNpZ25lZClpbmRleCwgY29u
dmVydEpPYmplY3RUb1ZhbHVlKGV4ZWMsIHZhbHVlKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAppbmRleCAxOGQ1ZTM0MjBhMzkxNTJiZDYzMWU1NDY4
Yjc2NzMwNWI1NWI0ZWE2Li5mYWJjYjBiMTZiNDJlNWNmZjdiOTkzMTExNTViNDc4YjA1MDRlODc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaApAQCAtMTI2LDcg
KzEyNiw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMg
Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB2aXJ0dWFsIGJv
b2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpj
X3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0K
aW5kZXggMmI3MTFiNDE0MDljYzgxOTcwMTA0MzE5NmYzNzQwYTQ4ZjM4MDE0Mi4uZTU5MDgyMjhj
ZDE4NWM5Y2JlYThkOWNhZmY2ZDI2MTlmOTk0NGYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMjI0LDEwICsyMjQsNiBAQCBib29sIE9iamNGYWxs
YmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIE9iamNGYWxsYmFja09iamVj
dEltcDo6cHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwg
UHV0UHJvcGVydHlTbG90JikKLXsKLX0KLQogdm9pZCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OnB1
dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90JikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9x
dF9ydW50aW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcApp
bmRleCA1MDgwMDgyY2QzNDcyOTJiMmViNTYwZjU3ODlkODkxMmVjZDY2OGViLi5iODk5ZDM4YmRm
NjA2YWMyN2NjM2Y1ZTM2M2U0YjQ3ZjA2MmU3YzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0
L3F0X3J1bnRpbWUuY3BwCkBAIC05NjAsNyArOTYwLDcgQEAgSlNWYWx1ZSBjb252ZXJ0UVZhcmlh
bnRUb1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxSb290T2JqZWN0PiByb290LCBj
b24KICAgICAgICAgICAgIEpTVmFsdWUgdmFsID0gY29udmVydFFWYXJpYW50VG9WYWx1ZShleGVj
LCByb290LmdldCgpLCBpLnZhbHVlKCkpOwogICAgICAgICAgICAgaWYgKHZhbCkgewogICAgICAg
ICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgICAgIHJldC0+cHV0
VmlydHVhbChleGVjLCBJZGVudGlmaWVyKGV4ZWMsIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPGNvbnN0
IFVDaGFyICo+KHMuY29uc3REYXRhKCkpLCBzLmxlbmd0aCgpKSwgdmFsLCBzbG90KTsKKyAgICAg
ICAgICAgICAgICByZXQtPm1ldGhvZFRhYmxlKCktPnB1dChyZXQsIGV4ZWMsIElkZW50aWZpZXIo
ZXhlYywgcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgVUNoYXIgKj4ocy5jb25zdERhdGEoKSks
IHMubGVuZ3RoKCkpLCB2YWwsIHNsb3QpOwogICAgICAgICAgICAgICAgIC8vICMjIyBlcnJvciBj
YXNlPwogICAgICAgICAgICAgfQogICAgICAgICAgICAgKytpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IDg3MjJlNTg1MTlhYmZlZjYwMjM2OTI0ODY4OGU1ZjQ4
YzUzNTY3NTcuLjU3NjQyZTZkZmMyZmYxZDJjZGUyODQ2MWZkMGM2N2M4MWE3YjgzOTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTE0MiwxMSArMTQyLDYgQEAg
Ym9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSAqZXhlYywgdW5zaWduZWQgaW4KICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBpbmRleCwgc2xvdCk7CiB9CiAKLXZvaWQgUnVudGlt
ZUFycmF5OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAg
cHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIFJ1
bnRpbWVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxSdW50aW1l
QXJyYXkqPihjZWxsKTsKQEAgLTE2NSwxMSArMTYwLDYgQEAgdm9pZCBSdW50aW1lQXJyYXk6OnB1
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHkKICAgICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHNsb3QpOwogfQogCi12b2lkIFJ1bnRpbWVBcnJheTo6cHV0VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlKQotewotICAgIHB1dEJ5SW5kZXgo
dGhpcywgZXhlYywgaW5kZXgsIHZhbHVlKTsKLX0KLQogdm9pZCBSdW50aW1lQXJyYXk6OnB1dEJ5
SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1Zh
bHVlIHZhbHVlKQogewogICAgIFJ1bnRpbWVBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0
PFJ1bnRpbWVBcnJheSo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfYXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgK
aW5kZXggMTc4NTJlODlkZWM3ZmM2ZGQzY2NjMzJhNWVhMGQ2OWVlOThkY2ZkZi4uMTYzODFlZDc3
NDlhYzU1NTQxM2FhYTYyZjJiMjIzMGJlNTI2ZmRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9hcnJheS5oCkBAIC01NSw5ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlT
bG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYp
OwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwotICAgIHZpcnR1
YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBk
ZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciAmcHJvcGVy
dHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDMy
OGVjYmZmOGFhYzdmYTFhNTI3MTc3YTIwODcwMTIxZDI1NzBkNGUuLmIzNDUwMDRjZGQ1MjI1Mjcx
MmM5MTgxMzhkNzZmMzZjNDNhNThkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmNwcApAQCAtMjE2LDExICsyMTYsNiBAQCBib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImCiAg
ICAgcmV0dXJuIGluc3RhbmNlLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotdm9pZCBSdW50aW1lT2JqZWN0OjpwdXRW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIFJ1bnRpbWVPYmplY3Q6
OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAg
UnVudGltZU9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVPYmplY3QqPihj
ZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXggOGEyNzE5ZTE4
MWVjM2Q1ZDVjMWY3NjgwYjMyMmVjYjk3OGU2NjkyMy4uOWEwOWI3N2I5NWY3ODJmOWQ3Mjk2ZTRj
MzM4Y2M1NjhkNzM4Zjg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfb2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgK
QEAgLTQ4LDcgKzQ4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwotICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGlj
IHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpOwogICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvdGVzdHF0YmluZGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3Rl
c3RxdGJpbmRpbmdzLmNwcAppbmRleCBlN2Q0YTZiOWU5MmNhNGViZWY3NmYyZDA0NzYwOWZkMTUz
ODU4NmU5Li41MmM2MGMwMmMwNzFkZmRiODg1N2Q0MTM4ZDI3NDZjODlkZTIxODUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdHF0YmluZGluZ3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS90ZXN0cXRiaW5kaW5ncy5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBp
bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgIAogICAgICAgICBNeU9iamVj
dCogbXlPYmplY3QgPSBuZXcgTXlPYmplY3Q7CiAgICAgICAgIAotICAgICAgICBnbG9iYWwtPnB1
dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcigibXlJbnRlcmZhY2UiKSwgSW5zdGFuY2U6OmNyZWF0
ZVJ1bnRpbWVPYmplY3QoSW5zdGFuY2U6OlF0TGFuZ3VhZ2UsICh2b2lkKilteU9iamVjdCkpOwor
ICAgICAgICBnbG9iYWwtPm1ldGhvZFRhYmxlKCktPnB1dChnbG9iYWwsIGV4ZWMsIElkZW50aWZp
ZXIoIm15SW50ZXJmYWNlIiksIEluc3RhbmNlOjpjcmVhdGVSdW50aW1lT2JqZWN0KEluc3RhbmNl
OjpRdExhbmd1YWdlLCAodm9pZCopbXlPYmplY3QpKTsKICAgICAgICAgCiAgICAgICAgIAogICAg
ICAgICBpZiAoY29kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggZGNiZWU1
NTI5MTI3ZWNiZDZkZWQzYzg5M2RkOTQ0Y2FiMjU3NzM1My4uNmVlZmE5Yjc0ZmFiZGRlY2JlNzA2
ZTg1ZjM4M2UxOWNmNjliNGNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0z
NjU3LDcgKzM2NTcsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfanNfb2JqZWN0X2FkZChFdmFzX09i
amVjdCogZXdrVmlldywgRXdrX0pTX09iamVjdCogb2JqZWN0LCBjbwogICAgIEpTQzo6SWRlbnRp
ZmllciBpZCA9IEpTQzo6SWRlbnRpZmllcihleGVjLCBvYmplY3ROYW1lKTsKIAogICAgIEpTQzo6
UHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgd2luZG93LT5wdXRWaXJ0dWFsKGV4ZWMsIGlkLCBy
dW50aW1lT2JqZWN0LCBzbG90KTsKKyAgICB3aW5kb3ctPm1ldGhvZFRhYmxlKCktPnB1dCh3aW5k
b3csIGV4ZWMsIGlkLCBydW50aW1lT2JqZWN0LCBzbG90KTsKICAgICByZXR1cm4gRUlOQV9UUlVF
OwogI2Vsc2UKICAgICByZXR1cm4gRUlOQV9GQUxTRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eS5tbQppbmRleCAwOWU1MzllNTU0MzJmMTAwMTgzYWYzNTk1ZjJiNjI2ZTRkYmI3MDk3Li5hODk5
N2FiOTU5M2U4YzQzZTQ0MDZhZDUyOWU4NzQxZWQzMjU4MWRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tCkBAIC0xMDYwLDcgKzEwNjAsNyBAQCBib29sIE5ldHNjYXBlUGx1Z2luSW5z
dGFuY2VQcm94eTo6c2V0UHJvcGVydHkodWludDMyX3Qgb2JqZWN0SUQsIGNvbnN0IElkZW50aWZp
ZQogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRlbWFyc2hhbFZhbHVlKGV4ZWMsIHZhbHVlRGF0YSwg
dmFsdWVMZW5ndGgpOwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgIG9iamVjdC0+cHV0
VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBvYmplY3QtPm1l
dGhvZFRhYmxlKCktPnB1dChvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3Qp
OwogICAgIAogICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9uKCk7CiAgICAgcmV0dXJuIHRydWU7CkBA
IC0xMDg1LDcgKzEwODUsNyBAQCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0
UHJvcGVydHkodWludDMyX3Qgb2JqZWN0SUQsIHVuc2lnbmVkIHByb3BlcgogICAgIEpTTG9jayBs
b2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7ICAgIAogICAgIAogICAgIEpTVmFsdWUgdmFsdWUg
PSBkZW1hcnNoYWxWYWx1ZShleGVjLCB2YWx1ZURhdGEsIHZhbHVlTGVuZ3RoKTsKLSAgICBvYmpl
Y3QtPnB1dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgb2JqZWN0LT5t
ZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KG9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSk7CiAgICAgCiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKICAgICByZXR1cm4gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IDQ4ZmFkMmM1YTY4NmZkYTU1MWIyOTUy
OWNiODVmMjUxZWU0MzBiMmMuLjU3ZjI0Yjg3MWU1MjQ3ZDQ1ZmYxOGRhMjE5ZGRiYjk4ZmY1OTMz
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAtNjg4LDcgKzY4OCw3IEBAIHZv
aWQgUVdlYkZyYW1lOjphZGRUb0phdmFTY3JpcHRXaW5kb3dPYmplY3QoY29uc3QgUVN0cmluZyAm
bmFtZSwgUU9iamVjdCAqb2JqZWN0CiAgICAgICAgICAgICBKU0M6OkJpbmRpbmdzOjpRdEluc3Rh
bmNlOjpnZXRRdEluc3RhbmNlKG9iamVjdCwgcm9vdCwgb3duZXJzaGlwKS0+Y3JlYXRlUnVudGlt
ZU9iamVjdChleGVjKTsKIAogICAgIEpTQzo6UHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgd2lu
ZG93LT5wdXRWaXJ0dWFsKGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCByZWludGVycHJldF9j
YXN0X3B0cjxjb25zdCBVQ2hhcio+KG5hbWUuY29uc3REYXRhKCkpLCBuYW1lLmxlbmd0aCgpKSwg
cnVudGltZU9iamVjdCwgc2xvdCk7CisgICAgd2luZG93LT5tZXRob2RUYWJsZSgpLT5wdXQod2lu
ZG93LCBleGVjLCBKU0M6OklkZW50aWZpZXIoZXhlYywgcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29u
c3QgVUNoYXIqPihuYW1lLmNvbnN0RGF0YSgpKSwgbmFtZS5sZW5ndGgoKSksIHJ1bnRpbWVPYmpl
Y3QsIHNsb3QpOwogI2VsaWYgVVNFKFY4KQogICAgIFFTY3JpcHRFbmdpbmUqIGVuZ2luZSA9IGQt
PmZyYW1lLT5zY3JpcHQoKS0+cXRTY3JpcHRFbmdpbmUoKTsKICAgICBpZiAoIWVuZ2luZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmNwcAppbmRleCBkMDU4ZWU1ZWIwZjZlNTBmZjhkOTZlMmNjNDA4NzA0YzliYTRj
ZTgxLi44MTgwM2M1YzNmN2E4ZjgzMDhkOTZkODAxYzQyNTFhMjkyMmVkNjRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuY3BwCkBAIC0zMDcsMTEgKzMwNyw2IEBAIGJvb2wgSlNOUE9iamVjdDo6Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEpTTlBPYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgSlNOUE9iamVjdDo6cHV0KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCiB7CiAgICAgSlNOUE9iamVjdCogdGhpc09iamVj
dCA9IHN0YXRpY19jYXN0PEpTTlBPYmplY3QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IDRh
ZTEzYmFmNjA1YTE0ODI4ZDhjMjM5MDViN2IwMmMzOTYxMWRmOTYuLjQ2NTliNjM2OTExMjEzMTc1
ZGVlNmVlNzZlMWNkNjUwOGVhNWFjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaApAQCAtODUsNyArODUsNiBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgdmlydHVhbCB2b2lkIHB1
dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2
b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAK
aW5kZXggODRjZWEwYzU0Y2E5M2FjN2FmYjQ3MDUzMGY5YmU0OTRkM2NjNzhhYy4uNWZkNjMyMDM3
Y2IxYzA1NGUxZWQ2ZjNmOTc0ZjJjNmY4YjgwMWI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcApAQCAt
MTg4LDkgKzE4OCw5IEBAIGJvb2wgTlBKU09iamVjdDo6c2V0UHJvcGVydHkoTlBJZGVudGlmaWVy
IHByb3BlcnR5TmFtZSwgY29uc3QgTlBWYXJpYW50KiB2YWx1ZSkKICAgICBKU1ZhbHVlIGpzVmFs
dWUgPSBtX29iamVjdE1hcC0+Y29udmVydE5QVmFyaWFudFRvSlNWYWx1ZShleGVjLCBtX29iamVj
dE1hcC0+Z2xvYmFsT2JqZWN0KCksICp2YWx1ZSk7CiAgICAgaWYgKGlkZW50aWZpZXJSZXAtPmlz
U3RyaW5nKCkpIHsKICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIG1fanNP
YmplY3QtPnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllckZyb21JZGVudGlmaWVyUmVwKGV4ZWMs
IGlkZW50aWZpZXJSZXApLCBqc1ZhbHVlLCBzbG90KTsKKyAgICAgICAgbV9qc09iamVjdC0+bWV0
aG9kVGFibGUoKS0+cHV0KG1fanNPYmplY3QuZ2V0KCksIGV4ZWMsIGlkZW50aWZpZXJGcm9tSWRl
bnRpZmllclJlcChleGVjLCBpZGVudGlmaWVyUmVwKSwganNWYWx1ZSwgc2xvdCk7CiAgICAgfSBl
bHNlCi0gICAgICAgIG1fanNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllclJlcC0+
bnVtYmVyKCksIGpzVmFsdWUpOworICAgICAgICBtX2pzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5w
dXRCeUluZGV4KG1fanNPYmplY3QuZ2V0KCksIGV4ZWMsIGlkZW50aWZpZXJSZXAtPm51bWJlcigp
LCBqc1ZhbHVlKTsKICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwogICAgIAogICAgIHJldHVy
biB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112272</attachid>
            <date>2011-10-24 16:23:55 -0700</date>
            <delta_ts>2011-10-24 18:32:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70740-20111024162354.patch</filename>
            <type>text/plain</type>
            <size>102326</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgyNTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdm
MjYzODU2NmI5NGZlYzE1ODllMGE5M2JjY2E3N2JiOTk1ZjgyMWMuLjc3YmM1NjlkYWRiYzE0Y2E3
Y2M5MmZlMGM5YTQ1MzFjNDVjYzZkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDg1IEBACisyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFyYXRpb25zIGFuZCBk
ZWZpbml0aW9ucyBvZiBwdXRWaXJ0dWFsLgorICAgICAgICBBbHNvIHJlcGxhY2VkIGFsbCBjYWxs
IHNpdGVzIHRvIHB1dFZpcnR1YWwgd2l0aCBhIAorICAgICAgICBjb3JyZXNwb25kaW5nIGxvb2t1
cCBpbiB0aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5o
OgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgICog
QVBJL0pTT2JqZWN0UmVmLmNwcDoKKyAgICAgICAgKEpTT2JqZWN0U2V0UHJvcGVydHkpOgorICAg
ICAgICAoSlNPYmplY3RTZXRQcm9wZXJ0eUF0SW5kZXgpOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLmV4cDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZGVmOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlv
bi5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6cHV0KToKKyAgICAgICAg
KiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAg
ICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVy
Ojpwcml2YXRlRXhlY3V0ZSk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9i
amVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmNwcDoK
KyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpwdXRQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6
OmFycmF5UHJvdG9GdW5jQ29uY2F0KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNQdXNo
KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNSZXZlcnNlKToKKyAgICAgICAgKEpTQzo6
YXJyYXlQcm90b0Z1bmNTaGlmdCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jU2xpY2Up
OgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NvcnQpOgorICAgICAgICAoSlNDOjphcnJh
eVByb3RvRnVuY1NwbGljZSk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVW5TaGlmdCk6
CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jRmlsdGVyKToKKyAgICAgICAgKEpTQzo6YXJy
YXlQcm90b0Z1bmNNYXApOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJh
eS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnB1dFNsb3dDYXNlKToKKyAgICAgICAgKEpT
Qzo6SlNBcnJheTo6cHVzaCk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnNoaWZ0Q291bnQpOgor
ICAgICAgICAoSlNDOjpKU0FycmF5Ojp1bnNoaWZ0Q291bnQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBcnJheS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ2VsbDo6cHV0KToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpwdXRCeUlu
ZGV4KToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNG
dW5jdGlvbi5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgICog
cnVudGltZS9KU05vdEFuT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6V2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dEJ5SW5kZXgpOgorICAgICAgICAo
SlNDOjpKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6cHV0KToKKyAgICAgICAgKiBydW50aW1l
L0pTU3RhdGljU2NvcGVPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29w
ZU9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL09iamVjdFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oOgorICAgICAgICAqIHJ1bnRp
bWUvUmVnRXhwT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5oOgor
ICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0
cmluZ09iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3BsaXQpOgorCiAyMDExLTEwLTI0ICBQYXRyaWNr
IEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIEludGVycHJldGVyIGJ1
aWxkIGZpeCBhZnRlciByOTgxNzkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
Q2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwppbmRleCAyN2ZiYzlj
ZDc3OGEwNTdlZmE1MDVkMjE3NjQ1YTczNzZiZThmNTRhLi5kOGU0MzFmZGM3NjczYzdiY2U0M2Vi
MmQwYjMyZTJiZjQzNTgwNmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAxMS0xMC0yNCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29t
PgorCisgICAgICAgIFJlbW92ZSBwdXRWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgYWxsIGRlY2xhcmF0aW9ucyBhbmQgZGVmaW5p
dGlvbnMgb2YgcHV0VmlydHVhbC4KKyAgICAgICAgQWxzbyByZXBsYWNlZCBhbGwgY2FsbCBzaXRl
cyB0byBwdXRWaXJ0dWFsIHdpdGggYSAKKyAgICAgICAgY29ycmVzcG9uZGluZyBsb29rdXAgaW4g
dGhlIE1ldGhvZFRhYmxlLgorCisgICAgICAgICogSlNWYWx1ZVdyYXBwZXIuY3BwOgorICAgICAg
ICAoSlNWYWx1ZVdyYXBwZXI6OkpTT2JqZWN0U2V0UHJvcGVydHkpOgorICAgICAgICAqIFVzZXJP
YmplY3RJbXAuY3BwOgorICAgICAgICAqIFVzZXJPYmplY3RJbXAuaDoKKwogMjAxMS0xMC0xOSAg
R2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZWQgU3Ry
aW5nSW1wbEJhc2UsIGZ1c2luZyBpdCBpbnRvIFN0cmluZ0ltcGwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZTA1
Mzg5NTM4MGJiN2ViNDUzMDhmOWQ2ZjUzY2M2NDRmY2RhZTg5Li4yMmJhMzBlZjEyZWNkM2IxNjNh
YWJlYTQ4MjE4ZTExZGFlMGEzYzcxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEt
MTAtMjQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmUgcHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzA3NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFyYXRp
b25zIGFuZCBkZWZpbml0aW9ucyBvZiBwdXRWaXJ0dWFsLgorICAgICAgICBBbHNvIHJlcGxhY2Vk
IGFsbCBjYWxsIHNpdGVzIHRvIHB1dFZpcnR1YWwgd2l0aCBhIAorICAgICAgICBjb3JyZXNwb25k
aW5nIGxvb2t1cCBpbiB0aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5p
bjoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U0RPTVdpbmRvd1NoZWxsOjpwdXQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93
U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cnVudGltZU9iamVjdEN1c3RvbVB1dCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNsb25lRGVzZXJpYWxpemVyOjpwdXRQcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9XZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCBzZXRW
YWx1ZTpmb3JLZXk6XSk6CisgICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCBzZXRXZWJTY3JpcHRW
YWx1ZUF0SW5kZXg6dmFsdWU6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0
ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBicmlkZ2UvTlBfanNvYmplY3QuY3BwOgorICAg
ICAgICAoX05QTl9TZXRQcm9wZXJ0eSk6CisgICAgICAgICogYnJpZGdlL2puaS9qbmlfanNvYmpl
Y3QubW06CisgICAgICAgIChKYXZhSlNPYmplY3Q6OnNldE1lbWJlcik6CisgICAgICAgIChKYXZh
SlNPYmplY3Q6OnNldFNsb3QpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5o
OgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKiBicmlk
Z2UvcXQvcXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpjb252ZXJ0UVZh
cmlhbnRUb1ZhbHVlKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAg
ICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9v
YmplY3QuY3BwOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorICAgICAgICAq
IGJyaWRnZS90ZXN0cXRiaW5kaW5ncy5jcHA6CisgICAgICAgIChtYWluKToKKwogMjAxMS0xMC0y
NCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS10gRml4IG1ha2UgZGlzdGNoZWNrIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggYTc4OGM1
MWUyODQwNDY2YzkwOTMzOTQyYTM0NDY3NGJjMWU2MDM0NS4uNDFlZGI3NGY0ZTM1NzA4OTc5NDM1
OTBiNzExZDRiOTU5ODc1OGY5NiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVtb3ZlIHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcwNzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFyYXRpb25zIGFuZCBkZWZpbml0aW9ucyBv
ZiBwdXRWaXJ0dWFsLgorICAgICAgICBBbHNvIHJlcGxhY2VkIGFsbCBjYWxsIHNpdGVzIHRvIHB1
dFZpcnR1YWwgd2l0aCBhIAorICAgICAgICBjb3JyZXNwb25kaW5nIGxvb2t1cCBpbiB0aGUgTWV0
aG9kVGFibGUuCisKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoZXdrX3Zp
ZXdfanNfb2JqZWN0X2FkZCk6CisKIDIwMTEtMTAtMjEgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5n
LmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBDaGFuZ2UgZWZsIHN0eWxlIGxvY2Fs
IHZhcmlhYmxlcyB3aXRoIFdlYktpdCBjb2RpbmcgU3R5bGUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXgg
NWJkOWRiNDhkOWNjODAxYjQ0ZDA2NzBhMTFmMjE3Njc2ZjAzNWU1ZS4uODNjZjFkMzUzNGRiODJi
YTM2NDY2MzdhMzI5ZGRlMjhjYTdmOWQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFyYXRpb25zIGFuZCBkZWZpbml0
aW9ucyBvZiBwdXRWaXJ0dWFsLgorICAgICAgICBBbHNvIHJlcGxhY2VkIGFsbCBjYWxsIHNpdGVz
IHRvIHB1dFZpcnR1YWwgd2l0aCBhIAorICAgICAgICBjb3JyZXNwb25kaW5nIGxvb2t1cCBpbiB0
aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eTo6c2V0UHJvcGVydHkpOgorCiAyMDExLTEwLTIzICBNYXJrIEhhaG5lbmJlcmcgIDxt
aGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGdldENvbnN0cnVjdERhdGFW
aXJ0dWFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDQ4YTViODk2MDVkZjAwZGVjYTAzM2RjNzQ1ZjU1Njc0
M2NkZTRlMmEuLjZkZmFmNzg3M2M4ZGYwNWMwZDVlNjYxN2NkNGYzYjk0ZTA4MGY2N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMjQgIE1hcmsgSGFobmVuYmVyZyAg
PG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgcHV0VmlydHVhbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGFsbCBk
ZWNsYXJhdGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIHB1dFZpcnR1YWwuCisgICAgICAgIEFsc28g
cmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMgdG8gcHV0VmlydHVhbCB3aXRoIGEgCisgICAgICAgIGNv
cnJlc3BvbmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RUYWJsZS4KKworICAgICAgICAqIEFwaS9x
d2ViZnJhbWUuY3BwOgorICAgICAgICAoUVdlYkZyYW1lOjphZGRUb0phdmFTY3JpcHRXaW5kb3dP
YmplY3QpOgorCiAyMDExLTEwLTI0ICBEZWVwYWsgU2hlcnZlZ2hhciAgPGJwd3Y2NEBtb3Rvcm9s
YS5jb20+CiAKICAgICAgICAgW1F0XSBmYXN0L2V2ZW50cy9tZWRpYS1mb2N1cy1pbi1zdGFuZGFs
b25lLW1lZGlhLWRvY3VtZW50Lmh0bWwgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkOGYzYjBiNzA0M2Ix
ZmEyMjFlZjQ5NGFiNDE2YjM4NzJkOTg0Mzg2Li5kNWFmYzg3NzlhMmM2ZmIyYzNlZDBlYWFiOTA0
M2Q1N2UxNzgxNzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTAtMjQgIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUg
cHV0VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzA3NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZW1vdmVkIGFsbCBkZWNsYXJhdGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIHB1dFZpcnR1YWwu
CisgICAgICAgIEFsc28gcmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMgdG8gcHV0VmlydHVhbCB3aXRo
IGEgCisgICAgICAgIGNvcnJlc3BvbmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RUYWJsZS4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TlBKU09iamVjdDo6c2V0UHJvcGVydHkpOgorCiAyMDExLTEwLTI0ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBGaXgg
bWFrZSBkaXN0Y2hlY2sgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0LmgKaW5kZXggMzk4ZGQwM2QwNzc0NTBjMDI2NTljYjRhZWVhMWViNjBjMjZhNzIz
MS4uOGI3YjY3ZmQ2NGU4ZDkxOTg0ZWY5Njc2NGYzMzcwNjhhNWE0ODQ5NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE4Miw3ICsxODIsNiBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHB1dFZp
cnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICB2aXJ0dWFsIGJv
b2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVu
Y3Rpb25zLmgKaW5kZXggMWRiYjFkNWM3MjY3YWEwZmZkMzRmMDY1YmJkNzBjMmRmNDNjODY3Yi4u
MzUwYjJkYjZkNWNhZThlNWMyNjJjOTc5N2EwZDA0MDEyMjI5ODE5YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAg
LTIwOCwxMiArMjA4LDYgQEAgYm9vbCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEkKIH0KIAogdGVtcGxhdGUg
PGNsYXNzIFBhcmVudD4KLXZvaWQgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpwdXRWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCi10ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50Pgog
dm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNDYWxsYmFja09iamVjdCogdGhpc09iamVj
dCA9IHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKaW5kZXggNmQ1ZjAzZDY1ZTQzN2JmYjAyZDFlY2Zk
YjY0NDYxZGJhNjQ3YTZjZS4uOWQ2NmQ1ODdmNWI3YjdhNjJhYmM3MjczNzI2ZmIxZGU5YTRmNGU1
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKQEAgLTI3Nyw3
ICsyNzcsNyBAQCB2b2lkIEpTT2JqZWN0U2V0UHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZQogICAgICAgICBqc09iamVjdC0+cHV0
V2l0aEF0dHJpYnV0ZXMoZXhlYywgbmFtZSwganNWYWx1ZSwgYXR0cmlidXRlcyk7CiAgICAgZWxz
ZSB7CiAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBqc09iamVjdC0+cHV0
VmlydHVhbChleGVjLCBuYW1lLCBqc1ZhbHVlLCBzbG90KTsKKyAgICAgICAganNPYmplY3QtPm1l
dGhvZFRhYmxlKCktPnB1dChqc09iamVjdCwgZXhlYywgbmFtZSwganNWYWx1ZSwgc2xvdCk7CiAg
ICAgfQogCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CkBAIC0zMTIsNyArMzEyLDcg
QEAgdm9pZCBKU09iamVjdFNldFByb3BlcnR5QXRJbmRleChKU0NvbnRleHRSZWYgY3R4LCBKU09i
amVjdFJlZiBvYmplY3QsIHVuc2lnbmVkIHAKICAgICBKU09iamVjdCoganNPYmplY3QgPSB0b0pT
KG9iamVjdCk7CiAgICAgSlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCB2YWx1ZSk7CiAgICAg
Ci0gICAganNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgcHJvcGVydHlJbmRleCwganNWYWx1ZSk7
CisgICAganNPYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgoanNPYmplY3QsIGV4ZWMs
IHByb3BlcnR5SW5kZXgsIGpzVmFsdWUpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkg
ewogICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAgICAgICAgICAgKmV4Y2VwdGlvbiA9IHRvUmVm
KGV4ZWMsIGV4ZWMtPmV4Y2VwdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZXhwCmluZGV4IDM5ZWU2ZTdhMWY5YmY0OWU1MTcwYjVkNzQ3NmNiZGM5YjllN2Y5MTcu
LmM1NDU5ZjU5Y2ZkM2IwMDM1MzQxNWY2NTJmZTQ0YTkwZmNmNmZkMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMTU5LDcgKzE1OSw2IEBAIF9fWk4zSlND
MTNTYW1wbGluZ0ZsYWdzNXN0YXJ0RXYKIF9fWk4zSlNDMTNTYW1wbGluZ0ZsYWdzN3NfZmxhZ3NF
CiBfX1pOM0pTQzEzU3RhdGVtZW50Tm9kZTZzZXRMb2NFaWkKIF9fWk4zSlNDMTRKU0dsb2JhbE9i
amVjdDEwZ2xvYmFsRXhlY0V2Ci1fX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxMHB1dFZpcnR1YWxF
UE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJv
cGVydHlTbG90RQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTJkZWZpbmVHZXR0ZXJFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUE5TXzhKU09iamVjdEVqCiBfX1pOM0pTQzE0SlNH
bG9iYWxPYmplY3QxMmRlZmluZVNldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckVQTlNfOEpTT2JqZWN0RWoKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEzY2xlYXJSYXJlRGF0
YUVQTlNfNkpTQ2VsbEUKQEAgLTI1OCw4ICsyNTcsNiBAQCBfX1pOM0pTQzRZYXJyMTFZYXJyUGF0
dGVybkMxRVJLTlNfN1VTdHJpbmdFYmJQUEtjCiBfX1pOM0pTQzRZYXJyMTFieXRlQ29tcGlsZUVS
TlMwXzExWWFyclBhdHRlcm5FUE4zV1RGMjBCdW1wUG9pbnRlckFsbG9jYXRvckUKIF9fWk4zSlND
NFlhcnI5aW50ZXJwcmV0RVBOUzBfMTVCeXRlY29kZVBhdHRlcm5FUktOU183VVN0cmluZ0VqalBp
CiBfX1pOM0pTQzRjYWxsRVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRU5TXzhDYWxsVHlwZUVS
S05TXzhDYWxsRGF0YUVTMl9SS05TXzdBcmdMaXN0RQotX19aTjNKU0M2SlNDZWxsMTBwdXRWaXJ0
dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1
dFByb3BlcnR5U2xvdEUKLV9fWk4zSlNDNkpTQ2VsbDEwcHV0VmlydHVhbEVQTlNfOUV4ZWNTdGF0
ZUVqTlNfN0pTVmFsdWVFCiBfX1pOM0pTQzZKU0NlbGwxMWdldENhbGxEYXRhRVBTMF9STlNfOENh
bGxEYXRhRQogX19aTjNKU0M2SlNDZWxsMTZnZXRDb25zdHJ1Y3REYXRhRVBTMF9STlNfMTNDb25z
dHJ1Y3REYXRhRQogX19aTjNKU0M2SlNDZWxsMjFkZWxldGVQcm9wZXJ0eVZpcnR1YWxFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCkBAIC0zMDcsOCArMzA0LDYgQEAgX19aTjNKU0M4
RGVidWdnZXI2YXR0YWNoRVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19aTjNKU0M4RGVidWdnZXI2
ZGV0YWNoRVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19aTjNKU0M4RGVidWdnZXJEMkV2CiBfX1pO
M0pTQzhKU09iamVjdDEwcHV0QnlJbmRleEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVqTlNf
N0pTVmFsdWVFCi1fX1pOM0pTQzhKU09iamVjdDEwcHV0VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCi1fX1pO
M0pTQzhKU09iamVjdDEwcHV0VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFCiBf
X1pOM0pTQzhKU09iamVjdDExaGFzSW5zdGFuY2VFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVF
UzNfCiBfX1pOM0pTQzhKU09iamVjdDEyZGVmaW5lR2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNf
MTBJZGVudGlmaWVyRVBTMF9qCiBfX1pOM0pTQzhKU09iamVjdDEyZGVmaW5lU2V0dGVyRVBOU185
RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVBTMF9qCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IDJjMGVkNmI2M2I1ODA4MDEw
NmIxNDQxMTUzMjE2OTA5NzkzOWRlODguLjM4NjU5OTFlZTIwNWYwMWVlNzhjODk5Y2Y1NDA1NTEx
MzY0YzcyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCkBAIC0yNzYsMTEgKzI3Niw2IEBAIEVYUE9SVFMKICAgICA/cHV0QnlJbmRl
eEBKU0J5dGVBcnJheUBKU0NAQFNBWFBBVkpTQ2VsbEAyQFBBVkV4ZWNTdGF0ZUAyQElWSlNWYWx1
ZUAyQEBaCiAgICAgP3B1dEJ5SW5kZXhASlNPYmplY3RASlNDQEBTQVhQQVZKU0NlbGxAMkBQQVZF
eGVjU3RhdGVAMkBJVkpTVmFsdWVAMkBAWgogICAgID9wdXREaXJlY3RJbnRlcm5hbEBKU09iamVj
dEBKU0NAQEFBRV9OQUFWSlNHbG9iYWxEYXRhQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJA
SV9OQUFWUHV0UHJvcGVydHlTbG90QDJAUEFWSlNDZWxsQDJAQFoKLSAgICA/cHV0VmlydHVhbEBK
U0NlbGxASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJA
QUFWUHV0UHJvcGVydHlTbG90QDJAQFoKLSAgICA/cHV0VmlydHVhbEBKU0NlbGxASlNDQEBVQUVY
UEFWRXhlY1N0YXRlQDJASVZKU1ZhbHVlQDJAQFoKLSAgICA/cHV0VmlydHVhbEBKU0dsb2JhbE9i
amVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBB
QVZQdXRQcm9wZXJ0eVNsb3RAMkBAWgotICAgID9wdXRWaXJ0dWFsQEpTT2JqZWN0QEpTQ0BAVUFF
WFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBWSlNWYWx1ZUAyQEFBVlB1dFByb3BlcnR5
U2xvdEAyQEBaCi0gICAgP3B1dFZpcnR1YWxASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRl
QDJASVZKU1ZhbHVlQDJAQFoKICAgICA/cHV0V2l0aEF0dHJpYnV0ZXNASlNHbG9iYWxPYmplY3RA
SlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJASUBaCiAg
ICAgP3B1dFdpdGhBdHRyaWJ1dGVzQEpTT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFC
VklkZW50aWZpZXJAMkBWSlNWYWx1ZUAyQElAWgogICAgID9wdXRXaXRoQXR0cmlidXRlc0BKU09i
amVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBJ
X05BQVZQdXRQcm9wZXJ0eVNsb3RAMkBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCA3MGUxYmFlYjZlMGI0MGVj
ZDA2NWQ0ZmEyNzlkYzAwMmMxZWVmODdlLi44OGI5YjQ4OTk4YjA1MzNhZWJhOWRkYzA5ODliN2Q0
ZWJiMDA4ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtNzAsMTQgKzcwLDEwIEBAIGJvb2wgRGVidWdnZXJB
Y3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PERlYnVnZ2VyQWN0aXZhdGlvbio+KGNl
bGwpLT5tX2FjdGl2YXRpb24tPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KIAotdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OnB1dFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpw
dXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHN0
YXRpY19jYXN0PERlYnVnZ2VyQWN0aXZhdGlvbio+KGNlbGwpLT5tX2FjdGl2YXRpb24tPnB1dFZp
cnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgRGVidWdnZXJBY3Rp
dmF0aW9uKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3RpdmF0aW9uKj4oY2Vs
bCk7CisgICAgdGhpc09iamVjdC0+bV9hY3RpdmF0aW9uLT5tZXRob2RUYWJsZSgpLT5wdXQodGhp
c09iamVjdC0+bV9hY3RpdmF0aW9uLmdldCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBz
bG90KTsKIH0KIAogdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OnB1dFdpdGhBdHRyaWJ1dGVzKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4IDNkN2IwMjY4MjFmOTY2NTc4OWZj
MDRkMDM2ZGVlNDg4MGUzOGJmN2MuLmVkYWViYTA2YjRlNTMyZTc4MzQ2NWRjNDIwODE1NGVhMTgz
NjAyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ckFjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmgKQEAgLTQ1LDcgKzQ1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHZpcnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFs
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRy
aWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggNmM2YmI5YzhhMzJlMGUzMjRkOGFh
ZTBmNmRhMjUyYzY4MmJkNTE2NC4uOTliNDc2Njc2ZmM3ZThiMTIyNTYzOWQ4OTQ1NjkxYzI1OGQ1
MjdkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBA
IC0zNzQsMTMgKzM3NCwxMyBAQCBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlv
bkFycmF5UG9wKEV4ZWNTdGF0ZSosIEpTQXJyYXkqIGFycmF5KQogdm9pZCBERkdfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEJ5SWRTdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIEpTQ2VsbCogYmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1lKQogewog
ICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHRydWUpOwotICAgIGJhc2UtPnB1dFZpcnR1YWwoZXhl
YywgKnByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOwor
ICAgIGJhc2UtPm1ldGhvZFRhYmxlKCktPnB1dChiYXNlLCBleGVjLCAqcHJvcGVydHlOYW1lLCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKIHZvaWQgREZHX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBKU0NlbGwqIGJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFt
ZSkKIHsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChmYWxzZSk7Ci0gICAgYmFzZS0+cHV0Vmly
dHVhbChleGVjLCAqcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwg
c2xvdCk7CisgICAgYmFzZS0+bWV0aG9kVGFibGUoKS0+cHV0KGJhc2UsIGV4ZWMsICpwcm9wZXJ0
eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpLCBzbG90KTsKIH0KIAogdm9pZCBE
RkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3QoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTQ2VsbCogYmFzZSwgSWRlbnRpZmllciog
cHJvcGVydHlOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9J
bnRlcnByZXRlci5jcHAKaW5kZXggODM4ZjUxYzU4Yjk3ZTVmYTFiODQ4ZWY0ZTkyM2RkMTFiNTkz
MzE0YS4uYWZmNTA5MDYxODEzZmVlMjdlMTMzYjIyYzc3NTVmNTZkMzMxYTFlMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC03
OTEsNyArNzkxLDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShQcm9ncmFtRXhlY3V0
YWJsZSogcHJvZ3JhbSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIFMKICAgICAgICAgICAgIGlmIChK
U09OUFBhdGguc2l6ZSgpID09IDEgJiYgSlNPTlBQYXRoWzBdLm1fdHlwZSA9PSBMaXRlcmFsUGFy
c2VyOjpKU09OUFBhdGhFbnRyeVR5cGVEZWNsYXJlKSB7CiAgICAgICAgICAgICAgICAgaWYgKGds
b2JhbE9iamVjdC0+aGFzUHJvcGVydHkoY2FsbEZyYW1lLCBKU09OUFBhdGhbMF0ubV9wYXRoRW50
cnlOYW1lKSkgewogICAgICAgICAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAg
ICAgICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5wdXRWaXJ0dWFsKGNhbGxGcmFtZSwgSlNP
TlBQYXRoWzBdLm1fcGF0aEVudHJ5TmFtZSwgSlNPTlBWYWx1ZSwgc2xvdCk7CisgICAgICAgICAg
ICAgICAgICAgIGdsb2JhbE9iamVjdC0+bWV0aG9kVGFibGUoKS0+cHV0KGdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLCBKU09OUFBhdGhbMF0ubV9wYXRoRW50cnlOYW1lLCBKU09OUFZhbHVlLCBzbG90
KTsKICAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsT2Jq
ZWN0LT5wdXRXaXRoQXR0cmlidXRlcyhjYWxsRnJhbWUsIEpTT05QUGF0aFswXS5tX3BhdGhFbnRy
eU5hbWUsIEpTT05QVmFsdWUsIERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiAgICAgICAgICAgICAg
ICAgLy8gdmFyIGRlY2xhcmF0aW9ucyByZXR1cm4gdW5kZWZpbmVkCkBAIC0xMjUxLDE0ICsxMjUx
LDE0IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGFibGUqIGV2YWws
IENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlCiAgICAgICAgICAgICBjb25zdCBJZGVudGlm
aWVyJiBpZGVudCA9IGNvZGVCbG9jay0+dmFyaWFibGUoaSk7CiAgICAgICAgICAgICBpZiAoIXZh
cmlhYmxlT2JqZWN0LT5oYXNQcm9wZXJ0eShjYWxsRnJhbWUsIGlkZW50KSkgewogICAgICAgICAg
ICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgICAgIHZhcmlhYmxlT2Jq
ZWN0LT5wdXRWaXJ0dWFsKGNhbGxGcmFtZSwgaWRlbnQsIGpzVW5kZWZpbmVkKCksIHNsb3QpOwor
ICAgICAgICAgICAgICAgIHZhcmlhYmxlT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXQodmFyaWFi
bGVPYmplY3QsIGNhbGxGcmFtZSwgaWRlbnQsIGpzVW5kZWZpbmVkKCksIHNsb3QpOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1GdW5j
dGlvbnM7ICsraSkgewogICAgICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbiA9
IGNvZGVCbG9jay0+ZnVuY3Rpb25EZWNsKGkpOwogICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90
IHNsb3Q7Ci0gICAgICAgICAgICB2YXJpYWJsZU9iamVjdC0+cHV0VmlydHVhbChjYWxsRnJhbWUs
IGZ1bmN0aW9uLT5uYW1lKCksIGZ1bmN0aW9uLT5tYWtlKGNhbGxGcmFtZSwgc2NvcGVDaGFpbiks
IHNsb3QpOworICAgICAgICAgICAgdmFyaWFibGVPYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dCh2
YXJpYWJsZU9iamVjdCwgY2FsbEZyYW1lLCBmdW5jdGlvbi0+bmFtZSgpLCBmdW5jdGlvbi0+bWFr
ZShjYWxsRnJhbWUsIHNjb3BlQ2hhaW4pLCBzbG90KTsKICAgICAgICAgfQogICAgIH0KIApAQCAt
MzUwMyw3ICszNTAzLDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgICAgICBp
ZiAoanNBcnJheS0+Y2FuU2V0SW5kZXgoaSkpCiAgICAgICAgICAgICAgICAgICAgIGpzQXJyYXkt
PnNldEluZGV4KCpnbG9iYWxEYXRhLCBpLCBjYWxsRnJhbWUtPnIodmFsdWUpLmpzVmFsdWUoKSk7
CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBqc0FycmF5LT5KU0Fy
cmF5OjpwdXRWaXJ0dWFsKGNhbGxGcmFtZSwgaSwgY2FsbEZyYW1lLT5yKHZhbHVlKS5qc1ZhbHVl
KCkpOworICAgICAgICAgICAgICAgICAgICBqc0FycmF5LT5KU0FycmF5OjpwdXRCeUluZGV4KGpz
QXJyYXksIGNhbGxGcmFtZSwgaSwgY2FsbEZyYW1lLT5yKHZhbHVlKS5qc1ZhbHVlKCkpOwogICAg
ICAgICAgICAgfSBlbHNlIGlmIChpc0pTQnl0ZUFycmF5KGdsb2JhbERhdGEsIGJhc2VWYWx1ZSkg
JiYgYXNCeXRlQXJyYXkoYmFzZVZhbHVlKS0+Y2FuQWNjZXNzSW5kZXgoaSkpIHsKICAgICAgICAg
ICAgICAgICBKU0J5dGVBcnJheSoganNCeXRlQXJyYXkgPSBhc0J5dGVBcnJheShiYXNlVmFsdWUp
OwogICAgICAgICAgICAgICAgIEpTVmFsdWUganNWYWx1ZSA9IGNhbGxGcmFtZS0+cih2YWx1ZSku
anNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCAwYmNmY2Q2YmNjOTgzNmQ2OTdlMmQz
MTgyNTE4Yjg0Nzc5Yzk3YWVmLi5iZWI3ZmViNzBkODAxZWFkOTMxYTg2ODdhYTE1MjBjMDIxN2Vl
YjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMTgyLDcgKzE4Miw3IEBAIHByb3RlY3RlZDoK
IAogICAgICAgICBKU09iamVjdCogYXJyYXkgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGdsb2JhbEV4
ZWMoKSk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRzLnNpemUoKTsg
KytpKQotICAgICAgICAgICAgYXJyYXktPnB1dFZpcnR1YWwoZ2xvYmFsRXhlYygpLCBpLCBqc1N0
cmluZyhnbG9iYWxFeGVjKCksIGFyZ3VtZW50c1tpXSkpOworICAgICAgICAgICAgYXJyYXktPm1l
dGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgoYXJyYXksIGdsb2JhbEV4ZWMoKSwgaSwganNTdHJpbmco
Z2xvYmFsRXhlYygpLCBhcmd1bWVudHNbaV0pKTsKICAgICAgICAgcHV0RGlyZWN0KGdsb2JhbERh
dGEsIElkZW50aWZpZXIoZ2xvYmFsRXhlYygpLCAiYXJndW1lbnRzIiksIGFycmF5KTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCmluZGV4IDA4
OTAxY2EwMjQ2ODVjODJmMjU4ZDAzOWZmN2NhNDRlNzQ5NzExZDQuLjdkN2U5NTI5MWM1YTRmZjZj
YmUzOWFkYmMyNzkwNmMyMGI3ZDAwZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJndW1lbnRzLmNwcApAQCAtMjY5LDExICsyNjksNiBAQCB2b2lkIEFyZ3VtZW50czo6Z2V0
T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9w
ZXJ0eQogICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFt
ZXMsIG1vZGUpOwogfQogCi12b2lkIEFyZ3VtZW50czo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgcHV0QnlJbmRleCh0aGlzLCBl
eGVjLCBpLCB2YWx1ZSk7Ci19Ci0KIHZvaWQgQXJndW1lbnRzOjpwdXRCeUluZGV4KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQogewogICAg
IEFyZ3VtZW50cyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEFyZ3VtZW50cyo+KGNlbGwpOwpA
QCAtMjg5LDExICsyODQsNiBAQCB2b2lkIEFyZ3VtZW50czo6cHV0QnlJbmRleChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YQogICAgIEpTT2JqZWN0
OjpwdXQodGhpc09iamVjdCwgZXhlYywgSWRlbnRpZmllcihleGVjLCBVU3RyaW5nOjpudW1iZXIo
aSkpLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQgQXJndW1lbnRzOjpwdXRWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotICAgIAogdm9pZCBBcmd1bWVudHM6OnB1dChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgQXJndW1lbnRzKiB0
aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8QXJndW1lbnRzKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IDQ1YTc1Yzk0YjE3MGZhYjI2YjE0YjBm
YjMwYTZjYjllZjM5MmNhNWQuLmI0NmVkYWE2MTI5ZmIyNmNkNTZjNjc1YzNmOWFlZWEyODQ3YjZm
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCkBAIC0xNDEs
OSArMTQxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJv
cGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVBy
b3BlcnRpZXMpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYp
OwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgICAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXgg
YzU0NDAzYjlmNWM5YzFiYmU3OGRmNDY2ZDBlNjk2NTQ3YmZlNjNhYi4uZTBhNTdiZTg3MGE0MWNm
ZGEwMzc2YzA5ZmRjMDM1MWQ3NTM3OTVjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRpYyBK
U1ZhbHVlIGdldFByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iaiwgdW5zaWdu
ZWQgaW5kZXgpCiBzdGF0aWMgdm9pZCBwdXRQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiBvYmosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBvYmotPnB1dFZpcnR1YWwoZXhlYywg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgb2JqLT5tZXRob2RUYWJsZSgpLT5wdXQo
b2JqLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogc3RhdGljIHVuc2ln
bmVkIGFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoRXhlY1N0YXRlKiBleGVjLCBp
bnQgYXJndW1lbnQsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgdW5kZWZpbmVkVmFsdWUgPSAw
KQpAQCAtMzU0LDExICszNTQsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJh
eVByb3RvRnVuY0NvbmNhdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICAgICAgICAgIGlmICh2KQotICAgICAgICAg
ICAgICAgICAgICBhcnItPnB1dFZpcnR1YWwoZXhlYywgbiwgdik7CisgICAgICAgICAgICAgICAg
ICAgIGFyci0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChhcnIsIGV4ZWMsIG4sIHYpOwogICAg
ICAgICAgICAgICAgIG4rKzsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIGFyci0+cHV0VmlydHVhbChleGVjLCBuLCBjdXJBcmcpOworICAgICAgICAgICAgYXJy
LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGFyciwgZXhlYywgbiwgY3VyQXJnKTsKICAgICAg
ICAgICAgIG4rKzsKICAgICAgICAgfQogICAgICAgICBpZiAoaSA9PSBhcmdDb3VudCkKQEAgLTQx
MiwxMSArNDEyLDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNQdXNoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBmb3IgKHVuc2lnbmVkIG4gPSAwOyBuIDwgZXhl
Yy0+YXJndW1lbnRDb3VudCgpOyBuKyspIHsKICAgICAgICAgLy8gQ2hlY2sgZm9yIGludGVnZXIg
b3ZlcmZsb3c7IHdoZXJlIHNhZmUgd2UgY2FuIGRvIGEgZmFzdCBwdXQgYnkgaW5kZXguCiAgICAg
ICAgIGlmIChsZW5ndGggKyBuID49IGxlbmd0aCkKLSAgICAgICAgICAgIHRoaXNPYmotPnB1dFZp
cnR1YWwoZXhlYywgbGVuZ3RoICsgbiwgZXhlYy0+YXJndW1lbnQobikpOworICAgICAgICAgICAg
dGhpc09iai0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0aGlzT2JqLCBleGVjLCBsZW5ndGgg
KyBuLCBleGVjLT5hcmd1bWVudChuKSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgUHV0
UHJvcGVydHlTbG90IHNsb3Q7CiAgICAgICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZShl
eGVjLCBKU1ZhbHVlKHN0YXRpY19jYXN0PGludDY0X3Q+KGxlbmd0aCkgKyBzdGF0aWNfY2FzdDxp
bnQ2NF90PihuKSkudG9TdHJpbmcoZXhlYykpOwotICAgICAgICAgICAgdGhpc09iai0+cHV0Vmly
dHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIGV4ZWMtPmFyZ3VtZW50KG4pLCBzbG90KTsKKyAgICAg
ICAgICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPnB1dCh0aGlzT2JqLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIGV4ZWMtPmFyZ3VtZW50KG4pLCBzbG90KTsKICAgICAgICAgfQogICAgIH0KICAgICBK
U1ZhbHVlIG5ld0xlbmd0aChzdGF0aWNfY2FzdDxpbnQ2NF90PihsZW5ndGgpICsgc3RhdGljX2Nh
c3Q8aW50NjRfdD4oZXhlYy0+YXJndW1lbnRDb3VudCgpKSk7CkBAIC00NDIsMTIgKzQ0MiwxMiBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmV2ZXJzZShFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogCiAgICAgICAgIGlmIChvYmoyKQotICAgICAgICAgICAgdGhpc09iai0+cHV0Vmly
dHVhbChleGVjLCBrLCBvYmoyKTsKKyAgICAgICAgICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCkt
PnB1dEJ5SW5kZXgodGhpc09iaiwgZXhlYywgaywgb2JqMik7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBrKTsKIAogICAgICAg
ICBpZiAob2JqKQotICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBsazEsIG9i
aik7CisgICAgICAgICAgICB0aGlzT2JqLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHRoaXNP
YmosIGV4ZWMsIGxrMSwgb2JqKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhpc09iai0+
ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGxrMSk7CiAgICAgfQpAQCAtNDc1LDcgKzQ3NSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTaGlmdChFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogICAgICAgICAgICAgICAgIGlmIChvYmopCi0gICAgICAgICAgICAgICAgICAgIHRoaXNPYmot
PnB1dFZpcnR1YWwoZXhlYywgayAtIDEsIG9iaik7CisgICAgICAgICAgICAgICAgICAgIHRoaXNP
YmotPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpc09iaiwgZXhlYywgayAtIDEsIG9iaik7
CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5kZWxl
dGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgayAtIDEpOwogICAgICAgICAgICAgfQpAQCAtNTA3LDcg
KzUwNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTbGlj
ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAg
IGlmICh2KQotICAgICAgICAgICAgcmVzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIG4sIHYpOworICAg
ICAgICAgICAgcmVzT2JqLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHJlc09iaiwgZXhlYywg
biwgdik7CiAgICAgfQogICAgIHJlc09iai0+c2V0TGVuZ3RoKG4pOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTU2Niw4ICs1NjYsOCBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU29ydChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
IH0KICAgICAgICAgLy8gU3dhcCB0aGVtaW4gYW5kIGkKICAgICAgICAgaWYgKHRoZW1pbiA+IGkp
IHsKLSAgICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgaSwgbWluT2JqKTsKLSAg
ICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgdGhlbWluLCBpT2JqKTsKKyAgICAg
ICAgICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpc09iaiwgZXhlYywg
aSwgbWluT2JqKTsKKyAgICAgICAgICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5k
ZXgodGhpc09iaiwgZXhlYywgdGhlbWluLCBpT2JqKTsKICAgICAgICAgfQogICAgIH0KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmopOwpAQCAtNjIxLDcgKzYyMSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTcGxpY2UoRXhlY1N0YXRlKiBl
eGVjKQogICAgICAgICAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogICAgICAgICAgICAgICAgICAgICBpZiAodikKLSAgICAgICAgICAgICAgICAgICAgICAgIHRo
aXNPYmotPnB1dFZpcnR1YWwoZXhlYywgayArIGFkZGl0aW9uYWxBcmdzLCB2KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpc09i
aiwgZXhlYywgayArIGFkZGl0aW9uYWxBcmdzLCB2KTsKICAgICAgICAgICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFs
KGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyk7CiAgICAgICAgICAgICAgICAgfQpAQCAtNjM3LDcg
KzYzNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTcGxp
Y2UoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAob2JqKQotICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBrICsgYWRkaXRpb25hbEFy
Z3MgLSAxLCBvYmopOworICAgICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFi
bGUoKS0+cHV0QnlJbmRleCh0aGlzT2JqLCBleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MgLSAxLCBv
YmopOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgayArIGFkZGl0aW9uYWxBcmdzIC0g
MSk7CiAgICAgICAgICAgICAgICAgfQpAQCAtNjQ1LDcgKzY0NSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTcGxpY2UoRXhlY1N0YXRlKiBleGVjKQogICAg
ICAgICB9CiAgICAgfQogICAgIGZvciAodW5zaWduZWQgayA9IDA7IGsgPCBhZGRpdGlvbmFsQXJn
czsgKytrKQotICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGsgKyBiZWdpbiwgZXhl
Yy0+YXJndW1lbnQoayArIDIpKTsKKyAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+cHV0
QnlJbmRleCh0aGlzT2JqLCBleGVjLCBrICsgYmVnaW4sIGV4ZWMtPmFyZ3VtZW50KGsgKyAyKSk7
CiAKICAgICBwdXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
bGVuZ3RoLCBqc051bWJlcihsZW5ndGggLSBkZWxldGVDb3VudCArIGFkZGl0aW9uYWxBcmdzKSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNjcwLDE0ICs2NzAsMTQg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1VuU2hpZnQoRXhl
Y1N0YXRlKiBleGVjKQogICAgICAgICAgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKICAgICAgICAgICAgICAgICBpZiAodikKLSAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+
cHV0VmlydHVhbChleGVjLCBrICsgbnJBcmdzIC0gMSwgdik7CisgICAgICAgICAgICAgICAgICAg
IHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpc09iaiwgZXhlYywgayArIG5y
QXJncyAtIDEsIHYpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAg
dGhpc09iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGsgKyBuckFyZ3MgLSAxKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICBmb3IgKHVuc2lnbmVkIGsgPSAwOyBr
IDwgbnJBcmdzOyArK2spCi0gICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgaywgZXhl
Yy0+YXJndW1lbnQoaykpOworICAgICAgICB0aGlzT2JqLT5tZXRob2RUYWJsZSgpLT5wdXRCeUlu
ZGV4KHRoaXNPYmosIGV4ZWMsIGssIGV4ZWMtPmFyZ3VtZW50KGspKTsKICAgICBKU1ZhbHVlIHJl
c3VsdCA9IGpzTnVtYmVyKGxlbmd0aCArIG5yQXJncyk7CiAgICAgcHV0UHJvcGVydHkoZXhlYywg
dGhpc09iaiwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwgcmVzdWx0KTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CkBAIC03MTYsNyArNzE2LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0ZpbHRlcihFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FjaGVkQ2FsbC5j
YWxsKCk7CiAgICAgICAgICAgICBpZiAocmVzdWx0LnRvQm9vbGVhbihleGVjKSkKLSAgICAgICAg
ICAgICAgICByZXN1bHRBcnJheS0+cHV0VmlydHVhbChleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsK
KyAgICAgICAgICAgICAgICByZXN1bHRBcnJheS0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChy
ZXN1bHRBcnJheSwgZXhlYywgZmlsdGVySW5kZXgrKywgdik7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKGsgPT0gbGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHRBcnJheSk7CkBAIC03MzcsNyArNzM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhcnJheVByb3RvRnVuY0ZpbHRlcihFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICAgICAgSlNWYWx1
ZSByZXN1bHQgPSBjYWxsKGV4ZWMsIGZ1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIGFwcGx5
VGhpcywgZWFjaEFyZ3VtZW50cyk7CiAgICAgICAgIGlmIChyZXN1bHQudG9Cb29sZWFuKGV4ZWMp
KQotICAgICAgICAgICAgcmVzdWx0QXJyYXktPnB1dFZpcnR1YWwoZXhlYywgZmlsdGVySW5kZXgr
Kywgdik7CisgICAgICAgICAgICByZXN1bHRBcnJheS0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRl
eChyZXN1bHRBcnJheSwgZXhlYywgZmlsdGVySW5kZXgrKywgdik7CiAgICAgfQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0QXJyYXkpOwogfQpAQCAtNzkzLDcgKzc5Myw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNNYXAoRXhlY1N0YXRlKiBl
eGVjKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IAogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxUeXBl
LCBjYWxsRGF0YSwgYXBwbHlUaGlzLCBlYWNoQXJndW1lbnRzKTsKLSAgICAgICAgcmVzdWx0QXJy
YXktPnB1dFZpcnR1YWwoZXhlYywgaywgcmVzdWx0KTsKKyAgICAgICAgcmVzdWx0QXJyYXktPm1l
dGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgocmVzdWx0QXJyYXksIGV4ZWMsIGssIHJlc3VsdCk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRBcnJheSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAppbmRleCA4NTMxMDgy
NWMwZmI0ODE5OWUxNjFmMjMzNDFjOWE4MmFhNmMzZjFjLi4wNmYwYjRjNWNmNjgwMzYzMzUzNGU5
NjhjYTYwM2I2NzA2M2EwOTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQWN0aXZhdGlvbi5jcHAKQEAgLTE2OSwxMSArMTY5LDYgQEAgYm9vbCBKU0FjdGl2YXRpb246
OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSlNBY3RpdmF0aW9uOjpwdXRWaXJ0
dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIEpTQWN0aXZhdGlvbjo6cHV0
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU0Fj
dGl2YXRpb24qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0FjdGl2YXRpb24qPihjZWxsKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKaW5kZXggZDQ0
YjJiNjA2ZGQxODgyNmU3NGVmZGRlMDRlYTY0ZDcwODU0YzdlNS4uYTRlMjZkYWQ5NjQ1OTY5NTZj
YWY5MjY5Mjg0ODNkZDYzMzY5YjNmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmgKQEAgLTY1LDcgKzY1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVy
YXRpb25Nb2RlKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdp
dGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCB1bnNp
Z25lZCBhdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5j
cHAKaW5kZXggYWQzOWEwZGQ0YWE4MWEzN2UyYWUxMmI5M2Q3ZTIzNTgzYmMwOTI0Mi4uYTQ0MGNi
ODkwZTE1YWExZjIxOGM4YmU2NzUxNjY1NTg0YTRjZWUxNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTMzNCwxMSArMzM0LDYgQEAgYm9vbCBKU0FycmF5
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXIKICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCi12b2lkIEpTQXJyYXk6OnB1
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIC8vIEVDTUEgMTUuNC41LjEK
IHZvaWQgSlNBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKQEAgLTM2MywxMSArMzU4LDYgQEAgdm9pZCBKU0FycmF5OjpwdXQoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwKICAg
ICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOwogfQogCi12b2lkIEpTQXJyYXk6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNp
Z25lZCBpLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIHB1dEJ5SW5kZXgodGhpcywgZXhlYywgaSwg
dmFsdWUpOwotfQotCiB2b2lkIEpTQXJyYXk6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgSlNBcnJheSog
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQXJyYXkqPihjZWxsKTsKQEAgLTQwNiw3ICszOTYs
NyBAQCBORVZFUl9JTkxJTkUgdm9pZCBKU0FycmF5OjpwdXRTbG93Q2FzZShFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdQogICAgIGlmIChpID49IE1JTl9TUEFSU0VfQVJS
QVlfSU5ERVgpIHsKICAgICAgICAgaWYgKGkgPiBNQVhfQVJSQVlfSU5ERVgpIHsKICAgICAgICAg
ICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgcHV0VmlydHVhbChleGVjLCBJ
ZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpLCB2YWx1ZSwgc2xvdCk7CisgICAgICAgICAgICBtZXRo
b2RUYWJsZSgpLT5wdXQodGhpcywgZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgdmFs
dWUsIHNsb3QpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTc4MSw3ICs3
NzEsNyBAQCB2b2lkIEpTQXJyYXk6OnB1c2goRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
KQogICAgIEFycmF5U3RvcmFnZSogc3RvcmFnZSA9IG1fc3RvcmFnZTsKIAogICAgIGlmIChVTkxJ
S0VMWShzdG9yYWdlLT5tX2xlbmd0aCA9PSAweEZGRkZGRkZGdSkpIHsKLSAgICAgICAgcHV0Vmly
dHVhbChleGVjLCBzdG9yYWdlLT5tX2xlbmd0aCwgdmFsdWUpOworICAgICAgICBtZXRob2RUYWJs
ZSgpLT5wdXRCeUluZGV4KHRoaXMsIGV4ZWMsIHN0b3JhZ2UtPm1fbGVuZ3RoLCB2YWx1ZSk7CiAg
ICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAiSW52YWxpZCBh
cnJheSBsZW5ndGgiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC04MzUsNyArODI1LDcg
QEAgdm9pZCBKU0FycmF5OjpzaGlmdENvdW50KEV4ZWNTdGF0ZSogZXhlYywgaW50IGNvdW50KQog
ICAgICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KHRoaXMpOwogICAgICAgICAgICAgICAg
IEpTVmFsdWUgcCA9IHByb3RvdHlwZSgpOwogICAgICAgICAgICAgICAgIGlmICgoIXAuaXNOdWxs
KCkpICYmIChhc09iamVjdChwKS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGksIHNsb3QpKSkKLSAg
ICAgICAgICAgICAgICAgICAgcHV0VmlydHVhbChleGVjLCBpLCBzbG90LmdldFZhbHVlKGV4ZWMs
IGkpKTsKKyAgICAgICAgICAgICAgICAgICAgbWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0aGlz
LCBleGVjLCBpLCBzbG90LmdldFZhbHVlKGV4ZWMsIGkpKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCkBAIC04ODQsNyArODc0LDcgQEAgdm9pZCBKU0FycmF5Ojp1bnNoaWZ0Q291bnQoRXhl
Y1N0YXRlKiBleGVjLCBpbnQgY291bnQpCiAgICAgICAgICAgICAgICAgUHJvcGVydHlTbG90IHNs
b3QodGhpcyk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBwID0gcHJvdG90eXBlKCk7CiAgICAg
ICAgICAgICAgICAgaWYgKCghcC5pc051bGwoKSkgJiYgKGFzT2JqZWN0KHApLT5nZXRQcm9wZXJ0
eVNsb3QoZXhlYywgaSwgc2xvdCkpKQotICAgICAgICAgICAgICAgICAgICBwdXRWaXJ0dWFsKGV4
ZWMsIGksIHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOworICAgICAgICAgICAgICAgICAgICBtZXRo
b2RUYWJsZSgpLT5wdXRCeUluZGV4KHRoaXMsIGV4ZWMsIGksIHNsb3QuZ2V0VmFsdWUoZXhlYywg
aSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5oCmluZGV4IDU2YTNiNzhlZTg1NmYzMjYyM2I1MTU5OGU3YWQyNTUy
ZjI1OTBlMDMuLjFmNmE2YmVlMDIwYTE2YTY1Y2IyMjg1MGM1MmJjZDJiMjliZGViMDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTk5LDcgKzk5LDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1
YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsgLy8gRklYTUU6
IE1ha2UgcHJvdGVjdGVkIGFuZCBhZGQgc2V0SXRlbS4KICAgICAgICAgc3RhdGljIHZvaWQgcHV0
QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUpOwogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2lu
Zm87CkBAIC0xNzEsNyArMTcwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRl
UHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJh
eS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKaW5k
ZXggMDk4MGU5NzIzMTBhODg2ZGU2ODUzNDU2OWUzZWUzZDJlNzUzNTM3ZS4uNjU4MjczOTVkYzVh
MTBjOTMxM2JmYzUwOGM2MmFhNWQ4NTUwOWJjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAtOTcsMTEgKzk3LDYgQEAgYm9vbCBKU0J5dGVB
cnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBwcm8KICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlz
T2JqZWN0LCBleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHNsb3Qp
OwogfQogCi12b2lkIEpTQnl0ZUFycmF5OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOwotfQotCiB2b2lkIEpTQnl0ZUFycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTQnl0ZUFycmF5KiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8SlNCeXRlQXJyYXkqPihjZWxsKTsKQEAgLTExNCwxMSArMTA5LDYgQEAgdm9pZCBK
U0J5dGVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU4KICAgICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCi12b2lkIEpTQnl0ZUFycmF5OjpwdXRWaXJ0
dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
KQotewotICAgIHB1dEJ5SW5kZXgodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7Ci19
Ci0KIHZvaWQgSlNCeXRlQXJyYXk6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzdGF0
aWNfY2FzdDxKU0J5dGVBcnJheSo+KGNlbGwpLT5zZXRJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0
ZUFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmlu
ZGV4IDMzNzA0MTA3YjkzYTgxYWEzODUyZDdjYmE3OTM0MWMwOWVkODE3N2IuLjQ1YWM3MjVlMTlm
MGNiY2QwYjQzYjgwMjk1ZDMzMmEyYjU0ZGZhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCeXRlQXJyYXkuaApAQCAtOTMsOSArOTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVj
U3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhl
Y1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICAgICAgdmlydHVhbCB2
b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVy
dHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpOwogICAgICAgICBzdGF0aWMg
dm9pZCBwdXRCeUluZGV4KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93
blByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5Jiwg
RW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCmluZGV4IGMyNzlhZTVhYTRkMTQ4ZTU2
NjdhNjYzZmEzMGFjZTg5OWQ5YmY5ODcuLjI3OGM0YjIyY2ZjNjc5ZjE5YmViOTMxN2JkMmE5MmU4
ODk0M2QwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApAQCAt
OTgsMjQgKzk4LDE2IEBAIGJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXZvaWQgSlNDZWxsOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90
KQotewotICAgIHB1dCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7Ci19Ci0K
IHZvaWQgSlNDZWxsOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKLSAgICBjZWxsLT50b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCkpLT5wdXRWaXJ0dWFsKGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKLX0KLQotdm9p
ZCBKU0NlbGw6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVy
LCBKU1ZhbHVlIHZhbHVlKQotewotICAgIHB1dEJ5SW5kZXgodGhpcywgZXhlYywgaWRlbnRpZmll
ciwgdmFsdWUpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gY2VsbC0+dG9PYmplY3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICB0aGlzT2JqZWN0LT5tZXRob2RU
YWJsZSgpLT5wdXQodGhpc09iamVjdCwgZXhlYywgaWRlbnRpZmllciwgdmFsdWUsIHNsb3QpOwog
fQogCiB2b2lkIEpTQ2VsbDo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBjZWxsLT50b09i
amVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5wdXRWaXJ0dWFsKGV4ZWMs
IGlkZW50aWZpZXIsIHZhbHVlKTsKKyAgICBKU09iamVjdCogdGhpc09iamVjdCA9IGNlbGwtPnRv
T2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7CisgICAgdGhpc09iamVj
dC0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0aGlzT2JqZWN0LCBleGVjLCBpZGVudGlmaWVy
LCB2YWx1ZSk7CiB9CiAKIGJvb2wgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuaAppbmRleCA3ZTBlNTFmZTFhNzk4NjMyYWM1MzRhMjNkNzNhYzA5
OTc3YWY2OWQ2Li5jZDYzYTE5NmJhZjAwNjc4ZGUzNTEyMDc3OTZhM2Q1OTg2YTUyODdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAtODksOSArODksNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgLy8gT2JqZWN0IG9wZXJhdGlvbnMsIHdpdGggdGhlIHRvT2Jq
ZWN0IG9wZXJhdGlvbiBpbmNsdWRlZC4KICAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0lu
Zm8oKSBjb25zdDsKICAgICAgICAgY29uc3QgTWV0aG9kVGFibGUqIG1ldGhvZFRhYmxlKCkgY29u
c3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXRCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgICAgIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uY3BwCmluZGV4IDM4M2I5NTNlMDA5YTg5ZTFjMzAwMTc4YjE4YjZhODg1NDU2NzE4
YWEuLmM5OWRhNGU1NDI2MzAwNjQ2NTQ4MzZmZWZjZWE0ZGJhY2RhNTJjMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0zMTcsMTEgKzMxNyw2
IEBAIHZvaWQgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0CiAgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1l
cyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotdm9pZCBKU0Z1bmN0aW9uOjpwdXRW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIEpTRnVuY3Rpb246OnB1
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNG
dW5jdGlvbiogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTRnVuY3Rpb24qPihjZWxsKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCBmODVhYTM4MGRj
YzE0MzZkNzQxMzllN2U2ZmQzMjRiZTk1MjMwY2M5Li5iZDdjM2IxZWYwMjU3NGJjYjdiYWI5MDBi
ZWYwZDdmZjAyNWM4NmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5oCkBAIC0xMzQsNyArMTM0LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9u
TW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0
eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRl
eCBlOGVjZmE0M2RiYWU3ODBiNjU1NzJhZWQxYTY0OWNiODE1YTQxZmFhLi43MWYzNzFjZDg0YjYz
YTg0YTYxYzgyNzRmMTgxOWQzNGE4NzA2MmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xMzYsMTEgKzEzNiw2IEBAIHZvaWQg
SlNHbG9iYWxPYmplY3Q6OmluaXQoSlNPYmplY3QqIHRoaXNWYWx1ZSkKICAgICByZXNldChwcm90
b3R5cGUoKSk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnB1dChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNHbG9iYWxPYmplY3Qq
IHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KGNlbGwpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggZTY5MDJl
OWJjMzgyYzk4NzJjYTAwOTFiYWMwNjA2MGMzMDlkYjUxYS4uY2M5MmQ4MzgwMDkzNDQxYmMwYWQ1
ODI2MDQwMjEzMTMzNTA0MGViOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xODYsNyArMTg2LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzT3duUHJvcGVy
dHlGb3JXcml0ZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJik7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
IAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRy
aWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90
QW5PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5jcHAKaW5kZXggYjVhNWEzMWY1ZTlhMTIyYTc4MDI1NWEwNWMyZTQwZjdkNzAxMjNjNS4uM2Y3
OThmMGQ2NDVhOGQ5YjM0MDliYjgzMTQwMjg1ZTBiNDRiNjI3YiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKQEAgLTc0LDIxICs3NCwxMSBA
QCBib29sIEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBK
U05vdEFuT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewot
ICAgIHB1dCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQg
SlNOb3RBbk9iamVjdDo6cHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQogewogICAgIEFTU0VSVF9VTlVTRUQo
ZXhlYywgZXhlYy0+aGFkRXhjZXB0aW9uKCkpOwogfQogCi12b2lkIEpTTm90QW5PYmplY3Q6OnB1
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQotewot
ICAgIHB1dEJ5SW5kZXgodGhpcywgZXhlYywgaSwgdmFsdWUpOwotfQotCiB2b2lkIEpTTm90QW5P
YmplY3Q6OnB1dEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCwgSlNW
YWx1ZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGV4ZWMsIGV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCA0
MTM4MzFlMjVlZGUzOWJiNmZjNGJhNWZjYjAxZWYzM2U2NjY0ODlhLi4wMDM4MzRiYjJjZWU5MDgx
MDEzYjE3NmNlZWMxNzAzOWIyMTQ5ZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNOb3RBbk9iamVjdC5oCkBAIC03NCwxMCArNzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0
ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgICAgIHN0YXRpYyB2b2lk
IHB1dEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IDdjNTlhZWZjZTEwZjNjZGU2
YjdmY2M2NGVlMTUzNTI3YTYzZDdjMjguLjc1ZGViMmQ3N2RiMzRkNjQ5MGMxNjQxOTMwYTQ4OGQw
YTczNjNjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05P
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3Qu
Y3BwCkBAIC03MTUsNyArNzE1LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxr
KEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSlNBcnJheSgm
bV9leGVjLT5nbG9iYWxEYXRhKCksIGFycmF5KSAmJiBhcnJheS0+Y2FuU2V0SW5kZXgoaW5kZXhT
dGFjay5sYXN0KCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXktPnNldEluZGV4KG1f
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBpbmRleFN0YWNrLmxhc3QoKSwgZmlsdGVyZWRWYWx1ZSk7CiAg
ICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LT5w
dXRWaXJ0dWFsKG1fZXhlYywgaW5kZXhTdGFjay5sYXN0KCksIGZpbHRlcmVkVmFsdWUpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYXJyYXktPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgoYXJy
YXksIG1fZXhlYywgaW5kZXhTdGFjay5sYXN0KCksIGZpbHRlcmVkVmFsdWUpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpAQCAtNzc5LDcgKzc3OSw3IEBAIE5F
VkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAg
ICAgICAgICAgICAgaWYgKGZpbHRlcmVkVmFsdWUuaXNVbmRlZmluZWQoKSkKICAgICAgICAgICAg
ICAgICAgICAgb2JqZWN0LT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwobV9leGVjLCBwcm9wKTsKICAg
ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG9iamVjdC0+cHV0VmlydHVh
bChtX2V4ZWMsIHByb3AsIGZpbHRlcmVkVmFsdWUsIHNsb3QpOworICAgICAgICAgICAgICAgICAg
ICBvYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dChvYmplY3QsIG1fZXhlYywgcHJvcCwgZmlsdGVy
ZWRWYWx1ZSwgc2xvdCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fZXhlYy0+aGFkRXhjZXB0aW9u
KCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBqc051bGwoKTsKICAgICAgICAgICAgICAg
ICBpbmRleFN0YWNrLmxhc3QoKSsrOwpAQCAtODEwLDcgKzgxMCw3IEBAIE5FVkVSX0lOTElORSBK
U1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgfQogICAgIEpTT2Jq
ZWN0KiBmaW5hbEhvbGRlciA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KG1fZXhlYyk7CiAgICAgUHV0
UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgZmluYWxIb2xkZXItPnB1dFZpcnR1YWwobV9leGVjLCBt
X2V4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5lbXB0eUlkZW50aWZpZXIsIG91dFZh
bHVlLCBzbG90KTsKKyAgICBmaW5hbEhvbGRlci0+bWV0aG9kVGFibGUoKS0+cHV0KGZpbmFsSG9s
ZGVyLCBtX2V4ZWMsIG1fZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPmVtcHR5SWRl
bnRpZmllciwgb3V0VmFsdWUsIHNsb3QpOwogICAgIHJldHVybiBjYWxsUmV2aXZlcihmaW5hbEhv
bGRlciwganNFbXB0eVN0cmluZyhtX2V4ZWMpLCBvdXRWYWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCA3MjhkOWFmYTA2ZGY5MzNiODZk
YzRmNWYxMzg5Yzg4MmJiYjQ3YzZiLi41YjlhZDYxZjYyZjhkMzVmZjJkODk1NTEyMTIwZTUxZTU3
YjBkNTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBA
IC0xMTksMTEgKzExOSw2IEBAIHN0YXRpYyB2b2lkIHRocm93U2V0dGVyRXJyb3IoRXhlY1N0YXRl
KiBleGVjKQogICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJzZXR0
aW5nIGEgcHJvcGVydHkgdGhhdCBoYXMgb25seSBhIGdldHRlciIpKTsKIH0KIAotdm9pZCBKU09i
amVjdDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHB1
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0KLQogLy8gRUNNQSA4
LjYuMi4yCiB2b2lkIEpTT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90JiBzbG90KQogewpAQCAtMjAxLDE1ICsxOTYsMTEgQEAgdm9pZCBKU09iamVjdDo6cHV0
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUKICAgICByZXR1cm47CiB9CiAKLXZvaWQgSlNPYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAg
cHV0QnlJbmRleCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKLX0KLQogdm9pZCBK
U09iamVjdDo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFB1dFByb3BlcnR5U2xvdCBz
bG90OwotICAgIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2VsbCktPnB1dFZpcnR1YWwoZXhlYywg
SWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCB2YWx1ZSwgc2xvdCk7CisgICAg
SlNPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU09iamVjdCo+KGNlbGwpOworICAg
IHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dCh0aGlzT2JqZWN0LCBleGVjLCBJZGVudGlm
aWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBK
U09iamVjdDo6cHV0V2l0aEF0dHJpYnV0ZXMoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJp
YnV0ZXMsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpAQCAtODM0
LDcgKzgyNSw3IEBAIGJvb2wgSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lCiAgICAgICAgICAgICBpZiAoIWRl
c2NyaXB0b3IudmFsdWUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
ICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgcHV0VmlydHVhbChleGVjLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IudmFsdWUoKSwgc2xvdCk7CisgICAgICAgICAgICBtZXRo
b2RUYWJsZSgpLT5wdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLnZhbHVl
KCksIHNsb3QpOwogICAgICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggMDBiZGJmZjdhMTU3YWE1MzFi
MjdmMTA2OWQ0NmRiNDc3YTRiNDBkYy4uNjM2NTk3MGYwNDk1OTRkYjdlYjllNTFjODI3ZmZhOWU3
ZmZiNmU4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0x
MDUsOSArMTA1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBwdXRXaXRoQXR0cmlidXRlcyhKU0dsb2JhbERhdGEqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIGJvb2wgY2hl
Y2tSZWFkT25seSwgUHV0UHJvcGVydHlTbG90JiBzbG90KTsKQEAgLTgxMiwxMCArODEwLDExIEBA
IGlubGluZSBKU1ZhbHVlIEpTVmFsdWU6OmdldChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90CiBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXQoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBpZiAoVU5MSUtFTFkoIWlzQ2VsbCgpKSkg
ewotICAgICAgICBzeW50aGVzaXplT2JqZWN0KGV4ZWMpLT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgICAgICBKU09iamVjdCogdGhpc09iamVjdCA9IHN5
bnRoZXNpemVPYmplY3QoZXhlYyk7CisgICAgICAgIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCkt
PnB1dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KLSAgICBhc0NlbGwoKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBhc0NlbGwoKS0+bWV0aG9kVGFibGUoKS0+cHV0KGFz
Q2VsbCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogaW5saW5lIHZv
aWQgSlNWYWx1ZTo6cHV0RGlyZWN0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC04
MjgsMTAgKzgyNywxMSBAQCBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXREaXJlY3QoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsCiBpbmxpbmUgdm9pZCBKU1Zh
bHVlOjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgaWYgKFVOTElLRUxZKCFpc0NlbGwoKSkpIHsKLSAgICAgICAgc3ludGhl
c2l6ZU9iamVjdChleGVjKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsK
KyAgICAgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBzeW50aGVzaXplT2JqZWN0KGV4ZWMpOwor
ICAgICAgICB0aGlzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHRoaXNPYmplY3Qs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAg
IGFzQ2VsbCgpLT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOworICAgIGFz
Q2VsbCgpLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGFzQ2VsbCgpLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlKTsKIH0KIAogLy8gLS0tIEpTVmFsdWUgaW5saW5lcyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCmluZGV4IDdmYTVjNDg5ZWI5YWZiNGJhNDMyZDM5NTlm
MWUxZTJhYzU1MDQ1MDcuLjRjNjRlZDg5YjAwOWYxNzQzY2EzMGJkZjNkMmJmYmY5MWE3YTllNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2Nv
cGVPYmplY3QuY3BwCkBAIC00OSwxMSArNDksNiBAQCBKU09iamVjdCogSlNTdGF0aWNTY29wZU9i
amVjdDo6dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gZXhl
Yy0+Z2xvYmFsVGhpc1ZhbHVlKCk7CiB9CiAKLXZvaWQgSlNTdGF0aWNTY29wZU9iamVjdDo6cHV0
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHB1dCh0aGlzLCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0KLQogdm9pZCBKU1N0YXRpY1Njb3Bl
T2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQog
ewogICAgIEpTU3RhdGljU2NvcGVPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1N0
YXRpY1Njb3BlT2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKaW5kZXggMDMyMTFmZmYzNzk0Nzk0ODVmYjBk
ZWZhNDgxMDgwODUxMzE3ZTcyMS4uZTgyZGIxZTIzODM4NjdmMjk4MmMyZjhkZmQ4NWU2NWU4MWY0
NDI5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGlj
U2NvcGVPYmplY3QuaApAQCAtNDYsNyArNDYsNiBAQCBuYW1lc3BhY2UgSlNDewogICAgICAgICB2
aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBz
dGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZvaWQgcHV0V2l0aEF0dHJpYnV0
ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJp
YnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3Rv
dHlwZS5jcHAKaW5kZXggNTU0MmMwNjA1ZGQ5YTBhMDg5MmQ1NTEwOTZlNDVmNDAzNzg2NWUxMC4u
NGRhMzU5MmE1NTQ2OGQ4ZGYwYmYzODBmOThlZmEzNWRjZjY0N2MyMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC03NSwxMSAr
NzUsNiBAQCB2b2lkIE9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCopCiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2lu
Zm8pKTsKIH0KIAotdm9pZCBPYmplY3RQcm90b3R5cGU6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgT2JqZWN0UHJvdG90eXBlOjpwdXQoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIE9iamVjdFByb3RvdHlwZSog
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PE9iamVjdFByb3RvdHlwZSo+KGNlbGwpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCAwNDEy
OTU3YWJjNzBmMzNmZmUxM2E5MWM5ZjNhNWEyYjQ1NzlkODg3Li5hNzRhMzNlNDc5NWM3MmMxYTdj
MmY5ODI5ZDhhMTgzMzc5MWU2Njg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAtNTAsNyArNTAsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgIHByaXZhdGU6CiAgICAgICAgIE9iamVjdFByb3RvdHlwZShFeGVjU3RhdGUqLCBTdHJ1
Y3R1cmUqKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmNwcAppbmRleCA5MGZhMzcxMzA5ZjBhNDYzNmQ3MTg1MTU3MjZmMDI3ZGYxY2YwMTc5
Li42ZGY1YjM4OTczZTJmN2RkMzQyMThiNjgxYTkzODZlMmNmMzgwM2QyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0y
OTIsMTEgKzI5Miw2IEBAIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJCiAgICAgcmV0dXJuIGFzUmVn
RXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRSaWdodENvbnRleHQoZXhlYyk7CiB9CiAKLXZv
aWQgUmVnRXhwQ29uc3RydWN0b3I6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7
Ci19Ci0KIHZvaWQgUmVnRXhwQ29uc3RydWN0b3I6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgbG9va3VwUHV0PFJlZ0V4cENvbnN0cnVjdG9y
LCBJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBFeGVjU3RhdGU6
OnJlZ0V4cENvbnN0cnVjdG9yVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PFJlZ0V4cENvbnN0cnVj
dG9yKj4oY2VsbCksIHNsb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmgKaW5kZXggMmZmOWMxZDMzY2RkODI2MjQ1ZDZmYjZlZTk4ZDRk
MTA2YzVhMGI3OC4uYzQ1MTc5OWVmYzBlYmQ4MzgwYWM5MGYwMTNjZGU4M2I0MGFmZTY3MCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5o
CkBAIC03MSw3ICs3MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAK
LSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAg
c3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggNWU4MDBlYzZkNDg0
OGUyZDQ1NjIzNmNhMzA4MDhmMmQ5NzQzNjQ3Yy4uNjI0MTJhYjNiMTNiMTgxMTFlNTJmZGI2YzFl
NTRjMmZlN2VkMDI5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwTWF0Y2hlc0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwTWF0Y2hlc0FycmF5LmgKQEAgLTc2LDExICs3Niw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgcmV0dXJuIEpTQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVj
LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVh
bCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdiwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotICAgICAgICB7Ci0g
ICAgICAgICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2LCBzbG90KTsKLSAgICAg
ICAgfQotCiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHYsIFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCkKICAgICAgICAgewogICAgICAgICAgICAgUmVnRXhwTWF0Y2hlc0FycmF5
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UmVnRXhwTWF0Y2hlc0FycmF5Kj4oY2VsbCk7CkBA
IC04OSwxMSArODQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIEpTQXJyYXk6OnB1
dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHYsIHNsb3QpOwogICAgICAgICB9CiAg
ICAgICAgIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBwdXRCeUluZGV4KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdik7Ci0gICAgICAgIH0KLSAg
ICAgICAgCiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2KQogICAgICAgICB7
CiAgICAgICAgICAgICBSZWdFeHBNYXRjaGVzQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2Fz
dDxSZWdFeHBNYXRjaGVzQXJyYXkqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4IGQ1ZTkyNDNlMzI4NjgzZjZhNjc0YWMxMzNl
MWJlYWIxYTcwZmQ2OTguLmU4MmRmYWFhNzIwN2RhODZhYjEwZGI0ZjZhOGQwZGJjODk0NDQ1OTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApA
QCAtMTY1LDExICsxNjUsNiBAQCBKU1ZhbHVlIHJlZ0V4cE9iamVjdExhc3RJbmRleChFeGVjU3Rh
dGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKICAgICByZXR1cm4gYXNS
ZWdFeHBPYmplY3Qoc2xvdEJhc2UpLT5nZXRMYXN0SW5kZXgoKTsKIH0KIAotdm9pZCBSZWdFeHBP
YmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBw
dXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgUmVn
RXhwT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIGxvb2t1cFB1dDxSZWdFeHBPYmplY3QsIEpTT2JqZWN0PihleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBFeGVjU3RhdGU6OnJlZ0V4cFRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxS
ZWdFeHBPYmplY3QqPihjZWxsKSwgc2xvdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cE9iamVjdC5oCmluZGV4IDBmYTM2YTUxYTY3MTAyMGNkNWM2YzJlMTA1ODU2MDg0
NDc1Mzg2MmMuLmNjNjQ2MzUxMTA3Mzc5NDNkOGMxZDMyNTg3MThiYjg5NmVhMzViZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC02OCw3ICs2
OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0
YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHN0YXRpYyBK
U19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAppbmRleCBiNzIzZTkzMDU4YzljZjI0NDUx
NjMyMGVlNDIwNjc1OTM1MzhhNjA2Li5lMDhjMWUzODk2ZDE1MDJlMGFjNmJjZjM5MmI1MGZiMDIx
YTI3Mzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVj
dC5jcHAKQEAgLTc0LDExICs3NCw2IEBAIGJvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwCiAgICAgcmV0
dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1l
LCBkZXNjcmlwdG9yKTsKIH0KIAotdm9pZCBTdHJpbmdPYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgU3RyaW5nT2JqZWN0OjpwdXQoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGlmIChwcm9wZXJ0eU5h
bWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggZGNlYjFiYjFmYWEwZTc0ZjIyNWZiZWY2
NzQwM2EzNWM2ZDdiYTU4ZC4uYTFmYWNhNDliMDUxZmMzOGVlZWFiNTY4MjA3MzgxNmQzNTAxYjhj
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKQEAg
LTUxLDcgKzUxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCBhZGJmYzJiMmY1ZmMzMmYwZjk0MTFlMWZkNjdl
NzEyYjhlYjljYWE5Li5lNDkzMGY4NzVjMjEwNWYxNDA5ZmU0YjFlOGE4YTlkZGYxOGM3MjM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHAKQEAgLTg0Niw3ICs4NDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmlu
Z1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgaWYgKHNlcGFyYXRvclZh
bHVlLmlzVW5kZWZpbmVkKCkpIHsKICAgICAgICAgICAgIC8vIGEuIENhbGwgdGhlIFtbRGVmaW5l
T3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50cyAiMCIsCiAg
ICAgICAgICAgICAvLyAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFMsIFtbV3Jp
dGFibGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRy
dWV9LCBhbmQgZmFsc2UuCi0gICAgICAgICAgICByZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgMCwg
anNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOworICAgICAgICAgICAg
cmVzdWx0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHJlc3VsdCwgZXhlYywgMCwganNTdHJp
bmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOwogICAgICAgICAgICAgLy8gYi4g
UmV0dXJuIEEuCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAg
ICAgICAgIH0KQEAgLTg1OSw3ICs4NTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIC8vICAg
IFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFsdWVdXTogUywgW1tXcml0YWJsZV1dOiB0cnVlLCBb
W0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4K
ICAgICAgICAgICAgIC8vIGQuIFJldHVybiBBLgogICAgICAgICAgICAgaWYgKHJlZy0+bWF0Y2go
Kmdsb2JhbERhdGEsIGlucHV0LCAwKSA8IDApCi0gICAgICAgICAgICAgICAgcmVzdWx0LT5wdXRW
aXJ0dWFsKGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQp
KTsKKyAgICAgICAgICAgICAgICByZXN1bHQtPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgocmVz
dWx0LCBleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7
CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgICAgIH0K
IApAQCAtODkwLDcgKzg5MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5n
UHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgLy8gICAgdGhyb3Vn
aCBxIChleGNsdXNpdmUpLgogICAgICAgICAgICAgLy8gMi4gQ2FsbCB0aGUgW1tEZWZpbmVPd25Q
cm9wZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzIFRvU3RyaW5nKGxl
bmd0aEEpLAogICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1d
OiBULCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3Vy
YWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgotICAgICAgICAgICAgcmVzdWx0LT5wdXRWaXJ0dWFs
KGV4ZWMsIHJlc3VsdExlbmd0aCwganNTdWJzdHJpbmcoZXhlYywgaW5wdXQsIHBvc2l0aW9uLCBt
YXRjaFBvc2l0aW9uIC0gcG9zaXRpb24pKTsKKyAgICAgICAgICAgIHJlc3VsdC0+bWV0aG9kVGFi
bGUoKS0+cHV0QnlJbmRleChyZXN1bHQsIGV4ZWMsIHJlc3VsdExlbmd0aCwganNTdWJzdHJpbmco
ZXhlYywgaW5wdXQsIHBvc2l0aW9uLCBtYXRjaFBvc2l0aW9uIC0gcG9zaXRpb24pKTsKICAgICAg
ICAgICAgIC8vIDMuIEluY3JlbWVudCBsZW5ndGhBIGJ5IDEuCiAgICAgICAgICAgICAvLyA0LiBJ
ZiBsZW5ndGhBID09IGxpbSwgcmV0dXJuIEEuCiAgICAgICAgICAgICBpZiAoKytyZXN1bHRMZW5n
dGggPT0gbGltaXQpCkBAIC05MDksNyArOTA5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAg
ICAgLy8gICBUb1N0cmluZyhsZW5ndGhBKSwgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1d
OiBjYXBbaV0sIFtbV3JpdGFibGVdXToKICAgICAgICAgICAgICAgICAvLyAgIHRydWUsIFtbRW51
bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgogICAg
ICAgICAgICAgICAgIGludCBzdWIgPSBvdmVjdG9yW2kgKiAyXTsKLSAgICAgICAgICAgICAgICBy
ZXN1bHQtPnB1dFZpcnR1YWwoZXhlYywgcmVzdWx0TGVuZ3RoLCBzdWIgPCAwID8ganNVbmRlZmlu
ZWQoKSA6IGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBzdWIsIG92ZWN0b3JbaSAqIDIgKyAxXSAt
IHN1YikpOworICAgICAgICAgICAgICAgIHJlc3VsdC0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRl
eChyZXN1bHQsIGV4ZWMsIHJlc3VsdExlbmd0aCwgc3ViIDwgMCA/IGpzVW5kZWZpbmVkKCkgOiBq
c1N1YnN0cmluZyhleGVjLCBpbnB1dCwgc3ViLCBvdmVjdG9yW2kgKiAyICsgMV0gLSBzdWIpKTsK
ICAgICAgICAgICAgICAgICAvLyBjIEluY3JlbWVudCBsZW5ndGhBIGJ5IDEuCiAgICAgICAgICAg
ICAgICAgLy8gZCBJZiBsZW5ndGhBID09IGxpbSwgcmV0dXJuIEEuCiAgICAgICAgICAgICAgICAg
aWYgKCsrcmVzdWx0TGVuZ3RoID09IGxpbWl0KQpAQCAtOTI4LDcgKzkyOCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVj
KQogICAgICAgICBpZiAoc2VwYXJhdG9yVmFsdWUuaXNVbmRlZmluZWQoKSkgewogICAgICAgICAg
ICAgLy8gYS4gIENhbGwgdGhlIFtbRGVmaW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qg
b2YgQSB3aXRoIGFyZ3VtZW50cyAiMCIsCiAgICAgICAgICAgICAvLyAgICAgUHJvcGVydHkgRGVz
Y3JpcHRvciB7W1tWYWx1ZV1dOiBTLCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1d
OiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgotICAgICAgICAgICAg
cmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNW
YWx1ZSwgaW5wdXQpKTsKKyAgICAgICAgICAgIHJlc3VsdC0+bWV0aG9kVGFibGUoKS0+cHV0QnlJ
bmRleChyZXN1bHQsIGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwg
aW5wdXQpKTsKICAgICAgICAgICAgIC8vIGIuICBSZXR1cm4gQS4KICAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICAgICAgfQpAQCAtOTQxLDcgKzk0MSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0
YXRlKiBleGVjKQogICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1
ZV1dOiBTLCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZp
Z3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgogICAgICAgICAgICAgLy8gZC4gUmV0dXJuIEEu
CiAgICAgICAgICAgICBpZiAoIXNlcGFyYXRvci5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAg
cmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNW
YWx1ZSwgaW5wdXQpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQtPm1ldGhvZFRhYmxlKCktPnB1
dEJ5SW5kZXgocmVzdWx0LCBleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFs
dWUsIGlucHV0KSk7CiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7
CiAgICAgICAgIH0KIApAQCAtOTUyLDcgKzk1Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAg
QVNTRVJUKGxpbWl0KTsKIAogICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIHJlc3Vs
dC0+cHV0VmlydHVhbChleGVjLCBwb3NpdGlvbiwganNTaW5nbGVDaGFyYWN0ZXJTdWJzdHJpbmco
ZXhlYywgaW5wdXQsIHBvc2l0aW9uKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LT5tZXRob2RU
YWJsZSgpLT5wdXRCeUluZGV4KHJlc3VsdCwgZXhlYywgcG9zaXRpb24sIGpzU2luZ2xlQ2hhcmFj
dGVyU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlvbikpOwogICAgICAgICAgICAgfSB3aGls
ZSAoKytwb3NpdGlvbiA8IGxpbWl0KTsKIAogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOwpAQCAtOTY5LDcgKzk2OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAg
Ly8gICAgdGhyb3VnaCBxIChleGNsdXNpdmUpLgogICAgICAgICAgICAgLy8gMi4gQ2FsbCB0aGUg
W1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRz
IFRvU3RyaW5nKGxlbmd0aEEpLAogICAgICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRv
ciB7W1tWYWx1ZV1dOiBULCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVl
LCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgotICAgICAgICAgICAgcmVzdWx0
LT5wdXRWaXJ0dWFsKGV4ZWMsIHJlc3VsdExlbmd0aCwganNTdWJzdHJpbmcoZXhlYywgaW5wdXQs
IHBvc2l0aW9uLCBtYXRjaFBvc2l0aW9uIC0gcG9zaXRpb24pKTsKKyAgICAgICAgICAgIHJlc3Vs
dC0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChyZXN1bHQsIGV4ZWMsIHJlc3VsdExlbmd0aCwg
anNTdWJzdHJpbmcoZXhlYywgaW5wdXQsIHBvc2l0aW9uLCBtYXRjaFBvc2l0aW9uIC0gcG9zaXRp
b24pKTsKICAgICAgICAgICAgIC8vIDMuIEluY3JlbWVudCBsZW5ndGhBIGJ5IDEuCiAgICAgICAg
ICAgICAvLyA0LiBJZiBsZW5ndGhBID09IGxpbSwgcmV0dXJuIEEuCiAgICAgICAgICAgICBpZiAo
KytyZXN1bHRMZW5ndGggPT0gbGltaXQpCkBAIC05ODUsNyArOTg1LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgLy8gICAgIHRocm91Z2ggcyAoZXhjbHVzaXZlKS4KICAgICAvLyAxNS4gQ2FsbCB0aGUgW1tE
ZWZpbmVPd25Qcm9wZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzIFRv
U3RyaW5nKGxlbmd0aEEpLCBQcm9wZXJ0eSBEZXNjcmlwdG9yCiAgICAgLy8gICAgIHtbW1ZhbHVl
XV06IFQsIFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmln
dXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCi0gICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMs
IHJlc3VsdExlbmd0aCsrLCBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRpb24sIGlucHV0
Lmxlbmd0aCgpIC0gcG9zaXRpb24pKTsKKyAgICByZXN1bHQtPm1ldGhvZFRhYmxlKCktPnB1dEJ5
SW5kZXgocmVzdWx0LCBleGVjLCByZXN1bHRMZW5ndGgrKywganNTdWJzdHJpbmcoZXhlYywgaW5w
dXQsIHBvc2l0aW9uLCBpbnB1dC5sZW5ndGgoKSAtIHBvc2l0aW9uKSk7CiAKICAgICAvLyAxNi4g
UmV0dXJuIEEuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAKaW5kZXggYWZmOWZmM2MyNzdiNmRkZTQzMDQx
YjM3M2RhMTQyZGU2ZTQ3M2VlNC4uNjBkOTk1MTYwNmUxY2RlMTNjNjU0Njg5NWE4MTAyNjE3MmUw
NzdiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNWYWx1ZVdyYXBwZXIuY3BwCkBAIC0xMzYs
NyArMTM2LDcgQEAgdm9pZCBKU1ZhbHVlV3JhcHBlcjo6SlNPYmplY3RTZXRQcm9wZXJ0eSh2b2lk
ICpkYXRhLCBDRlN0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEoKICAgICAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTT2JqZWN0S0pTVmFsdWUoKEpTVXNlck9iamVjdCopanNWYWx1ZSk7CiAgICAgICAgIEpT
T2JqZWN0ICpvYmpWYWx1ZSA9IHB0ci0+R2V0VmFsdWUoKS50b09iamVjdChleGVjKTsKICAgICAg
ICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIG9ialZhbHVlLT5wdXRWaXJ0dWFsKGV4
ZWMsIENGU3RyaW5nVG9JZGVudGlmaWVyKHByb3BlcnR5TmFtZSwgZXhlYyksIHZhbHVlLCBzbG90
KTsKKyAgICAgICAgb2JqVmFsdWUtPm1ldGhvZFRhYmxlKCktPnB1dChvYmpWYWx1ZSwgZXhlYywg
Q0ZTdHJpbmdUb0lkZW50aWZpZXIocHJvcGVydHlOYW1lLCBleGVjKSwgdmFsdWUsIHNsb3QpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJ
bXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCmluZGV4IDll
OWQyMDY0MDY3OWQxMDhiZDI2ZDVhNzI5MTVhYzFkNmY0YjU3YTAuLmUzMDhlODMzZTUxODY0MDdi
YmViODU3OGVmMDMyY2FmNDZhNzBkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9Vc2VyT2JqZWN0SW1wLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVj
dEltcC5jcHAKQEAgLTE1MiwxMSArMTUyLDYgQEAgYm9vbCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW4KICAg
ICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi12b2lkIFVzZXJPYmplY3RJbXA6OnB1dFZpcnR1YWwo
RXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgVXNlck9iamVjdEltcDo6cHV0KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCiB7CiAgICAgVXNlck9iamVjdElt
cCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFVzZXJPYmplY3RJbXAqPihjZWxsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IDIwYjYyZjRiNTg5OTk4OTNkN2QyMDMy
Nzc0NmIyZWZjMDVkNzE0ODkuLjAzMTBlOTVmYjA4ODQ1YWExNmVlNjIxYzZiOTQ0NjVlMzU1OTFl
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaApAQCAtNTYsNyArNTYsNiBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBKU1ZhbHVlIGNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAq
ZXhlYyk7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAg
ICAgSlNWYWx1ZSB0b1ByaW1pdGl2ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBl
IHByZWZlcnJlZFR5cGUgPSBOb1ByZWZlcmVuY2UpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpp
bmRleCAyMjhhMDEzYzE4MDI5OWY5NGY0YjUyYTUwYTQwYjE5ZjgzMTA1ZWVkLi41Y2U2YzgxZjg2
NGFkYjgwYTIxYTI3NzI3MGI2ZWI4MGQwOWJkMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAt
MTQxLDcgKzE0MSw2IEBAIF9fWk43V2ViQ29yZTEwQ2xpZW50UmVjdEMxRXYKIF9fWk43V2ViQ29y
ZTEwQ3JlZGVudGlhbEMxRVJLTjNXVEY2U3RyaW5nRVM0X05TXzIxQ3JlZGVudGlhbFBlcnNpc3Rl
bmNlRQogX19aTjdXZWJDb3JlMTBDcmVkZW50aWFsQzFFdgogX19aTjdXZWJDb3JlMTBGbG9hdFBv
aW50QzFFUktOU184SW50UG9pbnRFCi1fX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQxMHB1dFZpcnR1
YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFf
MTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2c19pbmZvRQogX19a
TjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFTlMxXzEw
UGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEVpTlM1
X0lOU180Tm9kZUVFRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50QzFFUktOM1dURjEyQXRvbWlj
U3RyaW5nRWJiTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9J
TlNfMTFFdmVudFRhcmdldEVFRU5TNV9JTlNfOUNsaXBib2FyZEVFRWIKQEAgLTg0Myw3ICs4NDIs
NiBAQCBfX1pON1dlYkNvcmU2RWRpdG9yNmluZGVudEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yN0Nv
bW1hbmRDMUV2CiBfX1pON1dlYkNvcmU2RWRpdG9yN2NvbW1hbmRFUktOM1dURjZTdHJpbmdFCiBf
X1pON1dlYkNvcmU2RWRpdG9yN291dGRlbnRFdgotX19aTjdXZWJDb3JlNkpTTm9kZTEwcHV0Vmly
dHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5T
MV8xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk43V2ViQ29yZTZKU05vZGU2c19pbmZvRQogX19aTjdX
ZWJDb3JlNlJlZ2lvbjV1bml0ZUVSS1MwXwogX19aTjdXZWJDb3JlNlJlZ2lvbjhzdWJ0cmFjdEVS
S1MwXwpAQCAtMTA1OCw3ICsxMDU2LDYgQEAgX19aTjdXZWJDb3JlOUhUTUxOYW1lczh2aWRlb1Rh
Z0UKIF9fWk43V2ViQ29yZTlIVE1MTmFtZXM5aWZyYW1lVGFnRQogX19aTjdXZWJDb3JlOUhUTUxO
YW1lczlvYmplY3RUYWdFCiBfX1pON1dlYkNvcmU5SFRNTE5hbWVzOXNjcmlwdFRhZ0UKLV9fWk43
V2ViQ29yZTlKU0VsZW1lbnQxMHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElk
ZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pON1dlYkNv
cmU5SlNFbGVtZW50NnNfaW5mb0UKIF9fWk43V2ViQ29yZTlQYWdlQ2FjaGUxMXNldENhcGFjaXR5
RWkKIF9fWk43V2ViQ29yZTlQYWdlQ2FjaGUyN3JlbGVhc2VBdXRvcmVsZWFzZWRQYWdlc05vd0V2
CkBAIC0xNjk3LDcgKzE2OTQsNiBAQCBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDI1Z2V0T3duUHJv
cGVydHlTbG90VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZgogX19aTjNKU0Mx
M1J1bnRpbWVNZXRob2Q2c19pbmZvRQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2RDMkVQTlNfMTRK
U0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUVSTjNXVEY2VmVjdG9ySVBOU184QmluZGluZ3M2
TWV0aG9kRUxtMEVFRQogX19aTjNKU0M4QmluZGluZ3MxMFJvb3RPYmplY3REMUV2Ci1fX1pOM0pT
QzhCaW5kaW5nczEzUnVudGltZU9iamVjdDEwcHV0VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pT
QzhCaW5kaW5nczEzUnVudGltZU9iamVjdDExZ2V0Q2FsbERhdGFFUE5TXzZKU0NlbGxFUk5TXzhD
YWxsRGF0YUUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTRkZWxldGVQcm9wZXJ0
eUVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlND
OEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVQTlNfMTRKU0dsb2JhbE9i
amVjdEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcAppbmRleCAwYWUyNDc3OGEzMjE5NjhmOWM0NTg4ZGQyZDA2NGVlN2I5OWVmYjYxLi5kNzc5
MzVmOWUxMjNmMGQ1ZDFmOTA2OGI0NDlmMGM3NzdjYzk3MTY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC0zNDQsMTEgKzM0NCw2
IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByCiAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCi12b2lk
IEpTRE9NV2luZG93OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17
Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2
b2lkIEpTRE9NV2luZG93OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIEpTRE9NV2luZG93KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNE
T01XaW5kb3cqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5jcHAKaW5kZXggZTNkMzMzY2MzMGNkODM5MzdjMWJjNDRmMDE3ZTE1NWRiMTll
YmVhMS4uNjlkMzQ2ZTUzZWEyNzkyOGVhMjMyNTM5ODAxOTAxYmM1MTNkOTY5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTExNSwx
NCArMTE1LDEwIEBAIGJvb2wgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllCiAgICAgcmV0dXJuIG1fd2luZG93
LT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KTsKIH0KIAotdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHNsb3QpOwotfQotCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnB1dChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgc3RhdGljX2Nhc3Q8SlNET01X
aW5kb3dTaGVsbCo+KGNlbGwpLT5tX3dpbmRvdy0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBzbG90KTsKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KGNlbGwpOworICAgIHRoaXNPYmplY3QtPm1fd2lu
ZG93LT5tZXRob2RUYWJsZSgpLT5wdXQodGhpc09iamVjdC0+bV93aW5kb3cuZ2V0KCksIGV4ZWMs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6
OnB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4IDBkNjkyMTYwMjY1
MGRkM2Q4NTQxOGE5MTBkYzQ3Y2M4Y2IwYmNlYTQuLjU5ZmY3OTM5ZDBiZDhmMTRkYjhlZWI3MDM0
NzBkYTFmY2UwNDBmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmgKQEAgLTgzLDcgKzgzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYp
OwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRW
aXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGlj
IHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCB1bnNp
Z25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5Vmly
dHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVu
dEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1l
bnRGdW5jdGlvbnMuY3BwCmluZGV4IDAwY2Q5NjgyYjhjZWUwYmRkNmE5MGVkNzY3ZjRmNmRjMTcx
MjNhMjUuLjJkNjU1M2FmNDVjYzZmZjNhMzA5ZTViOWVjYjM4YTIyYjFhZWVjMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rp
b25zLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIGJvb2wgcnVudGltZU9iamVjdEN1c3RvbVB1dChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWCiAgICAg
ICAgIHJldHVybiAwOwogICAgIGlmICghc2NyaXB0T2JqZWN0LT5oYXNQcm9wZXJ0eShleGVjLCBw
cm9wZXJ0eU5hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgc2NyaXB0T2JqZWN0LT5w
dXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIHNjcmlwdE9i
amVjdC0+bWV0aG9kVGFibGUoKS0+cHV0KHNjcmlwdE9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgc2xvdCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDU3OTQz
YmVhYmRiZmRiOGMyOWRhZjA5MzY2OTk2NWQzN2Y0NGQ4MjMuLmIyYTlmOWEwNWI4YzkxOWUxNjdl
OWM4ZDYyMzJhZDRhMTdhMGI1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMTAzMSw3ICsxMDMxLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgaWYgKGFycmF5LT5jYW5TZXRJbmRleChpbmRleCkpCiAgICAgICAgICAg
ICBhcnJheS0+c2V0SW5kZXgobV9leGVjLT5nbG9iYWxEYXRhKCksIGluZGV4LCB2YWx1ZSk7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFycmF5LT5wdXRWaXJ0dWFsKG1fZXhlYywgaW5kZXgs
IHZhbHVlKTsKKyAgICAgICAgICAgIGFycmF5LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGFy
cmF5LCBtX2V4ZWMsIGluZGV4LCB2YWx1ZSk7CiAgICAgfQogCiAgICAgdm9pZCBwdXRQcm9wZXJ0
eShKU09iamVjdCogb2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwgSlNWYWx1ZSB2
YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0
T2JqZWN0Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3Qu
bW0KaW5kZXggNTkxMGUzNTZkZGJmOTM4MjI5MjE3NTU5MTg4NmE0NTFjNTlmZTg3ZS4uYTRkN2M0
YWE0YjUxNWI2MTk4YjRkMjZmZWY1YTM2NTBlZjA5ZThmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KQEAgLTM0OSw3ICszNDksNyBAQCBz
dGF0aWMgdm9pZCBnZXRMaXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRlICpleGVjLCBOU0FycmF5ICph
cnJheSwgUm9vdE9iamVjdCogcm9vdAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25z
T25seSk7CiAKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBbc2VsZiBfaW1wXS0+cHV0
VmlydHVhbChleGVjLCBJZGVudGlmaWVyKGV4ZWMsIHN0cmluZ1RvVVN0cmluZyhTdHJpbmcoa2V5
KSkpLCBjb252ZXJ0T2JqY1ZhbHVlVG9WYWx1ZShleGVjLCAmdmFsdWUsIE9iamNPYmplY3RUeXBl
LCBbc2VsZiBfcm9vdE9iamVjdF0pLCBzbG90KTsKKyAgICBbc2VsZiBfaW1wXS0+bWV0aG9kVGFi
bGUoKS0+cHV0KFtzZWxmIF9pbXBdLCBleGVjLCBJZGVudGlmaWVyKGV4ZWMsIHN0cmluZ1RvVVN0
cmluZyhTdHJpbmcoa2V5KSkpLCBjb252ZXJ0T2JqY1ZhbHVlVG9WYWx1ZShleGVjLCAmdmFsdWUs
IE9iamNPYmplY3RUeXBlLCBbc2VsZiBfcm9vdE9iamVjdF0pLCBzbG90KTsKIAogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBhZGRFeGNlcHRpb25Ub0NvbnNvbGUoZXhl
Yyk7CkBAIC00ODYsNyArNDg2LDcgQEAgc3RhdGljIHZvaWQgZ2V0TGlzdEZyb21OU0FycmF5KEV4
ZWNTdGF0ZSAqZXhlYywgTlNBcnJheSAqYXJyYXksIFJvb3RPYmplY3QqIHJvb3QKICAgICBBU1NF
UlQoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKIAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3Nl
cnRpb25zT25seSk7Ci0gICAgW3NlbGYgX2ltcF0tPnB1dFZpcnR1YWwoZXhlYywgaW5kZXgsIGNv
bnZlcnRPYmpjVmFsdWVUb1ZhbHVlKGV4ZWMsICZ2YWx1ZSwgT2JqY09iamVjdFR5cGUsIFtzZWxm
IF9yb290T2JqZWN0XSkpOworICAgIFtzZWxmIF9pbXBdLT5tZXRob2RUYWJsZSgpLT5wdXRCeUlu
ZGV4KFtzZWxmIF9pbXBdLCBleGVjLCBpbmRleCwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhl
YywgJnZhbHVlLCBPYmpjT2JqZWN0VHlwZSwgW3NlbGYgX3Jvb3RPYmplY3RdKSk7CiAKICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKICAgICAgICAgYWRkRXhjZXB0aW9uVG9Db25zb2xl
KGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQppbmRleCAyZWMxZTc5ZDlkNWQ2ODc0MjY1YjI4NTE2ODMxZjkzNGVlY2Q5Yzc4
Li5iZDU4YTk4ZjdhMDgxM2Q1NjBiZjk2OTc2YjlkZGFmMTE0NGM2ZThhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNzk1
LDkgKzc5NSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgIyBHZXR0ZXJzCiAgICAgaWYg
KCRoYXNTZXR0ZXIpIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFs
IHZvaWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpK
U0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKLSAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6OkV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTtcbiIpIGlmICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0dGVyIn07CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChK
U0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6
OkpTVmFsdWUpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3Vz
dG9tSW5kZXhTZXR0ZXIifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29s
IHB1dERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlND
OjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1B1dEZ1bmN0aW9uIn07CiAgICAgfQpAQCAtMTA1
OCw3ICsxMDU2LDYgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICIgICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTtcbiIgLgogICAgICAgICAiICAgIH1cbiIpOwogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewotICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwg
SlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIGJvb2wgcHV0RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICB9
CkBAIC0xNDg0LDExICsxNDgxLDYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICB9
CiAKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1By
b3RvdHlwZVB1dEZ1bmN0aW9uIn0pIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lk
ICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KVxuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBzbG90KTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0K
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6
cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDwk
e2NsYXNzTmFtZX1Qcm90b3R5cGUqPihjZWxsKTtcbiIpOwpAQCAtMTc2MywxMSArMTc1NSw2IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAgaWYgKCRoYXNTZXR0ZXIpIHsK
ICAgICAgICAgICAgIGlmICghJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
UHV0RnVuY3Rpb24ifSkgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9p
ZCAke2NsYXNzTmFtZX06OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdClc
biIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgdmFsdWUsIHNsb3QpO1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ9XG5cbiIpOwotCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lk
ICR7Y2xhc3NOYW1lfTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdClcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlz
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKQEAgLTE3OTQs
MTAgKzE3ODEsNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3Vz
dG9tSW5kZXhTZXR0ZXIifSkgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
dm9pZCAke2NsYXNzTmFtZX06OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIHB1dEJ5SW5kZXgodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7XG4iKTsKLSAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0QnlJbmRleChKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlKVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsK
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRo
aXNPYmplY3QgPSBzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKaW5kZXggZDZiNmU2OWU5YjZiNjU2MmQyYTc2MWQ4
ZDM3ODBlOWIwNjQ3NjI4YS4uOTlkYWQ1MWZjYTQ3Y2NlYzNjZjYwOTBjNmI2MTllNWFiYzNjMGNh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCkBAIC0zMzcsOSArMzM3LDkg
QEAgYm9vbCBfTlBOX1NldFByb3BlcnR5KE5QUCwgTlBPYmplY3QqIG8sIE5QSWRlbnRpZmllciBw
cm9wZXJ0eU5hbWUsIGNvbnN0IE5QVmFyaWEKIAogICAgICAgICBpZiAoaS0+aXNTdHJpbmcoKSkg
ewogICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgICAgICBvYmotPmlt
cC0+cHV0VmlydHVhbChleGVjLCBpZGVudGlmaWVyRnJvbU5QSWRlbnRpZmllcihleGVjLCBpLT5z
dHJpbmcoKSksIGNvbnZlcnROUFZhcmlhbnRUb1ZhbHVlKGV4ZWMsIHZhcmlhbnQsIHJvb3RPYmpl
Y3QpLCBzbG90KTsKKyAgICAgICAgICAgIG9iai0+aW1wLT5tZXRob2RUYWJsZSgpLT5wdXQob2Jq
LT5pbXAsIGV4ZWMsIGlkZW50aWZpZXJGcm9tTlBJZGVudGlmaWVyKGV4ZWMsIGktPnN0cmluZygp
KSwgY29udmVydE5QVmFyaWFudFRvVmFsdWUoZXhlYywgdmFyaWFudCwgcm9vdE9iamVjdCksIHNs
b3QpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG9iai0+aW1wLT5wdXRWaXJ0dWFsKGV4
ZWMsIGktPm51bWJlcigpLCBjb252ZXJ0TlBWYXJpYW50VG9WYWx1ZShleGVjLCB2YXJpYW50LCBy
b290T2JqZWN0KSk7CisgICAgICAgICAgICBvYmotPmltcC0+bWV0aG9kVGFibGUoKS0+cHV0QnlJ
bmRleChvYmotPmltcCwgZXhlYywgaS0+bnVtYmVyKCksIGNvbnZlcnROUFZhcmlhbnRUb1ZhbHVl
KGV4ZWMsIHZhcmlhbnQsIHJvb3RPYmplY3QpKTsKICAgICAgICAgZXhlYy0+Y2xlYXJFeGNlcHRp
b24oKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
am5pL2puaV9qc29iamVjdC5tbQppbmRleCAwZjliN2YxNmEyMzdkOTljOGQ4YzU3ZjllNmM0Njgz
MjFmM2FkYzFjLi5lODdjODRlODQ1YzA4YmFmYWJhMTMxNmNiYjlkMmIxMmU1ZTBkYzAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbQpAQCAtMzQ4LDcgKzM0OCw3
IEBAIHZvaWQgSmF2YUpTT2JqZWN0OjpzZXRNZW1iZXIoanN0cmluZyBtZW1iZXJOYW1lLCBqb2Jq
ZWN0IHZhbHVlKSBjb25zdAogCiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5
KTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBfaW1wLT5wdXRWaXJ0dWFsKGV4ZWMs
IElkZW50aWZpZXIoZXhlYywgSmF2YVN0cmluZyhtZW1iZXJOYW1lKS5pbXBsKCkpLCBjb252ZXJ0
Sk9iamVjdFRvVmFsdWUoZXhlYywgdmFsdWUpLCBzbG90KTsKKyAgICBfaW1wLT5tZXRob2RUYWJs
ZSgpLT5wdXQoX2ltcCwgZXhlYywgSWRlbnRpZmllcihleGVjLCBKYXZhU3RyaW5nKG1lbWJlck5h
bWUpLmltcGwoKSksIGNvbnZlcnRKT2JqZWN0VG9WYWx1ZShleGVjLCB2YWx1ZSksIHNsb3QpOwog
fQogCiAKQEAgLTM5Myw3ICszOTMsNyBAQCB2b2lkIEphdmFKU09iamVjdDo6c2V0U2xvdChqaW50
IGluZGV4LCBqb2JqZWN0IHZhbHVlKSBjb25zdAogCiAgICAgRXhlY1N0YXRlKiBleGVjID0gcm9v
dE9iamVjdC0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKICAgICBKU0xvY2sgbG9jayhT
aWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIF9pbXAtPnB1dFZpcnR1YWwoZXhlYywgKHVuc2ln
bmVkKWluZGV4LCBjb252ZXJ0Sk9iamVjdFRvVmFsdWUoZXhlYywgdmFsdWUpKTsKKyAgICBfaW1w
LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KF9pbXAsIGV4ZWMsICh1bnNpZ25lZClpbmRleCwg
Y29udmVydEpPYmplY3RUb1ZhbHVlKGV4ZWMsIHZhbHVlKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAppbmRleCAxOGQ1ZTM0MjBhMzkxNTJiZDYzMWU1
NDY4Yjc2NzMwNWI1NWI0ZWE2Li5mYWJjYjBiMTZiNDJlNWNmZjdiOTkzMTExNTViNDc4YjA1MDRl
ODc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaApAQCAtMTI2
LDcgKzEyNiw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwog
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlEZXNjcmlwdG9yJik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
KTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0
aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB2aXJ0dWFs
IGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUu
bW0KaW5kZXggMmI3MTFiNDE0MDljYzgxOTcwMTA0MzE5NmYzNzQwYTQ4ZjM4MDE0Mi4uZTU5MDgy
MjhjZDE4NWM5Y2JlYThkOWNhZmY2ZDI2MTlmOTk0NGYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMjI0LDEwICsyMjQsNiBAQCBib29sIE9iamNG
YWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIE9iamNGYWxsYmFja09i
amVjdEltcDo6cHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90JikKLXsKLX0KLQogdm9pZCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6
OnB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0
UHJvcGVydHlTbG90JikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9x
dC9xdF9ydW50aW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNw
cAppbmRleCA1MDgwMDgyY2QzNDcyOTJiMmViNTYwZjU3ODlkODkxMmVjZDY2OGViLi5iODk5ZDM4
YmRmNjA2YWMyN2NjM2Y1ZTM2M2U0YjQ3ZjA2MmU3YzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3F0L3F0X3J1bnRpbWUuY3BwCkBAIC05NjAsNyArOTYwLDcgQEAgSlNWYWx1ZSBjb252ZXJ0UVZh
cmlhbnRUb1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxSb290T2JqZWN0PiByb290
LCBjb24KICAgICAgICAgICAgIEpTVmFsdWUgdmFsID0gY29udmVydFFWYXJpYW50VG9WYWx1ZShl
eGVjLCByb290LmdldCgpLCBpLnZhbHVlKCkpOwogICAgICAgICAgICAgaWYgKHZhbCkgewogICAg
ICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgICAgIHJldC0+
cHV0VmlydHVhbChleGVjLCBJZGVudGlmaWVyKGV4ZWMsIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPGNv
bnN0IFVDaGFyICo+KHMuY29uc3REYXRhKCkpLCBzLmxlbmd0aCgpKSwgdmFsLCBzbG90KTsKKyAg
ICAgICAgICAgICAgICByZXQtPm1ldGhvZFRhYmxlKCktPnB1dChyZXQsIGV4ZWMsIElkZW50aWZp
ZXIoZXhlYywgcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgVUNoYXIgKj4ocy5jb25zdERhdGEo
KSksIHMubGVuZ3RoKCkpLCB2YWwsIHNsb3QpOwogICAgICAgICAgICAgICAgIC8vICMjIyBlcnJv
ciBjYXNlPwogICAgICAgICAgICAgfQogICAgICAgICAgICAgKytpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IDg3MjJlNTg1MTlhYmZlZjYwMjM2OTI0ODY4OGU1
ZjQ4YzUzNTY3NTcuLjU3NjQyZTZkZmMyZmYxZDJjZGUyODQ2MWZkMGM2N2M4MWE3YjgzOTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTE0MiwxMSArMTQyLDYg
QEAgYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSAqZXhlYywgdW5zaWduZWQgaW4KICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBpbmRleCwgc2xvdCk7CiB9CiAKLXZvaWQgUnVu
dGltZUFycmF5OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0g
ICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lk
IFJ1bnRpbWVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxSdW50
aW1lQXJyYXkqPihjZWxsKTsKQEAgLTE2NSwxMSArMTYwLDYgQEAgdm9pZCBSdW50aW1lQXJyYXk6
OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHkKICAgICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpOwogfQogCi12b2lkIFJ1bnRpbWVBcnJheTo6cHV0VmlydHVhbChFeGVjU3Rh
dGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlKQotewotICAgIHB1dEJ5SW5k
ZXgodGhpcywgZXhlYywgaW5kZXgsIHZhbHVlKTsKLX0KLQogdm9pZCBSdW50aW1lQXJyYXk6OnB1
dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBK
U1ZhbHVlIHZhbHVlKQogewogICAgIFJ1bnRpbWVBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19j
YXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmgKaW5kZXggMTc4NTJlODlkZWM3ZmM2ZGQzY2NjMzJhNWVhMGQ2OWVlOThkY2ZkZi4uMTYzODFl
ZDc3NDlhYzU1NTQxM2FhYTYyZjJiMjIzMGJlNTI2ZmRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5oCkBAIC01NSw5ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVy
dHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwotICAgIHZp
cnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgIAogICAgIHZpcnR1YWwgYm9v
bCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciAmcHJv
cGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4
IDMyOGVjYmZmOGFhYzdmYTFhNTI3MTc3YTIwODcwMTIxZDI1NzBkNGUuLmIzNDUwMDRjZGQ1MjI1
MjcxMmM5MTgxMzhkNzZmMzZjNDNhNThkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfb2JqZWN0LmNwcApAQCAtMjE2LDExICsyMTYsNiBAQCBib29sIFJ1bnRpbWVPYmplY3Q6Omdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
CiAgICAgcmV0dXJuIGluc3RhbmNlLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotdm9pZCBSdW50aW1lT2JqZWN0Ojpw
dXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIFJ1bnRpbWVPYmpl
Y3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgUnVudGltZU9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVPYmplY3Qq
PihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXggOGEyNzE5
ZTE4MWVjM2Q1ZDVjMWY3NjgwYjMyMmVjYjk3OGU2NjkyMy4uOWEwOWI3N2I5NWY3ODJmOWQ3Mjk2
ZTRjMzM4Y2M1NjhkNzM4Zjg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfb2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0
LmgKQEAgLTQ4LDcgKzQ4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3Rh
dGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGRl
bGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpOwogICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvdGVzdHF0YmluZGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3Rlc3RxdGJpbmRpbmdzLmNwcAppbmRleCBlN2Q0YTZiOWU5MmNhNGViZWY3NmYyZDA0NzYwOWZk
MTUzODU4NmU5Li41MmM2MGMwMmMwNzFkZmRiODg1N2Q0MTM4ZDI3NDZjODlkZTIxODUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdHF0YmluZGluZ3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS90ZXN0cXRiaW5kaW5ncy5jcHAKQEAgLTEwNCw3ICsxMDQsNyBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgIAogICAgICAgICBNeU9i
amVjdCogbXlPYmplY3QgPSBuZXcgTXlPYmplY3Q7CiAgICAgICAgIAotICAgICAgICBnbG9iYWwt
PnB1dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcigibXlJbnRlcmZhY2UiKSwgSW5zdGFuY2U6OmNy
ZWF0ZVJ1bnRpbWVPYmplY3QoSW5zdGFuY2U6OlF0TGFuZ3VhZ2UsICh2b2lkKilteU9iamVjdCkp
OworICAgICAgICBnbG9iYWwtPm1ldGhvZFRhYmxlKCktPnB1dChnbG9iYWwsIGV4ZWMsIElkZW50
aWZpZXIoIm15SW50ZXJmYWNlIiksIEluc3RhbmNlOjpjcmVhdGVSdW50aW1lT2JqZWN0KEluc3Rh
bmNlOjpRdExhbmd1YWdlLCAodm9pZCopbXlPYmplY3QpKTsKICAgICAgICAgCiAgICAgICAgIAog
ICAgICAgICBpZiAoY29kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggZGNi
ZWU1NTI5MTI3ZWNiZDZkZWQzYzg5M2RkOTQ0Y2FiMjU3NzM1My4uNmVlZmE5Yjc0ZmFiZGRlY2Jl
NzA2ZTg1ZjM4M2UxOWNmNjliNGNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBA
IC0zNjU3LDcgKzM2NTcsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfanNfb2JqZWN0X2FkZChFdmFz
X09iamVjdCogZXdrVmlldywgRXdrX0pTX09iamVjdCogb2JqZWN0LCBjbwogICAgIEpTQzo6SWRl
bnRpZmllciBpZCA9IEpTQzo6SWRlbnRpZmllcihleGVjLCBvYmplY3ROYW1lKTsKIAogICAgIEpT
Qzo6UHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgd2luZG93LT5wdXRWaXJ0dWFsKGV4ZWMsIGlk
LCBydW50aW1lT2JqZWN0LCBzbG90KTsKKyAgICB3aW5kb3ctPm1ldGhvZFRhYmxlKCktPnB1dCh3
aW5kb3csIGV4ZWMsIGlkLCBydW50aW1lT2JqZWN0LCBzbG90KTsKICAgICByZXR1cm4gRUlOQV9U
UlVFOwogI2Vsc2UKICAgICByZXR1cm4gRUlOQV9GQUxTRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQ
cm94eS5tbQppbmRleCAwOWU1MzllNTU0MzJmMTAwMTgzYWYzNTk1ZjJiNjI2ZTRkYmI3MDk3Li5h
ODk5N2FiOTU5M2U4YzQzZTQ0MDZhZDUyOWU4NzQxZWQzMjU4MWRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHku
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5J
bnN0YW5jZVByb3h5Lm1tCkBAIC0xMDYwLDcgKzEwNjAsNyBAQCBib29sIE5ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eTo6c2V0UHJvcGVydHkodWludDMyX3Qgb2JqZWN0SUQsIGNvbnN0IElkZW50
aWZpZQogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRlbWFyc2hhbFZhbHVlKGV4ZWMsIHZhbHVlRGF0
YSwgdmFsdWVMZW5ndGgpOwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgIG9iamVjdC0+
cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBvYmplY3Qt
Pm1ldGhvZFRhYmxlKCktPnB1dChvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOwogICAgIAogICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9uKCk7CiAgICAgcmV0dXJuIHRydWU7
CkBAIC0xMDg1LDcgKzEwODUsNyBAQCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6
c2V0UHJvcGVydHkodWludDMyX3Qgb2JqZWN0SUQsIHVuc2lnbmVkIHByb3BlcgogICAgIEpTTG9j
ayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7ICAgIAogICAgIAogICAgIEpTVmFsdWUgdmFs
dWUgPSBkZW1hcnNoYWxWYWx1ZShleGVjLCB2YWx1ZURhdGEsIHZhbHVlTGVuZ3RoKTsKLSAgICBv
YmplY3QtPnB1dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgb2JqZWN0
LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KG9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSk7CiAgICAgCiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKICAgICByZXR1cm4gdHJ1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IDQ4ZmFkMmM1YTY4NmZkYTU1MWIy
OTUyOWNiODVmMjUxZWU0MzBiMmMuLjU3ZjI0Yjg3MWU1MjQ3ZDQ1ZmYxOGRhMjE5ZGRiYjk4ZmY1
OTMzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAtNjg4LDcgKzY4OCw3IEBA
IHZvaWQgUVdlYkZyYW1lOjphZGRUb0phdmFTY3JpcHRXaW5kb3dPYmplY3QoY29uc3QgUVN0cmlu
ZyAmbmFtZSwgUU9iamVjdCAqb2JqZWN0CiAgICAgICAgICAgICBKU0M6OkJpbmRpbmdzOjpRdElu
c3RhbmNlOjpnZXRRdEluc3RhbmNlKG9iamVjdCwgcm9vdCwgb3duZXJzaGlwKS0+Y3JlYXRlUnVu
dGltZU9iamVjdChleGVjKTsKIAogICAgIEpTQzo6UHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAg
d2luZG93LT5wdXRWaXJ0dWFsKGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCByZWludGVycHJl
dF9jYXN0X3B0cjxjb25zdCBVQ2hhcio+KG5hbWUuY29uc3REYXRhKCkpLCBuYW1lLmxlbmd0aCgp
KSwgcnVudGltZU9iamVjdCwgc2xvdCk7CisgICAgd2luZG93LT5tZXRob2RUYWJsZSgpLT5wdXQo
d2luZG93LCBleGVjLCBKU0M6OklkZW50aWZpZXIoZXhlYywgcmVpbnRlcnByZXRfY2FzdF9wdHI8
Y29uc3QgVUNoYXIqPihuYW1lLmNvbnN0RGF0YSgpKSwgbmFtZS5sZW5ndGgoKSksIHJ1bnRpbWVP
YmplY3QsIHNsb3QpOwogI2VsaWYgVVNFKFY4KQogICAgIFFTY3JpcHRFbmdpbmUqIGVuZ2luZSA9
IGQtPmZyYW1lLT5zY3JpcHQoKS0+cXRTY3JpcHRFbmdpbmUoKTsKICAgICBpZiAoIWVuZ2luZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmNwcAppbmRleCBkMDU4ZWU1ZWIwZjZlNTBmZjhkOTZlMmNjNDA4NzA0Yzli
YTRjZTgxLi44MTgwM2M1YzNmN2E4ZjgzMDhkOTZkODAxYzQyNTFhMjkyMmVkNjRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuY3BwCkBAIC0zMDcsMTEgKzMwNyw2IEBAIGJvb2wgSlNOUE9iamVjdDo6Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEpTTlBPYmplY3Q6OnB1dFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgSlNOUE9iamVjdDo6cHV0KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCiB7CiAgICAgSlNOUE9iamVjdCogdGhpc09i
amVjdCA9IHN0YXRpY19jYXN0PEpTTlBPYmplY3QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4
IDRhZTEzYmFmNjA1YTE0ODI4ZDhjMjM5MDViN2IwMmMzOTYxMWRmOTYuLjQ2NTliNjM2OTExMjEz
MTc1ZGVlNmVlNzZlMWNkNjUwOGVhNWFjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaApAQCAtODUsNyArODUs
NiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Qzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgdmlydHVhbCB2b2lk
IHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRp
YyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3Qm
KTsKIAogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5j
cHAKaW5kZXggODRjZWEwYzU0Y2E5M2FjN2FmYjQ3MDUzMGY5YmU0OTRkM2NjNzhhYy4uNWZkNjMy
MDM3Y2IxYzA1NGUxZWQ2ZjNmOTc0ZjJjNmY4YjgwMWI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcApA
QCAtMTg4LDkgKzE4OCw5IEBAIGJvb2wgTlBKU09iamVjdDo6c2V0UHJvcGVydHkoTlBJZGVudGlm
aWVyIHByb3BlcnR5TmFtZSwgY29uc3QgTlBWYXJpYW50KiB2YWx1ZSkKICAgICBKU1ZhbHVlIGpz
VmFsdWUgPSBtX29iamVjdE1hcC0+Y29udmVydE5QVmFyaWFudFRvSlNWYWx1ZShleGVjLCBtX29i
amVjdE1hcC0+Z2xvYmFsT2JqZWN0KCksICp2YWx1ZSk7CiAgICAgaWYgKGlkZW50aWZpZXJSZXAt
PmlzU3RyaW5nKCkpIHsKICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIG1f
anNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllckZyb21JZGVudGlmaWVyUmVwKGV4
ZWMsIGlkZW50aWZpZXJSZXApLCBqc1ZhbHVlLCBzbG90KTsKKyAgICAgICAgbV9qc09iamVjdC0+
bWV0aG9kVGFibGUoKS0+cHV0KG1fanNPYmplY3QuZ2V0KCksIGV4ZWMsIGlkZW50aWZpZXJGcm9t
SWRlbnRpZmllclJlcChleGVjLCBpZGVudGlmaWVyUmVwKSwganNWYWx1ZSwgc2xvdCk7CiAgICAg
fSBlbHNlCi0gICAgICAgIG1fanNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllclJl
cC0+bnVtYmVyKCksIGpzVmFsdWUpOworICAgICAgICBtX2pzT2JqZWN0LT5tZXRob2RUYWJsZSgp
LT5wdXRCeUluZGV4KG1fanNPYmplY3QuZ2V0KCksIGV4ZWMsIGlkZW50aWZpZXJSZXAtPm51bWJl
cigpLCBqc1ZhbHVlKTsKICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwogICAgIAogICAgIHJl
dHVybiB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112289</attachid>
            <date>2011-10-24 18:32:28 -0700</date>
            <delta_ts>2011-10-24 18:49:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70740-20111024183226.patch</filename>
            <type>text/plain</type>
            <size>102452</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgyODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGIw
YzQ0MjkyODE3NTBmOTE3MDliNGVjYzJmZWJkNDgwNGI4YzU4ODMuLjJjOTI1OGYzZjk2NDljNjFj
ODgwYzA5ZTFkOWM5NWU0ODYxNDMwYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDg3IEBACiAyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKKyAgICAgICAgUmVtb3ZlIHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFyYXRpb25zIGFuZCBk
ZWZpbml0aW9ucyBvZiBwdXRWaXJ0dWFsLgorICAgICAgICBBbHNvIHJlcGxhY2VkIGFsbCBjYWxs
IHNpdGVzIHRvIHB1dFZpcnR1YWwgd2l0aCBhIAorICAgICAgICBjb3JyZXNwb25kaW5nIGxvb2t1
cCBpbiB0aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5o
OgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgICog
QVBJL0pTT2JqZWN0UmVmLmNwcDoKKyAgICAgICAgKEpTT2JqZWN0U2V0UHJvcGVydHkpOgorICAg
ICAgICAoSlNPYmplY3RTZXRQcm9wZXJ0eUF0SW5kZXgpOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLmV4cDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZGVmOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlv
bi5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6cHV0KToKKyAgICAgICAg
KiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAg
ICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVy
Ojpwcml2YXRlRXhlY3V0ZSk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9i
amVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmNwcDoK
KyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpwdXRQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6
OmFycmF5UHJvdG9GdW5jQ29uY2F0KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNQdXNo
KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNSZXZlcnNlKToKKyAgICAgICAgKEpTQzo6
YXJyYXlQcm90b0Z1bmNTaGlmdCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jU2xpY2Up
OgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NvcnQpOgorICAgICAgICAoSlNDOjphcnJh
eVByb3RvRnVuY1NwbGljZSk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVW5TaGlmdCk6
CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jRmlsdGVyKToKKyAgICAgICAgKEpTQzo6YXJy
YXlQcm90b0Z1bmNNYXApOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJh
eS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnB1dFNsb3dDYXNlKToKKyAgICAgICAgKEpT
Qzo6SlNBcnJheTo6cHVzaCk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnNoaWZ0Q291bnQpOgor
ICAgICAgICAoSlNDOjpKU0FycmF5Ojp1bnNoaWZ0Q291bnQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBcnJheS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ2VsbDo6cHV0KToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpwdXRCeUlu
ZGV4KToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNG
dW5jdGlvbi5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgICog
cnVudGltZS9KU05vdEFuT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6V2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dEJ5SW5kZXgpOgorICAgICAgICAo
SlNDOjpKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6cHV0KToKKyAgICAgICAgKiBydW50aW1l
L0pTU3RhdGljU2NvcGVPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29w
ZU9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL09iamVjdFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oOgorICAgICAgICAqIHJ1bnRp
bWUvUmVnRXhwT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5oOgor
ICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0
cmluZ09iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3BsaXQpOgorCisyMDExLTEwLTI0ICBNYXJrIEhh
aG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKICAgICAgICAgRml4aW5nIFdpbmRv
d3MgYnVpbGQKIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFu
Z2VMb2cKaW5kZXggMjdmYmM5Y2Q3NzhhMDU3ZWZhNTA1ZDIxNzY0NWE3Mzc2YmU4ZjU0YS4uZDhl
NDMxZmRjNzY3M2M3YmNlNDNlYjJkMGIzMmUyYmY0MzU4MDZiZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTAtMjQgIE1hcmsgSGFobmVuYmVyZyAgPG1o
YWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgcHV0VmlydHVhbAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGFsbCBkZWNs
YXJhdGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIHB1dFZpcnR1YWwuCisgICAgICAgIEFsc28gcmVw
bGFjZWQgYWxsIGNhbGwgc2l0ZXMgdG8gcHV0VmlydHVhbCB3aXRoIGEgCisgICAgICAgIGNvcnJl
c3BvbmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RUYWJsZS4KKworICAgICAgICAqIEpTVmFsdWVX
cmFwcGVyLmNwcDoKKyAgICAgICAgKEpTVmFsdWVXcmFwcGVyOjpKU09iamVjdFNldFByb3BlcnR5
KToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmNwcDoKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1w
Lmg6CisKIDIwMTEtMTAtMTkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmVkIFN0cmluZ0ltcGxCYXNlLCBmdXNpbmcgaXQgaW50byBTdHJpbmdJbXBs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggMjM2Y2ZmNGEzMWQ4NzQ3YzQwMzdjZWU3OWU2NTMzOGIwMmYxNDA1Yi4u
YjE3YmE3NDg1N2YwODUyZjc3NTU3ZGY0ZTNjYzhjMWU2NDRiMjgzZiAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQ3IEBACisyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzQwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAKKworICAgICAgICBS
ZW1vdmVkIGFsbCBkZWNsYXJhdGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIHB1dFZpcnR1YWwuCisg
ICAgICAgIEFsc28gcmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMgdG8gcHV0VmlydHVhbCB3aXRoIGEg
CisgICAgICAgIGNvcnJlc3BvbmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RUYWJsZS4KKworICAg
ICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93
Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OnB1dCk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpydW50aW1lT2JqZWN0
Q3VzdG9tUHV0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OnB1dFByb3BlcnR5KToK
KyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbToKKyAgICAgICAgKC1b
V2ViU2NyaXB0T2JqZWN0IHNldFZhbHVlOmZvcktleTpdKToKKyAgICAgICAgKC1bV2ViU2NyaXB0
T2JqZWN0IHNldFdlYlNjcmlwdFZhbHVlQXRJbmRleDp2YWx1ZTpdKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVy
KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJyaWRnZS9O
UF9qc29iamVjdC5jcHA6CisgICAgICAgIChfTlBOX1NldFByb3BlcnR5KToKKyAgICAgICAgKiBi
cmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbToKKyAgICAgICAgKEphdmFKU09iamVjdDo6c2V0TWVt
YmVyKToKKyAgICAgICAgKEphdmFKU09iamVjdDo6c2V0U2xvdCk6CisgICAgICAgICogYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1l
Lm1tOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNwcDoKKyAgICAgICAgKEpTQzo6
QmluZGluZ3M6OmNvbnZlcnRRVmFyaWFudFRvVmFsdWUpOgorICAgICAgICAqIGJyaWRnZS9ydW50
aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAg
ICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVf
b2JqZWN0Lmg6CisgICAgICAgICogYnJpZGdlL3Rlc3RxdGJpbmRpbmdzLmNwcDoKKyAgICAgICAg
KG1haW4pOgorCiAyMDExLTEwLTIxICBOYXQgRHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIEFkZCBpc1RyYWNlRXZlbnRFbmFibGVkIHRvIFBsYXRmb3JtU3Vw
cG9ydC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBhNzg4YzUxZTI4NDA0NjZjOTA5MzM5NDJhMzQ0Njc0
YmMxZTYwMzQ1Li40MWVkYjc0ZjRlMzU3MDg5Nzk0MzU5MGI3MTFkNGI5NTk4NzU4Zjk2IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMjQgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgcHV0VmlydHVhbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGFs
bCBkZWNsYXJhdGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIHB1dFZpcnR1YWwuCisgICAgICAgIEFs
c28gcmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMgdG8gcHV0VmlydHVhbCB3aXRoIGEgCisgICAgICAg
IGNvcnJlc3BvbmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RUYWJsZS4KKworICAgICAgICAqIGV3
ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChld2tfdmlld19qc19vYmplY3RfYWRkKToKKwogMjAx
MS0xMC0yMSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAg
ICAgIFtFRkxdIENoYW5nZSBlZmwgc3R5bGUgbG9jYWwgdmFyaWFibGVzIHdpdGggV2ViS2l0IGNv
ZGluZyBTdHlsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4OTFhZjA2N2EwOTZjODYxNDQxNGM1MmI5
N2QzMWIwMWQwNzJjOGI4Li5hMzRkNWI0NjExNWQzYWIzMmFhMjQ5ZTJmODQ0Y2MwNzMyOTk0OWIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMjQgIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgcHV0Vmly
dHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3
NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1v
dmVkIGFsbCBkZWNsYXJhdGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIHB1dFZpcnR1YWwuCisgICAg
ICAgIEFsc28gcmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMgdG8gcHV0VmlydHVhbCB3aXRoIGEgCisg
ICAgICAgIGNvcnJlc3BvbmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RUYWJsZS4KKworICAgICAg
ICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAg
ICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpzZXRQcm9wZXJ0eSk6CisK
IDIwMTEtMTAtMjQgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViS2l0IGRvZXNuJ3QgYnVpbGQgd2l0aCByZWNlbnQgY2hhbmdlcyB0byBsaWJkaXNwYXRj
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwppbmRleCA0OGE1Yjg5NjA1ZGYwMGRlY2EwMzNkYzc0NWY1NTY3NDNjZGU0
ZTJhLi42ZGZhZjc4NzNjOGRmMDVjMGQ1ZTY2MTdjZDRmM2I5NGUwODBmNjdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFo
bmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHB1dFZpcnR1YWwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzQwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFy
YXRpb25zIGFuZCBkZWZpbml0aW9ucyBvZiBwdXRWaXJ0dWFsLgorICAgICAgICBBbHNvIHJlcGxh
Y2VkIGFsbCBjYWxsIHNpdGVzIHRvIHB1dFZpcnR1YWwgd2l0aCBhIAorICAgICAgICBjb3JyZXNw
b25kaW5nIGxvb2t1cCBpbiB0aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAgKiBBcGkvcXdlYmZy
YW1lLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZTo6YWRkVG9KYXZhU2NyaXB0V2luZG93T2JqZWN0
KToKKwogMjAxMS0xMC0yNCAgRGVlcGFrIFNoZXJ2ZWdoYXIgIDxicHd2NjRAbW90b3JvbGEuY29t
PgogCiAgICAgICAgIFtRdF0gZmFzdC9ldmVudHMvbWVkaWEtZm9jdXMtaW4tc3RhbmRhbG9uZS1t
ZWRpYS1kb2N1bWVudC5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDcxMjlhOTUyOWUxMWRjYzA3
MjZhN2NmZWJmNWNiYTAyZmM2MTg3ZS4uZTc0YTYzOTUxMmIwYmUyNDZjOGU3N2RhN2Q4MTRkNzRj
ZmMzMDhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEwLTI0ICBNYXJrIEhh
aG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHB1dFZp
cnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcw
NzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlZCBhbGwgZGVjbGFyYXRpb25zIGFuZCBkZWZpbml0aW9ucyBvZiBwdXRWaXJ0dWFsLgorICAg
ICAgICBBbHNvIHJlcGxhY2VkIGFsbCBjYWxsIHNpdGVzIHRvIHB1dFZpcnR1YWwgd2l0aCBhIAor
ICAgICAgICBjb3JyZXNwb25kaW5nIGxvb2t1cCBpbiB0aGUgTWV0aG9kVGFibGUuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5QSlNPYmplY3Q6OnNldFByb3BlcnR5KToKKwogMjAxMS0xMC0yNCAgTWljaGFlbCBTYWJv
ZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQgZG9lc24ndCBidWlsZCB3
aXRoIHJlY2VudCBjaGFuZ2VzIHRvIGxpYmRpc3BhdGNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDM5OGRkMDNkMDc3NDUwYzAyNjU5Y2I0YWVl
YTFlYjYwYzI2YTcyMzEuLjhiN2I2N2ZkNjRlOGQ5MTk4NGVmOTY3NjRmMzM3MDY4YTVhNDg0OTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCkBAIC0x
ODIsNyArMTgyLDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIAotICAgIHZpcnR1
YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAg
ICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IDFkYmIxZDVjNzI2N2FhMGZmZDM0ZjA2NWJiZDcw
YzJkZjQzYzg2N2IuLjM1MGIyZGI2ZDVjYWU4ZTVjMjYyYzk3OTdhMGQwNDAxMjIyOTgxOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCkBAIC0yMDgsMTIgKzIwOCw2IEBAIGJvb2wgSlNDYWxsYmFja09iamVjdDxQYXJl
bnQ+OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJCiB9
CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci12b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHB1dCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0KLQotdGVtcGxhdGUgPGNs
YXNzIFBhcmVudD4KIHZvaWQgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpwdXQoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTQ2FsbGJhY2tPYmpl
Y3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0Kj4oY2VsbCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDZkNWYwM2Q2NWU0
MzdiZmIwMmQxZWNmZGI2NDQ2MWRiYTY0N2E2Y2UuLjlkNjZkNTg3ZjViN2I3YTYyYWJjNzI3Mzcy
NmZiMWRlOWE0ZjRlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNP
YmplY3RSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYu
Y3BwCkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBKU09iamVjdFNldFByb3BlcnR5KEpTQ29udGV4
dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGUKICAgICAgICAg
anNPYmplY3QtPnB1dFdpdGhBdHRyaWJ1dGVzKGV4ZWMsIG5hbWUsIGpzVmFsdWUsIGF0dHJpYnV0
ZXMpOwogICAgIGVsc2UgewogICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAg
anNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgbmFtZSwganNWYWx1ZSwgc2xvdCk7CisgICAgICAg
IGpzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXQoanNPYmplY3QsIGV4ZWMsIG5hbWUsIGpzVmFs
dWUsIHNsb3QpOwogICAgIH0KIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewpAQCAt
MzEyLDcgKzMxMiw3IEBAIHZvaWQgSlNPYmplY3RTZXRQcm9wZXJ0eUF0SW5kZXgoSlNDb250ZXh0
UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCB1bnNpZ25lZCBwCiAgICAgSlNPYmplY3QqIGpz
T2JqZWN0ID0gdG9KUyhvYmplY3QpOwogICAgIEpTVmFsdWUganNWYWx1ZSA9IHRvSlMoZXhlYywg
dmFsdWUpOwogICAgIAotICAgIGpzT2JqZWN0LT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5SW5k
ZXgsIGpzVmFsdWUpOworICAgIGpzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGpz
T2JqZWN0LCBleGVjLCBwcm9wZXJ0eUluZGV4LCBqc1ZhbHVlKTsKICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpIHsKICAgICAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgICpleGNl
cHRpb24gPSB0b1JlZihleGVjLCBleGVjLT5leGNlcHRpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBjZTIxNjE3OGE5YTM2MDFmMWFiN2JhNmMxOTY2
MzI4M2RiZTU2ZTNkLi41N2NjYjdiMjc2MDBkOWQ4YjA5YjU3MDgzY2IwNWI3OGE4YWY5ZTFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTE1OSw3ICsxNTks
NiBAQCBfX1pOM0pTQzEzU2FtcGxpbmdGbGFnczVzdGFydEV2CiBfX1pOM0pTQzEzU2FtcGxpbmdG
bGFnczdzX2ZsYWdzRQogX19aTjNKU0MxM1N0YXRlbWVudE5vZGU2c2V0TG9jRWlpCiBfX1pOM0pT
QzE0SlNHbG9iYWxPYmplY3QxMGdsb2JhbEV4ZWNFdgotX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0
MTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVl
RVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEyZGVmaW5l
R2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVBOU184SlNPYmplY3RFagog
X19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTJkZWZpbmVTZXR0ZXJFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFUE5TXzhKU09iamVjdEVqCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Qx
M2NsZWFyUmFyZURhdGFFUE5TXzZKU0NlbGxFCkBAIC0yNTgsOCArMjU3LDYgQEAgX19aTjNKU0M0
WWFycjExWWFyclBhdHRlcm5DMUVSS05TXzdVU3RyaW5nRWJiUFBLYwogX19aTjNKU0M0WWFycjEx
Ynl0ZUNvbXBpbGVFUk5TMF8xMVlhcnJQYXR0ZXJuRVBOM1dURjIwQnVtcFBvaW50ZXJBbGxvY2F0
b3JFCiBfX1pOM0pTQzRZYXJyOWludGVycHJldEVQTlMwXzE1Qnl0ZWNvZGVQYXR0ZXJuRVJLTlNf
N1VTdHJpbmdFampQaQogX19aTjNKU0M0Y2FsbEVQTlNfOUV4ZWNTdGF0ZUVOU183SlNWYWx1ZUVO
U184Q2FsbFR5cGVFUktOU184Q2FsbERhdGFFUzJfUktOU183QXJnTGlzdEUKLV9fWk4zSlNDNkpT
Q2VsbDEwcHV0VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNW
YWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCi1fX1pOM0pTQzZKU0NlbGwxMHB1dFZpcnR1YWxF
UE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRQogX19aTjNKU0M2SlNDZWxsMTFnZXRDYWxsRGF0
YUVQUzBfUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlNDNkpTQ2VsbDE2Z2V0Q29uc3RydWN0RGF0YUVQ
UzBfUk5TXzEzQ29uc3RydWN0RGF0YUUKIF9fWk4zSlNDNkpTQ2VsbDIxZGVsZXRlUHJvcGVydHlW
aXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQpAQCAtMzA3LDggKzMwNCw2
IEBAIF9fWk4zSlNDOERlYnVnZ2VyNmF0dGFjaEVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4z
SlNDOERlYnVnZ2VyNmRldGFjaEVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDOERlYnVn
Z2VyRDJFdgogX19aTjNKU0M4SlNPYmplY3QxMHB1dEJ5SW5kZXhFUE5TXzZKU0NlbGxFUE5TXzlF
eGVjU3RhdGVFak5TXzdKU1ZhbHVlRQotX19aTjNKU0M4SlNPYmplY3QxMHB1dFZpcnR1YWxFUE5T
XzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVy
dHlTbG90RQotX19aTjNKU0M4SlNPYmplY3QxMHB1dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFak5T
XzdKU1ZhbHVlRQogX19aTjNKU0M4SlNPYmplY3QxMWhhc0luc3RhbmNlRVBOU185RXhlY1N0YXRl
RU5TXzdKU1ZhbHVlRVMzXwogX19aTjNKU0M4SlNPYmplY3QxMmRlZmluZUdldHRlckVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagogX19aTjNKU0M4SlNPYmplY3QxMmRlZmlu
ZVNldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCBmMmY5
YTM0YTA0NDg0NWQ5YmZlMDBiYmU2MjIwYzQ3MzE0YzkyZmI5Li5hOTVlYWRlNmIwZGU4OWNjZTgw
MGRhYTlkYjJlNjRmN2FkZDU0MGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMjc3LDExICsyNzcsNiBAQCBFWFBPUlRTCiAg
ICAgP3B1dEJ5SW5kZXhASlNCeXRlQXJyYXlASlNDQEBTQVhQQVZKU0NlbGxAMkBQQVZFeGVjU3Rh
dGVAMkBJVkpTVmFsdWVAMkBAWgogICAgID9wdXRCeUluZGV4QEpTT2JqZWN0QEpTQ0BAU0FYUEFW
SlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJASVZKU1ZhbHVlQDJAQFoKICAgICA/cHV0RGlyZWN0SW50
ZXJuYWxASlNPYmplY3RASlNDQEBBQUVfTkFBVkpTR2xvYmFsRGF0YUAyQEFCVklkZW50aWZpZXJA
MkBWSlNWYWx1ZUAyQElfTkFBVlB1dFByb3BlcnR5U2xvdEAyQFBBVkpTQ2VsbEAyQEBaCi0gICAg
P3B1dFZpcnR1YWxASlNDZWxsQEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJA
MkBWSlNWYWx1ZUAyQEFBVlB1dFByb3BlcnR5U2xvdEAyQEBaCi0gICAgP3B1dFZpcnR1YWxASlND
ZWxsQEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQElWSlNWYWx1ZUAyQEBaCi0gICAgP3B1dFZpcnR1
YWxASlNHbG9iYWxPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAy
QFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJAQFoKLSAgICA/cHV0VmlydHVhbEBKU09i
amVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBB
QVZQdXRQcm9wZXJ0eVNsb3RAMkBAWgotICAgID9wdXRWaXJ0dWFsQEpTT2JqZWN0QEpTQ0BAVUFF
WFBBVkV4ZWNTdGF0ZUAyQElWSlNWYWx1ZUAyQEBaCiAgICAgP3B1dFdpdGhBdHRyaWJ1dGVzQEpT
R2xvYmFsT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBWSlNW
YWx1ZUAyQElAWgogICAgID9wdXRXaXRoQXR0cmlidXRlc0BKU09iamVjdEBKU0NAQFVBRVhQQVZF
eGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBJQFoKICAgICA/cHV0V2l0aEF0
dHJpYnV0ZXNASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAy
QFZKU1ZhbHVlQDJASV9OQUFWUHV0UHJvcGVydHlTbG90QDJAQFoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKaW5kZXggNzBl
MWJhZWI2ZTBiNDBlY2QwNjVkNGZhMjc5ZGMwMDJjMWVlZjg3ZS4uODhiOWI0ODk5OGIwNTMzYWVi
YTlkZGMwOTg5YjdkNGViYjAwOGYwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKQEAgLTcwLDE0ICs3MCwxMCBAQCBi
b29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFj
dGl2YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9uLT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLXZvaWQgRGVidWdnZXJBY3RpdmF0aW9u
OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIERlYnVnZ2Vy
QWN0aXZhdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKLSAgICBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3Rp
dmF0aW9uLT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAg
IERlYnVnZ2VyQWN0aXZhdGlvbiogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PERlYnVnZ2VyQWN0
aXZhdGlvbio+KGNlbGwpOworICAgIHRoaXNPYmplY3QtPm1fYWN0aXZhdGlvbi0+bWV0aG9kVGFi
bGUoKS0+cHV0KHRoaXNPYmplY3QtPm1fYWN0aXZhdGlvbi5nZXQoKSwgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpwdXRXaXRo
QXR0cmlidXRlcyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRleCAzZDdiMDI2
ODIxZjk2NjU3ODlmYzA0ZDAzNmRlZTQ4ODBlMzhiZjdjLi5lZGFlYmEwNmI0ZTUzMmU3ODM0NjVk
YzQyMDgxNTRlYTE4MzYwMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00NSw3ICs0NSw2IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1
dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwg
dW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0
eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDZjNmJiOWM4
YTMyZTBlMzI0ZDhhYWUwZjZkYTI1MmM2ODJiZDUxNjQuLjk5YjQ3NjY3NmZjN2U4YjEyMjU2Mzlk
ODk0NTY5MWMyNThkNTI3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmNwcApAQCAtMzc0LDEzICszNzQsMTMgQEAgRW5jb2RlZEpTVmFsdWUgREZHX09QRVJB
VElPTiBvcGVyYXRpb25BcnJheVBvcChFeGVjU3RhdGUqLCBKU0FycmF5KiBhcnJheSkKIHZvaWQg
REZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU0NlbGwqIGJhc2UsIElkZW50aWZpZXIqIHByb3Bl
cnR5TmFtZSkKIHsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdCh0cnVlKTsKLSAgICBiYXNlLT5w
dXRWaXJ0dWFsKGV4ZWMsICpwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpLCBzbG90KTsKKyAgICBiYXNlLT5tZXRob2RUYWJsZSgpLT5wdXQoYmFzZSwgZXhlYywgKnBy
b3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOwogfQogCiB2
b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdChFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNDZWxsKiBiYXNlLCBJZGVudGlmaWVy
KiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoZmFsc2UpOwotICAg
IGJhc2UtPnB1dFZpcnR1YWwoZXhlYywgKnByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRWYWx1ZSksIHNsb3QpOworICAgIGJhc2UtPm1ldGhvZFRhYmxlKCktPnB1dChiYXNlLCBl
eGVjLCAqcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7
CiB9CiAKIHZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0KEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU0NlbGwqIGJhc2Us
IElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IDgzOGY1MWM1OGI5N2U1ZmExYjg0OGVm
NGU5MjNkZDExYjU5MzMxNGEuLmFmZjUwOTA2MTgxM2ZlZTI3ZTEzM2IyMmM3NzU1ZjU2ZDMzMWEx
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcApAQCAtNzkxLDcgKzc5MSw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUo
UHJvZ3JhbUV4ZWN1dGFibGUqIHByb2dyYW0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBTCiAgICAg
ICAgICAgICBpZiAoSlNPTlBQYXRoLnNpemUoKSA9PSAxICYmIEpTT05QUGF0aFswXS5tX3R5cGUg
PT0gTGl0ZXJhbFBhcnNlcjo6SlNPTlBQYXRoRW50cnlUeXBlRGVjbGFyZSkgewogICAgICAgICAg
ICAgICAgIGlmIChnbG9iYWxPYmplY3QtPmhhc1Byb3BlcnR5KGNhbGxGcmFtZSwgSlNPTlBQYXRo
WzBdLm1fcGF0aEVudHJ5TmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICAgUHV0UHJvcGVydHlT
bG90IHNsb3Q7Ci0gICAgICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+cHV0VmlydHVhbChj
YWxsRnJhbWUsIEpTT05QUGF0aFswXS5tX3BhdGhFbnRyeU5hbWUsIEpTT05QVmFsdWUsIHNsb3Qp
OworICAgICAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dChn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgSlNPTlBQYXRoWzBdLm1fcGF0aEVudHJ5TmFtZSwgSlNP
TlBWYWx1ZSwgc2xvdCk7CiAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAg
ICAgIGdsb2JhbE9iamVjdC0+cHV0V2l0aEF0dHJpYnV0ZXMoY2FsbEZyYW1lLCBKU09OUFBhdGhb
MF0ubV9wYXRoRW50cnlOYW1lLCBKU09OUFZhbHVlLCBEb250RW51bSB8IERvbnREZWxldGUpOwog
ICAgICAgICAgICAgICAgIC8vIHZhciBkZWNsYXJhdGlvbnMgcmV0dXJuIHVuZGVmaW5lZApAQCAt
MTI1MSwxNCArMTI1MSwxNCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKEV2YWxFeGVj
dXRhYmxlKiBldmFsLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZQogICAgICAgICAgICAg
Y29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBjb2RlQmxvY2stPnZhcmlhYmxlKGkpOwogICAgICAg
ICAgICAgaWYgKCF2YXJpYWJsZU9iamVjdC0+aGFzUHJvcGVydHkoY2FsbEZyYW1lLCBpZGVudCkp
IHsKICAgICAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgICAg
ICB2YXJpYWJsZU9iamVjdC0+cHV0VmlydHVhbChjYWxsRnJhbWUsIGlkZW50LCBqc1VuZGVmaW5l
ZCgpLCBzbG90KTsKKyAgICAgICAgICAgICAgICB2YXJpYWJsZU9iamVjdC0+bWV0aG9kVGFibGUo
KS0+cHV0KHZhcmlhYmxlT2JqZWN0LCBjYWxsRnJhbWUsIGlkZW50LCBqc1VuZGVmaW5lZCgpLCBz
bG90KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbnVtRnVuY3Rpb25zOyArK2kpIHsKICAgICAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJs
ZSogZnVuY3Rpb24gPSBjb2RlQmxvY2stPmZ1bmN0aW9uRGVjbChpKTsKICAgICAgICAgICAgIFB1
dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1dFZpcnR1
YWwoY2FsbEZyYW1lLCBmdW5jdGlvbi0+bmFtZSgpLCBmdW5jdGlvbi0+bWFrZShjYWxsRnJhbWUs
IHNjb3BlQ2hhaW4pLCBzbG90KTsKKyAgICAgICAgICAgIHZhcmlhYmxlT2JqZWN0LT5tZXRob2RU
YWJsZSgpLT5wdXQodmFyaWFibGVPYmplY3QsIGNhbGxGcmFtZSwgZnVuY3Rpb24tPm5hbWUoKSwg
ZnVuY3Rpb24tPm1ha2UoY2FsbEZyYW1lLCBzY29wZUNoYWluKSwgc2xvdCk7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTM1MDMsNyArMzUwMyw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAg
ICAgICAgICAgICAgaWYgKGpzQXJyYXktPmNhblNldEluZGV4KGkpKQogICAgICAgICAgICAgICAg
ICAgICBqc0FycmF5LT5zZXRJbmRleCgqZ2xvYmFsRGF0YSwgaSwgY2FsbEZyYW1lLT5yKHZhbHVl
KS5qc1ZhbHVlKCkpOwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
anNBcnJheS0+SlNBcnJheTo6cHV0VmlydHVhbChjYWxsRnJhbWUsIGksIGNhbGxGcmFtZS0+cih2
YWx1ZSkuanNWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAganNBcnJheS0+SlNBcnJheTo6
cHV0QnlJbmRleChqc0FycmF5LCBjYWxsRnJhbWUsIGksIGNhbGxGcmFtZS0+cih2YWx1ZSkuanNW
YWx1ZSgpKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNKU0J5dGVBcnJheShnbG9iYWxEYXRh
LCBiYXNlVmFsdWUpICYmIGFzQnl0ZUFycmF5KGJhc2VWYWx1ZSktPmNhbkFjY2Vzc0luZGV4KGkp
KSB7CiAgICAgICAgICAgICAgICAgSlNCeXRlQXJyYXkqIGpzQnl0ZUFycmF5ID0gYXNCeXRlQXJy
YXkoYmFzZVZhbHVlKTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIGpzVmFsdWUgPSBjYWxsRnJh
bWUtPnIodmFsdWUpLmpzVmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggMGJjZmNkNmJj
Yzk4MzZkNjk3ZTJkMzE4MjUxOGI4NDc3OWM5N2FlZi4uYmViN2ZlYjcwZDgwMWVhZDkzMWE4Njg3
YWExNTIwYzAyMTdlZWI1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE4Miw3ICsxODIsNyBA
QCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgSlNPYmplY3QqIGFycmF5ID0gY29uc3RydWN0RW1wdHlB
cnJheShnbG9iYWxFeGVjKCkpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3Vt
ZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGFycmF5LT5wdXRWaXJ0dWFsKGdsb2JhbEV4
ZWMoKSwgaSwganNTdHJpbmcoZ2xvYmFsRXhlYygpLCBhcmd1bWVudHNbaV0pKTsKKyAgICAgICAg
ICAgIGFycmF5LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGFycmF5LCBnbG9iYWxFeGVjKCks
IGksIGpzU3RyaW5nKGdsb2JhbEV4ZWMoKSwgYXJndW1lbnRzW2ldKSk7CiAgICAgICAgIHB1dERp
cmVjdChnbG9iYWxEYXRhLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgImFyZ3VtZW50cyIpLCBh
cnJheSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmNwcAppbmRleCA3YjY2ZWRhMTMzNTk2Njk0MjFkNGI5MTNjZTg3N2RhMmVlNWRmOGY3Li5jMzk1
ZmI0MTM5NGI5MGIwN2QxYjk4MTM1MjAwMWI3MmNlZDI0MTYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKQEAgLTI2OSwxMSArMjY5LDYgQEAgdm9pZCBB
cmd1bWVudHM6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHkKICAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVj
LCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotdm9pZCBBcmd1bWVudHM6OnB1dFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIHB1dEJ5
SW5kZXgodGhpcywgZXhlYywgaSwgdmFsdWUpOwotfQotCiB2b2lkIEFyZ3VtZW50czo6cHV0QnlJ
bmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxBcmd1bWVu
dHMqPihjZWxsKTsKQEAgLTI4OSwxMSArMjg0LDYgQEAgdm9pZCBBcmd1bWVudHM6OnB1dEJ5SW5k
ZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmEK
ICAgICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXIoZXhlYywgVVN0
cmluZzo6bnVtYmVyKGkpKSwgdmFsdWUsIHNsb3QpOwogfQogCi12b2lkIEFyZ3VtZW50czo6cHV0
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHB1dCh0aGlzLCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0KLSAgICAKIHZvaWQgQXJndW1lbnRz
OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAg
IEFyZ3VtZW50cyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEFyZ3VtZW50cyo+KGNlbGwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAppbmRleCBkOTc2NTVkMTAw
OWIxNmFmOGFkNWRjZDVmYTYxYzhmZWQxMWYxZDRiLi4zZTcxYTM3NGIxNzMzMGI1ZDgxNTZhNzcx
NzBiOWIwZWQ3ZWQ3MTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVu
dHMuaApAQCAtMTQxLDkgKzE0MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlO
YW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2Rl
ID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgICAgICBzdGF0aWMgdm9pZCBw
dXRCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmNwcAppbmRleCBjNTQ0MDNiOWY1YzljMWJiZTc4ZGY0NjZkMGU2OTY1NDdiZmU2
M2FiLi5lMGE1N2JlODcwYTQxY2ZkYTAzNzZjMDlmZGMwMzUxZDc1Mzc5NWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0xNTQs
NyArMTU0LDcgQEAgc3RhdGljIEpTVmFsdWUgZ2V0UHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogb2JqLCB1bnNpZ25lZCBpbmRleCkKIHN0YXRpYyB2b2lkIHB1dFByb3BlcnR5KEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iaiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgIG9i
ai0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBvYmot
Pm1ldGhvZFRhYmxlKCktPnB1dChvYmosIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3Qp
OwogfQogCiBzdGF0aWMgdW5zaWduZWQgYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVu
ZChFeGVjU3RhdGUqIGV4ZWMsIGludCBhcmd1bWVudCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25l
ZCB1bmRlZmluZWRWYWx1ZSA9IDApCkBAIC0zNTQsMTEgKzM1NCwxMSBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jQ29uY2F0KEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICAg
ICAgaWYgKHYpCi0gICAgICAgICAgICAgICAgICAgIGFyci0+cHV0VmlydHVhbChleGVjLCBuLCB2
KTsKKyAgICAgICAgICAgICAgICAgICAgYXJyLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGFy
ciwgZXhlYywgbiwgdik7CiAgICAgICAgICAgICAgICAgbisrOwogICAgICAgICAgICAgfQogICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXJyLT5wdXRWaXJ0dWFsKGV4ZWMsIG4sIGN1ckFy
Zyk7CisgICAgICAgICAgICBhcnItPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgoYXJyLCBleGVj
LCBuLCBjdXJBcmcpOwogICAgICAgICAgICAgbisrOwogICAgICAgICB9CiAgICAgICAgIGlmIChp
ID09IGFyZ0NvdW50KQpAQCAtNDEyLDExICs0MTIsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBhcnJheVByb3RvRnVuY1B1c2goRXhlY1N0YXRlKiBleGVjKQogICAgIGZvciAodW5z
aWduZWQgbiA9IDA7IG4gPCBleGVjLT5hcmd1bWVudENvdW50KCk7IG4rKykgewogICAgICAgICAv
LyBDaGVjayBmb3IgaW50ZWdlciBvdmVyZmxvdzsgd2hlcmUgc2FmZSB3ZSBjYW4gZG8gYSBmYXN0
IHB1dCBieSBpbmRleC4KICAgICAgICAgaWYgKGxlbmd0aCArIG4gPj0gbGVuZ3RoKQotICAgICAg
ICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBsZW5ndGggKyBuLCBleGVjLT5hcmd1bWVu
dChuKSk7CisgICAgICAgICAgICB0aGlzT2JqLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHRo
aXNPYmosIGV4ZWMsIGxlbmd0aCArIG4sIGV4ZWMtPmFyZ3VtZW50KG4pKTsKICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKICAgICAgICAgICAgIElkZW50
aWZpZXIgcHJvcGVydHlOYW1lKGV4ZWMsIEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50NjRfdD4obGVu
Z3RoKSArIHN0YXRpY19jYXN0PGludDY0X3Q+KG4pKS50b1N0cmluZyhleGVjKSk7Ci0gICAgICAg
ICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgZXhlYy0+YXJndW1l
bnQobiksIHNsb3QpOworICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+cHV0KHRo
aXNPYmosIGV4ZWMsIHByb3BlcnR5TmFtZSwgZXhlYy0+YXJndW1lbnQobiksIHNsb3QpOwogICAg
ICAgICB9CiAgICAgfQogICAgIEpTVmFsdWUgbmV3TGVuZ3RoKHN0YXRpY19jYXN0PGludDY0X3Q+
KGxlbmd0aCkgKyBzdGF0aWNfY2FzdDxpbnQ2NF90PihleGVjLT5hcmd1bWVudENvdW50KCkpKTsK
QEAgLTQ0MiwxMiArNDQyLDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQ
cm90b0Z1bmNSZXZlcnNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICAgICAgaWYgKG9iajIpCi0gICAgICAg
ICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGssIG9iajIpOworICAgICAgICAgICAgdGhp
c09iai0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0aGlzT2JqLCBleGVjLCBrLCBvYmoyKTsK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhpc09iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFs
KGV4ZWMsIGspOwogCiAgICAgICAgIGlmIChvYmopCi0gICAgICAgICAgICB0aGlzT2JqLT5wdXRW
aXJ0dWFsKGV4ZWMsIGxrMSwgb2JqKTsKKyAgICAgICAgICAgIHRoaXNPYmotPm1ldGhvZFRhYmxl
KCktPnB1dEJ5SW5kZXgodGhpc09iaiwgZXhlYywgbGsxLCBvYmopOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgbGsxKTsKICAg
ICB9CkBAIC00NzUsNyArNDc1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJh
eVByb3RvRnVuY1NoaWZ0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICAgICAgaWYgKG9iaikKLSAgICAgICAg
ICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBrIC0gMSwgb2JqKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0aGlzT2Jq
LCBleGVjLCBrIC0gMSwgb2JqKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBrIC0gMSk7CiAgICAg
ICAgICAgICB9CkBAIC01MDcsNyArNTA3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhcnJheVByb3RvRnVuY1NsaWNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICAgICAgaWYgKHYpCi0gICAgICAgICAgICByZXNPYmotPnB1dFZpcnR1
YWwoZXhlYywgbiwgdik7CisgICAgICAgICAgICByZXNPYmotPm1ldGhvZFRhYmxlKCktPnB1dEJ5
SW5kZXgocmVzT2JqLCBleGVjLCBuLCB2KTsKICAgICB9CiAgICAgcmVzT2JqLT5zZXRMZW5ndGgo
bik7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNTY2LDggKzU2Niw4
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTb3J0KEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgfQogICAgICAgICAvLyBTd2FwIHRoZW1pbiBhbmQgaQogICAg
ICAgICBpZiAodGhlbWluID4gaSkgewotICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChl
eGVjLCBpLCBtaW5PYmopOwotICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCB0
aGVtaW4sIGlPYmopOworICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+cHV0QnlJ
bmRleCh0aGlzT2JqLCBleGVjLCBpLCBtaW5PYmopOworICAgICAgICAgICAgdGhpc09iai0+bWV0
aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0aGlzT2JqLCBleGVjLCB0aGVtaW4sIGlPYmopOwogICAg
ICAgICB9CiAgICAgfQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc09iaik7CkBAIC02
MjEsNyArNjIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVu
Y1NwbGljZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmICh2KQotICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBrICsgYWRkaXRpb25h
bEFyZ3MsIHYpOworICAgICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUo
KS0+cHV0QnlJbmRleCh0aGlzT2JqLCBleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MsIHYpOwogICAg
ICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5k
ZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgayArIGFkZGl0aW9uYWxBcmdzKTsKICAgICAgICAg
ICAgICAgICB9CkBAIC02MzcsNyArNjM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhcnJheVByb3RvRnVuY1NwbGljZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAg
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICAgICAgICAg
IGlmIChvYmopCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4
ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyAtIDEsIG9iaik7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzT2JqLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHRoaXNPYmosIGV4ZWMsIGsgKyBh
ZGRpdGlvbmFsQXJncyAtIDEsIG9iaik7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBr
ICsgYWRkaXRpb25hbEFyZ3MgLSAxKTsKICAgICAgICAgICAgICAgICB9CkBAIC02NDUsNyArNjQ1
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1NwbGljZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIH0KICAgICB9CiAgICAgZm9yICh1bnNpZ25lZCBrID0g
MDsgayA8IGFkZGl0aW9uYWxBcmdzOyArK2spCi0gICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwo
ZXhlYywgayArIGJlZ2luLCBleGVjLT5hcmd1bWVudChrICsgMikpOworICAgICAgICB0aGlzT2Jq
LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHRoaXNPYmosIGV4ZWMsIGsgKyBiZWdpbiwgZXhl
Yy0+YXJndW1lbnQoayArIDIpKTsKIAogICAgIHB1dFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGxlbmd0aCAtIGRlbGV0ZUNvdW50
ICsgYWRkaXRpb25hbEFyZ3MpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7
CkBAIC02NzAsMTQgKzY3MCwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5
UHJvdG9GdW5jVW5TaGlmdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICAgICAgICAgIGlmICh2KQotICAgICAgICAg
ICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGsgKyBuckFyZ3MgLSAxLCB2KTsK
KyAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0
aGlzT2JqLCBleGVjLCBrICsgbnJBcmdzIC0gMSwgdik7CiAgICAgICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywg
ayArIG5yQXJncyAtIDEpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIGZv
ciAodW5zaWduZWQgayA9IDA7IGsgPCBuckFyZ3M7ICsraykKLSAgICAgICAgdGhpc09iai0+cHV0
VmlydHVhbChleGVjLCBrLCBleGVjLT5hcmd1bWVudChrKSk7CisgICAgICAgIHRoaXNPYmotPm1l
dGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpc09iaiwgZXhlYywgaywgZXhlYy0+YXJndW1lbnQo
aykpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIobGVuZ3RoICsgbnJBcmdzKTsKICAg
ICBwdXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3Ro
LCByZXN1bHQpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTcxNiw3
ICs3MTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRmls
dGVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIAogICAgICAgICAgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBjYWNoZWRDYWxsLmNhbGwoKTsKICAgICAgICAgICAgIGlmIChyZXN1bHQudG9Cb29s
ZWFuKGV4ZWMpKQotICAgICAgICAgICAgICAgIHJlc3VsdEFycmF5LT5wdXRWaXJ0dWFsKGV4ZWMs
IGZpbHRlckluZGV4KyssIHYpOworICAgICAgICAgICAgICAgIHJlc3VsdEFycmF5LT5tZXRob2RU
YWJsZSgpLT5wdXRCeUluZGV4KHJlc3VsdEFycmF5LCBleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsK
ICAgICAgICAgfQogICAgICAgICBpZiAoayA9PSBsZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdEFycmF5KTsKQEAgLTczNyw3ICs3MzcsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRmlsdGVyKEV4ZWNTdGF0ZSogZXhl
YykKIAogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxU
eXBlLCBjYWxsRGF0YSwgYXBwbHlUaGlzLCBlYWNoQXJndW1lbnRzKTsKICAgICAgICAgaWYgKHJl
c3VsdC50b0Jvb2xlYW4oZXhlYykpCi0gICAgICAgICAgICByZXN1bHRBcnJheS0+cHV0VmlydHVh
bChleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsKKyAgICAgICAgICAgIHJlc3VsdEFycmF5LT5tZXRo
b2RUYWJsZSgpLT5wdXRCeUluZGV4KHJlc3VsdEFycmF5LCBleGVjLCBmaWx0ZXJJbmRleCsrLCB2
KTsKICAgICB9CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRBcnJheSk7CiB9CkBA
IC03OTMsNyArNzkzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3Rv
RnVuY01hcChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogCiAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FsbChleGVj
LCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBhcHBseVRoaXMsIGVhY2hBcmd1bWVudHMp
OwotICAgICAgICByZXN1bHRBcnJheS0+cHV0VmlydHVhbChleGVjLCBrLCByZXN1bHQpOworICAg
ICAgICByZXN1bHRBcnJheS0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChyZXN1bHRBcnJheSwg
ZXhlYywgaywgcmVzdWx0KTsKICAgICB9CiAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdEFycmF5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRp
b24uY3BwCmluZGV4IDg1MzEwODI1YzBmYjQ4MTk5ZTE2MWYyMzM0MWM5YTgyYWE2YzNmMWMuLjA2
ZjBiNGM1Y2Y2ODAzNjMzNTM0ZTk2OGNhNjAzYjY3MDYzYTA5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcApAQCAtMTY5LDExICsxNjksNiBA
QCBib29sIEpTQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBK
U0FjdGl2YXRpb246OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsK
LSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZv
aWQgSlNBY3RpdmF0aW9uOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIEpTQWN0aXZhdGlvbiogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpT
QWN0aXZhdGlvbio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fj
dGl2YXRpb24uaAppbmRleCBkNDRiMmI2MDZkZDE4ODI2ZTc0ZWZkZGUwNGVhNjRkNzA4NTRjN2U1
Li5hNGUyNmRhZDk2NDU5Njk1NmNhZjkyNjkyODQ4M2RkNjMzNjliM2ZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaApAQCAtNjUsNyArNjUsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVy
dHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBw
dXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmNwcAppbmRleCAzMjE0MWY4MDlmYmU1MjI1NDBjNjE1OWQxZjNm
YTdkOGNlNmIyZDllLi44OWUwYWFjNjQwY2Y3NjJkYWU1NDE4MmUyNmFhNzc5MDkwYzg0YTJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtMzM0LDExICsz
MzQsNiBAQCBib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcgogICAgIHJldHVybiBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9
CiAKLXZvaWQgSlNBcnJheTo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90
KQotewotICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0K
LQogLy8gRUNNQSAxNS40LjUuMQogdm9pZCBKU0FycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1
ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewpAQCAtMzYzLDExICszNTgsNiBAQCB2b2lkIEpT
QXJyYXk6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLAogICAgIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQgSlNBcnJheTo6cHV0VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgcHV0QnlJ
bmRleCh0aGlzLCBleGVjLCBpLCB2YWx1ZSk7Ci19Ci0KIHZvaWQgSlNBcnJheTo6cHV0QnlJbmRl
eChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1
ZSkKIHsKICAgICBKU0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNBcnJheSo+KGNl
bGwpOwpAQCAtNDA2LDcgKzM5Niw3IEBAIE5FVkVSX0lOTElORSB2b2lkIEpTQXJyYXk6OnB1dFNs
b3dDYXNlKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1CiAgICAgaWYg
KGkgPj0gTUlOX1NQQVJTRV9BUlJBWV9JTkRFWCkgewogICAgICAgICBpZiAoaSA+IE1BWF9BUlJB
WV9JTkRFWCkgewogICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgICAg
ICBwdXRWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaSksIHZhbHVlLCBzbG90
KTsKKyAgICAgICAgICAgIG1ldGhvZFRhYmxlKCktPnB1dCh0aGlzLCBleGVjLCBJZGVudGlmaWVy
Ojpmcm9tKGV4ZWMsIGkpLCB2YWx1ZSwgc2xvdCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIApAQCAtNzgxLDcgKzc3MSw3IEBAIHZvaWQgSlNBcnJheTo6cHVzaChFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiAgICAgQXJyYXlTdG9yYWdlKiBzdG9yYWdlID0gbV9zdG9y
YWdlOwogCiAgICAgaWYgKFVOTElLRUxZKHN0b3JhZ2UtPm1fbGVuZ3RoID09IDB4RkZGRkZGRkZ1
KSkgewotICAgICAgICBwdXRWaXJ0dWFsKGV4ZWMsIHN0b3JhZ2UtPm1fbGVuZ3RoLCB2YWx1ZSk7
CisgICAgICAgIG1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpcywgZXhlYywgc3RvcmFnZS0+
bV9sZW5ndGgsIHZhbHVlKTsKICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVSYW5nZUVy
cm9yKGV4ZWMsICJJbnZhbGlkIGFycmF5IGxlbmd0aCIpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTgzNSw3ICs4MjUsNyBAQCB2b2lkIEpTQXJyYXk6OnNoaWZ0Q291bnQoRXhlY1N0YXRl
KiBleGVjLCBpbnQgY291bnQpCiAgICAgICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QodGhp
cyk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBwID0gcHJvdG90eXBlKCk7CiAgICAgICAgICAg
ICAgICAgaWYgKCghcC5pc051bGwoKSkgJiYgKGFzT2JqZWN0KHApLT5nZXRQcm9wZXJ0eVNsb3Qo
ZXhlYywgaSwgc2xvdCkpKQotICAgICAgICAgICAgICAgICAgICBwdXRWaXJ0dWFsKGV4ZWMsIGks
IHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOworICAgICAgICAgICAgICAgICAgICBtZXRob2RUYWJs
ZSgpLT5wdXRCeUluZGV4KHRoaXMsIGV4ZWMsIGksIHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTg4NCw3ICs4NzQsNyBAQCB2b2lkIEpTQXJy
YXk6OnVuc2hpZnRDb3VudChFeGVjU3RhdGUqIGV4ZWMsIGludCBjb3VudCkKICAgICAgICAgICAg
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlzKTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIHAg
PSBwcm90b3R5cGUoKTsKICAgICAgICAgICAgICAgICBpZiAoKCFwLmlzTnVsbCgpKSAmJiAoYXNP
YmplY3QocCktPmdldFByb3BlcnR5U2xvdChleGVjLCBpLCBzbG90KSkpCi0gICAgICAgICAgICAg
ICAgICAgIHB1dFZpcnR1YWwoZXhlYywgaSwgc2xvdC5nZXRWYWx1ZShleGVjLCBpKSk7CisgICAg
ICAgICAgICAgICAgICAgIG1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpcywgZXhlYywgaSwg
c2xvdC5nZXRWYWx1ZShleGVjLCBpKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggNmI1ZmJjNmUwY2Ix
YjdmOGNmYTUzNDdmZDRiOWU4YjdhOWRjYmMyMy4uNWI4NmFkMmIzNThhNzJiYmI5NWQxNmZkYTI1
MzBjNzAyNzZlMjFiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApA
QCAtOTksNyArOTksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlKTsgLy8gRklYTUU6IE1ha2UgcHJvdGVjdGVkIGFuZCBhZGQgc2V0SXRl
bS4KICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHN0YXRpYyBKU19FWFBP
UlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC0xNzEsNyArMTcwLDYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRl
c1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0
cnVjdHVyZUZsYWdzOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0J5dGVBcnJheS5jcHAKaW5kZXggNjcwNThiNDA5MDA5Mjc2ZGY2MmZkN2NkZGVm
MTc5ZjE2Y2NhOGVhYy4uZDZkMDE4YTdmNzQ5ZTIwZTk3MWI2MmViZmI3Y2QyNTUwYzQyMmQwMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAt
OTcsMTEgKzk3LDYgQEAgYm9vbCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRl
eChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWcKICAgICByZXR1cm4gSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBJZGVudGlmaWVyOjpmcm9t
KGV4ZWMsIHByb3BlcnR5TmFtZSksIHNsb3QpOwogfQogCi12b2lkIEpTQnl0ZUFycmF5OjpwdXRW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIEpTQnl0ZUFycmF5Ojpw
dXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpT
Qnl0ZUFycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNCeXRlQXJyYXkqPihjZWxsKTsK
QEAgLTExNCwxMSArMTA5LDYgQEAgdm9pZCBKU0J5dGVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU4KICAgICBKU09iamVj
dDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQog
Ci12b2lkIEpTQnl0ZUFycmF5OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIHB1dEJ5SW5kZXgodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7Ci19Ci0KIHZvaWQgSlNCeXRlQXJyYXk6OnB1dEJ5SW5k
ZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzdGF0aWNfY2FzdDxKU0J5dGVBcnJheSo+KGNlbGwpLT5z
ZXRJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IGRlNmI5YzI4MjZkYzI5NDZhOGI2ZmIwZmQ2
NGNjNzI0ZDRlYmMzYjMuLjRjOTU3YTNkZThiMjY5ZTYzMmViYWIxNjhjYzE0YTJhYmU0Y2IzMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaApAQCAtOTMs
OSArOTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlEZXNjcmlwdG9yJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1
ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6
SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgSlNDOjpKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0M6OkpT
Q2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFs
dWUpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0g
RXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NlbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmNwcAppbmRleCAxNTI4MzVmM2M5MGM5OTcyOWRiMzc3OTk1OTY4MTBiM2RkNTQ4YWI3
Li4zMGUyNzM1NjBlOTUzZGUwYTk1OTU4MjM2NmU2N2U0MmQ4NGUyODM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKQEAgLTk4LDI0ICs5OCwxNiBAQCBib29sIEpT
Q2VsbDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQgaQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEpTQ2VsbDo6cHV0
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpT
VmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhl
YywgaWRlbnRpZmllciwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIEpTQ2VsbDo6cHV0KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgY2VsbC0+dG9PYmpl
Y3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0VmlydHVhbChleGVjLCBp
ZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KLXZvaWQgSlNDZWxsOjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAg
ICBwdXRCeUluZGV4KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlKTsKKyAgICBKU09iamVj
dCogdGhpc09iamVjdCA9IGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSk7CisgICAgdGhpc09iamVjdC0+bWV0aG9kVGFibGUoKS0+cHV0KHRoaXNPYmplY3Qs
IGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBKU0NlbGw6OnB1dEJ5
SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpZXIs
IEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgY2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpKS0+cHV0VmlydHVhbChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSk7Cisg
ICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBjZWxsLT50b09iamVjdChleGVjLCBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCkpOworICAgIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dEJ5
SW5kZXgodGhpc09iamVjdCwgZXhlYywgaWRlbnRpZmllciwgdmFsdWUpOwogfQogCiBib29sIEpT
Q2VsbDo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5k
ZXggZWEwZWRkYzlhYmQyMzAzOGQzMjY0ZDg1NTM3YmU3MGQ4ZTg2ZDA3Mi4uNmVhNTI2OTI4MjAy
YjZkMmQ0M2MyNWU4MGVhZmYyYzhiYWQ5ODNmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDZWxsLmgKQEAgLTg5LDkgKzg5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8v
IE9iamVjdCBvcGVyYXRpb25zLCB3aXRoIHRoZSB0b09iamVjdCBvcGVyYXRpb24gaW5jbHVkZWQu
CiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3Q7CiAgICAgICAgIGNv
bnN0IE1ldGhvZFRhYmxlKiBtZXRob2RUYWJsZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhl
Y1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGlj
IHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3Bl
cnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAzODNi
OTUzZTAwOWE4OWUxYzMwMDE3OGIxOGI2YTg4NTQ1NjcxOGFhLi5jOTlkYTRlNTQyNjMwMDY0NjU0
ODM2ZmVmY2VhNGRiYWNkYTUyYzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcApAQCAtMzE3LDExICszMTcsNiBAQCB2b2lkIEpTRnVuY3Rpb246Omdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJv
cGVydAogICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywg
bW9kZSk7CiB9CiAKLXZvaWQgSlNGdW5jdGlvbjo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90JiBzbG90KQotewotICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKLX0KLQogdm9pZCBKU0Z1bmN0aW9uOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwg
UHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggZjg1YWEzODBkY2MxNDM2ZDc0MTM5ZTdlNmZkMzI0YmU5
NTIzMGNjOS4uYmQ3YzNiMWVmMDI1NzRiY2I3YmFiOTAwYmVmMGQ3ZmYwMjVjODZhNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtMTM0LDcgKzEzNCw2
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgPSBFeGNsdWRlRG9udEVudW1Q
cm9wZXJ0aWVzKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggZThlY2ZhNDNkYmFlNzgwYjY1NTcy
YWVkMWE2NDljYjgxNWE0MWZhYS4uNzFmMzcxY2Q4NGI2M2E4NGE2MWM4Mjc0ZjE4MTlkMzRhODcw
NjJhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcApAQCAtMTM2LDExICsxMzYsNiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KEpT
T2JqZWN0KiB0aGlzVmFsdWUpCiAgICAgcmVzZXQocHJvdG90eXBlKCkpOwogfQogCi12b2lkIEpT
R2xvYmFsT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17
Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2
b2lkIEpTR2xvYmFsT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIEpTR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8SlNHbG9iYWxPYmplY3QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IGU2OTAyZTliYzM4MmM5ODcyY2EwMDkxYmFjMDYw
NjBjMzA5ZGI1MWEuLmNjOTJkODM4MDA5MzQ0MWJjMGFkNTgyNjA0MDIxMzEzMzUwNDBlYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAt
MTg2LDcgKzE4Niw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
ICAgICAgICAgdmlydHVhbCBib29sIGhhc093blByb3BlcnR5Rm9yV3JpdGUoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCmluZGV4IGU5ZDQ1ZDUxMjFi
NmE5ZWJhOWFhN2Y3NmRkMzdiMDFkYjY2ZjlhODcuLmFjOGY5Nzk2MzRjMDcxYTgyNGNiZTJlOTMx
NjBjYzk4ZTIyMGVhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Tm90QW5PYmplY3QuY3BwCkBAIC03NCwyMSArNzQsMTEgQEAgYm9vbCBKU05vdEFuT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSlNOb3RBbk9iamVjdDo6cHV0VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgaWRl
bnRpZmllciwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIEpTTm90QW5PYmplY3Q6OnB1dChKU0Nl
bGwqLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImICwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90JikKIHsKICAgICBBU1NFUlRfVU5VU0VEKGV4ZWMsIGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKTsKIH0KIAotdm9pZCBKU05vdEFuT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBwdXRCeUluZGV4KHRoaXMsIGV4
ZWMsIGksIHZhbHVlKTsKLX0KLQogdm9pZCBKU05vdEFuT2JqZWN0OjpwdXRCeUluZGV4KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQsIEpTVmFsdWUpCiB7CiAgICAgQVNTRVJUX1VO
VVNFRChleGVjLCBleGVjLT5oYWRFeGNlcHRpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKaW5kZXggOGQ1ZTdiYzQ5MWYzMDE1OWEyYTc3ODAy
ODMxOGNlOGI4MGNjNjNmZi4uZGYzMjk1OWE2NmUzODc2NzNiMDc1YWQ5NmQxOTdmMWE2MDI3YTAw
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApA
QCAtNzQsMTAgKzc0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci0K
LSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5jcHAKaW5kZXggN2M1OWFlZmNlMTBmM2NkZTZiN2ZjYzY0ZWUxNTM1Mjdh
NjNkN2MyOC4uNzVkZWIyZDc3ZGIzNGQ2NDkwYzE2NDE5MzBhNDg4ZDBhNzM2M2M1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKQEAgLTcxNSw3ICs3
MTUsNyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRl
cmVkKQogICAgICAgICAgICAgICAgICAgICBpZiAoaXNKU0FycmF5KCZtX2V4ZWMtPmdsb2JhbERh
dGEoKSwgYXJyYXkpICYmIGFycmF5LT5jYW5TZXRJbmRleChpbmRleFN0YWNrLmxhc3QoKSkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICBhcnJheS0+c2V0SW5kZXgobV9leGVjLT5nbG9iYWxEYXRh
KCksIGluZGV4U3RhY2subGFzdCgpLCBmaWx0ZXJlZFZhbHVlKTsKICAgICAgICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXktPnB1dFZpcnR1YWwobV9leGVj
LCBpbmRleFN0YWNrLmxhc3QoKSwgZmlsdGVyZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBhcnJheS0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChhcnJheSwgbV9leGVjLCBpbmRl
eFN0YWNrLmxhc3QoKSwgZmlsdGVyZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4ganNOdWxsKCk7CkBAIC03NzksNyArNzc5LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFs
dWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgICAgICBpZiAo
ZmlsdGVyZWRWYWx1ZS5pc1VuZGVmaW5lZCgpKQogICAgICAgICAgICAgICAgICAgICBvYmplY3Qt
PmRlbGV0ZVByb3BlcnR5VmlydHVhbChtX2V4ZWMsIHByb3ApOwogICAgICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICAgICAgb2JqZWN0LT5wdXRWaXJ0dWFsKG1fZXhlYywgcHJvcCwg
ZmlsdGVyZWRWYWx1ZSwgc2xvdCk7CisgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+bWV0aG9k
VGFibGUoKS0+cHV0KG9iamVjdCwgbV9leGVjLCBwcm9wLCBmaWx0ZXJlZFZhbHVlLCBzbG90KTsK
ICAgICAgICAgICAgICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgICAgICAgICAgICAgIGluZGV4U3RhY2subGFz
dCgpKys7CkBAIC04MTAsNyArODEwLDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3
YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICB9CiAgICAgSlNPYmplY3QqIGZpbmFsSG9sZGVy
ID0gY29uc3RydWN0RW1wdHlPYmplY3QobV9leGVjKTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xv
dDsKLSAgICBmaW5hbEhvbGRlci0+cHV0VmlydHVhbChtX2V4ZWMsIG1fZXhlYy0+Z2xvYmFsRGF0
YSgpLnByb3BlcnR5TmFtZXMtPmVtcHR5SWRlbnRpZmllciwgb3V0VmFsdWUsIHNsb3QpOworICAg
IGZpbmFsSG9sZGVyLT5tZXRob2RUYWJsZSgpLT5wdXQoZmluYWxIb2xkZXIsIG1fZXhlYywgbV9l
eGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+ZW1wdHlJZGVudGlmaWVyLCBvdXRWYWx1
ZSwgc2xvdCk7CiAgICAgcmV0dXJuIGNhbGxSZXZpdmVyKGZpbmFsSG9sZGVyLCBqc0VtcHR5U3Ry
aW5nKG1fZXhlYyksIG91dFZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwCmluZGV4IGM2OTA5MzkxZjg2NzY3ZDEwMDc1NDQyYTRhMTFkYzdmY2Vl
M2ZhN2YuLjdhMDM0MGEyYjQxMjA1ZTAzMTQ0NzZhYWVjMzc5YjY0MDEzYmFkY2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTExOSwxMSArMTE5LDYg
QEAgc3RhdGljIHZvaWQgdGhyb3dTZXR0ZXJFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgdGhy
b3dFcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgInNldHRpbmcgYSBwcm9wZXJ0eSB0
aGF0IGhhcyBvbmx5IGEgZ2V0dGVyIikpOwogfQogCi12b2lkIEpTT2JqZWN0OjpwdXRWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiAvLyBFQ01BIDguNi4yLjIKIHZvaWQgSlNP
YmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
CkBAIC0yMDEsMTUgKzE5NiwxMSBAQCB2b2lkIEpTT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZQogICAgIHJldHVy
bjsKIH0KIAotdm9pZCBKU09iamVjdDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBwdXRCeUluZGV4KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOwotfQotCiB2b2lkIEpTT2JqZWN0OjpwdXRCeUlu
ZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgc3RhdGlj
X2Nhc3Q8SlNPYmplY3QqPihjZWxsKS0+cHV0VmlydHVhbChleGVjLCBJZGVudGlmaWVyOjpmcm9t
KGV4ZWMsIHByb3BlcnR5TmFtZSksIHZhbHVlLCBzbG90KTsKKyAgICBKU09iamVjdCogdGhpc09i
amVjdCA9IHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2VsbCk7CisgICAgdGhpc09iamVjdC0+bWV0
aG9kVGFibGUoKS0+cHV0KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywg
cHJvcGVydHlOYW1lKSwgdmFsdWUsIHNsb3QpOwogfQogCiB2b2lkIEpTT2JqZWN0OjpwdXRXaXRo
QXR0cmlidXRlcyhKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcywgYm9vbCBjaGVj
a1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC04MzQsNyArODI1LDcgQEAgYm9v
bCBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUKICAgICAgICAgICAgIGlmICghZGVzY3JpcHRvci52YWx1ZSgp
KQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgUHV0UHJvcGVydHlT
bG90IHNsb3Q7Ci0gICAgICAgICAgICBwdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVz
Y3JpcHRvci52YWx1ZSgpLCBzbG90KTsKKyAgICAgICAgICAgIG1ldGhvZFRhYmxlKCktPnB1dCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IudmFsdWUoKSwgc2xvdCk7CiAgICAg
ICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAppbmRleCAxYzI4ODU3YmZlZGQxMzU1MzM5YzFhYTkyODQ1MjA5YmY1
ZDY1MzcwLi4wNGIzYTlhY2NmOWExZjFhZGU1MDhiMTgwZTczNTBmYTkwODRiY2ZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTEwNSw5ICsxMDUsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAotICAg
ICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsK
ICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRX
aXRoQXR0cmlidXRlcyhKU0dsb2JhbERhdGEqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIGJvb2wgY2hlY2tSZWFkT25s
eSwgUHV0UHJvcGVydHlTbG90JiBzbG90KTsKQEAgLTgxMiwxMCArODEwLDExIEBAIGlubGluZSBK
U1ZhbHVlIEpTVmFsdWU6OmdldChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90CiBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXQoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKICAgICBpZiAoVU5MSUtFTFkoIWlzQ2VsbCgpKSkgewotICAgICAg
ICBzeW50aGVzaXplT2JqZWN0KGV4ZWMpLT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpOworICAgICAgICBKU09iamVjdCogdGhpc09iamVjdCA9IHN5bnRoZXNpemVP
YmplY3QoZXhlYyk7CisgICAgICAgIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dCh0aGlz
T2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KLSAgICBhc0NlbGwoKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBzbG90KTsKKyAgICBhc0NlbGwoKS0+bWV0aG9kVGFibGUoKS0+cHV0KGFzQ2VsbCgpLCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogaW5saW5lIHZvaWQgSlNWYWx1
ZTo6cHV0RGlyZWN0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC04MjgsMTAgKzgy
NywxMSBAQCBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXREaXJlY3QoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsCiBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXQo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCiB7
CiAgICAgaWYgKFVOTElLRUxZKCFpc0NlbGwoKSkpIHsKLSAgICAgICAgc3ludGhlc2l6ZU9iamVj
dChleGVjKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKKyAgICAgICAg
SlNPYmplY3QqIHRoaXNPYmplY3QgPSBzeW50aGVzaXplT2JqZWN0KGV4ZWMpOworICAgICAgICB0
aGlzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGFzQ2VsbCgp
LT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOworICAgIGFzQ2VsbCgpLT5t
ZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGFzQ2VsbCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlKTsKIH0KIAogLy8gLS0tIEpTVmFsdWUgaW5saW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRp
Y1Njb3BlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGlj
U2NvcGVPYmplY3QuY3BwCmluZGV4IDdmYTVjNDg5ZWI5YWZiNGJhNDMyZDM5NTlmMWUxZTJhYzU1
MDQ1MDcuLjRjNjRlZDg5YjAwOWYxNzQzY2EzMGJkZjNkMmJmYmY5MWE3YTllNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3Qu
Y3BwCkBAIC00OSwxMSArNDksNiBAQCBKU09iamVjdCogSlNTdGF0aWNTY29wZU9iamVjdDo6dG9U
aGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gZXhlYy0+Z2xvYmFs
VGhpc1ZhbHVlKCk7CiB9CiAKLXZvaWQgSlNTdGF0aWNTY29wZU9iamVjdDo6cHV0VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHB1dCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0KLQogdm9pZCBKU1N0YXRpY1Njb3BlT2JqZWN0Ojpw
dXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpT
U3RhdGljU2NvcGVPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1N0YXRpY1Njb3Bl
T2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1N0YXRpY1Njb3BlT2JqZWN0LmgKaW5kZXggMDMyMTFmZmYzNzk0Nzk0ODVmYjBkZWZhNDgxMDgw
ODUxMzE3ZTcyMS4uZTgyZGIxZTIzODM4NjdmMjk4MmMyZjhkZmQ4NWU2NWU4MWY0NDI5MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmpl
Y3QuaApAQCAtNDYsNyArNDYsNiBAQCBuYW1lc3BhY2UgSlNDewogICAgICAgICB2aXJ0dWFsIEpT
T2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9p
ZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAK
aW5kZXggOThlMWQxNzhkNGY0NmI0MGQ1N2I2YjExYWUwZjRkZmJlN2M4OWE5ZS4uNGNiYzU2Nzky
OTBlYmU1YzQxMDE4ZDZmZTJkYjQzZjhiNzU3ZDFiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC03NSwxMSArNzUsNiBAQCB2
b2lkIE9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdCopCiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0K
IAotdm9pZCBPYmplY3RQcm90b3R5cGU6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xv
dCk7Ci19Ci0KIHZvaWQgT2JqZWN0UHJvdG90eXBlOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwg
UHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIE9iamVjdFByb3RvdHlwZSogdGhpc09iamVj
dCA9IHN0YXRpY19jYXN0PE9iamVjdFByb3RvdHlwZSo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCBjODU5ZDU3ZjMzMWVi
NDU2MmExZTM2ZjM3OTQ3NDA4NDJkZDQxNTFkLi44ZGM3MjQ3NzhkMTBiZTBjNDBjZDIzMGJkYzJj
Zjc1YjAyNmYzMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuaApAQCAtNTAsNyArNTAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIE9iamVjdFByb3RvdHlwZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cAppbmRleCA5MGZhMzcxMzA5ZjBhNDYzNmQ3MTg1MTU3MjZmMDI3ZGYxY2YwMTc5Li42ZGY1YjM4
OTczZTJmN2RkMzQyMThiNjgxYTkzODZlMmNmMzgwM2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yOTIsMTEgKzI5
Miw2IEBAIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJCiAgICAgcmV0dXJuIGFzUmVnRXhwQ29uc3Ry
dWN0b3Ioc2xvdEJhc2UpLT5nZXRSaWdodENvbnRleHQoZXhlYyk7CiB9CiAKLXZvaWQgUmVnRXhw
Q29uc3RydWN0b3I6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsK
LSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZv
aWQgUmVnRXhwQ29uc3RydWN0b3I6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7CiAgICAgbG9va3VwUHV0PFJlZ0V4cENvbnN0cnVjdG9yLCBJbnRlcm5h
bEZ1bmN0aW9uPihleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBFeGVjU3RhdGU6OnJlZ0V4cENv
bnN0cnVjdG9yVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oY2Vs
bCksIHNsb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENv
bnN0cnVjdG9yLmgKaW5kZXggMmZmOWMxZDMzY2RkODI2MjQ1ZDZmYjZlZTk4ZDRkMTA2YzVhMGI3
OC4uYzQ1MTc5OWVmYzBlYmQ4MzgwYWM5MGYwMTNjZGU4M2I0MGFmZTY3MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBAIC03MSw3
ICs3MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKLSAgICAgICAg
dmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZv
aWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggNDcwMGZjOTNlMWZlNWJlZmM5ZTFk
NDEwMTdkZWRjOTFmM2EyOWQxMy4uNzZhMjJjNDExMWY5ZGMxZjExODRhMjEzNWYxMThmNmI0N2Uy
NTNiNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0
Y2hlc0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0
Y2hlc0FycmF5LmgKQEAgLTc2LDExICs3Niw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgcmV0dXJuIEpTQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0
eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdiwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2LCBzbG90KTsKLSAgICAgICAgfQotCiAg
ICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHYsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKICAgICAgICAgewogICAgICAgICAgICAgUmVnRXhwTWF0Y2hlc0FycmF5KiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8UmVnRXhwTWF0Y2hlc0FycmF5Kj4oY2VsbCk7CkBAIC04OSwxMSAr
ODQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIEpTQXJyYXk6OnB1dCh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHYsIHNsb3QpOwogICAgICAgICB9CiAgICAgICAgIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2KQotICAgICAgICB7Ci0gICAgICAgICAgICBwdXRCeUlu
ZGV4KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdik7Ci0gICAgICAgIH0KLSAgICAgICAgCiAg
ICAgICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2KQogICAgICAgICB7CiAgICAgICAg
ICAgICBSZWdFeHBNYXRjaGVzQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxSZWdFeHBN
YXRjaGVzQXJyYXkqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBPYmplY3QuY3BwCmluZGV4IGQ1ZTkyNDNlMzI4NjgzZjZhNjc0YWMxMzNlMWJlYWIxYTcw
ZmQ2OTguLmU4MmRmYWFhNzIwN2RhODZhYjEwZGI0ZjZhOGQwZGJjODk0NDQ1OTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtMTY1LDEx
ICsxNjUsNiBAQCBKU1ZhbHVlIHJlZ0V4cE9iamVjdExhc3RJbmRleChFeGVjU3RhdGUqLCBKU1Zh
bHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKICAgICByZXR1cm4gYXNSZWdFeHBPYmpl
Y3Qoc2xvdEJhc2UpLT5nZXRMYXN0SW5kZXgoKTsKIH0KIAotdm9pZCBSZWdFeHBPYmplY3Q6OnB1
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgUmVnRXhwT2JqZWN0
OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAg
IGxvb2t1cFB1dDxSZWdFeHBPYmplY3QsIEpTT2JqZWN0PihleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBFeGVjU3RhdGU6OnJlZ0V4cFRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxSZWdFeHBPYmpl
Y3QqPihjZWxsKSwgc2xvdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5oCmluZGV4IDBmYTM2YTUxYTY3MTAyMGNkNWM2YzJlMTA1ODU2MDg0NDc1Mzg2MmMu
LmNjNjQ2MzUxMTA3Mzc5NDNkOGMxZDMyNTg3MThiYjg5NmVhMzViZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC02OCw3ICs2OCw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lk
IHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlRE
QVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAppbmRleCA2NzUwNGNhMGZmN2Y3NmFmOTVlNWZhMDAwY2E5
NTI0YmUyNmMzNWEzLi4wNTkwMTJmZTUzZDFlNzhkMTRiMDU0YzUwYzM4ZTk4OWNiMTk3ZDUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKQEAg
LTc0LDExICs3NCw2IEBAIGJvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwCiAgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlw
dG9yKTsKIH0KIAotdm9pZCBTdHJpbmdPYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgU3RyaW5nT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1
ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggNDFkNTNhMTI2YjA1MDEyYjgyMzg5ODExNmU1NmJjMTY4
ZmYwZGRkYi4uZDEzNGMzZWNmY2UwYzllYTUwNDE3YTk3MWM0MTUzZGUzMTZkNDk1MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKQEAgLTUxLDcgKzUx
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7
CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmly
dHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggYWRiZmMyYjJmNWZjMzJmMGY5NDExZTFmZDY3ZTcx
MmI4ZWI5Y2FhOS4uZTQ5MzBmODc1YzIxMDVmMTQwOWZlNGIxZThhOGE5ZGRmMThjNzIzNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
CkBAIC04NDYsNyArODQ2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQ
cm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIGlmIChzZXBhcmF0b3JWYWx1
ZS5pc1VuZGVmaW5lZCgpKSB7CiAgICAgICAgICAgICAvLyBhLiBDYWxsIHRoZSBbW0RlZmluZU93
blByb3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kIG9mIEEgd2l0aCBhcmd1bWVudHMgIjAiLAogICAg
ICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1dOiBTLCBbW1dyaXRh
YmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVl
fSwgYW5kIGZhbHNlLgotICAgICAgICAgICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIDAsIGpz
U3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQpKTsKKyAgICAgICAgICAgIHJl
c3VsdC0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChyZXN1bHQsIGV4ZWMsIDAsIGpzU3RyaW5n
V2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQpKTsKICAgICAgICAgICAgIC8vIGIuIFJl
dHVybiBBLgogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogICAg
ICAgICB9CkBAIC04NTksNyArODU5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
dHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAvLyAgICBQ
cm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFMsIFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tF
bnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCiAg
ICAgICAgICAgICAvLyBkLiBSZXR1cm4gQS4KICAgICAgICAgICAgIGlmIChyZWctPm1hdGNoKCpn
bG9iYWxEYXRhLCBpbnB1dCwgMCkgPCAwKQotICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0Vmly
dHVhbChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7
CisgICAgICAgICAgICAgICAgcmVzdWx0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHJlc3Vs
dCwgZXhlYywgMCwganNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOwog
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogICAgICAgICB9CiAK
QEAgLTg5MCw3ICs4OTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1By
b3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIC8vICAgIHRocm91Z2gg
cSAoZXhjbHVzaXZlKS4KICAgICAgICAgICAgIC8vIDIuIENhbGwgdGhlIFtbRGVmaW5lT3duUHJv
cGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50cyBUb1N0cmluZyhsZW5n
dGhBKSwKICAgICAgICAgICAgIC8vICAgIFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFsdWVdXTog
VCwgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFi
bGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KLSAgICAgICAgICAgIHJlc3VsdC0+cHV0VmlydHVhbChl
eGVjLCByZXN1bHRMZW5ndGgsIGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlvbiwgbWF0
Y2hQb3NpdGlvbiAtIHBvc2l0aW9uKSk7CisgICAgICAgICAgICByZXN1bHQtPm1ldGhvZFRhYmxl
KCktPnB1dEJ5SW5kZXgocmVzdWx0LCBleGVjLCByZXN1bHRMZW5ndGgsIGpzU3Vic3RyaW5nKGV4
ZWMsIGlucHV0LCBwb3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiAtIHBvc2l0aW9uKSk7CiAgICAgICAg
ICAgICAvLyAzLiBJbmNyZW1lbnQgbGVuZ3RoQSBieSAxLgogICAgICAgICAgICAgLy8gNC4gSWYg
bGVuZ3RoQSA9PSBsaW0sIHJldHVybiBBLgogICAgICAgICAgICAgaWYgKCsrcmVzdWx0TGVuZ3Ro
ID09IGxpbWl0KQpAQCAtOTA5LDcgKzkwOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgICAg
IC8vICAgVG9TdHJpbmcobGVuZ3RoQSksIFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFsdWVdXTog
Y2FwW2ldLCBbW1dyaXRhYmxlXV06CiAgICAgICAgICAgICAgICAgLy8gICB0cnVlLCBbW0VudW1l
cmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KICAgICAg
ICAgICAgICAgICBpbnQgc3ViID0gb3ZlY3RvcltpICogMl07Ci0gICAgICAgICAgICAgICAgcmVz
dWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIHJlc3VsdExlbmd0aCwgc3ViIDwgMCA/IGpzVW5kZWZpbmVk
KCkgOiBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwgc3ViLCBvdmVjdG9yW2kgKiAyICsgMV0gLSBz
dWIpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQtPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgo
cmVzdWx0LCBleGVjLCByZXN1bHRMZW5ndGgsIHN1YiA8IDAgPyBqc1VuZGVmaW5lZCgpIDoganNT
dWJzdHJpbmcoZXhlYywgaW5wdXQsIHN1Yiwgb3ZlY3RvcltpICogMiArIDFdIC0gc3ViKSk7CiAg
ICAgICAgICAgICAgICAgLy8gYyBJbmNyZW1lbnQgbGVuZ3RoQSBieSAxLgogICAgICAgICAgICAg
ICAgIC8vIGQgSWYgbGVuZ3RoQSA9PSBsaW0sIHJldHVybiBBLgogICAgICAgICAgICAgICAgIGlm
ICgrK3Jlc3VsdExlbmd0aCA9PSBsaW1pdCkKQEAgLTkyOCw3ICs5MjgsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykK
ICAgICAgICAgaWYgKHNlcGFyYXRvclZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKICAgICAgICAgICAg
IC8vIGEuICBDYWxsIHRoZSBbW0RlZmluZU93blByb3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kIG9m
IEEgd2l0aCBhcmd1bWVudHMgIjAiLAogICAgICAgICAgICAgLy8gICAgIFByb3BlcnR5IERlc2Ny
aXB0b3Ige1tbVmFsdWVdXTogUywgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTog
dHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KLSAgICAgICAgICAgIHJl
c3VsdC0+cHV0VmlydHVhbChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFs
dWUsIGlucHV0KSk7CisgICAgICAgICAgICByZXN1bHQtPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5k
ZXgocmVzdWx0LCBleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlu
cHV0KSk7CiAgICAgICAgICAgICAvLyBiLiAgUmV0dXJuIEEuCiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgICAgIH0KQEAgLTk0MSw3ICs5NDEsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0
ZSogZXhlYykKICAgICAgICAgICAgIC8vICAgIFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFsdWVd
XTogUywgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1
cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KICAgICAgICAgICAgIC8vIGQuIFJldHVybiBBLgog
ICAgICAgICAgICAgaWYgKCFzZXBhcmF0b3IuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJl
c3VsdC0+cHV0VmlydHVhbChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFs
dWUsIGlucHV0KSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LT5tZXRob2RUYWJsZSgpLT5wdXRC
eUluZGV4KHJlc3VsdCwgZXhlYywgMCwganNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVl
LCBpbnB1dCkpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
ICAgICAgICB9CiAKQEAgLTk1Miw3ICs5NTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIEFT
U0VSVChsaW1pdCk7CiAKICAgICAgICAgICAgIGRvIHsKLSAgICAgICAgICAgICAgICByZXN1bHQt
PnB1dFZpcnR1YWwoZXhlYywgcG9zaXRpb24sIGpzU2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nKGV4
ZWMsIGlucHV0LCBwb3NpdGlvbikpOworICAgICAgICAgICAgICAgIHJlc3VsdC0+bWV0aG9kVGFi
bGUoKS0+cHV0QnlJbmRleChyZXN1bHQsIGV4ZWMsIHBvc2l0aW9uLCBqc1NpbmdsZUNoYXJhY3Rl
clN1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRpb24pKTsKICAgICAgICAgICAgIH0gd2hpbGUg
KCsrcG9zaXRpb24gPCBsaW1pdCk7CiAKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKQEAgLTk2OSw3ICs5NjksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIC8v
ICAgIHRocm91Z2ggcSAoZXhjbHVzaXZlKS4KICAgICAgICAgICAgIC8vIDIuIENhbGwgdGhlIFtb
RGVmaW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50cyBU
b1N0cmluZyhsZW5ndGhBKSwKICAgICAgICAgICAgIC8vICAgIFByb3BlcnR5IERlc2NyaXB0b3Ig
e1tbVmFsdWVdXTogVCwgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwg
W1tDb25maWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KLSAgICAgICAgICAgIHJlc3VsdC0+
cHV0VmlydHVhbChleGVjLCByZXN1bHRMZW5ndGgsIGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBw
b3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiAtIHBvc2l0aW9uKSk7CisgICAgICAgICAgICByZXN1bHQt
Pm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgocmVzdWx0LCBleGVjLCByZXN1bHRMZW5ndGgsIGpz
U3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiAtIHBvc2l0aW9u
KSk7CiAgICAgICAgICAgICAvLyAzLiBJbmNyZW1lbnQgbGVuZ3RoQSBieSAxLgogICAgICAgICAg
ICAgLy8gNC4gSWYgbGVuZ3RoQSA9PSBsaW0sIHJldHVybiBBLgogICAgICAgICAgICAgaWYgKCsr
cmVzdWx0TGVuZ3RoID09IGxpbWl0KQpAQCAtOTg1LDcgKzk4NSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAg
IC8vICAgICB0aHJvdWdoIHMgKGV4Y2x1c2l2ZSkuCiAgICAgLy8gMTUuIENhbGwgdGhlIFtbRGVm
aW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50cyBUb1N0
cmluZyhsZW5ndGhBKSwgUHJvcGVydHkgRGVzY3JpcHRvcgogICAgIC8vICAgICB7W1tWYWx1ZV1d
OiBULCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3Vy
YWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgotICAgIHJlc3VsdC0+cHV0VmlydHVhbChleGVjLCBy
ZXN1bHRMZW5ndGgrKywganNTdWJzdHJpbmcoZXhlYywgaW5wdXQsIHBvc2l0aW9uLCBpbnB1dC5s
ZW5ndGgoKSAtIHBvc2l0aW9uKSk7CisgICAgcmVzdWx0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUlu
ZGV4KHJlc3VsdCwgZXhlYywgcmVzdWx0TGVuZ3RoKyssIGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0
LCBwb3NpdGlvbiwgaW5wdXQubGVuZ3RoKCkgLSBwb3NpdGlvbikpOwogCiAgICAgLy8gMTYuIFJl
dHVybiBBLgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvSlNWYWx1ZVdyYXBwZXIuY3BwCmluZGV4IGFmZjlmZjNjMjc3YjZkZGU0MzA0MWIz
NzNkYTE0MmRlNmU0NzNlZTQuLjYwZDk5NTE2MDZlMWNkZTEzYzY1NDY4OTVhODEwMjYxNzJlMDc3
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNwcApAQCAtMTM2LDcg
KzEzNiw3IEBAIHZvaWQgSlNWYWx1ZVdyYXBwZXI6OkpTT2JqZWN0U2V0UHJvcGVydHkodm9pZCAq
ZGF0YSwgQ0ZTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKCiAgICAgICAgIEpTVmFsdWUgdmFsdWUg
PSBKU09iamVjdEtKU1ZhbHVlKChKU1VzZXJPYmplY3QqKWpzVmFsdWUpOwogICAgICAgICBKU09i
amVjdCAqb2JqVmFsdWUgPSBwdHItPkdldFZhbHVlKCkudG9PYmplY3QoZXhlYyk7CiAgICAgICAg
IFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBvYmpWYWx1ZS0+cHV0VmlydHVhbChleGVj
LCBDRlN0cmluZ1RvSWRlbnRpZmllcihwcm9wZXJ0eU5hbWUsIGV4ZWMpLCB2YWx1ZSwgc2xvdCk7
CisgICAgICAgIG9ialZhbHVlLT5tZXRob2RUYWJsZSgpLT5wdXQob2JqVmFsdWUsIGV4ZWMsIENG
U3RyaW5nVG9JZGVudGlmaWVyKHByb3BlcnR5TmFtZSwgZXhlYyksIHZhbHVlLCBzbG90KTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1w
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAppbmRleCA5ZTlk
MjA2NDA2NzlkMTA4YmQyNmQ1YTcyOTE1YWMxZDZmNGI1N2EwLi5lMzA4ZTgzM2U1MTg2NDA3YmJl
Yjg1NzhlZjAzMmNhZjQ2YTcwZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
VXNlck9iamVjdEltcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJ
bXAuY3BwCkBAIC0xNTIsMTEgKzE1Miw2IEBAIGJvb2wgVXNlck9iamVjdEltcDo6Z2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVuCiAgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KIAotdm9pZCBVc2VyT2JqZWN0SW1wOjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIFVzZXJPYmplY3RJbXA6OnB1dChKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQogewogICAgIFVzZXJPYmplY3RJbXAq
IHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxVc2VyT2JqZWN0SW1wKj4oY2VsbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvU291cmNlL0phdmFT
Y3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAppbmRleCAyMGI2MmY0YjU4OTk5ODkzZDdkMjAzMjc3
NDZiMmVmYzA1ZDcxNDg5Li4wMzEwZTk1ZmIwODg0NWFhMTZlZTYyMWM2Yjk0NDY1ZTM1NTkxZTg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTU2LDcgKzU2LDYgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgSlNWYWx1ZSBjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4
ZWMpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAg
IEpTVmFsdWUgdG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBw
cmVmZXJyZWRUeXBlID0gTm9QcmVmZXJlbmNlKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5k
ZXggMDBmMTIyNjY0MjRkNTM0ZTBjYjVjNDZmODAzODFhMWRjNDI4NTI1NC4uODJkY2Y5ZTRhY2Y1
NWMyZDQ0NzY4YWQwMmNkMWFiMzZhNjVjNmNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE0
MSw3ICsxNDEsNiBAQCBfX1pON1dlYkNvcmUxMENsaWVudFJlY3RDMUV2CiBfX1pON1dlYkNvcmUx
MENyZWRlbnRpYWxDMUVSS04zV1RGNlN0cmluZ0VTNF9OU18yMUNyZWRlbnRpYWxQZXJzaXN0ZW5j
ZUUKIF9fWk43V2ViQ29yZTEwQ3JlZGVudGlhbEMxRXYKIF9fWk43V2ViQ29yZTEwRmxvYXRQb2lu
dEMxRVJLTlNfOEludFBvaW50RQotX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50MTBwdXRWaXJ0dWFs
RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1
UHV0UHJvcGVydHlTbG90RQogX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50NnNfaW5mb0UKIF9fWk43
V2ViQ29yZTEwTW91c2VFdmVudDZjcmVhdGVFUktOM1dURjEyQXRvbWljU3RyaW5nRU5TMV8xMFBh
c3NSZWZQdHJJTlNfOURPTVdpbmRvd0VFRVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRFaU5TNV9J
TlNfNE5vZGVFRUUKIF9fWk43V2ViQ29yZTEwTW91c2VFdmVudEMxRVJLTjNXVEYxMkF0b21pY1N0
cmluZ0ViYk5TMV8xMFBhc3NSZWZQdHJJTlNfOURPTVdpbmRvd0VFRWlpaWlpYmJiYnROUzVfSU5T
XzExRXZlbnRUYXJnZXRFRUVOUzVfSU5TXzlDbGlwYm9hcmRFRUViCkBAIC04NDMsNyArODQyLDYg
QEAgX19aTjdXZWJDb3JlNkVkaXRvcjZpbmRlbnRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjdDb21t
YW5kQzFFdgogX19aTjdXZWJDb3JlNkVkaXRvcjdjb21tYW5kRVJLTjNXVEY2U3RyaW5nRQogX19a
TjdXZWJDb3JlNkVkaXRvcjdvdXRkZW50RXYKLV9fWk43V2ViQ29yZTZKU05vZGUxMHB1dFZpcnR1
YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFf
MTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pON1dlYkNvcmU2SlNOb2RlNnNfaW5mb0UKIF9fWk43V2Vi
Q29yZTZSZWdpb241dW5pdGVFUktTMF8KIF9fWk43V2ViQ29yZTZSZWdpb244c3VidHJhY3RFUktT
MF8KQEAgLTEwNTgsNyArMTA1Niw2IEBAIF9fWk43V2ViQ29yZTlIVE1MTmFtZXM4dmlkZW9UYWdF
CiBfX1pON1dlYkNvcmU5SFRNTE5hbWVzOWlmcmFtZVRhZ0UKIF9fWk43V2ViQ29yZTlIVE1MTmFt
ZXM5b2JqZWN0VGFnRQogX19aTjdXZWJDb3JlOUhUTUxOYW1lczlzY3JpcHRUYWdFCi1fX1pON1dl
YkNvcmU5SlNFbGVtZW50MTBwdXRWaXJ0dWFsRVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJZGVu
dGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjdXZWJDb3Jl
OUpTRWxlbWVudDZzX2luZm9FCiBfX1pON1dlYkNvcmU5UGFnZUNhY2hlMTFzZXRDYXBhY2l0eUVp
CiBfX1pON1dlYkNvcmU5UGFnZUNhY2hlMjdyZWxlYXNlQXV0b3JlbGVhc2VkUGFnZXNOb3dFdgpA
QCAtMTY5Nyw3ICsxNjk0LDYgQEAgX19aTjNKU0MxM1J1bnRpbWVNZXRob2QyNWdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWYKIF9fWk4zSlNDMTNS
dW50aW1lTWV0aG9kNnNfaW5mb0UKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kQzJFUE5TXzE0SlNH
bG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFUk4zV1RGNlZlY3RvcklQTlNfOEJpbmRpbmdzNk1l
dGhvZEVMbTBFRUUKIF9fWk4zSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0RDFFdgotX19aTjNKU0M4
QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxMHB1dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0M4
QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxMWdldENhbGxEYXRhRVBOU182SlNDZWxsRVJOU184Q2Fs
bERhdGFFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE0ZGVsZXRlUHJvcGVydHlF
UE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzhC
aW5kaW5nczEzUnVudGltZU9iamVjdDE0ZmluaXNoQ3JlYXRpb25FUE5TXzE0SlNHbG9iYWxPYmpl
Y3RFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5j
cHAKaW5kZXggMGFlMjQ3NzhhMzIxOTY4ZjljNDU4OGRkMmQwNjRlZTdiOTllZmI2MS4uZDc3OTM1
ZjllMTIzZjBkNWQxZjkwNjhiNDQ5ZjBjNzc3Y2M5NzE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMzQ0LDExICszNDQsNiBA
QCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcgogICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotdm9pZCBK
U0RPTVdpbmRvdzo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewot
ICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0KLQogdm9p
ZCBKU0RPTVdpbmRvdzo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKICAgICBKU0RPTVdpbmRvdyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9N
V2luZG93Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuY3BwCmluZGV4IGUzZDMzM2NjMzBjZDgzOTM3YzFiYzQ0ZjAxN2UxNTVkYjE5ZWJl
YTEuLjY5ZDM0NmU1M2VhMjc5MjhlYTIzMjUzOTgwMTkwMWJjNTEzZDk2OTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC0xMTUsMTQg
KzExNSwxMCBAQCBib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZQogICAgIHJldHVybiBtX3dpbmRvdy0+
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7
CiB9CiAKLXZvaWQgSlNET01XaW5kb3dTaGVsbDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90JiBzbG90KQotewotICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKLX0KLQogdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHN0YXRpY19jYXN0PEpTRE9NV2lu
ZG93U2hlbGwqPihjZWxsKS0+bV93aW5kb3ctPnB1dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgc2xvdCk7CisgICAgSlNET01XaW5kb3dTaGVsbCogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PEpTRE9NV2luZG93U2hlbGwqPihjZWxsKTsKKyAgICB0aGlzT2JqZWN0LT5tX3dpbmRv
dy0+bWV0aG9kVGFibGUoKS0+cHV0KHRoaXNPYmplY3QtPm1fd2luZG93LmdldCgpLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpw
dXRXaXRoQXR0cmlidXRlcyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCAwZDY5MjE2MDI2NTBk
ZDNkODU0MThhOTEwZGM0N2NjOGNiMGJjZWE0Li41OWZmNzkzOWQwYmQ4ZjE0ZGI4ZWViNzAzNDcw
ZGExZmNlMDQwZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dTaGVsbC5oCkBAIC04Myw3ICs4Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0Vmly
dHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2
b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgdW5zaWdu
ZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1
YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmNwcAppbmRleCAwMGNkOTY4MmI4Y2VlMGJkZDZhOTBlZDc2N2Y0ZjZkYzE3MTIz
YTI1Li4yZDY1NTNhZjQ1Y2M2ZmYzYTMwOWU1YjllY2IzOGEyMmIxYWVlYzMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9u
cy5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBib29sIHJ1bnRpbWVPYmplY3RDdXN0b21QdXQoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVgogICAgICAg
ICByZXR1cm4gMDsKICAgICBpZiAoIXNjcmlwdE9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgcHJv
cGVydHlOYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHNjcmlwdE9iamVjdC0+cHV0
VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBzY3JpcHRPYmpl
Y3QtPm1ldGhvZFRhYmxlKCktPnB1dChzY3JpcHRPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA5NjJiZjVk
OTA1MmE3MjVlMmZlMzZlYmJmZjVlN2M3ZThhYjU4M2QwLi4wMzA4NTYxMDAzN2MzYTUyYTkwNmNi
OTMyN2Q5MTQzNTBiNWEzNzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTEwMzEsNyArMTAzMSw3IEBAIHByaXZh
dGU6CiAgICAgICAgIGlmIChhcnJheS0+Y2FuU2V0SW5kZXgoaW5kZXgpKQogICAgICAgICAgICAg
YXJyYXktPnNldEluZGV4KG1fZXhlYy0+Z2xvYmFsRGF0YSgpLCBpbmRleCwgdmFsdWUpOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBhcnJheS0+cHV0VmlydHVhbChtX2V4ZWMsIGluZGV4LCB2
YWx1ZSk7CisgICAgICAgICAgICBhcnJheS0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChhcnJh
eSwgbV9leGVjLCBpbmRleCwgdmFsdWUpOwogICAgIH0KIAogICAgIHZvaWQgcHV0UHJvcGVydHko
SlNPYmplY3QqIG9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIEpTVmFsdWUgdmFs
dWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9i
amVjdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1t
CmluZGV4IDU5MTBlMzU2ZGRiZjkzODIyOTIxNzU1OTE4ODZhNDUxYzU5ZmU4N2UuLmE0ZDdjNGFh
NGI1MTViNjE5OGI0ZDI2ZmVmNWEzNjUwZWYwOWU4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCkBAIC0zNDksNyArMzQ5LDcgQEAgc3Rh
dGljIHZvaWQgZ2V0TGlzdEZyb21OU0FycmF5KEV4ZWNTdGF0ZSAqZXhlYywgTlNBcnJheSAqYXJy
YXksIFJvb3RPYmplY3QqIHJvb3QKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09u
bHkpOwogCiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgW3NlbGYgX2ltcF0tPnB1dFZp
cnR1YWwoZXhlYywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJpbmcoU3RyaW5nKGtleSkp
KSwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJnZhbHVlLCBPYmpjT2JqZWN0VHlwZSwg
W3NlbGYgX3Jvb3RPYmplY3RdKSwgc2xvdCk7CisgICAgW3NlbGYgX2ltcF0tPm1ldGhvZFRhYmxl
KCktPnB1dChbc2VsZiBfaW1wXSwgZXhlYywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJp
bmcoU3RyaW5nKGtleSkpKSwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJnZhbHVlLCBP
YmpjT2JqZWN0VHlwZSwgW3NlbGYgX3Jvb3RPYmplY3RdKSwgc2xvdCk7CiAKICAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpIHsKICAgICAgICAgYWRkRXhjZXB0aW9uVG9Db25zb2xlKGV4ZWMp
OwpAQCAtNDg2LDcgKzQ4Niw3IEBAIHN0YXRpYyB2b2lkIGdldExpc3RGcm9tTlNBcnJheShFeGVj
U3RhdGUgKmV4ZWMsIE5TQXJyYXkgKmFycmF5LCBSb290T2JqZWN0KiByb290CiAgICAgQVNTRVJU
KCFleGVjLT5oYWRFeGNlcHRpb24oKSk7CiAKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0
aW9uc09ubHkpOwotICAgIFtzZWxmIF9pbXBdLT5wdXRWaXJ0dWFsKGV4ZWMsIGluZGV4LCBjb252
ZXJ0T2JqY1ZhbHVlVG9WYWx1ZShleGVjLCAmdmFsdWUsIE9iamNPYmplY3RUeXBlLCBbc2VsZiBf
cm9vdE9iamVjdF0pKTsKKyAgICBbc2VsZiBfaW1wXS0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRl
eChbc2VsZiBfaW1wXSwgZXhlYywgaW5kZXgsIGNvbnZlcnRPYmpjVmFsdWVUb1ZhbHVlKGV4ZWMs
ICZ2YWx1ZSwgT2JqY09iamVjdFR5cGUsIFtzZWxmIF9yb290T2JqZWN0XSkpOwogCiAgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CiAgICAgICAgIGFkZEV4Y2VwdGlvblRvQ29uc29sZShl
eGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KaW5kZXggZWMxYWI0Y2VhMjAzOWI4MmM3ZDgxOWFkYjQ2MWZjMGEwZGI4NTkxZS4u
MGJiZGI0NmRjNWYyZjdkNTEyYTNjNDcxNzRmMWFlYzQ1ZTVmMTAwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTc5NSw5
ICs3OTUsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgICMgR2V0dGVycwogICAgIGlmICgk
aGFzU2V0dGVyKSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2
b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7Ci0gICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVj
U3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSk7XG4iKSBpZiAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9OwogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlND
OjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpK
U1ZhbHVlKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3Rv
bUluZGV4U2V0dGVyIn07CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBw
dXREZWxlZ2F0ZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6
SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQdXRGdW5jdGlvbiJ9OwogICAgIH0KQEAgLTEwNTgs
NyArMTA1Niw2IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAiICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7XG4iIC4KICAgICAgICAgIiAgICB9XG4iKTsKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZVB1dEZ1bmN0aW9uIn0pIHsKLSAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpT
VmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpT
Qzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICBib29sIHB1dERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgfQpA
QCAtMTQ4NCwxMSArMTQ4MSw2IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgfQog
CiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90
b3R5cGVQdXRGdW5jdGlvbiJ9KSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e2NsYXNzTmFtZX1Qcm90b3R5cGU6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdClcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwotCiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnB1
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtj
bGFzc05hbWV9UHJvdG90eXBlKj4oY2VsbCk7XG4iKTsKQEAgLTE3NjMsMTEgKzE3NTUsNiBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgIGlmICgkaGFzU2V0dGVyKSB7CiAg
ICAgICAgICAgICBpZiAoISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVB1
dEZ1bmN0aW9uIn0pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQg
JHtjbGFzc05hbWV9OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpXG4i
KTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBzbG90KTtcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAifVxuXG4iKTsKLQogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e2NsYXNzTmFtZX06OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNs
b3QpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09i
amVjdCA9IHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CkBAIC0xNzk0LDEw
ICsxNzgxLDYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3Rv
bUluZGV4U2V0dGVyIn0pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZv
aWQgJHtjbGFzc05hbWV9OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKVxuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBwdXRCeUluZGV4KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpO1xuIik7Ci0gICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnB1dEJ5SW5kZXgoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSlcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlz
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCmluZGV4IGQ2YjZlNjllOWI2YjY1NjJkMmE3NjFkOGQz
NzgwZTliMDY0NzYyOGEuLjk5ZGFkNTFmY2E0N2NjZWMzY2Y2MDkwYzZiNjE5ZTVhYmMzYzBjYTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcApAQCAtMzM3LDkgKzMzNyw5IEBA
IGJvb2wgX05QTl9TZXRQcm9wZXJ0eShOUFAsIE5QT2JqZWN0KiBvLCBOUElkZW50aWZpZXIgcHJv
cGVydHlOYW1lLCBjb25zdCBOUFZhcmlhCiAKICAgICAgICAgaWYgKGktPmlzU3RyaW5nKCkpIHsK
ICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgb2JqLT5pbXAt
PnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllckZyb21OUElkZW50aWZpZXIoZXhlYywgaS0+c3Ry
aW5nKCkpLCBjb252ZXJ0TlBWYXJpYW50VG9WYWx1ZShleGVjLCB2YXJpYW50LCByb290T2JqZWN0
KSwgc2xvdCk7CisgICAgICAgICAgICBvYmotPmltcC0+bWV0aG9kVGFibGUoKS0+cHV0KG9iai0+
aW1wLCBleGVjLCBpZGVudGlmaWVyRnJvbU5QSWRlbnRpZmllcihleGVjLCBpLT5zdHJpbmcoKSks
IGNvbnZlcnROUFZhcmlhbnRUb1ZhbHVlKGV4ZWMsIHZhcmlhbnQsIHJvb3RPYmplY3QpLCBzbG90
KTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBvYmotPmltcC0+cHV0VmlydHVhbChleGVj
LCBpLT5udW1iZXIoKSwgY29udmVydE5QVmFyaWFudFRvVmFsdWUoZXhlYywgdmFyaWFudCwgcm9v
dE9iamVjdCkpOworICAgICAgICAgICAgb2JqLT5pbXAtPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5k
ZXgob2JqLT5pbXAsIGV4ZWMsIGktPm51bWJlcigpLCBjb252ZXJ0TlBWYXJpYW50VG9WYWx1ZShl
eGVjLCB2YXJpYW50LCByb290T2JqZWN0KSk7CiAgICAgICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9u
KCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2pu
aS9qbmlfanNvYmplY3QubW0KaW5kZXggMGY5YjdmMTZhMjM3ZDk5YzhkOGM1N2Y5ZTZjNDY4MzIx
ZjNhZGMxYy4uZTg3Yzg0ZTg0NWMwOGJhZmFiYTEzMTZjYmI5ZDJiMTJlNWUwZGMwMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0KQEAgLTM0OCw3ICszNDgsNyBA
QCB2b2lkIEphdmFKU09iamVjdDo6c2V0TWVtYmVyKGpzdHJpbmcgbWVtYmVyTmFtZSwgam9iamVj
dCB2YWx1ZSkgY29uc3QKIAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7
CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgX2ltcC0+cHV0VmlydHVhbChleGVjLCBJ
ZGVudGlmaWVyKGV4ZWMsIEphdmFTdHJpbmcobWVtYmVyTmFtZSkuaW1wbCgpKSwgY29udmVydEpP
YmplY3RUb1ZhbHVlKGV4ZWMsIHZhbHVlKSwgc2xvdCk7CisgICAgX2ltcC0+bWV0aG9kVGFibGUo
KS0+cHV0KF9pbXAsIGV4ZWMsIElkZW50aWZpZXIoZXhlYywgSmF2YVN0cmluZyhtZW1iZXJOYW1l
KS5pbXBsKCkpLCBjb252ZXJ0Sk9iamVjdFRvVmFsdWUoZXhlYywgdmFsdWUpLCBzbG90KTsKIH0K
IAogCkBAIC0zOTMsNyArMzkzLDcgQEAgdm9pZCBKYXZhSlNPYmplY3Q6OnNldFNsb3QoamludCBp
bmRleCwgam9iamVjdCB2YWx1ZSkgY29uc3QKIAogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHJvb3RP
YmplY3QtPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CiAgICAgSlNMb2NrIGxvY2soU2ls
ZW5jZUFzc2VydGlvbnNPbmx5KTsKLSAgICBfaW1wLT5wdXRWaXJ0dWFsKGV4ZWMsICh1bnNpZ25l
ZClpbmRleCwgY29udmVydEpPYmplY3RUb1ZhbHVlKGV4ZWMsIHZhbHVlKSk7CisgICAgX2ltcC0+
bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChfaW1wLCBleGVjLCAodW5zaWduZWQpaW5kZXgsIGNv
bnZlcnRKT2JqZWN0VG9WYWx1ZShleGVjLCB2YWx1ZSkpOwogfQogCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggMThkNWUzNDIwYTM5MTUyYmQ2MzFlNTQ2
OGI3NjczMDViNTViNGVhNi4uZmFiY2IwYjE2YjQyZTVjZmY3Yjk5MzExMTU1YjQ3OGIwNTA0ZTg3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKQEAgLTEyNiw3
ICsxMjYsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
RGVzY3JpcHRvciYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7
CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGlj
IENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgdmlydHVhbCBi
b29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2Jq
Y19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1t
CmluZGV4IDJiNzExYjQxNDA5Y2M4MTk3MDEwNDMxOTZmMzc0MGE0OGYzODAxNDIuLmU1OTA4MjI4
Y2QxODVjOWNiZWE4ZDljYWZmNmQyNjE5Zjk5NDRmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTIyNCwxMCArMjI0LDYgQEAgYm9vbCBPYmpjRmFs
bGJhY2tPYmplY3RJbXA6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBPYmpjRmFsbGJhY2tPYmpl
Y3RJbXA6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpCi17Ci19Ci0KIHZvaWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpw
dXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQv
cXRfcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAK
aW5kZXggNTA4MDA4MmNkMzQ3MjkyYjJlYjU2MGY1Nzg5ZDg5MTJlY2Q2NjhlYi4uYjg5OWQzOGJk
ZjYwNmFjMjdjYzNmNWUzNjNlNGI0N2YwNjJlN2M1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9x
dC9xdF9ydW50aW1lLmNwcApAQCAtOTYwLDcgKzk2MCw3IEBAIEpTVmFsdWUgY29udmVydFFWYXJp
YW50VG9WYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdCwg
Y29uCiAgICAgICAgICAgICBKU1ZhbHVlIHZhbCA9IGNvbnZlcnRRVmFyaWFudFRvVmFsdWUoZXhl
Yywgcm9vdC5nZXQoKSwgaS52YWx1ZSgpKTsKICAgICAgICAgICAgIGlmICh2YWwpIHsKICAgICAg
ICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgICAgICByZXQtPnB1
dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcihleGVjLCByZWludGVycHJldF9jYXN0X3B0cjxjb25z
dCBVQ2hhciAqPihzLmNvbnN0RGF0YSgpKSwgcy5sZW5ndGgoKSksIHZhbCwgc2xvdCk7CisgICAg
ICAgICAgICAgICAgcmV0LT5tZXRob2RUYWJsZSgpLT5wdXQocmV0LCBleGVjLCBJZGVudGlmaWVy
KGV4ZWMsIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPGNvbnN0IFVDaGFyICo+KHMuY29uc3REYXRhKCkp
LCBzLmxlbmd0aCgpKSwgdmFsLCBzbG90KTsKICAgICAgICAgICAgICAgICAvLyAjIyMgZXJyb3Ig
Y2FzZT8KICAgICAgICAgICAgIH0KICAgICAgICAgICAgICsraTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX2FycmF5LmNwcAppbmRleCBlM2I1NDBlYmQ3MjAyMTdlMGRlY2JiODhjOGJhNDQ1
YWQ1Y2YwYzg4Li4wOTI2ZTlmZWQ0OGI5NzBiYzY0ZTAxZjIyN2M5MDU3OWEzY2UwZGVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0xNDIsMTEgKzE0Miw2IEBA
IGJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlICpleGVjLCB1bnNpCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIGV4ZWMsIGluZGV4LCBzbG90KTsKIH0KIAotdm9p
ZCBSdW50aW1lQXJyYXk6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkK
LXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0K
IHZvaWQgUnVudGltZUFycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIFJ1bnRpbWVBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0
PFJ1bnRpbWVBcnJheSo+KGNlbGwpOwpAQCAtMTY1LDExICsxNjAsNiBAQCB2b2lkIFJ1bnRpbWVB
cnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eQogICAgIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQgUnVudGltZUFycmF5OjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgcHV0
QnlJbmRleCh0aGlzLCBleGVjLCBpbmRleCwgdmFsdWUpOwotfQotCiB2b2lkIFJ1bnRpbWVBcnJh
eTo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5k
ZXgsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
YXJyYXkuaAppbmRleCBkZGJlMzdmZDNiOGVjZGQ2ZWFkODJhMTdlZTFmN2RhZGJiODJjMDliLi43
ZGZkODRmOTA4MWNhOTViNDIwYjk5Nzk3MDdlZGEyMDZjOGMwNGExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTU1LDkgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVh
bChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwq
LCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgIAogICAg
IHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciAmcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuY3BwCmluZGV4IDMyOGVjYmZmOGFhYzdmYTFhNTI3MTc3YTIwODcwMTIxZDI1NzBkNGUuLmIz
NDUwMDRjZGQ1MjI1MjcxMmM5MTgxMzhkNzZmMzZjNDNhNThkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMjE2LDExICsyMTYsNiBAQCBib29sIFJ1bnRp
bWVPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0
IElkZW50aWZpZXImCiAgICAgcmV0dXJuIGluc3RhbmNlLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotdm9pZCBSdW50
aW1lT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0g
ICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lk
IFJ1bnRpbWVPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7CiAgICAgUnVudGltZU9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJ1
bnRpbWVPYmplY3QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgK
aW5kZXggOGEyNzE5ZTE4MWVjM2Q1ZDVjMWY3NjgwYjMyMmVjYjk3OGU2NjkyMy4uOWEwOWI3N2I5
NWY3ODJmOWQ3Mjk2ZTRjMzM4Y2M1NjhkNzM4Zjg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfb2JqZWN0LmgKQEAgLTQ4LDcgKzQ4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgdmly
dHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdHF0YmluZGluZ3MuY3BwIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3Rlc3RxdGJpbmRpbmdzLmNwcAppbmRleCBlN2Q0YTZiOWU5MmNhNGViZWY3
NmYyZDA0NzYwOWZkMTUzODU4NmU5Li41MmM2MGMwMmMwNzFkZmRiODg1N2Q0MTM4ZDI3NDZjODlk
ZTIxODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdHF0YmluZGluZ3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS90ZXN0cXRiaW5kaW5ncy5jcHAKQEAgLTEw
NCw3ICsxMDQsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgIAog
ICAgICAgICBNeU9iamVjdCogbXlPYmplY3QgPSBuZXcgTXlPYmplY3Q7CiAgICAgICAgIAotICAg
ICAgICBnbG9iYWwtPnB1dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcigibXlJbnRlcmZhY2UiKSwg
SW5zdGFuY2U6OmNyZWF0ZVJ1bnRpbWVPYmplY3QoSW5zdGFuY2U6OlF0TGFuZ3VhZ2UsICh2b2lk
KilteU9iamVjdCkpOworICAgICAgICBnbG9iYWwtPm1ldGhvZFRhYmxlKCktPnB1dChnbG9iYWws
IGV4ZWMsIElkZW50aWZpZXIoIm15SW50ZXJmYWNlIiksIEluc3RhbmNlOjpjcmVhdGVSdW50aW1l
T2JqZWN0KEluc3RhbmNlOjpRdExhbmd1YWdlLCAodm9pZCopbXlPYmplY3QpKTsKICAgICAgICAg
CiAgICAgICAgIAogICAgICAgICBpZiAoY29kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5j
cHAKaW5kZXggZGNiZWU1NTI5MTI3ZWNiZDZkZWQzYzg5M2RkOTQ0Y2FiMjU3NzM1My4uNmVlZmE5
Yjc0ZmFiZGRlY2JlNzA2ZTg1ZjM4M2UxOWNmNjliNGNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuY3BwCkBAIC0zNjU3LDcgKzM2NTcsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfanNfb2Jq
ZWN0X2FkZChFdmFzX09iamVjdCogZXdrVmlldywgRXdrX0pTX09iamVjdCogb2JqZWN0LCBjbwog
ICAgIEpTQzo6SWRlbnRpZmllciBpZCA9IEpTQzo6SWRlbnRpZmllcihleGVjLCBvYmplY3ROYW1l
KTsKIAogICAgIEpTQzo6UHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgd2luZG93LT5wdXRWaXJ0
dWFsKGV4ZWMsIGlkLCBydW50aW1lT2JqZWN0LCBzbG90KTsKKyAgICB3aW5kb3ctPm1ldGhvZFRh
YmxlKCktPnB1dCh3aW5kb3csIGV4ZWMsIGlkLCBydW50aW1lT2JqZWN0LCBzbG90KTsKICAgICBy
ZXR1cm4gRUlOQV9UUlVFOwogI2Vsc2UKICAgICByZXR1cm4gRUlOQV9GQUxTRTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1
Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCAwOWU1MzllNTU0MzJmMTAwMTgzYWYzNTk1ZjJiNjI2
ZTRkYmI3MDk3Li5hODk5N2FiOTU5M2U4YzQzZTQ0MDZhZDUyOWU4NzQxZWQzMjU4MWRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC0xMDYwLDcgKzEwNjAsNyBAQCBib29sIE5l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0UHJvcGVydHkodWludDMyX3Qgb2JqZWN0SUQs
IGNvbnN0IElkZW50aWZpZQogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGRlbWFyc2hhbFZhbHVlKGV4
ZWMsIHZhbHVlRGF0YSwgdmFsdWVMZW5ndGgpOwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90Owot
ICAgIG9iamVjdC0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsK
KyAgICBvYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dChvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIHNsb3QpOwogICAgIAogICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9uKCk7CiAgICAg
cmV0dXJuIHRydWU7CkBAIC0xMDg1LDcgKzEwODUsNyBAQCBib29sIE5ldHNjYXBlUGx1Z2luSW5z
dGFuY2VQcm94eTo6c2V0UHJvcGVydHkodWludDMyX3Qgb2JqZWN0SUQsIHVuc2lnbmVkIHByb3Bl
cgogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7ICAgIAogICAgIAogICAg
IEpTVmFsdWUgdmFsdWUgPSBkZW1hcnNoYWxWYWx1ZShleGVjLCB2YWx1ZURhdGEsIHZhbHVlTGVu
Z3RoKTsKLSAgICBvYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7
CisgICAgb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KG9iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSk7CiAgICAgCiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKICAg
ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IDQ4ZmFkMmM1
YTY4NmZkYTU1MWIyOTUyOWNiODVmMjUxZWU0MzBiMmMuLjU3ZjI0Yjg3MWU1MjQ3ZDQ1ZmYxOGRh
MjE5ZGRiYjk4ZmY1OTMzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJm
cmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAtNjg4
LDcgKzY4OCw3IEBAIHZvaWQgUVdlYkZyYW1lOjphZGRUb0phdmFTY3JpcHRXaW5kb3dPYmplY3Qo
Y29uc3QgUVN0cmluZyAmbmFtZSwgUU9iamVjdCAqb2JqZWN0CiAgICAgICAgICAgICBKU0M6OkJp
bmRpbmdzOjpRdEluc3RhbmNlOjpnZXRRdEluc3RhbmNlKG9iamVjdCwgcm9vdCwgb3duZXJzaGlw
KS0+Y3JlYXRlUnVudGltZU9iamVjdChleGVjKTsKIAogICAgIEpTQzo6UHV0UHJvcGVydHlTbG90
IHNsb3Q7Ci0gICAgd2luZG93LT5wdXRWaXJ0dWFsKGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVj
LCByZWludGVycHJldF9jYXN0X3B0cjxjb25zdCBVQ2hhcio+KG5hbWUuY29uc3REYXRhKCkpLCBu
YW1lLmxlbmd0aCgpKSwgcnVudGltZU9iamVjdCwgc2xvdCk7CisgICAgd2luZG93LT5tZXRob2RU
YWJsZSgpLT5wdXQod2luZG93LCBleGVjLCBKU0M6OklkZW50aWZpZXIoZXhlYywgcmVpbnRlcnBy
ZXRfY2FzdF9wdHI8Y29uc3QgVUNoYXIqPihuYW1lLmNvbnN0RGF0YSgpKSwgbmFtZS5sZW5ndGgo
KSksIHJ1bnRpbWVPYmplY3QsIHNsb3QpOwogI2VsaWYgVVNFKFY4KQogICAgIFFTY3JpcHRFbmdp
bmUqIGVuZ2luZSA9IGQtPmZyYW1lLT5zY3JpcHQoKS0+cXRTY3JpcHRFbmdpbmUoKTsKICAgICBp
ZiAoIWVuZ2luZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAppbmRleCBkMDU4ZWU1ZWIwZjZlNTBmZjhkOTZl
MmNjNDA4NzA0YzliYTRjZTgxLi44MTgwM2M1YzNmN2E4ZjgzMDhkOTZkODAxYzQyNTFhMjkyMmVk
NjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCkBAIC0zMDcsMTEgKzMwNyw2IEBAIGJvb2wgSlNOUE9i
amVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEpTTlBPYmplY3Q6OnB1
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgSlNOUE9iamVjdDo6
cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCiB7CiAgICAgSlNOUE9i
amVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTTlBPYmplY3QqPihjZWxsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5oCmluZGV4IDRhZTEzYmFmNjA1YTE0ODI4ZDhjMjM5MDViN2IwMmMzOTYxMWRmOTYuLjQ2
NTliNjM2OTExMjEzMTc1ZGVlNmVlNzZlMWNkNjUwOGVhNWFjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaApA
QCAtODUsNyArODUsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAg
dmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYp
OwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQ
cm9wZXJ0eVNsb3QmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBK
U09iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TlBKU09iamVjdC5jcHAKaW5kZXggODRjZWEwYzU0Y2E5M2FjN2FmYjQ3MDUzMGY5YmU0OTRkM2Nj
NzhhYy4uNWZkNjMyMDM3Y2IxYzA1NGUxZWQ2ZjNmOTc0ZjJjNmY4YjgwMWI0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpT
T2JqZWN0LmNwcApAQCAtMTg4LDkgKzE4OCw5IEBAIGJvb2wgTlBKU09iamVjdDo6c2V0UHJvcGVy
dHkoTlBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSwgY29uc3QgTlBWYXJpYW50KiB2YWx1ZSkKICAg
ICBKU1ZhbHVlIGpzVmFsdWUgPSBtX29iamVjdE1hcC0+Y29udmVydE5QVmFyaWFudFRvSlNWYWx1
ZShleGVjLCBtX29iamVjdE1hcC0+Z2xvYmFsT2JqZWN0KCksICp2YWx1ZSk7CiAgICAgaWYgKGlk
ZW50aWZpZXJSZXAtPmlzU3RyaW5nKCkpIHsKICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7
Ci0gICAgICAgIG1fanNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllckZyb21JZGVu
dGlmaWVyUmVwKGV4ZWMsIGlkZW50aWZpZXJSZXApLCBqc1ZhbHVlLCBzbG90KTsKKyAgICAgICAg
bV9qc09iamVjdC0+bWV0aG9kVGFibGUoKS0+cHV0KG1fanNPYmplY3QuZ2V0KCksIGV4ZWMsIGlk
ZW50aWZpZXJGcm9tSWRlbnRpZmllclJlcChleGVjLCBpZGVudGlmaWVyUmVwKSwganNWYWx1ZSwg
c2xvdCk7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fanNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywg
aWRlbnRpZmllclJlcC0+bnVtYmVyKCksIGpzVmFsdWUpOworICAgICAgICBtX2pzT2JqZWN0LT5t
ZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KG1fanNPYmplY3QuZ2V0KCksIGV4ZWMsIGlkZW50aWZp
ZXJSZXAtPm51bWJlcigpLCBqc1ZhbHVlKTsKICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwog
ICAgIAogICAgIHJldHVybiB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112291</attachid>
            <date>2011-10-24 18:49:46 -0700</date>
            <delta_ts>2011-10-25 17:56:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70740-20111024184945.patch</filename>
            <type>text/plain</type>
            <size>102473</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgzMDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDRl
ZDc4NDJmMGY5YWFjMTIxZTg3MTM2MmFhZjZiYzdkZjQwMDZiMDEuLjdmOTM4MDRjMDE4YzQxNWE3
MzMzYTIzZjhlZThhYTJkMTJmZWZlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDg1IEBACisyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHB1dFZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFyYXRpb25zIGFuZCBk
ZWZpbml0aW9ucyBvZiBwdXRWaXJ0dWFsLgorICAgICAgICBBbHNvIHJlcGxhY2VkIGFsbCBjYWxs
IHNpdGVzIHRvIHB1dFZpcnR1YWwgd2l0aCBhIAorICAgICAgICBjb3JyZXNwb25kaW5nIGxvb2t1
cCBpbiB0aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5o
OgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgICog
QVBJL0pTT2JqZWN0UmVmLmNwcDoKKyAgICAgICAgKEpTT2JqZWN0U2V0UHJvcGVydHkpOgorICAg
ICAgICAoSlNPYmplY3RTZXRQcm9wZXJ0eUF0SW5kZXgpOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLmV4cDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZGVmOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlv
bi5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6cHV0KToKKyAgICAgICAg
KiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAg
ICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVy
Ojpwcml2YXRlRXhlY3V0ZSk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEdsb2JhbE9i
amVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmNwcDoK
KyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpwdXRQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6
OmFycmF5UHJvdG9GdW5jQ29uY2F0KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNQdXNo
KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNSZXZlcnNlKToKKyAgICAgICAgKEpTQzo6
YXJyYXlQcm90b0Z1bmNTaGlmdCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jU2xpY2Up
OgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NvcnQpOgorICAgICAgICAoSlNDOjphcnJh
eVByb3RvRnVuY1NwbGljZSk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVW5TaGlmdCk6
CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jRmlsdGVyKToKKyAgICAgICAgKEpTQzo6YXJy
YXlQcm90b0Z1bmNNYXApOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJh
eS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnB1dFNsb3dDYXNlKToKKyAgICAgICAgKEpT
Qzo6SlNBcnJheTo6cHVzaCk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnNoaWZ0Q291bnQpOgor
ICAgICAgICAoSlNDOjpKU0FycmF5Ojp1bnNoaWZ0Q291bnQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBcnJheS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ2VsbDo6cHV0KToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpwdXRCeUlu
ZGV4KToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNG
dW5jdGlvbi5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgICog
cnVudGltZS9KU05vdEFuT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6V2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dEJ5SW5kZXgpOgorICAgICAgICAo
SlNDOjpKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6cHV0KToKKyAgICAgICAgKiBydW50aW1l
L0pTU3RhdGljU2NvcGVPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29w
ZU9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL09iamVjdFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oOgorICAgICAgICAqIHJ1bnRp
bWUvUmVnRXhwT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5oOgor
ICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0
cmluZ09iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3BsaXQpOgorCiAyMDExLTEwLTI0ICBPbGl2ZXIg
SHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4gdm9pZCBKU0M6OnZh
bGlkYXRlQ2VsbDxKU0M6OlJlZ0V4cCo+KEpTQzo6UmVnRXhwKikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdl
TG9nCmluZGV4IDI3ZmJjOWNkNzc4YTA1N2VmYTUwNWQyMTc2NDVhNzM3NmJlOGY1NGEuLmQ4ZTQz
MWZkYzc2NzNjN2JjZTQzZWIyZDBiMzJlMmJmNDM1ODA2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFo
bmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHB1dFZpcnR1YWwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzQwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFy
YXRpb25zIGFuZCBkZWZpbml0aW9ucyBvZiBwdXRWaXJ0dWFsLgorICAgICAgICBBbHNvIHJlcGxh
Y2VkIGFsbCBjYWxsIHNpdGVzIHRvIHB1dFZpcnR1YWwgd2l0aCBhIAorICAgICAgICBjb3JyZXNw
b25kaW5nIGxvb2t1cCBpbiB0aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAgKiBKU1ZhbHVlV3Jh
cHBlci5jcHA6CisgICAgICAgIChKU1ZhbHVlV3JhcHBlcjo6SlNPYmplY3RTZXRQcm9wZXJ0eSk6
CisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgICogVXNlck9iamVjdEltcC5o
OgorCiAyMDExLTEwLTE5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlZCBTdHJpbmdJbXBsQmFzZSwgZnVzaW5nIGl0IGludG8gU3RyaW5nSW1wbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDMxYzZjNDI1NmU0Yjg0YjI3YjUyOGFmOGI0M2I3NDBiMTRmOWI3MWIuLjQ4
YzU1MDQ3YzZlYzAzM2Y1NzIyNzI0OGFmZDQxYzY4NWRmY2NlZmMgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAxMS0xMC0yNCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIFJlbW92ZSBwdXRWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc0MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICBSZW1v
dmVkIGFsbCBkZWNsYXJhdGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIHB1dFZpcnR1YWwuCisgICAg
ICAgIEFsc28gcmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMgdG8gcHV0VmlydHVhbCB3aXRoIGEgCisg
ICAgICAgIGNvcnJlc3BvbmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RUYWJsZS4KKworICAgICAg
ICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OnB1dCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpydW50aW1lT2JqZWN0Q3Vz
dG9tUHV0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OnB1dFByb3BlcnR5KToKKyAg
ICAgICAgKiBiaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbToKKyAgICAgICAgKC1bV2Vi
U2NyaXB0T2JqZWN0IHNldFZhbHVlOmZvcktleTpdKToKKyAgICAgICAgKC1bV2ViU2NyaXB0T2Jq
ZWN0IHNldFdlYlNjcmlwdFZhbHVlQXRJbmRleDp2YWx1ZTpdKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToK
KyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJyaWRnZS9OUF9q
c29iamVjdC5jcHA6CisgICAgICAgIChfTlBOX1NldFByb3BlcnR5KToKKyAgICAgICAgKiBicmlk
Z2Uvam5pL2puaV9qc29iamVjdC5tbToKKyAgICAgICAgKEphdmFKU09iamVjdDo6c2V0TWVtYmVy
KToKKyAgICAgICAgKEphdmFKU09iamVjdDo6c2V0U2xvdCk6CisgICAgICAgICogYnJpZGdlL29i
amMvb2JqY19ydW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1t
OgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNwcDoKKyAgICAgICAgKEpTQzo6Qmlu
ZGluZ3M6OmNvbnZlcnRRVmFyaWFudFRvVmFsdWUpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1l
X2FycmF5LmNwcDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAgICAq
IGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0Lmg6CisgICAgICAgICogYnJpZGdlL3Rlc3RxdGJpbmRpbmdzLmNwcDoKKyAgICAgICAgKG1h
aW4pOgorCiAyMDExLTEwLTI0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByOTgyOTQgYW5kIHI5ODMw
Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwppbmRleCBhMTk4OTIyZTQ1YWQxNzJmMTZhNDBmNjRlMmU5Y2EzYzEy
YTRjNGJiLi43YjkyYzUyMmQ3N2UyYTcyM2VhZjQyYzU1NzY4MTY2YzVjYWYzNjkzIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMjQgIE1hcmsgSGFobmVuYmVyZyAg
PG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgcHV0VmlydHVhbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGFsbCBk
ZWNsYXJhdGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIHB1dFZpcnR1YWwuCisgICAgICAgIEFsc28g
cmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMgdG8gcHV0VmlydHVhbCB3aXRoIGEgCisgICAgICAgIGNv
cnJlc3BvbmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RUYWJsZS4KKworICAgICAgICAqIGV3ay9l
d2tfdmlldy5jcHA6CisgICAgICAgIChld2tfdmlld19qc19vYmplY3RfYWRkKToKKwogMjAxMS0x
MC0yNCAgSXZhbiBCcmlhbm8gIDxpdmFuQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFtFRkxd
IEJ1aWxkIGZpeC4gUmVuYW1lIGFsbCBpbnN0YW5jZXMgb2YgYSB2YXJpYWJsZSB3aGVuIGl0IGdl
dHMgY2hhbmdlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDg5MWFmMDY3YTA5NmM4NjE0NDE0YzUyYjk3
ZDMxYjAxZDA3MmM4YjguLmEzNGQ1YjQ2MTE1ZDNhYjMyYWEyNDllMmY4NDRjYzA3MzI5OTQ5YjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0xMC0yNCAgTWFyayBIYWhu
ZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBwdXRWaXJ0
dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc0
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZWQgYWxsIGRlY2xhcmF0aW9ucyBhbmQgZGVmaW5pdGlvbnMgb2YgcHV0VmlydHVhbC4KKyAgICAg
ICAgQWxzbyByZXBsYWNlZCBhbGwgY2FsbCBzaXRlcyB0byBwdXRWaXJ0dWFsIHdpdGggYSAKKyAg
ICAgICAgY29ycmVzcG9uZGluZyBsb29rdXAgaW4gdGhlIE1ldGhvZFRhYmxlLgorCisgICAgICAg
ICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnNldFByb3BlcnR5KToKKwog
MjAxMS0xMC0yNCAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWJLaXQgZG9lc24ndCBidWlsZCB3aXRoIHJlY2VudCBjaGFuZ2VzIHRvIGxpYmRpc3BhdGNo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCmluZGV4IDQ4YTViODk2MDVkZjAwZGVjYTAzM2RjNzQ1ZjU1Njc0M2NkZTRl
MmEuLjZkZmFmNzg3M2M4ZGYwNWMwZDVlNjYxN2NkNGYzYjk0ZTA4MGY2N2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMjQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgcHV0VmlydHVhbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NDAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGFsbCBkZWNsYXJh
dGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIHB1dFZpcnR1YWwuCisgICAgICAgIEFsc28gcmVwbGFj
ZWQgYWxsIGNhbGwgc2l0ZXMgdG8gcHV0VmlydHVhbCB3aXRoIGEgCisgICAgICAgIGNvcnJlc3Bv
bmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RUYWJsZS4KKworICAgICAgICAqIEFwaS9xd2ViZnJh
bWUuY3BwOgorICAgICAgICAoUVdlYkZyYW1lOjphZGRUb0phdmFTY3JpcHRXaW5kb3dPYmplY3Qp
OgorCiAyMDExLTEwLTI0ICBEZWVwYWsgU2hlcnZlZ2hhciAgPGJwd3Y2NEBtb3Rvcm9sYS5jb20+
CiAKICAgICAgICAgW1F0XSBmYXN0L2V2ZW50cy9tZWRpYS1mb2N1cy1pbi1zdGFuZGFsb25lLW1l
ZGlhLWRvY3VtZW50Lmh0bWwgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3Yjg5ZjBlODYyY2Y1OTUyODNh
YjRjNWQ5ZDk2MDk2NTUyY2E2MmU0Li40M2IxNWUzMDFjODJkZTI5NTQ0ZTEwMTY0YjIwNzk2M2Zl
MGQ2MDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTAtMjQgIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgcHV0Vmly
dHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3
NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1v
dmVkIGFsbCBkZWNsYXJhdGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIHB1dFZpcnR1YWwuCisgICAg
ICAgIEFsc28gcmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMgdG8gcHV0VmlydHVhbCB3aXRoIGEgCisg
ICAgICAgIGNvcnJlc3BvbmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RUYWJsZS4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TlBKU09iamVjdDo6c2V0UHJvcGVydHkpOgorCiAyMDExLTEwLTI0ICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSG9vayB1cCBtaW5pbWFsaXN0IGxvYWQgZGVsZWdh
dGUgdG8gV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDM5OGRkMDNkMDc3NDUwYzAyNjU5Y2I0YWVl
YTFlYjYwYzI2YTcyMzEuLjhiN2I2N2ZkNjRlOGQ5MTk4NGVmOTY3NjRmMzM3MDY4YTVhNDg0OTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCkBAIC0x
ODIsNyArMTgyLDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIAotICAgIHZpcnR1
YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAg
ICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IDFkYmIxZDVjNzI2N2FhMGZmZDM0ZjA2NWJiZDcw
YzJkZjQzYzg2N2IuLjM1MGIyZGI2ZDVjYWU4ZTVjMjYyYzk3OTdhMGQwNDAxMjIyOTgxOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCkBAIC0yMDgsMTIgKzIwOCw2IEBAIGJvb2wgSlNDYWxsYmFja09iamVjdDxQYXJl
bnQ+OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJCiB9
CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci12b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHB1dCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0KLQotdGVtcGxhdGUgPGNs
YXNzIFBhcmVudD4KIHZvaWQgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpwdXQoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTQ2FsbGJhY2tPYmpl
Y3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0Kj4oY2VsbCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDZkNWYwM2Q2NWU0
MzdiZmIwMmQxZWNmZGI2NDQ2MWRiYTY0N2E2Y2UuLjlkNjZkNTg3ZjViN2I3YTYyYWJjNzI3Mzcy
NmZiMWRlOWE0ZjRlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNP
YmplY3RSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYu
Y3BwCkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBKU09iamVjdFNldFByb3BlcnR5KEpTQ29udGV4
dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGUKICAgICAgICAg
anNPYmplY3QtPnB1dFdpdGhBdHRyaWJ1dGVzKGV4ZWMsIG5hbWUsIGpzVmFsdWUsIGF0dHJpYnV0
ZXMpOwogICAgIGVsc2UgewogICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAg
anNPYmplY3QtPnB1dFZpcnR1YWwoZXhlYywgbmFtZSwganNWYWx1ZSwgc2xvdCk7CisgICAgICAg
IGpzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXQoanNPYmplY3QsIGV4ZWMsIG5hbWUsIGpzVmFs
dWUsIHNsb3QpOwogICAgIH0KIAogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewpAQCAt
MzEyLDcgKzMxMiw3IEBAIHZvaWQgSlNPYmplY3RTZXRQcm9wZXJ0eUF0SW5kZXgoSlNDb250ZXh0
UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0LCB1bnNpZ25lZCBwCiAgICAgSlNPYmplY3QqIGpz
T2JqZWN0ID0gdG9KUyhvYmplY3QpOwogICAgIEpTVmFsdWUganNWYWx1ZSA9IHRvSlMoZXhlYywg
dmFsdWUpOwogICAgIAotICAgIGpzT2JqZWN0LT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5SW5k
ZXgsIGpzVmFsdWUpOworICAgIGpzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGpz
T2JqZWN0LCBleGVjLCBwcm9wZXJ0eUluZGV4LCBqc1ZhbHVlKTsKICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpIHsKICAgICAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgICpleGNl
cHRpb24gPSB0b1JlZihleGVjLCBleGVjLT5leGNlcHRpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBjZTIxNjE3OGE5YTM2MDFmMWFiN2JhNmMxOTY2
MzI4M2RiZTU2ZTNkLi41N2NjYjdiMjc2MDBkOWQ4YjA5YjU3MDgzY2IwNWI3OGE4YWY5ZTFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTE1OSw3ICsxNTks
NiBAQCBfX1pOM0pTQzEzU2FtcGxpbmdGbGFnczVzdGFydEV2CiBfX1pOM0pTQzEzU2FtcGxpbmdG
bGFnczdzX2ZsYWdzRQogX19aTjNKU0MxM1N0YXRlbWVudE5vZGU2c2V0TG9jRWlpCiBfX1pOM0pT
QzE0SlNHbG9iYWxPYmplY3QxMGdsb2JhbEV4ZWNFdgotX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0
MTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVl
RVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEyZGVmaW5l
R2V0dGVyRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVBOU184SlNPYmplY3RFagog
X19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTJkZWZpbmVTZXR0ZXJFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFUE5TXzhKU09iamVjdEVqCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Qx
M2NsZWFyUmFyZURhdGFFUE5TXzZKU0NlbGxFCkBAIC0yNTgsOCArMjU3LDYgQEAgX19aTjNKU0M0
WWFycjExWWFyclBhdHRlcm5DMUVSS05TXzdVU3RyaW5nRWJiUFBLYwogX19aTjNKU0M0WWFycjEx
Ynl0ZUNvbXBpbGVFUk5TMF8xMVlhcnJQYXR0ZXJuRVBOM1dURjIwQnVtcFBvaW50ZXJBbGxvY2F0
b3JFCiBfX1pOM0pTQzRZYXJyOWludGVycHJldEVQTlMwXzE1Qnl0ZWNvZGVQYXR0ZXJuRVJLTlNf
N1VTdHJpbmdFampQaQogX19aTjNKU0M0Y2FsbEVQTlNfOUV4ZWNTdGF0ZUVOU183SlNWYWx1ZUVO
U184Q2FsbFR5cGVFUktOU184Q2FsbERhdGFFUzJfUktOU183QXJnTGlzdEUKLV9fWk4zSlNDNkpT
Q2VsbDEwcHV0VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNW
YWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCi1fX1pOM0pTQzZKU0NlbGwxMHB1dFZpcnR1YWxF
UE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRQogX19aTjNKU0M2SlNDZWxsMTFnZXRDYWxsRGF0
YUVQUzBfUk5TXzhDYWxsRGF0YUUKIF9fWk4zSlNDNkpTQ2VsbDE2Z2V0Q29uc3RydWN0RGF0YUVQ
UzBfUk5TXzEzQ29uc3RydWN0RGF0YUUKIF9fWk4zSlNDNkpTQ2VsbDIxZGVsZXRlUHJvcGVydHlW
aXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQpAQCAtMzA3LDggKzMwNCw2
IEBAIF9fWk4zSlNDOERlYnVnZ2VyNmF0dGFjaEVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4z
SlNDOERlYnVnZ2VyNmRldGFjaEVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDOERlYnVn
Z2VyRDJFdgogX19aTjNKU0M4SlNPYmplY3QxMHB1dEJ5SW5kZXhFUE5TXzZKU0NlbGxFUE5TXzlF
eGVjU3RhdGVFak5TXzdKU1ZhbHVlRQotX19aTjNKU0M4SlNPYmplY3QxMHB1dFZpcnR1YWxFUE5T
XzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVy
dHlTbG90RQotX19aTjNKU0M4SlNPYmplY3QxMHB1dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFak5T
XzdKU1ZhbHVlRQogX19aTjNKU0M4SlNPYmplY3QxMWhhc0luc3RhbmNlRVBOU185RXhlY1N0YXRl
RU5TXzdKU1ZhbHVlRVMzXwogX19aTjNKU0M4SlNPYmplY3QxMmRlZmluZUdldHRlckVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagogX19aTjNKU0M4SlNPYmplY3QxMmRlZmlu
ZVNldHRlckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVQUzBfagpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCBmMmY5
YTM0YTA0NDg0NWQ5YmZlMDBiYmU2MjIwYzQ3MzE0YzkyZmI5Li5hOTVlYWRlNmIwZGU4OWNjZTgw
MGRhYTlkYjJlNjRmN2FkZDU0MGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMjc3LDExICsyNzcsNiBAQCBFWFBPUlRTCiAg
ICAgP3B1dEJ5SW5kZXhASlNCeXRlQXJyYXlASlNDQEBTQVhQQVZKU0NlbGxAMkBQQVZFeGVjU3Rh
dGVAMkBJVkpTVmFsdWVAMkBAWgogICAgID9wdXRCeUluZGV4QEpTT2JqZWN0QEpTQ0BAU0FYUEFW
SlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJASVZKU1ZhbHVlQDJAQFoKICAgICA/cHV0RGlyZWN0SW50
ZXJuYWxASlNPYmplY3RASlNDQEBBQUVfTkFBVkpTR2xvYmFsRGF0YUAyQEFCVklkZW50aWZpZXJA
MkBWSlNWYWx1ZUAyQElfTkFBVlB1dFByb3BlcnR5U2xvdEAyQFBBVkpTQ2VsbEAyQEBaCi0gICAg
P3B1dFZpcnR1YWxASlNDZWxsQEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJA
MkBWSlNWYWx1ZUAyQEFBVlB1dFByb3BlcnR5U2xvdEAyQEBaCi0gICAgP3B1dFZpcnR1YWxASlND
ZWxsQEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQElWSlNWYWx1ZUAyQEBaCi0gICAgP3B1dFZpcnR1
YWxASlNHbG9iYWxPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAy
QFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJAQFoKLSAgICA/cHV0VmlydHVhbEBKU09i
amVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBB
QVZQdXRQcm9wZXJ0eVNsb3RAMkBAWgotICAgID9wdXRWaXJ0dWFsQEpTT2JqZWN0QEpTQ0BAVUFF
WFBBVkV4ZWNTdGF0ZUAyQElWSlNWYWx1ZUAyQEBaCiAgICAgP3B1dFdpdGhBdHRyaWJ1dGVzQEpT
R2xvYmFsT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBWSlNW
YWx1ZUAyQElAWgogICAgID9wdXRXaXRoQXR0cmlidXRlc0BKU09iamVjdEBKU0NAQFVBRVhQQVZF
eGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAVkpTVmFsdWVAMkBJQFoKICAgICA/cHV0V2l0aEF0
dHJpYnV0ZXNASlNPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAy
QFZKU1ZhbHVlQDJASV9OQUFWUHV0UHJvcGVydHlTbG90QDJAQFoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKaW5kZXggNzBl
MWJhZWI2ZTBiNDBlY2QwNjVkNGZhMjc5ZGMwMDJjMWVlZjg3ZS4uODhiOWI0ODk5OGIwNTMzYWVi
YTlkZGMwOTg5YjdkNGViYjAwOGYwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKQEAgLTcwLDE0ICs3MCwxMCBAQCBi
b29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFj
dGl2YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9uLT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLXZvaWQgRGVidWdnZXJBY3RpdmF0aW9u
OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIERlYnVnZ2Vy
QWN0aXZhdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKLSAgICBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3Rp
dmF0aW9uLT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAg
IERlYnVnZ2VyQWN0aXZhdGlvbiogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PERlYnVnZ2VyQWN0
aXZhdGlvbio+KGNlbGwpOworICAgIHRoaXNPYmplY3QtPm1fYWN0aXZhdGlvbi0+bWV0aG9kVGFi
bGUoKS0+cHV0KHRoaXNPYmplY3QtPm1fYWN0aXZhdGlvbi5nZXQoKSwgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpwdXRXaXRo
QXR0cmlidXRlcyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRleCAzZDdiMDI2
ODIxZjk2NjU3ODlmYzA0ZDAzNmRlZTQ4ODBlMzhiZjdjLi5lZGFlYmEwNmI0ZTUzMmU3ODM0NjVk
YzQyMDgxNTRlYTE4MzYwMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00NSw3ICs0NSw2IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1
dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwg
dW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0
eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDZjNmJiOWM4
YTMyZTBlMzI0ZDhhYWUwZjZkYTI1MmM2ODJiZDUxNjQuLjk5YjQ3NjY3NmZjN2U4YjEyMjU2Mzlk
ODk0NTY5MWMyNThkNTI3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmNwcApAQCAtMzc0LDEzICszNzQsMTMgQEAgRW5jb2RlZEpTVmFsdWUgREZHX09QRVJB
VElPTiBvcGVyYXRpb25BcnJheVBvcChFeGVjU3RhdGUqLCBKU0FycmF5KiBhcnJheSkKIHZvaWQg
REZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU0NlbGwqIGJhc2UsIElkZW50aWZpZXIqIHByb3Bl
cnR5TmFtZSkKIHsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdCh0cnVlKTsKLSAgICBiYXNlLT5w
dXRWaXJ0dWFsKGV4ZWMsICpwcm9wZXJ0eU5hbWUsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpLCBzbG90KTsKKyAgICBiYXNlLT5tZXRob2RUYWJsZSgpLT5wdXQoYmFzZSwgZXhlYywgKnBy
b3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOwogfQogCiB2
b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdChFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNDZWxsKiBiYXNlLCBJZGVudGlmaWVy
KiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QoZmFsc2UpOwotICAg
IGJhc2UtPnB1dFZpcnR1YWwoZXhlYywgKnByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRWYWx1ZSksIHNsb3QpOworICAgIGJhc2UtPm1ldGhvZFRhYmxlKCktPnB1dChiYXNlLCBl
eGVjLCAqcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7
CiB9CiAKIHZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0KEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU0NlbGwqIGJhc2Us
IElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IDgzOGY1MWM1OGI5N2U1ZmExYjg0OGVm
NGU5MjNkZDExYjU5MzMxNGEuLmFmZjUwOTA2MTgxM2ZlZTI3ZTEzM2IyMmM3NzU1ZjU2ZDMzMWEx
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcApAQCAtNzkxLDcgKzc5MSw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUo
UHJvZ3JhbUV4ZWN1dGFibGUqIHByb2dyYW0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBTCiAgICAg
ICAgICAgICBpZiAoSlNPTlBQYXRoLnNpemUoKSA9PSAxICYmIEpTT05QUGF0aFswXS5tX3R5cGUg
PT0gTGl0ZXJhbFBhcnNlcjo6SlNPTlBQYXRoRW50cnlUeXBlRGVjbGFyZSkgewogICAgICAgICAg
ICAgICAgIGlmIChnbG9iYWxPYmplY3QtPmhhc1Byb3BlcnR5KGNhbGxGcmFtZSwgSlNPTlBQYXRo
WzBdLm1fcGF0aEVudHJ5TmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICAgUHV0UHJvcGVydHlT
bG90IHNsb3Q7Ci0gICAgICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+cHV0VmlydHVhbChj
YWxsRnJhbWUsIEpTT05QUGF0aFswXS5tX3BhdGhFbnRyeU5hbWUsIEpTT05QVmFsdWUsIHNsb3Qp
OworICAgICAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dChn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgSlNPTlBQYXRoWzBdLm1fcGF0aEVudHJ5TmFtZSwgSlNP
TlBWYWx1ZSwgc2xvdCk7CiAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAg
ICAgIGdsb2JhbE9iamVjdC0+cHV0V2l0aEF0dHJpYnV0ZXMoY2FsbEZyYW1lLCBKU09OUFBhdGhb
MF0ubV9wYXRoRW50cnlOYW1lLCBKU09OUFZhbHVlLCBEb250RW51bSB8IERvbnREZWxldGUpOwog
ICAgICAgICAgICAgICAgIC8vIHZhciBkZWNsYXJhdGlvbnMgcmV0dXJuIHVuZGVmaW5lZApAQCAt
MTI1MSwxNCArMTI1MSwxNCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKEV2YWxFeGVj
dXRhYmxlKiBldmFsLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZQogICAgICAgICAgICAg
Y29uc3QgSWRlbnRpZmllciYgaWRlbnQgPSBjb2RlQmxvY2stPnZhcmlhYmxlKGkpOwogICAgICAg
ICAgICAgaWYgKCF2YXJpYWJsZU9iamVjdC0+aGFzUHJvcGVydHkoY2FsbEZyYW1lLCBpZGVudCkp
IHsKICAgICAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgICAg
ICB2YXJpYWJsZU9iamVjdC0+cHV0VmlydHVhbChjYWxsRnJhbWUsIGlkZW50LCBqc1VuZGVmaW5l
ZCgpLCBzbG90KTsKKyAgICAgICAgICAgICAgICB2YXJpYWJsZU9iamVjdC0+bWV0aG9kVGFibGUo
KS0+cHV0KHZhcmlhYmxlT2JqZWN0LCBjYWxsRnJhbWUsIGlkZW50LCBqc1VuZGVmaW5lZCgpLCBz
bG90KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbnVtRnVuY3Rpb25zOyArK2kpIHsKICAgICAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJs
ZSogZnVuY3Rpb24gPSBjb2RlQmxvY2stPmZ1bmN0aW9uRGVjbChpKTsKICAgICAgICAgICAgIFB1
dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1dFZpcnR1
YWwoY2FsbEZyYW1lLCBmdW5jdGlvbi0+bmFtZSgpLCBmdW5jdGlvbi0+bWFrZShjYWxsRnJhbWUs
IHNjb3BlQ2hhaW4pLCBzbG90KTsKKyAgICAgICAgICAgIHZhcmlhYmxlT2JqZWN0LT5tZXRob2RU
YWJsZSgpLT5wdXQodmFyaWFibGVPYmplY3QsIGNhbGxGcmFtZSwgZnVuY3Rpb24tPm5hbWUoKSwg
ZnVuY3Rpb24tPm1ha2UoY2FsbEZyYW1lLCBzY29wZUNoYWluKSwgc2xvdCk7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTM1MDMsNyArMzUwMyw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAg
ICAgICAgICAgICAgaWYgKGpzQXJyYXktPmNhblNldEluZGV4KGkpKQogICAgICAgICAgICAgICAg
ICAgICBqc0FycmF5LT5zZXRJbmRleCgqZ2xvYmFsRGF0YSwgaSwgY2FsbEZyYW1lLT5yKHZhbHVl
KS5qc1ZhbHVlKCkpOwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
anNBcnJheS0+SlNBcnJheTo6cHV0VmlydHVhbChjYWxsRnJhbWUsIGksIGNhbGxGcmFtZS0+cih2
YWx1ZSkuanNWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAganNBcnJheS0+SlNBcnJheTo6
cHV0QnlJbmRleChqc0FycmF5LCBjYWxsRnJhbWUsIGksIGNhbGxGcmFtZS0+cih2YWx1ZSkuanNW
YWx1ZSgpKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNKU0J5dGVBcnJheShnbG9iYWxEYXRh
LCBiYXNlVmFsdWUpICYmIGFzQnl0ZUFycmF5KGJhc2VWYWx1ZSktPmNhbkFjY2Vzc0luZGV4KGkp
KSB7CiAgICAgICAgICAgICAgICAgSlNCeXRlQXJyYXkqIGpzQnl0ZUFycmF5ID0gYXNCeXRlQXJy
YXkoYmFzZVZhbHVlKTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIGpzVmFsdWUgPSBjYWxsRnJh
bWUtPnIodmFsdWUpLmpzVmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggMGJjZmNkNmJj
Yzk4MzZkNjk3ZTJkMzE4MjUxOGI4NDc3OWM5N2FlZi4uYmViN2ZlYjcwZDgwMWVhZDkzMWE4Njg3
YWExNTIwYzAyMTdlZWI1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE4Miw3ICsxODIsNyBA
QCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgSlNPYmplY3QqIGFycmF5ID0gY29uc3RydWN0RW1wdHlB
cnJheShnbG9iYWxFeGVjKCkpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3Vt
ZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGFycmF5LT5wdXRWaXJ0dWFsKGdsb2JhbEV4
ZWMoKSwgaSwganNTdHJpbmcoZ2xvYmFsRXhlYygpLCBhcmd1bWVudHNbaV0pKTsKKyAgICAgICAg
ICAgIGFycmF5LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGFycmF5LCBnbG9iYWxFeGVjKCks
IGksIGpzU3RyaW5nKGdsb2JhbEV4ZWMoKSwgYXJndW1lbnRzW2ldKSk7CiAgICAgICAgIHB1dERp
cmVjdChnbG9iYWxEYXRhLCBJZGVudGlmaWVyKGdsb2JhbEV4ZWMoKSwgImFyZ3VtZW50cyIpLCBh
cnJheSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmNwcAppbmRleCA3YjY2ZWRhMTMzNTk2Njk0MjFkNGI5MTNjZTg3N2RhMmVlNWRmOGY3Li5jMzk1
ZmI0MTM5NGI5MGIwN2QxYjk4MTM1MjAwMWI3MmNlZDI0MTYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKQEAgLTI2OSwxMSArMjY5LDYgQEAgdm9pZCBB
cmd1bWVudHM6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHkKICAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVj
LCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotdm9pZCBBcmd1bWVudHM6OnB1dFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIHB1dEJ5
SW5kZXgodGhpcywgZXhlYywgaSwgdmFsdWUpOwotfQotCiB2b2lkIEFyZ3VtZW50czo6cHV0QnlJ
bmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxBcmd1bWVu
dHMqPihjZWxsKTsKQEAgLTI4OSwxMSArMjg0LDYgQEAgdm9pZCBBcmd1bWVudHM6OnB1dEJ5SW5k
ZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmEK
ICAgICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXIoZXhlYywgVVN0
cmluZzo6bnVtYmVyKGkpKSwgdmFsdWUsIHNsb3QpOwogfQogCi12b2lkIEFyZ3VtZW50czo6cHV0
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHB1dCh0aGlzLCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0KLSAgICAKIHZvaWQgQXJndW1lbnRz
OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAg
IEFyZ3VtZW50cyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEFyZ3VtZW50cyo+KGNlbGwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAppbmRleCBkOTc2NTVkMTAw
OWIxNmFmOGFkNWRjZDVmYTYxYzhmZWQxMWYxZDRiLi4zZTcxYTM3NGIxNzMzMGI1ZDgxNTZhNzcx
NzBiOWIwZWQ3ZWQ3MTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVu
dHMuaApAQCAtMTQxLDkgKzE0MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlO
YW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2Rl
ID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgICAgICBzdGF0aWMgdm9pZCBw
dXRCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmNwcAppbmRleCBjNTQ0MDNiOWY1YzljMWJiZTc4ZGY0NjZkMGU2OTY1NDdiZmU2
M2FiLi5lMGE1N2JlODcwYTQxY2ZkYTAzNzZjMDlmZGMwMzUxZDc1Mzc5NWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0xNTQs
NyArMTU0LDcgQEAgc3RhdGljIEpTVmFsdWUgZ2V0UHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogb2JqLCB1bnNpZ25lZCBpbmRleCkKIHN0YXRpYyB2b2lkIHB1dFByb3BlcnR5KEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iaiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgIG9i
ai0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBvYmot
Pm1ldGhvZFRhYmxlKCktPnB1dChvYmosIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3Qp
OwogfQogCiBzdGF0aWMgdW5zaWduZWQgYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVu
ZChFeGVjU3RhdGUqIGV4ZWMsIGludCBhcmd1bWVudCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25l
ZCB1bmRlZmluZWRWYWx1ZSA9IDApCkBAIC0zNTQsMTEgKzM1NCwxMSBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jQ29uY2F0KEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICAg
ICAgaWYgKHYpCi0gICAgICAgICAgICAgICAgICAgIGFyci0+cHV0VmlydHVhbChleGVjLCBuLCB2
KTsKKyAgICAgICAgICAgICAgICAgICAgYXJyLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGFy
ciwgZXhlYywgbiwgdik7CiAgICAgICAgICAgICAgICAgbisrOwogICAgICAgICAgICAgfQogICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXJyLT5wdXRWaXJ0dWFsKGV4ZWMsIG4sIGN1ckFy
Zyk7CisgICAgICAgICAgICBhcnItPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgoYXJyLCBleGVj
LCBuLCBjdXJBcmcpOwogICAgICAgICAgICAgbisrOwogICAgICAgICB9CiAgICAgICAgIGlmIChp
ID09IGFyZ0NvdW50KQpAQCAtNDEyLDExICs0MTIsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBhcnJheVByb3RvRnVuY1B1c2goRXhlY1N0YXRlKiBleGVjKQogICAgIGZvciAodW5z
aWduZWQgbiA9IDA7IG4gPCBleGVjLT5hcmd1bWVudENvdW50KCk7IG4rKykgewogICAgICAgICAv
LyBDaGVjayBmb3IgaW50ZWdlciBvdmVyZmxvdzsgd2hlcmUgc2FmZSB3ZSBjYW4gZG8gYSBmYXN0
IHB1dCBieSBpbmRleC4KICAgICAgICAgaWYgKGxlbmd0aCArIG4gPj0gbGVuZ3RoKQotICAgICAg
ICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBsZW5ndGggKyBuLCBleGVjLT5hcmd1bWVu
dChuKSk7CisgICAgICAgICAgICB0aGlzT2JqLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHRo
aXNPYmosIGV4ZWMsIGxlbmd0aCArIG4sIGV4ZWMtPmFyZ3VtZW50KG4pKTsKICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKICAgICAgICAgICAgIElkZW50
aWZpZXIgcHJvcGVydHlOYW1lKGV4ZWMsIEpTVmFsdWUoc3RhdGljX2Nhc3Q8aW50NjRfdD4obGVu
Z3RoKSArIHN0YXRpY19jYXN0PGludDY0X3Q+KG4pKS50b1N0cmluZyhleGVjKSk7Ci0gICAgICAg
ICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgZXhlYy0+YXJndW1l
bnQobiksIHNsb3QpOworICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+cHV0KHRo
aXNPYmosIGV4ZWMsIHByb3BlcnR5TmFtZSwgZXhlYy0+YXJndW1lbnQobiksIHNsb3QpOwogICAg
ICAgICB9CiAgICAgfQogICAgIEpTVmFsdWUgbmV3TGVuZ3RoKHN0YXRpY19jYXN0PGludDY0X3Q+
KGxlbmd0aCkgKyBzdGF0aWNfY2FzdDxpbnQ2NF90PihleGVjLT5hcmd1bWVudENvdW50KCkpKTsK
QEAgLTQ0MiwxMiArNDQyLDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQ
cm90b0Z1bmNSZXZlcnNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICAgICAgaWYgKG9iajIpCi0gICAgICAg
ICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGssIG9iajIpOworICAgICAgICAgICAgdGhp
c09iai0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0aGlzT2JqLCBleGVjLCBrLCBvYmoyKTsK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhpc09iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFs
KGV4ZWMsIGspOwogCiAgICAgICAgIGlmIChvYmopCi0gICAgICAgICAgICB0aGlzT2JqLT5wdXRW
aXJ0dWFsKGV4ZWMsIGxrMSwgb2JqKTsKKyAgICAgICAgICAgIHRoaXNPYmotPm1ldGhvZFRhYmxl
KCktPnB1dEJ5SW5kZXgodGhpc09iaiwgZXhlYywgbGsxLCBvYmopOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgbGsxKTsKICAg
ICB9CkBAIC00NzUsNyArNDc1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJh
eVByb3RvRnVuY1NoaWZ0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICAgICAgaWYgKG9iaikKLSAgICAgICAg
ICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBrIC0gMSwgb2JqKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0aGlzT2Jq
LCBleGVjLCBrIC0gMSwgb2JqKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBrIC0gMSk7CiAgICAg
ICAgICAgICB9CkBAIC01MDcsNyArNTA3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhcnJheVByb3RvRnVuY1NsaWNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICAgICAgaWYgKHYpCi0gICAgICAgICAgICByZXNPYmotPnB1dFZpcnR1
YWwoZXhlYywgbiwgdik7CisgICAgICAgICAgICByZXNPYmotPm1ldGhvZFRhYmxlKCktPnB1dEJ5
SW5kZXgocmVzT2JqLCBleGVjLCBuLCB2KTsKICAgICB9CiAgICAgcmVzT2JqLT5zZXRMZW5ndGgo
bik7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNTY2LDggKzU2Niw4
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTb3J0KEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgfQogICAgICAgICAvLyBTd2FwIHRoZW1pbiBhbmQgaQogICAg
ICAgICBpZiAodGhlbWluID4gaSkgewotICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChl
eGVjLCBpLCBtaW5PYmopOwotICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCB0
aGVtaW4sIGlPYmopOworICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+cHV0QnlJ
bmRleCh0aGlzT2JqLCBleGVjLCBpLCBtaW5PYmopOworICAgICAgICAgICAgdGhpc09iai0+bWV0
aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0aGlzT2JqLCBleGVjLCB0aGVtaW4sIGlPYmopOwogICAg
ICAgICB9CiAgICAgfQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc09iaik7CkBAIC02
MjEsNyArNjIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVu
Y1NwbGljZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmICh2KQotICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBrICsgYWRkaXRpb25h
bEFyZ3MsIHYpOworICAgICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUo
KS0+cHV0QnlJbmRleCh0aGlzT2JqLCBleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MsIHYpOwogICAg
ICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5k
ZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgayArIGFkZGl0aW9uYWxBcmdzKTsKICAgICAgICAg
ICAgICAgICB9CkBAIC02MzcsNyArNjM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhcnJheVByb3RvRnVuY1NwbGljZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAg
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICAgICAgICAg
IGlmIChvYmopCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4
ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyAtIDEsIG9iaik7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzT2JqLT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHRoaXNPYmosIGV4ZWMsIGsgKyBh
ZGRpdGlvbmFsQXJncyAtIDEsIG9iaik7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBr
ICsgYWRkaXRpb25hbEFyZ3MgLSAxKTsKICAgICAgICAgICAgICAgICB9CkBAIC02NDUsNyArNjQ1
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1NwbGljZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIH0KICAgICB9CiAgICAgZm9yICh1bnNpZ25lZCBrID0g
MDsgayA8IGFkZGl0aW9uYWxBcmdzOyArK2spCi0gICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwo
ZXhlYywgayArIGJlZ2luLCBleGVjLT5hcmd1bWVudChrICsgMikpOworICAgICAgICB0aGlzT2Jq
LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHRoaXNPYmosIGV4ZWMsIGsgKyBiZWdpbiwgZXhl
Yy0+YXJndW1lbnQoayArIDIpKTsKIAogICAgIHB1dFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGxlbmd0aCAtIGRlbGV0ZUNvdW50
ICsgYWRkaXRpb25hbEFyZ3MpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7
CkBAIC02NzAsMTQgKzY3MCwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5
UHJvdG9GdW5jVW5TaGlmdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgICAgICAgICAgICAgIGlmICh2KQotICAgICAgICAg
ICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGsgKyBuckFyZ3MgLSAxLCB2KTsK
KyAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleCh0
aGlzT2JqLCBleGVjLCBrICsgbnJBcmdzIC0gMSwgdik7CiAgICAgICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywg
ayArIG5yQXJncyAtIDEpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIGZv
ciAodW5zaWduZWQgayA9IDA7IGsgPCBuckFyZ3M7ICsraykKLSAgICAgICAgdGhpc09iai0+cHV0
VmlydHVhbChleGVjLCBrLCBleGVjLT5hcmd1bWVudChrKSk7CisgICAgICAgIHRoaXNPYmotPm1l
dGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpc09iaiwgZXhlYywgaywgZXhlYy0+YXJndW1lbnQo
aykpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIobGVuZ3RoICsgbnJBcmdzKTsKICAg
ICBwdXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3Ro
LCByZXN1bHQpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTcxNiw3
ICs3MTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRmls
dGVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIAogICAgICAgICAgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBjYWNoZWRDYWxsLmNhbGwoKTsKICAgICAgICAgICAgIGlmIChyZXN1bHQudG9Cb29s
ZWFuKGV4ZWMpKQotICAgICAgICAgICAgICAgIHJlc3VsdEFycmF5LT5wdXRWaXJ0dWFsKGV4ZWMs
IGZpbHRlckluZGV4KyssIHYpOworICAgICAgICAgICAgICAgIHJlc3VsdEFycmF5LT5tZXRob2RU
YWJsZSgpLT5wdXRCeUluZGV4KHJlc3VsdEFycmF5LCBleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsK
ICAgICAgICAgfQogICAgICAgICBpZiAoayA9PSBsZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdEFycmF5KTsKQEAgLTczNyw3ICs3MzcsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRmlsdGVyKEV4ZWNTdGF0ZSogZXhl
YykKIAogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGNhbGwoZXhlYywgZnVuY3Rpb24sIGNhbGxU
eXBlLCBjYWxsRGF0YSwgYXBwbHlUaGlzLCBlYWNoQXJndW1lbnRzKTsKICAgICAgICAgaWYgKHJl
c3VsdC50b0Jvb2xlYW4oZXhlYykpCi0gICAgICAgICAgICByZXN1bHRBcnJheS0+cHV0VmlydHVh
bChleGVjLCBmaWx0ZXJJbmRleCsrLCB2KTsKKyAgICAgICAgICAgIHJlc3VsdEFycmF5LT5tZXRo
b2RUYWJsZSgpLT5wdXRCeUluZGV4KHJlc3VsdEFycmF5LCBleGVjLCBmaWx0ZXJJbmRleCsrLCB2
KTsKICAgICB9CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRBcnJheSk7CiB9CkBA
IC03OTMsNyArNzkzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3Rv
RnVuY01hcChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogCiAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FsbChleGVj
LCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBhcHBseVRoaXMsIGVhY2hBcmd1bWVudHMp
OwotICAgICAgICByZXN1bHRBcnJheS0+cHV0VmlydHVhbChleGVjLCBrLCByZXN1bHQpOworICAg
ICAgICByZXN1bHRBcnJheS0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChyZXN1bHRBcnJheSwg
ZXhlYywgaywgcmVzdWx0KTsKICAgICB9CiAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdEFycmF5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRp
b24uY3BwCmluZGV4IDg1MzEwODI1YzBmYjQ4MTk5ZTE2MWYyMzM0MWM5YTgyYWE2YzNmMWMuLjA2
ZjBiNGM1Y2Y2ODAzNjMzNTM0ZTk2OGNhNjAzYjY3MDYzYTA5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcApAQCAtMTY5LDExICsxNjksNiBA
QCBib29sIEpTQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBK
U0FjdGl2YXRpb246OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsK
LSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZv
aWQgSlNBY3RpdmF0aW9uOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIEpTQWN0aXZhdGlvbiogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpT
QWN0aXZhdGlvbio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fj
dGl2YXRpb24uaAppbmRleCBkNDRiMmI2MDZkZDE4ODI2ZTc0ZWZkZGUwNGVhNjRkNzA4NTRjN2U1
Li5hNGUyNmRhZDk2NDU5Njk1NmNhZjkyNjkyODQ4M2RkNjMzNjliM2ZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaApAQCAtNjUsNyArNjUsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVy
dHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBw
dXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmNwcAppbmRleCAzMjE0MWY4MDlmYmU1MjI1NDBjNjE1OWQxZjNm
YTdkOGNlNmIyZDllLi44OWUwYWFjNjQwY2Y3NjJkYWU1NDE4MmUyNmFhNzc5MDkwYzg0YTJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtMzM0LDExICsz
MzQsNiBAQCBib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcgogICAgIHJldHVybiBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9
CiAKLXZvaWQgSlNBcnJheTo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90
KQotewotICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0K
LQogLy8gRUNNQSAxNS40LjUuMQogdm9pZCBKU0FycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1
ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewpAQCAtMzYzLDExICszNTgsNiBAQCB2b2lkIEpT
QXJyYXk6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLAogICAgIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQgSlNBcnJheTo6cHV0VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgcHV0QnlJ
bmRleCh0aGlzLCBleGVjLCBpLCB2YWx1ZSk7Ci19Ci0KIHZvaWQgSlNBcnJheTo6cHV0QnlJbmRl
eChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1
ZSkKIHsKICAgICBKU0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNBcnJheSo+KGNl
bGwpOwpAQCAtNDA2LDcgKzM5Niw3IEBAIE5FVkVSX0lOTElORSB2b2lkIEpTQXJyYXk6OnB1dFNs
b3dDYXNlKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1CiAgICAgaWYg
KGkgPj0gTUlOX1NQQVJTRV9BUlJBWV9JTkRFWCkgewogICAgICAgICBpZiAoaSA+IE1BWF9BUlJB
WV9JTkRFWCkgewogICAgICAgICAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgICAg
ICBwdXRWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaSksIHZhbHVlLCBzbG90
KTsKKyAgICAgICAgICAgIG1ldGhvZFRhYmxlKCktPnB1dCh0aGlzLCBleGVjLCBJZGVudGlmaWVy
Ojpmcm9tKGV4ZWMsIGkpLCB2YWx1ZSwgc2xvdCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIApAQCAtNzgxLDcgKzc3MSw3IEBAIHZvaWQgSlNBcnJheTo6cHVzaChFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiAgICAgQXJyYXlTdG9yYWdlKiBzdG9yYWdlID0gbV9zdG9y
YWdlOwogCiAgICAgaWYgKFVOTElLRUxZKHN0b3JhZ2UtPm1fbGVuZ3RoID09IDB4RkZGRkZGRkZ1
KSkgewotICAgICAgICBwdXRWaXJ0dWFsKGV4ZWMsIHN0b3JhZ2UtPm1fbGVuZ3RoLCB2YWx1ZSk7
CisgICAgICAgIG1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpcywgZXhlYywgc3RvcmFnZS0+
bV9sZW5ndGgsIHZhbHVlKTsKICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVSYW5nZUVy
cm9yKGV4ZWMsICJJbnZhbGlkIGFycmF5IGxlbmd0aCIpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTgzNSw3ICs4MjUsNyBAQCB2b2lkIEpTQXJyYXk6OnNoaWZ0Q291bnQoRXhlY1N0YXRl
KiBleGVjLCBpbnQgY291bnQpCiAgICAgICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QodGhp
cyk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBwID0gcHJvdG90eXBlKCk7CiAgICAgICAgICAg
ICAgICAgaWYgKCghcC5pc051bGwoKSkgJiYgKGFzT2JqZWN0KHApLT5nZXRQcm9wZXJ0eVNsb3Qo
ZXhlYywgaSwgc2xvdCkpKQotICAgICAgICAgICAgICAgICAgICBwdXRWaXJ0dWFsKGV4ZWMsIGks
IHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOworICAgICAgICAgICAgICAgICAgICBtZXRob2RUYWJs
ZSgpLT5wdXRCeUluZGV4KHRoaXMsIGV4ZWMsIGksIHNsb3QuZ2V0VmFsdWUoZXhlYywgaSkpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTg4NCw3ICs4NzQsNyBAQCB2b2lkIEpTQXJy
YXk6OnVuc2hpZnRDb3VudChFeGVjU3RhdGUqIGV4ZWMsIGludCBjb3VudCkKICAgICAgICAgICAg
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlzKTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIHAg
PSBwcm90b3R5cGUoKTsKICAgICAgICAgICAgICAgICBpZiAoKCFwLmlzTnVsbCgpKSAmJiAoYXNP
YmplY3QocCktPmdldFByb3BlcnR5U2xvdChleGVjLCBpLCBzbG90KSkpCi0gICAgICAgICAgICAg
ICAgICAgIHB1dFZpcnR1YWwoZXhlYywgaSwgc2xvdC5nZXRWYWx1ZShleGVjLCBpKSk7CisgICAg
ICAgICAgICAgICAgICAgIG1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgodGhpcywgZXhlYywgaSwg
c2xvdC5nZXRWYWx1ZShleGVjLCBpKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggNmI1ZmJjNmUwY2Ix
YjdmOGNmYTUzNDdmZDRiOWU4YjdhOWRjYmMyMy4uNWI4NmFkMmIzNThhNzJiYmI5NWQxNmZkYTI1
MzBjNzAyNzZlMjFiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApA
QCAtOTksNyArOTksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlKTsgLy8gRklYTUU6IE1ha2UgcHJvdGVjdGVkIGFuZCBhZGQgc2V0SXRl
bS4KICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHN0YXRpYyBKU19FWFBP
UlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC0xNzEsNyArMTcwLDYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRl
c1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0
cnVjdHVyZUZsYWdzOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0J5dGVBcnJheS5jcHAKaW5kZXggNjcwNThiNDA5MDA5Mjc2ZGY2MmZkN2NkZGVm
MTc5ZjE2Y2NhOGVhYy4uZDZkMDE4YTdmNzQ5ZTIwZTk3MWI2MmViZmI3Y2QyNTUwYzQyMmQwMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAt
OTcsMTEgKzk3LDYgQEAgYm9vbCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRl
eChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWcKICAgICByZXR1cm4gSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBJZGVudGlmaWVyOjpmcm9t
KGV4ZWMsIHByb3BlcnR5TmFtZSksIHNsb3QpOwogfQogCi12b2lkIEpTQnl0ZUFycmF5OjpwdXRW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIEpTQnl0ZUFycmF5Ojpw
dXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpT
Qnl0ZUFycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNCeXRlQXJyYXkqPihjZWxsKTsK
QEAgLTExNCwxMSArMTA5LDYgQEAgdm9pZCBKU0J5dGVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU4KICAgICBKU09iamVj
dDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQog
Ci12b2lkIEpTQnl0ZUFycmF5OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIHB1dEJ5SW5kZXgodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7Ci19Ci0KIHZvaWQgSlNCeXRlQXJyYXk6OnB1dEJ5SW5k
ZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzdGF0aWNfY2FzdDxKU0J5dGVBcnJheSo+KGNlbGwpLT5z
ZXRJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IGRlNmI5YzI4MjZkYzI5NDZhOGI2ZmIwZmQ2
NGNjNzI0ZDRlYmMzYjMuLjRjOTU3YTNkZThiMjY5ZTYzMmViYWIxNjhjYzE0YTJhYmU0Y2IzMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaApAQCAtOTMs
OSArOTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlEZXNjcmlwdG9yJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1
ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6
SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgSlNDOjpKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0M6OkpT
Q2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFs
dWUpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0g
RXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NlbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmNwcAppbmRleCAxNTI4MzVmM2M5MGM5OTcyOWRiMzc3OTk1OTY4MTBiM2RkNTQ4YWI3
Li4zMGUyNzM1NjBlOTUzZGUwYTk1OTU4MjM2NmU2N2U0MmQ4NGUyODM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKQEAgLTk4LDI0ICs5OCwxNiBAQCBib29sIEpT
Q2VsbDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQgaQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEpTQ2VsbDo6cHV0
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpT
VmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhl
YywgaWRlbnRpZmllciwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIEpTQ2VsbDo6cHV0KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgY2VsbC0+dG9PYmpl
Y3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0VmlydHVhbChleGVjLCBp
ZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KLXZvaWQgSlNDZWxsOjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAg
ICBwdXRCeUluZGV4KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlKTsKKyAgICBKU09iamVj
dCogdGhpc09iamVjdCA9IGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSk7CisgICAgdGhpc09iamVjdC0+bWV0aG9kVGFibGUoKS0+cHV0KHRoaXNPYmplY3Qs
IGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBKU0NlbGw6OnB1dEJ5
SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpZXIs
IEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgY2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpKS0+cHV0VmlydHVhbChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSk7Cisg
ICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBjZWxsLT50b09iamVjdChleGVjLCBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCkpOworICAgIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dEJ5
SW5kZXgodGhpc09iamVjdCwgZXhlYywgaWRlbnRpZmllciwgdmFsdWUpOwogfQogCiBib29sIEpT
Q2VsbDo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5k
ZXggZWEwZWRkYzlhYmQyMzAzOGQzMjY0ZDg1NTM3YmU3MGQ4ZTg2ZDA3Mi4uNmVhNTI2OTI4MjAy
YjZkMmQ0M2MyNWU4MGVhZmYyYzhiYWQ5ODNmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDZWxsLmgKQEAgLTg5LDkgKzg5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8v
IE9iamVjdCBvcGVyYXRpb25zLCB3aXRoIHRoZSB0b09iamVjdCBvcGVyYXRpb24gaW5jbHVkZWQu
CiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3Q7CiAgICAgICAgIGNv
bnN0IE1ldGhvZFRhYmxlKiBtZXRob2RUYWJsZSgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhl
Y1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGlj
IHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3Bl
cnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAzODNi
OTUzZTAwOWE4OWUxYzMwMDE3OGIxOGI2YTg4NTQ1NjcxOGFhLi5jOTlkYTRlNTQyNjMwMDY0NjU0
ODM2ZmVmY2VhNGRiYWNkYTUyYzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcApAQCAtMzE3LDExICszMTcsNiBAQCB2b2lkIEpTRnVuY3Rpb246Omdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJv
cGVydAogICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywg
bW9kZSk7CiB9CiAKLXZvaWQgSlNGdW5jdGlvbjo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90JiBzbG90KQotewotICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKLX0KLQogdm9pZCBKU0Z1bmN0aW9uOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwg
UHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggZjg1YWEzODBkY2MxNDM2ZDc0MTM5ZTdlNmZkMzI0YmU5
NTIzMGNjOS4uYmQ3YzNiMWVmMDI1NzRiY2I3YmFiOTAwYmVmMGQ3ZmYwMjVjODZhNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtMTM0LDcgKzEzNCw2
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgPSBFeGNsdWRlRG9udEVudW1Q
cm9wZXJ0aWVzKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggZThlY2ZhNDNkYmFlNzgwYjY1NTcy
YWVkMWE2NDljYjgxNWE0MWZhYS4uNzFmMzcxY2Q4NGI2M2E4NGE2MWM4Mjc0ZjE4MTlkMzRhODcw
NjJhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcApAQCAtMTM2LDExICsxMzYsNiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KEpT
T2JqZWN0KiB0aGlzVmFsdWUpCiAgICAgcmVzZXQocHJvdG90eXBlKCkpOwogfQogCi12b2lkIEpT
R2xvYmFsT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17
Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2
b2lkIEpTR2xvYmFsT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIEpTR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8SlNHbG9iYWxPYmplY3QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IGU2OTAyZTliYzM4MmM5ODcyY2EwMDkxYmFjMDYw
NjBjMzA5ZGI1MWEuLmNjOTJkODM4MDA5MzQ0MWJjMGFkNTgyNjA0MDIxMzEzMzUwNDBlYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAt
MTg2LDcgKzE4Niw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
ICAgICAgICAgdmlydHVhbCBib29sIGhhc093blByb3BlcnR5Rm9yV3JpdGUoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCmluZGV4IGU5ZDQ1ZDUxMjFi
NmE5ZWJhOWFhN2Y3NmRkMzdiMDFkYjY2ZjlhODcuLmFjOGY5Nzk2MzRjMDcxYTgyNGNiZTJlOTMx
NjBjYzk4ZTIyMGVhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Tm90QW5PYmplY3QuY3BwCkBAIC03NCwyMSArNzQsMTEgQEAgYm9vbCBKU05vdEFuT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSlNOb3RBbk9iamVjdDo6cHV0VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgaWRl
bnRpZmllciwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIEpTTm90QW5PYmplY3Q6OnB1dChKU0Nl
bGwqLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImICwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90JikKIHsKICAgICBBU1NFUlRfVU5VU0VEKGV4ZWMsIGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKTsKIH0KIAotdm9pZCBKU05vdEFuT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBwdXRCeUluZGV4KHRoaXMsIGV4
ZWMsIGksIHZhbHVlKTsKLX0KLQogdm9pZCBKU05vdEFuT2JqZWN0OjpwdXRCeUluZGV4KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQsIEpTVmFsdWUpCiB7CiAgICAgQVNTRVJUX1VO
VVNFRChleGVjLCBleGVjLT5oYWRFeGNlcHRpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKaW5kZXggOGQ1ZTdiYzQ5MWYzMDE1OWEyYTc3ODAy
ODMxOGNlOGI4MGNjNjNmZi4uZGYzMjk1OWE2NmUzODc2NzNiMDc1YWQ5NmQxOTdmMWE2MDI3YTAw
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApA
QCAtNzQsMTAgKzc0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci0K
LSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5jcHAKaW5kZXggN2M1OWFlZmNlMTBmM2NkZTZiN2ZjYzY0ZWUxNTM1Mjdh
NjNkN2MyOC4uNzVkZWIyZDc3ZGIzNGQ2NDkwYzE2NDE5MzBhNDg4ZDBhNzM2M2M1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKQEAgLTcxNSw3ICs3
MTUsNyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRl
cmVkKQogICAgICAgICAgICAgICAgICAgICBpZiAoaXNKU0FycmF5KCZtX2V4ZWMtPmdsb2JhbERh
dGEoKSwgYXJyYXkpICYmIGFycmF5LT5jYW5TZXRJbmRleChpbmRleFN0YWNrLmxhc3QoKSkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICBhcnJheS0+c2V0SW5kZXgobV9leGVjLT5nbG9iYWxEYXRh
KCksIGluZGV4U3RhY2subGFzdCgpLCBmaWx0ZXJlZFZhbHVlKTsKICAgICAgICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXktPnB1dFZpcnR1YWwobV9leGVj
LCBpbmRleFN0YWNrLmxhc3QoKSwgZmlsdGVyZWRWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBhcnJheS0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChhcnJheSwgbV9leGVjLCBpbmRl
eFN0YWNrLmxhc3QoKSwgZmlsdGVyZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4ganNOdWxsKCk7CkBAIC03NzksNyArNzc5LDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFs
dWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgICAgICBpZiAo
ZmlsdGVyZWRWYWx1ZS5pc1VuZGVmaW5lZCgpKQogICAgICAgICAgICAgICAgICAgICBvYmplY3Qt
PmRlbGV0ZVByb3BlcnR5VmlydHVhbChtX2V4ZWMsIHByb3ApOwogICAgICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICAgICAgb2JqZWN0LT5wdXRWaXJ0dWFsKG1fZXhlYywgcHJvcCwg
ZmlsdGVyZWRWYWx1ZSwgc2xvdCk7CisgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+bWV0aG9k
VGFibGUoKS0+cHV0KG9iamVjdCwgbV9leGVjLCBwcm9wLCBmaWx0ZXJlZFZhbHVlLCBzbG90KTsK
ICAgICAgICAgICAgICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgICAgICAgICAgICAgIGluZGV4U3RhY2subGFz
dCgpKys7CkBAIC04MTAsNyArODEwLDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3
YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICB9CiAgICAgSlNPYmplY3QqIGZpbmFsSG9sZGVy
ID0gY29uc3RydWN0RW1wdHlPYmplY3QobV9leGVjKTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xv
dDsKLSAgICBmaW5hbEhvbGRlci0+cHV0VmlydHVhbChtX2V4ZWMsIG1fZXhlYy0+Z2xvYmFsRGF0
YSgpLnByb3BlcnR5TmFtZXMtPmVtcHR5SWRlbnRpZmllciwgb3V0VmFsdWUsIHNsb3QpOworICAg
IGZpbmFsSG9sZGVyLT5tZXRob2RUYWJsZSgpLT5wdXQoZmluYWxIb2xkZXIsIG1fZXhlYywgbV9l
eGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+ZW1wdHlJZGVudGlmaWVyLCBvdXRWYWx1
ZSwgc2xvdCk7CiAgICAgcmV0dXJuIGNhbGxSZXZpdmVyKGZpbmFsSG9sZGVyLCBqc0VtcHR5U3Ry
aW5nKG1fZXhlYyksIG91dFZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwCmluZGV4IGM2OTA5MzkxZjg2NzY3ZDEwMDc1NDQyYTRhMTFkYzdmY2Vl
M2ZhN2YuLjdhMDM0MGEyYjQxMjA1ZTAzMTQ0NzZhYWVjMzc5YjY0MDEzYmFkY2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTExOSwxMSArMTE5LDYg
QEAgc3RhdGljIHZvaWQgdGhyb3dTZXR0ZXJFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgdGhy
b3dFcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgInNldHRpbmcgYSBwcm9wZXJ0eSB0
aGF0IGhhcyBvbmx5IGEgZ2V0dGVyIikpOwogfQogCi12b2lkIEpTT2JqZWN0OjpwdXRWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiAvLyBFQ01BIDguNi4yLjIKIHZvaWQgSlNP
YmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
CkBAIC0yMDEsMTUgKzE5NiwxMSBAQCB2b2lkIEpTT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZQogICAgIHJldHVy
bjsKIH0KIAotdm9pZCBKU09iamVjdDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBwdXRCeUluZGV4KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOwotfQotCiB2b2lkIEpTT2JqZWN0OjpwdXRCeUlu
ZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgc3RhdGlj
X2Nhc3Q8SlNPYmplY3QqPihjZWxsKS0+cHV0VmlydHVhbChleGVjLCBJZGVudGlmaWVyOjpmcm9t
KGV4ZWMsIHByb3BlcnR5TmFtZSksIHZhbHVlLCBzbG90KTsKKyAgICBKU09iamVjdCogdGhpc09i
amVjdCA9IHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2VsbCk7CisgICAgdGhpc09iamVjdC0+bWV0
aG9kVGFibGUoKS0+cHV0KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywg
cHJvcGVydHlOYW1lKSwgdmFsdWUsIHNsb3QpOwogfQogCiB2b2lkIEpTT2JqZWN0OjpwdXRXaXRo
QXR0cmlidXRlcyhKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcywgYm9vbCBjaGVj
a1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC04MzQsNyArODI1LDcgQEAgYm9v
bCBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUKICAgICAgICAgICAgIGlmICghZGVzY3JpcHRvci52YWx1ZSgp
KQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgUHV0UHJvcGVydHlT
bG90IHNsb3Q7Ci0gICAgICAgICAgICBwdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVz
Y3JpcHRvci52YWx1ZSgpLCBzbG90KTsKKyAgICAgICAgICAgIG1ldGhvZFRhYmxlKCktPnB1dCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IudmFsdWUoKSwgc2xvdCk7CiAgICAg
ICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAppbmRleCAxYzI4ODU3YmZlZGQxMzU1MzM5YzFhYTkyODQ1MjA5YmY1
ZDY1MzcwLi4wNGIzYTlhY2NmOWExZjFhZGU1MDhiMTgwZTczNTBmYTkwODRiY2ZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTEwNSw5ICsxMDUsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAotICAg
ICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsK
ICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRX
aXRoQXR0cmlidXRlcyhKU0dsb2JhbERhdGEqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIGJvb2wgY2hlY2tSZWFkT25s
eSwgUHV0UHJvcGVydHlTbG90JiBzbG90KTsKQEAgLTgxMiwxMCArODEwLDExIEBAIGlubGluZSBK
U1ZhbHVlIEpTVmFsdWU6OmdldChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90CiBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXQoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKICAgICBpZiAoVU5MSUtFTFkoIWlzQ2VsbCgpKSkgewotICAgICAg
ICBzeW50aGVzaXplT2JqZWN0KGV4ZWMpLT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpOworICAgICAgICBKU09iamVjdCogdGhpc09iamVjdCA9IHN5bnRoZXNpemVP
YmplY3QoZXhlYyk7CisgICAgICAgIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dCh0aGlz
T2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KLSAgICBhc0NlbGwoKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBzbG90KTsKKyAgICBhc0NlbGwoKS0+bWV0aG9kVGFibGUoKS0+cHV0KGFzQ2VsbCgpLCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogaW5saW5lIHZvaWQgSlNWYWx1
ZTo6cHV0RGlyZWN0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC04MjgsMTAgKzgy
NywxMSBAQCBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXREaXJlY3QoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsCiBpbmxpbmUgdm9pZCBKU1ZhbHVlOjpwdXQo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCiB7
CiAgICAgaWYgKFVOTElLRUxZKCFpc0NlbGwoKSkpIHsKLSAgICAgICAgc3ludGhlc2l6ZU9iamVj
dChleGVjKS0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKKyAgICAgICAg
SlNPYmplY3QqIHRoaXNPYmplY3QgPSBzeW50aGVzaXplT2JqZWN0KGV4ZWMpOworICAgICAgICB0
aGlzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGFzQ2VsbCgp
LT5wdXRWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOworICAgIGFzQ2VsbCgpLT5t
ZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KGFzQ2VsbCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlKTsKIH0KIAogLy8gLS0tIEpTVmFsdWUgaW5saW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRp
Y1Njb3BlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGlj
U2NvcGVPYmplY3QuY3BwCmluZGV4IDdmYTVjNDg5ZWI5YWZiNGJhNDMyZDM5NTlmMWUxZTJhYzU1
MDQ1MDcuLjRjNjRlZDg5YjAwOWYxNzQzY2EzMGJkZjNkMmJmYmY5MWE3YTllNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3Qu
Y3BwCkBAIC00OSwxMSArNDksNiBAQCBKU09iamVjdCogSlNTdGF0aWNTY29wZU9iamVjdDo6dG9U
aGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gZXhlYy0+Z2xvYmFs
VGhpc1ZhbHVlKCk7CiB9CiAKLXZvaWQgSlNTdGF0aWNTY29wZU9iamVjdDo6cHV0VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHB1dCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0KLQogdm9pZCBKU1N0YXRpY1Njb3BlT2JqZWN0Ojpw
dXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpT
U3RhdGljU2NvcGVPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1N0YXRpY1Njb3Bl
T2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1N0YXRpY1Njb3BlT2JqZWN0LmgKaW5kZXggMDMyMTFmZmYzNzk0Nzk0ODVmYjBkZWZhNDgxMDgw
ODUxMzE3ZTcyMS4uZTgyZGIxZTIzODM4NjdmMjk4MmMyZjhkZmQ4NWU2NWU4MWY0NDI5MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmpl
Y3QuaApAQCAtNDYsNyArNDYsNiBAQCBuYW1lc3BhY2UgSlNDewogICAgICAgICB2aXJ0dWFsIEpT
T2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9p
ZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAK
aW5kZXggOThlMWQxNzhkNGY0NmI0MGQ1N2I2YjExYWUwZjRkZmJlN2M4OWE5ZS4uNGNiYzU2Nzky
OTBlYmU1YzQxMDE4ZDZmZTJkYjQzZjhiNzU3ZDFiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC03NSwxMSArNzUsNiBAQCB2
b2lkIE9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdCopCiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0K
IAotdm9pZCBPYmplY3RQcm90b3R5cGU6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xv
dCk7Ci19Ci0KIHZvaWQgT2JqZWN0UHJvdG90eXBlOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwg
UHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIE9iamVjdFByb3RvdHlwZSogdGhpc09iamVj
dCA9IHN0YXRpY19jYXN0PE9iamVjdFByb3RvdHlwZSo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCBjODU5ZDU3ZjMzMWVi
NDU2MmExZTM2ZjM3OTQ3NDA4NDJkZDQxNTFkLi44ZGM3MjQ3NzhkMTBiZTBjNDBjZDIzMGJkYzJj
Zjc1YjAyNmYzMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuaApAQCAtNTAsNyArNTAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIE9iamVjdFByb3RvdHlwZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cAppbmRleCA5MGZhMzcxMzA5ZjBhNDYzNmQ3MTg1MTU3MjZmMDI3ZGYxY2YwMTc5Li42ZGY1YjM4
OTczZTJmN2RkMzQyMThiNjgxYTkzODZlMmNmMzgwM2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0yOTIsMTEgKzI5
Miw2IEBAIEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJCiAgICAgcmV0dXJuIGFzUmVnRXhwQ29uc3Ry
dWN0b3Ioc2xvdEJhc2UpLT5nZXRSaWdodENvbnRleHQoZXhlYyk7CiB9CiAKLXZvaWQgUmVnRXhw
Q29uc3RydWN0b3I6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsK
LSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZv
aWQgUmVnRXhwQ29uc3RydWN0b3I6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7CiAgICAgbG9va3VwUHV0PFJlZ0V4cENvbnN0cnVjdG9yLCBJbnRlcm5h
bEZ1bmN0aW9uPihleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBFeGVjU3RhdGU6OnJlZ0V4cENv
bnN0cnVjdG9yVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oY2Vs
bCksIHNsb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENv
bnN0cnVjdG9yLmgKaW5kZXggMmZmOWMxZDMzY2RkODI2MjQ1ZDZmYjZlZTk4ZDRkMTA2YzVhMGI3
OC4uYzQ1MTc5OWVmYzBlYmQ4MzgwYWM5MGYwMTNjZGU4M2I0MGFmZTY3MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBAIC03MSw3
ICs3MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogICAgICAgICB9CiAKLSAgICAgICAg
dmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZv
aWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggNDcwMGZjOTNlMWZlNWJlZmM5ZTFk
NDEwMTdkZWRjOTFmM2EyOWQxMy4uNzZhMjJjNDExMWY5ZGMxZjExODRhMjEzNWYxMThmNmI0N2Uy
NTNiNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0
Y2hlc0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0
Y2hlc0FycmF5LmgKQEAgLTc2LDExICs3Niw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgcmV0dXJuIEpTQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0
eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdiwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2LCBzbG90KTsKLSAgICAgICAgfQotCiAg
ICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHYsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKICAgICAgICAgewogICAgICAgICAgICAgUmVnRXhwTWF0Y2hlc0FycmF5KiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8UmVnRXhwTWF0Y2hlc0FycmF5Kj4oY2VsbCk7CkBAIC04OSwxMSAr
ODQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIEpTQXJyYXk6OnB1dCh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHYsIHNsb3QpOwogICAgICAgICB9CiAgICAgICAgIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2KQotICAgICAgICB7Ci0gICAgICAgICAgICBwdXRCeUlu
ZGV4KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdik7Ci0gICAgICAgIH0KLSAgICAgICAgCiAg
ICAgICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2KQogICAgICAgICB7CiAgICAgICAg
ICAgICBSZWdFeHBNYXRjaGVzQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxSZWdFeHBN
YXRjaGVzQXJyYXkqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBPYmplY3QuY3BwCmluZGV4IGQ1ZTkyNDNlMzI4NjgzZjZhNjc0YWMxMzNlMWJlYWIxYTcw
ZmQ2OTguLmU4MmRmYWFhNzIwN2RhODZhYjEwZGI0ZjZhOGQwZGJjODk0NDQ1OTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtMTY1LDEx
ICsxNjUsNiBAQCBKU1ZhbHVlIHJlZ0V4cE9iamVjdExhc3RJbmRleChFeGVjU3RhdGUqLCBKU1Zh
bHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKICAgICByZXR1cm4gYXNSZWdFeHBPYmpl
Y3Qoc2xvdEJhc2UpLT5nZXRMYXN0SW5kZXgoKTsKIH0KIAotdm9pZCBSZWdFeHBPYmplY3Q6OnB1
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgUmVnRXhwT2JqZWN0
OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAg
IGxvb2t1cFB1dDxSZWdFeHBPYmplY3QsIEpTT2JqZWN0PihleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBFeGVjU3RhdGU6OnJlZ0V4cFRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxSZWdFeHBPYmpl
Y3QqPihjZWxsKSwgc2xvdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5oCmluZGV4IDBmYTM2YTUxYTY3MTAyMGNkNWM2YzJlMTA1ODU2MDg0NDc1Mzg2MmMu
LmNjNjQ2MzUxMTA3Mzc5NDNkOGMxZDMyNTg3MThiYjg5NmVhMzViZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC02OCw3ICs2OCw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lk
IHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlRE
QVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAppbmRleCA2NzUwNGNhMGZmN2Y3NmFmOTVlNWZhMDAwY2E5
NTI0YmUyNmMzNWEzLi4wNTkwMTJmZTUzZDFlNzhkMTRiMDU0YzUwYzM4ZTk4OWNiMTk3ZDUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKQEAg
LTc0LDExICs3NCw2IEBAIGJvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwCiAgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlw
dG9yKTsKIH0KIAotdm9pZCBTdHJpbmdPYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYgc2xvdCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7Ci19Ci0KIHZvaWQgU3RyaW5nT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1
ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggNDFkNTNhMTI2YjA1MDEyYjgyMzg5ODExNmU1NmJjMTY4
ZmYwZGRkYi4uZDEzNGMzZWNmY2UwYzllYTUwNDE3YTk3MWM0MTUzZGUzMTZkNDk1MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKQEAgLTUxLDcgKzUx
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7
CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgdmly
dHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggYWRiZmMyYjJmNWZjMzJmMGY5NDExZTFmZDY3ZTcx
MmI4ZWI5Y2FhOS4uZTQ5MzBmODc1YzIxMDVmMTQwOWZlNGIxZThhOGE5ZGRmMThjNzIzNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
CkBAIC04NDYsNyArODQ2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQ
cm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIGlmIChzZXBhcmF0b3JWYWx1
ZS5pc1VuZGVmaW5lZCgpKSB7CiAgICAgICAgICAgICAvLyBhLiBDYWxsIHRoZSBbW0RlZmluZU93
blByb3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kIG9mIEEgd2l0aCBhcmd1bWVudHMgIjAiLAogICAg
ICAgICAgICAgLy8gICAgUHJvcGVydHkgRGVzY3JpcHRvciB7W1tWYWx1ZV1dOiBTLCBbW1dyaXRh
YmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3VyYWJsZV1dOiB0cnVl
fSwgYW5kIGZhbHNlLgotICAgICAgICAgICAgcmVzdWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIDAsIGpz
U3RyaW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQpKTsKKyAgICAgICAgICAgIHJl
c3VsdC0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChyZXN1bHQsIGV4ZWMsIDAsIGpzU3RyaW5n
V2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQpKTsKICAgICAgICAgICAgIC8vIGIuIFJl
dHVybiBBLgogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogICAg
ICAgICB9CkBAIC04NTksNyArODU5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
dHJpbmdQcm90b0Z1bmNTcGxpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAvLyAgICBQ
cm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFMsIFtbV3JpdGFibGVdXTogdHJ1ZSwgW1tF
bnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWV9LCBhbmQgZmFsc2UuCiAg
ICAgICAgICAgICAvLyBkLiBSZXR1cm4gQS4KICAgICAgICAgICAgIGlmIChyZWctPm1hdGNoKCpn
bG9iYWxEYXRhLCBpbnB1dCwgMCkgPCAwKQotICAgICAgICAgICAgICAgIHJlc3VsdC0+cHV0Vmly
dHVhbChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlucHV0KSk7
CisgICAgICAgICAgICAgICAgcmVzdWx0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KHJlc3Vs
dCwgZXhlYywgMCwganNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCkpOwog
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogICAgICAgICB9CiAK
QEAgLTg5MCw3ICs4OTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1By
b3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIC8vICAgIHRocm91Z2gg
cSAoZXhjbHVzaXZlKS4KICAgICAgICAgICAgIC8vIDIuIENhbGwgdGhlIFtbRGVmaW5lT3duUHJv
cGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50cyBUb1N0cmluZyhsZW5n
dGhBKSwKICAgICAgICAgICAgIC8vICAgIFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFsdWVdXTog
VCwgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFi
bGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KLSAgICAgICAgICAgIHJlc3VsdC0+cHV0VmlydHVhbChl
eGVjLCByZXN1bHRMZW5ndGgsIGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlvbiwgbWF0
Y2hQb3NpdGlvbiAtIHBvc2l0aW9uKSk7CisgICAgICAgICAgICByZXN1bHQtPm1ldGhvZFRhYmxl
KCktPnB1dEJ5SW5kZXgocmVzdWx0LCBleGVjLCByZXN1bHRMZW5ndGgsIGpzU3Vic3RyaW5nKGV4
ZWMsIGlucHV0LCBwb3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiAtIHBvc2l0aW9uKSk7CiAgICAgICAg
ICAgICAvLyAzLiBJbmNyZW1lbnQgbGVuZ3RoQSBieSAxLgogICAgICAgICAgICAgLy8gNC4gSWYg
bGVuZ3RoQSA9PSBsaW0sIHJldHVybiBBLgogICAgICAgICAgICAgaWYgKCsrcmVzdWx0TGVuZ3Ro
ID09IGxpbWl0KQpAQCAtOTA5LDcgKzkwOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgICAg
IC8vICAgVG9TdHJpbmcobGVuZ3RoQSksIFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFsdWVdXTog
Y2FwW2ldLCBbW1dyaXRhYmxlXV06CiAgICAgICAgICAgICAgICAgLy8gICB0cnVlLCBbW0VudW1l
cmFibGVdXTogdHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KICAgICAg
ICAgICAgICAgICBpbnQgc3ViID0gb3ZlY3RvcltpICogMl07Ci0gICAgICAgICAgICAgICAgcmVz
dWx0LT5wdXRWaXJ0dWFsKGV4ZWMsIHJlc3VsdExlbmd0aCwgc3ViIDwgMCA/IGpzVW5kZWZpbmVk
KCkgOiBqc1N1YnN0cmluZyhleGVjLCBpbnB1dCwgc3ViLCBvdmVjdG9yW2kgKiAyICsgMV0gLSBz
dWIpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQtPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgo
cmVzdWx0LCBleGVjLCByZXN1bHRMZW5ndGgsIHN1YiA8IDAgPyBqc1VuZGVmaW5lZCgpIDoganNT
dWJzdHJpbmcoZXhlYywgaW5wdXQsIHN1Yiwgb3ZlY3RvcltpICogMiArIDFdIC0gc3ViKSk7CiAg
ICAgICAgICAgICAgICAgLy8gYyBJbmNyZW1lbnQgbGVuZ3RoQSBieSAxLgogICAgICAgICAgICAg
ICAgIC8vIGQgSWYgbGVuZ3RoQSA9PSBsaW0sIHJldHVybiBBLgogICAgICAgICAgICAgICAgIGlm
ICgrK3Jlc3VsdExlbmd0aCA9PSBsaW1pdCkKQEAgLTkyOCw3ICs5MjgsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykK
ICAgICAgICAgaWYgKHNlcGFyYXRvclZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKICAgICAgICAgICAg
IC8vIGEuICBDYWxsIHRoZSBbW0RlZmluZU93blByb3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kIG9m
IEEgd2l0aCBhcmd1bWVudHMgIjAiLAogICAgICAgICAgICAgLy8gICAgIFByb3BlcnR5IERlc2Ny
aXB0b3Ige1tbVmFsdWVdXTogUywgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTog
dHJ1ZSwgW1tDb25maWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KLSAgICAgICAgICAgIHJl
c3VsdC0+cHV0VmlydHVhbChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFs
dWUsIGlucHV0KSk7CisgICAgICAgICAgICByZXN1bHQtPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5k
ZXgocmVzdWx0LCBleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFsdWUsIGlu
cHV0KSk7CiAgICAgICAgICAgICAvLyBiLiAgUmV0dXJuIEEuCiAgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgICAgIH0KQEAgLTk0MSw3ICs5NDEsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0
ZSogZXhlYykKICAgICAgICAgICAgIC8vICAgIFByb3BlcnR5IERlc2NyaXB0b3Ige1tbVmFsdWVd
XTogUywgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwgW1tDb25maWd1
cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KICAgICAgICAgICAgIC8vIGQuIFJldHVybiBBLgog
ICAgICAgICAgICAgaWYgKCFzZXBhcmF0b3IuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJl
c3VsdC0+cHV0VmlydHVhbChleGVjLCAwLCBqc1N0cmluZ1dpdGhSZXVzZShleGVjLCB0aGlzVmFs
dWUsIGlucHV0KSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LT5tZXRob2RUYWJsZSgpLT5wdXRC
eUluZGV4KHJlc3VsdCwgZXhlYywgMCwganNTdHJpbmdXaXRoUmV1c2UoZXhlYywgdGhpc1ZhbHVl
LCBpbnB1dCkpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
ICAgICAgICB9CiAKQEAgLTk1Miw3ICs5NTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIEFT
U0VSVChsaW1pdCk7CiAKICAgICAgICAgICAgIGRvIHsKLSAgICAgICAgICAgICAgICByZXN1bHQt
PnB1dFZpcnR1YWwoZXhlYywgcG9zaXRpb24sIGpzU2luZ2xlQ2hhcmFjdGVyU3Vic3RyaW5nKGV4
ZWMsIGlucHV0LCBwb3NpdGlvbikpOworICAgICAgICAgICAgICAgIHJlc3VsdC0+bWV0aG9kVGFi
bGUoKS0+cHV0QnlJbmRleChyZXN1bHQsIGV4ZWMsIHBvc2l0aW9uLCBqc1NpbmdsZUNoYXJhY3Rl
clN1YnN0cmluZyhleGVjLCBpbnB1dCwgcG9zaXRpb24pKTsKICAgICAgICAgICAgIH0gd2hpbGUg
KCsrcG9zaXRpb24gPCBsaW1pdCk7CiAKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKQEAgLTk2OSw3ICs5NjksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIC8v
ICAgIHRocm91Z2ggcSAoZXhjbHVzaXZlKS4KICAgICAgICAgICAgIC8vIDIuIENhbGwgdGhlIFtb
RGVmaW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50cyBU
b1N0cmluZyhsZW5ndGhBKSwKICAgICAgICAgICAgIC8vICAgIFByb3BlcnR5IERlc2NyaXB0b3Ig
e1tbVmFsdWVdXTogVCwgW1tXcml0YWJsZV1dOiB0cnVlLCBbW0VudW1lcmFibGVdXTogdHJ1ZSwg
W1tDb25maWd1cmFibGVdXTogdHJ1ZX0sIGFuZCBmYWxzZS4KLSAgICAgICAgICAgIHJlc3VsdC0+
cHV0VmlydHVhbChleGVjLCByZXN1bHRMZW5ndGgsIGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBw
b3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiAtIHBvc2l0aW9uKSk7CisgICAgICAgICAgICByZXN1bHQt
Pm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5kZXgocmVzdWx0LCBleGVjLCByZXN1bHRMZW5ndGgsIGpz
U3Vic3RyaW5nKGV4ZWMsIGlucHV0LCBwb3NpdGlvbiwgbWF0Y2hQb3NpdGlvbiAtIHBvc2l0aW9u
KSk7CiAgICAgICAgICAgICAvLyAzLiBJbmNyZW1lbnQgbGVuZ3RoQSBieSAxLgogICAgICAgICAg
ICAgLy8gNC4gSWYgbGVuZ3RoQSA9PSBsaW0sIHJldHVybiBBLgogICAgICAgICAgICAgaWYgKCsr
cmVzdWx0TGVuZ3RoID09IGxpbWl0KQpAQCAtOTg1LDcgKzk4NSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXQoRXhlY1N0YXRlKiBleGVjKQogICAg
IC8vICAgICB0aHJvdWdoIHMgKGV4Y2x1c2l2ZSkuCiAgICAgLy8gMTUuIENhbGwgdGhlIFtbRGVm
aW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50cyBUb1N0
cmluZyhsZW5ndGhBKSwgUHJvcGVydHkgRGVzY3JpcHRvcgogICAgIC8vICAgICB7W1tWYWx1ZV1d
OiBULCBbW1dyaXRhYmxlXV06IHRydWUsIFtbRW51bWVyYWJsZV1dOiB0cnVlLCBbW0NvbmZpZ3Vy
YWJsZV1dOiB0cnVlfSwgYW5kIGZhbHNlLgotICAgIHJlc3VsdC0+cHV0VmlydHVhbChleGVjLCBy
ZXN1bHRMZW5ndGgrKywganNTdWJzdHJpbmcoZXhlYywgaW5wdXQsIHBvc2l0aW9uLCBpbnB1dC5s
ZW5ndGgoKSAtIHBvc2l0aW9uKSk7CisgICAgcmVzdWx0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUlu
ZGV4KHJlc3VsdCwgZXhlYywgcmVzdWx0TGVuZ3RoKyssIGpzU3Vic3RyaW5nKGV4ZWMsIGlucHV0
LCBwb3NpdGlvbiwgaW5wdXQubGVuZ3RoKCkgLSBwb3NpdGlvbikpOwogCiAgICAgLy8gMTYuIFJl
dHVybiBBLgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvSlNWYWx1ZVdyYXBwZXIuY3BwCmluZGV4IGFmZjlmZjNjMjc3YjZkZGU0MzA0MWIz
NzNkYTE0MmRlNmU0NzNlZTQuLjYwZDk5NTE2MDZlMWNkZTEzYzY1NDY4OTVhODEwMjYxNzJlMDc3
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1ZhbHVlV3JhcHBlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTVmFsdWVXcmFwcGVyLmNwcApAQCAtMTM2LDcg
KzEzNiw3IEBAIHZvaWQgSlNWYWx1ZVdyYXBwZXI6OkpTT2JqZWN0U2V0UHJvcGVydHkodm9pZCAq
ZGF0YSwgQ0ZTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKCiAgICAgICAgIEpTVmFsdWUgdmFsdWUg
PSBKU09iamVjdEtKU1ZhbHVlKChKU1VzZXJPYmplY3QqKWpzVmFsdWUpOwogICAgICAgICBKU09i
amVjdCAqb2JqVmFsdWUgPSBwdHItPkdldFZhbHVlKCkudG9PYmplY3QoZXhlYyk7CiAgICAgICAg
IFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBvYmpWYWx1ZS0+cHV0VmlydHVhbChleGVj
LCBDRlN0cmluZ1RvSWRlbnRpZmllcihwcm9wZXJ0eU5hbWUsIGV4ZWMpLCB2YWx1ZSwgc2xvdCk7
CisgICAgICAgIG9ialZhbHVlLT5tZXRob2RUYWJsZSgpLT5wdXQob2JqVmFsdWUsIGV4ZWMsIENG
U3RyaW5nVG9JZGVudGlmaWVyKHByb3BlcnR5TmFtZSwgZXhlYyksIHZhbHVlLCBzbG90KTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1w
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAppbmRleCA5ZTlk
MjA2NDA2NzlkMTA4YmQyNmQ1YTcyOTE1YWMxZDZmNGI1N2EwLi5lMzA4ZTgzM2U1MTg2NDA3YmJl
Yjg1NzhlZjAzMmNhZjQ2YTcwZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
VXNlck9iamVjdEltcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJ
bXAuY3BwCkBAIC0xNTIsMTEgKzE1Miw2IEBAIGJvb2wgVXNlck9iamVjdEltcDo6Z2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVuCiAgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KIAotdm9pZCBVc2VyT2JqZWN0SW1wOjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcHV0KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lkIFVzZXJPYmplY3RJbXA6OnB1dChKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQogewogICAgIFVzZXJPYmplY3RJbXAq
IHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxVc2VyT2JqZWN0SW1wKj4oY2VsbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvU291cmNlL0phdmFT
Y3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAppbmRleCAyMGI2MmY0YjU4OTk5ODkzZDdkMjAzMjc3
NDZiMmVmYzA1ZDcxNDg5Li4wMzEwZTk1ZmIwODg0NWFhMTZlZTYyMWM2Yjk0NDY1ZTM1NTkxZTg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTU2LDcgKzU2LDYgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgSlNWYWx1ZSBjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4
ZWMpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAg
IEpTVmFsdWUgdG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSBw
cmVmZXJyZWRUeXBlID0gTm9QcmVmZXJlbmNlKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5k
ZXggMDBmMTIyNjY0MjRkNTM0ZTBjYjVjNDZmODAzODFhMWRjNDI4NTI1NC4uODJkY2Y5ZTRhY2Y1
NWMyZDQ0NzY4YWQwMmNkMWFiMzZhNjVjNmNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE0
MSw3ICsxNDEsNiBAQCBfX1pON1dlYkNvcmUxMENsaWVudFJlY3RDMUV2CiBfX1pON1dlYkNvcmUx
MENyZWRlbnRpYWxDMUVSS04zV1RGNlN0cmluZ0VTNF9OU18yMUNyZWRlbnRpYWxQZXJzaXN0ZW5j
ZUUKIF9fWk43V2ViQ29yZTEwQ3JlZGVudGlhbEMxRXYKIF9fWk43V2ViQ29yZTEwRmxvYXRQb2lu
dEMxRVJLTlNfOEludFBvaW50RQotX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50MTBwdXRWaXJ0dWFs
RVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1
UHV0UHJvcGVydHlTbG90RQogX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50NnNfaW5mb0UKIF9fWk43
V2ViQ29yZTEwTW91c2VFdmVudDZjcmVhdGVFUktOM1dURjEyQXRvbWljU3RyaW5nRU5TMV8xMFBh
c3NSZWZQdHJJTlNfOURPTVdpbmRvd0VFRVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRFaU5TNV9J
TlNfNE5vZGVFRUUKIF9fWk43V2ViQ29yZTEwTW91c2VFdmVudEMxRVJLTjNXVEYxMkF0b21pY1N0
cmluZ0ViYk5TMV8xMFBhc3NSZWZQdHJJTlNfOURPTVdpbmRvd0VFRWlpaWlpYmJiYnROUzVfSU5T
XzExRXZlbnRUYXJnZXRFRUVOUzVfSU5TXzlDbGlwYm9hcmRFRUViCkBAIC04NDMsNyArODQyLDYg
QEAgX19aTjdXZWJDb3JlNkVkaXRvcjZpbmRlbnRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjdDb21t
YW5kQzFFdgogX19aTjdXZWJDb3JlNkVkaXRvcjdjb21tYW5kRVJLTjNXVEY2U3RyaW5nRQogX19a
TjdXZWJDb3JlNkVkaXRvcjdvdXRkZW50RXYKLV9fWk43V2ViQ29yZTZKU05vZGUxMHB1dFZpcnR1
YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFf
MTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pON1dlYkNvcmU2SlNOb2RlNnNfaW5mb0UKIF9fWk43V2Vi
Q29yZTZSZWdpb241dW5pdGVFUktTMF8KIF9fWk43V2ViQ29yZTZSZWdpb244c3VidHJhY3RFUktT
MF8KQEAgLTEwNTgsNyArMTA1Niw2IEBAIF9fWk43V2ViQ29yZTlIVE1MTmFtZXM4dmlkZW9UYWdF
CiBfX1pON1dlYkNvcmU5SFRNTE5hbWVzOWlmcmFtZVRhZ0UKIF9fWk43V2ViQ29yZTlIVE1MTmFt
ZXM5b2JqZWN0VGFnRQogX19aTjdXZWJDb3JlOUhUTUxOYW1lczlzY3JpcHRUYWdFCi1fX1pON1dl
YkNvcmU5SlNFbGVtZW50MTBwdXRWaXJ0dWFsRVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJZGVu
dGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMxXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjdXZWJDb3Jl
OUpTRWxlbWVudDZzX2luZm9FCiBfX1pON1dlYkNvcmU5UGFnZUNhY2hlMTFzZXRDYXBhY2l0eUVp
CiBfX1pON1dlYkNvcmU5UGFnZUNhY2hlMjdyZWxlYXNlQXV0b3JlbGVhc2VkUGFnZXNOb3dFdgpA
QCAtMTY5Nyw3ICsxNjk0LDYgQEAgX19aTjNKU0MxM1J1bnRpbWVNZXRob2QyNWdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWYKIF9fWk4zSlNDMTNS
dW50aW1lTWV0aG9kNnNfaW5mb0UKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kQzJFUE5TXzE0SlNH
bG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFUk4zV1RGNlZlY3RvcklQTlNfOEJpbmRpbmdzNk1l
dGhvZEVMbTBFRUUKIF9fWk4zSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0RDFFdgotX19aTjNKU0M4
QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxMHB1dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0M4
QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxMWdldENhbGxEYXRhRVBOU182SlNDZWxsRVJOU184Q2Fs
bERhdGFFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE0ZGVsZXRlUHJvcGVydHlF
UE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzhC
aW5kaW5nczEzUnVudGltZU9iamVjdDE0ZmluaXNoQ3JlYXRpb25FUE5TXzE0SlNHbG9iYWxPYmpl
Y3RFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5j
cHAKaW5kZXggMGFlMjQ3NzhhMzIxOTY4ZjljNDU4OGRkMmQwNjRlZTdiOTllZmI2MS4uZDc3OTM1
ZjllMTIzZjBkNWQxZjkwNjhiNDQ5ZjBjNzc3Y2M5NzE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMzQ0LDExICszNDQsNiBA
QCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcgogICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotdm9pZCBK
U0RPTVdpbmRvdzo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQotewot
ICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKLX0KLQogdm9p
ZCBKU0RPTVdpbmRvdzo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKICAgICBKU0RPTVdpbmRvdyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9N
V2luZG93Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuY3BwCmluZGV4IGUzZDMzM2NjMzBjZDgzOTM3YzFiYzQ0ZjAxN2UxNTVkYjE5ZWJl
YTEuLjY5ZDM0NmU1M2VhMjc5MjhlYTIzMjUzOTgwMTkwMWJjNTEzZDk2OTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC0xMTUsMTQg
KzExNSwxMCBAQCBib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZQogICAgIHJldHVybiBtX3dpbmRvdy0+
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7
CiB9CiAKLXZvaWQgSlNET01XaW5kb3dTaGVsbDo6cHV0VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90JiBzbG90KQotewotICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKLX0KLQogdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHN0YXRpY19jYXN0PEpTRE9NV2lu
ZG93U2hlbGwqPihjZWxsKS0+bV93aW5kb3ctPnB1dFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgc2xvdCk7CisgICAgSlNET01XaW5kb3dTaGVsbCogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PEpTRE9NV2luZG93U2hlbGwqPihjZWxsKTsKKyAgICB0aGlzT2JqZWN0LT5tX3dpbmRv
dy0+bWV0aG9kVGFibGUoKS0+cHV0KHRoaXNPYmplY3QtPm1fd2luZG93LmdldCgpLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpw
dXRXaXRoQXR0cmlidXRlcyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCAwZDY5MjE2MDI2NTBk
ZDNkODU0MThhOTEwZGM0N2NjOGNiMGJjZWE0Li41OWZmNzkzOWQwYmQ4ZjE0ZGI4ZWViNzAzNDcw
ZGExZmNlMDQwZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dTaGVsbC5oCkBAIC04Myw3ICs4Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0Vmly
dHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2
b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgdW5zaWdu
ZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1
YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmNwcAppbmRleCAwMGNkOTY4MmI4Y2VlMGJkZDZhOTBlZDc2N2Y0ZjZkYzE3MTIz
YTI1Li4yZDY1NTNhZjQ1Y2M2ZmYzYTMwOWU1YjllY2IzOGEyMmIxYWVlYzMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9u
cy5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBib29sIHJ1bnRpbWVPYmplY3RDdXN0b21QdXQoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVgogICAgICAg
ICByZXR1cm4gMDsKICAgICBpZiAoIXNjcmlwdE9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgcHJv
cGVydHlOYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHNjcmlwdE9iamVjdC0+cHV0
VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBzY3JpcHRPYmpl
Y3QtPm1ldGhvZFRhYmxlKCktPnB1dChzY3JpcHRPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA5NjJiZjVk
OTA1MmE3MjVlMmZlMzZlYmJmZjVlN2M3ZThhYjU4M2QwLi4wMzA4NTYxMDAzN2MzYTUyYTkwNmNi
OTMyN2Q5MTQzNTBiNWEzNzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTEwMzEsNyArMTAzMSw3IEBAIHByaXZh
dGU6CiAgICAgICAgIGlmIChhcnJheS0+Y2FuU2V0SW5kZXgoaW5kZXgpKQogICAgICAgICAgICAg
YXJyYXktPnNldEluZGV4KG1fZXhlYy0+Z2xvYmFsRGF0YSgpLCBpbmRleCwgdmFsdWUpOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBhcnJheS0+cHV0VmlydHVhbChtX2V4ZWMsIGluZGV4LCB2
YWx1ZSk7CisgICAgICAgICAgICBhcnJheS0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChhcnJh
eSwgbV9leGVjLCBpbmRleCwgdmFsdWUpOwogICAgIH0KIAogICAgIHZvaWQgcHV0UHJvcGVydHko
SlNPYmplY3QqIG9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIEpTVmFsdWUgdmFs
dWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9i
amVjdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1t
CmluZGV4IDU5MTBlMzU2ZGRiZjkzODIyOTIxNzU1OTE4ODZhNDUxYzU5ZmU4N2UuLmE0ZDdjNGFh
NGI1MTViNjE5OGI0ZDI2ZmVmNWEzNjUwZWYwOWU4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCkBAIC0zNDksNyArMzQ5LDcgQEAgc3Rh
dGljIHZvaWQgZ2V0TGlzdEZyb21OU0FycmF5KEV4ZWNTdGF0ZSAqZXhlYywgTlNBcnJheSAqYXJy
YXksIFJvb3RPYmplY3QqIHJvb3QKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09u
bHkpOwogCiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgW3NlbGYgX2ltcF0tPnB1dFZp
cnR1YWwoZXhlYywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJpbmcoU3RyaW5nKGtleSkp
KSwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJnZhbHVlLCBPYmpjT2JqZWN0VHlwZSwg
W3NlbGYgX3Jvb3RPYmplY3RdKSwgc2xvdCk7CisgICAgW3NlbGYgX2ltcF0tPm1ldGhvZFRhYmxl
KCktPnB1dChbc2VsZiBfaW1wXSwgZXhlYywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJp
bmcoU3RyaW5nKGtleSkpKSwgY29udmVydE9iamNWYWx1ZVRvVmFsdWUoZXhlYywgJnZhbHVlLCBP
YmpjT2JqZWN0VHlwZSwgW3NlbGYgX3Jvb3RPYmplY3RdKSwgc2xvdCk7CiAKICAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpIHsKICAgICAgICAgYWRkRXhjZXB0aW9uVG9Db25zb2xlKGV4ZWMp
OwpAQCAtNDg2LDcgKzQ4Niw3IEBAIHN0YXRpYyB2b2lkIGdldExpc3RGcm9tTlNBcnJheShFeGVj
U3RhdGUgKmV4ZWMsIE5TQXJyYXkgKmFycmF5LCBSb290T2JqZWN0KiByb290CiAgICAgQVNTRVJU
KCFleGVjLT5oYWRFeGNlcHRpb24oKSk7CiAKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0
aW9uc09ubHkpOwotICAgIFtzZWxmIF9pbXBdLT5wdXRWaXJ0dWFsKGV4ZWMsIGluZGV4LCBjb252
ZXJ0T2JqY1ZhbHVlVG9WYWx1ZShleGVjLCAmdmFsdWUsIE9iamNPYmplY3RUeXBlLCBbc2VsZiBf
cm9vdE9iamVjdF0pKTsKKyAgICBbc2VsZiBfaW1wXS0+bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRl
eChbc2VsZiBfaW1wXSwgZXhlYywgaW5kZXgsIGNvbnZlcnRPYmpjVmFsdWVUb1ZhbHVlKGV4ZWMs
ICZ2YWx1ZSwgT2JqY09iamVjdFR5cGUsIFtzZWxmIF9yb290T2JqZWN0XSkpOwogCiAgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CiAgICAgICAgIGFkZEV4Y2VwdGlvblRvQ29uc29sZShl
eGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KaW5kZXggZWMxYWI0Y2VhMjAzOWI4MmM3ZDgxOWFkYjQ2MWZjMGEwZGI4NTkxZS4u
MGJiZGI0NmRjNWYyZjdkNTEyYTNjNDcxNzRmMWFlYzQ1ZTVmMTAwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTc5NSw5
ICs3OTUsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgICMgR2V0dGVycwogICAgIGlmICgk
aGFzU2V0dGVyKSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2
b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7Ci0gICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVj
U3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSk7XG4iKSBpZiAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9OwogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlND
OjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpK
U1ZhbHVlKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3Rv
bUluZGV4U2V0dGVyIn07CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBw
dXREZWxlZ2F0ZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6
SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQdXRGdW5jdGlvbiJ9OwogICAgIH0KQEAgLTEwNTgs
NyArMTA1Niw2IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAiICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7XG4iIC4KICAgICAgICAgIiAgICB9XG4iKTsKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZVB1dEZ1bmN0aW9uIn0pIHsKLSAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpT
VmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpT
Qzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICBib29sIHB1dERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgfQpA
QCAtMTQ4NCwxMSArMTQ4MSw2IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgfQog
CiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90
b3R5cGVQdXRGdW5jdGlvbiJ9KSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e2NsYXNzTmFtZX1Qcm90b3R5cGU6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdClcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwotCiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnB1
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtj
bGFzc05hbWV9UHJvdG90eXBlKj4oY2VsbCk7XG4iKTsKQEAgLTE3NjMsMTEgKzE3NTUsNiBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgIGlmICgkaGFzU2V0dGVyKSB7CiAg
ICAgICAgICAgICBpZiAoISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVB1
dEZ1bmN0aW9uIn0pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQg
JHtjbGFzc05hbWV9OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpXG4i
KTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBzbG90KTtcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAifVxuXG4iKTsKLQogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e2NsYXNzTmFtZX06OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNs
b3QpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09i
amVjdCA9IHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CkBAIC0xNzk0LDEw
ICsxNzgxLDYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3Rv
bUluZGV4U2V0dGVyIn0pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZv
aWQgJHtjbGFzc05hbWV9OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKVxuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBwdXRCeUluZGV4KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpO1xuIik7Ci0gICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnB1dEJ5SW5kZXgoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSlcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlz
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCmluZGV4IGQ2YjZlNjllOWI2YjY1NjJkMmE3NjFkOGQz
NzgwZTliMDY0NzYyOGEuLjk5ZGFkNTFmY2E0N2NjZWMzY2Y2MDkwYzZiNjE5ZTVhYmMzYzBjYTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcApAQCAtMzM3LDkgKzMzNyw5IEBA
IGJvb2wgX05QTl9TZXRQcm9wZXJ0eShOUFAsIE5QT2JqZWN0KiBvLCBOUElkZW50aWZpZXIgcHJv
cGVydHlOYW1lLCBjb25zdCBOUFZhcmlhCiAKICAgICAgICAgaWYgKGktPmlzU3RyaW5nKCkpIHsK
ICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgb2JqLT5pbXAt
PnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllckZyb21OUElkZW50aWZpZXIoZXhlYywgaS0+c3Ry
aW5nKCkpLCBjb252ZXJ0TlBWYXJpYW50VG9WYWx1ZShleGVjLCB2YXJpYW50LCByb290T2JqZWN0
KSwgc2xvdCk7CisgICAgICAgICAgICBvYmotPmltcC0+bWV0aG9kVGFibGUoKS0+cHV0KG9iai0+
aW1wLCBleGVjLCBpZGVudGlmaWVyRnJvbU5QSWRlbnRpZmllcihleGVjLCBpLT5zdHJpbmcoKSks
IGNvbnZlcnROUFZhcmlhbnRUb1ZhbHVlKGV4ZWMsIHZhcmlhbnQsIHJvb3RPYmplY3QpLCBzbG90
KTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBvYmotPmltcC0+cHV0VmlydHVhbChleGVj
LCBpLT5udW1iZXIoKSwgY29udmVydE5QVmFyaWFudFRvVmFsdWUoZXhlYywgdmFyaWFudCwgcm9v
dE9iamVjdCkpOworICAgICAgICAgICAgb2JqLT5pbXAtPm1ldGhvZFRhYmxlKCktPnB1dEJ5SW5k
ZXgob2JqLT5pbXAsIGV4ZWMsIGktPm51bWJlcigpLCBjb252ZXJ0TlBWYXJpYW50VG9WYWx1ZShl
eGVjLCB2YXJpYW50LCByb290T2JqZWN0KSk7CiAgICAgICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9u
KCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2pu
aS9qbmlfanNvYmplY3QubW0KaW5kZXggMGY5YjdmMTZhMjM3ZDk5YzhkOGM1N2Y5ZTZjNDY4MzIx
ZjNhZGMxYy4uZTg3Yzg0ZTg0NWMwOGJhZmFiYTEzMTZjYmI5ZDJiMTJlNWUwZGMwMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0KQEAgLTM0OCw3ICszNDgsNyBA
QCB2b2lkIEphdmFKU09iamVjdDo6c2V0TWVtYmVyKGpzdHJpbmcgbWVtYmVyTmFtZSwgam9iamVj
dCB2YWx1ZSkgY29uc3QKIAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7
CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgX2ltcC0+cHV0VmlydHVhbChleGVjLCBJ
ZGVudGlmaWVyKGV4ZWMsIEphdmFTdHJpbmcobWVtYmVyTmFtZSkuaW1wbCgpKSwgY29udmVydEpP
YmplY3RUb1ZhbHVlKGV4ZWMsIHZhbHVlKSwgc2xvdCk7CisgICAgX2ltcC0+bWV0aG9kVGFibGUo
KS0+cHV0KF9pbXAsIGV4ZWMsIElkZW50aWZpZXIoZXhlYywgSmF2YVN0cmluZyhtZW1iZXJOYW1l
KS5pbXBsKCkpLCBjb252ZXJ0Sk9iamVjdFRvVmFsdWUoZXhlYywgdmFsdWUpLCBzbG90KTsKIH0K
IAogCkBAIC0zOTMsNyArMzkzLDcgQEAgdm9pZCBKYXZhSlNPYmplY3Q6OnNldFNsb3QoamludCBp
bmRleCwgam9iamVjdCB2YWx1ZSkgY29uc3QKIAogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHJvb3RP
YmplY3QtPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CiAgICAgSlNMb2NrIGxvY2soU2ls
ZW5jZUFzc2VydGlvbnNPbmx5KTsKLSAgICBfaW1wLT5wdXRWaXJ0dWFsKGV4ZWMsICh1bnNpZ25l
ZClpbmRleCwgY29udmVydEpPYmplY3RUb1ZhbHVlKGV4ZWMsIHZhbHVlKSk7CisgICAgX2ltcC0+
bWV0aG9kVGFibGUoKS0+cHV0QnlJbmRleChfaW1wLCBleGVjLCAodW5zaWduZWQpaW5kZXgsIGNv
bnZlcnRKT2JqZWN0VG9WYWx1ZShleGVjLCB2YWx1ZSkpOwogfQogCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggMThkNWUzNDIwYTM5MTUyYmQ2MzFlNTQ2
OGI3NjczMDViNTViNGVhNi4uZmFiY2IwYjE2YjQyZTVjZmY3Yjk5MzExMTU1YjQ3OGIwNTA0ZTg3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKQEAgLTEyNiw3
ICsxMjYsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
RGVzY3JpcHRvciYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7
CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGlj
IENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgdmlydHVhbCBi
b29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2Jq
Y19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1t
CmluZGV4IDJiNzExYjQxNDA5Y2M4MTk3MDEwNDMxOTZmMzc0MGE0OGYzODAxNDIuLmU1OTA4MjI4
Y2QxODVjOWNiZWE4ZDljYWZmNmQyNjE5Zjk5NDRmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTIyNCwxMCArMjI0LDYgQEAgYm9vbCBPYmpjRmFs
bGJhY2tPYmplY3RJbXA6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBPYmpjRmFsbGJhY2tPYmpl
Y3RJbXA6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpCi17Ci19Ci0KIHZvaWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpw
dXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQv
cXRfcnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAK
aW5kZXggNTA4MDA4MmNkMzQ3MjkyYjJlYjU2MGY1Nzg5ZDg5MTJlY2Q2NjhlYi4uYjg5OWQzOGJk
ZjYwNmFjMjdjYzNmNWUzNjNlNGI0N2YwNjJlN2M1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9x
dC9xdF9ydW50aW1lLmNwcApAQCAtOTYwLDcgKzk2MCw3IEBAIEpTVmFsdWUgY29udmVydFFWYXJp
YW50VG9WYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdCwg
Y29uCiAgICAgICAgICAgICBKU1ZhbHVlIHZhbCA9IGNvbnZlcnRRVmFyaWFudFRvVmFsdWUoZXhl
Yywgcm9vdC5nZXQoKSwgaS52YWx1ZSgpKTsKICAgICAgICAgICAgIGlmICh2YWwpIHsKICAgICAg
ICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgICAgICByZXQtPnB1
dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcihleGVjLCByZWludGVycHJldF9jYXN0X3B0cjxjb25z
dCBVQ2hhciAqPihzLmNvbnN0RGF0YSgpKSwgcy5sZW5ndGgoKSksIHZhbCwgc2xvdCk7CisgICAg
ICAgICAgICAgICAgcmV0LT5tZXRob2RUYWJsZSgpLT5wdXQocmV0LCBleGVjLCBJZGVudGlmaWVy
KGV4ZWMsIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPGNvbnN0IFVDaGFyICo+KHMuY29uc3REYXRhKCkp
LCBzLmxlbmd0aCgpKSwgdmFsLCBzbG90KTsKICAgICAgICAgICAgICAgICAvLyAjIyMgZXJyb3Ig
Y2FzZT8KICAgICAgICAgICAgIH0KICAgICAgICAgICAgICsraTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX2FycmF5LmNwcAppbmRleCBlM2I1NDBlYmQ3MjAyMTdlMGRlY2JiODhjOGJhNDQ1
YWQ1Y2YwYzg4Li4wOTI2ZTlmZWQ0OGI5NzBiYzY0ZTAxZjIyN2M5MDU3OWEzY2UwZGVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0xNDIsMTEgKzE0Miw2IEBA
IGJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlICpleGVjLCB1bnNpCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIGV4ZWMsIGluZGV4LCBzbG90KTsKIH0KIAotdm9p
ZCBSdW50aW1lQXJyYXk6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkK
LXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19Ci0K
IHZvaWQgUnVudGltZUFycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIFJ1bnRpbWVBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0
PFJ1bnRpbWVBcnJheSo+KGNlbGwpOwpAQCAtMTY1LDExICsxNjAsNiBAQCB2b2lkIFJ1bnRpbWVB
cnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eQogICAgIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLXZvaWQgUnVudGltZUFycmF5OjpwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgcHV0
QnlJbmRleCh0aGlzLCBleGVjLCBpbmRleCwgdmFsdWUpOwotfQotCiB2b2lkIFJ1bnRpbWVBcnJh
eTo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5k
ZXgsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
YXJyYXkuaAppbmRleCBkZGJlMzdmZDNiOGVjZGQ2ZWFkODJhMTdlZTFmN2RhZGJiODJjMDliLi43
ZGZkODRmOTA4MWNhOTViNDIwYjk5Nzk3MDdlZGEyMDZjOGMwNGExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTU1LDkgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVh
bChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwq
LCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgIAogICAg
IHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciAmcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuY3BwCmluZGV4IDMyOGVjYmZmOGFhYzdmYTFhNTI3MTc3YTIwODcwMTIxZDI1NzBkNGUuLmIz
NDUwMDRjZGQ1MjI1MjcxMmM5MTgxMzhkNzZmMzZjNDNhNThkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMjE2LDExICsyMTYsNiBAQCBib29sIFJ1bnRp
bWVPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0
IElkZW50aWZpZXImCiAgICAgcmV0dXJuIGluc3RhbmNlLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotdm9pZCBSdW50
aW1lT2JqZWN0OjpwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0g
ICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwotfQotCiB2b2lk
IFJ1bnRpbWVPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7CiAgICAgUnVudGltZU9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJ1
bnRpbWVPYmplY3QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgK
aW5kZXggOGEyNzE5ZTE4MWVjM2Q1ZDVjMWY3NjgwYjMyMmVjYjk3OGU2NjkyMy4uOWEwOWI3N2I5
NWY3ODJmOWQ3Mjk2ZTRjMzM4Y2M1NjhkNzM4Zjg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfb2JqZWN0LmgKQEAgLTQ4LDcgKzQ4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwotICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgdmly
dHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdHF0YmluZGluZ3MuY3BwIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3Rlc3RxdGJpbmRpbmdzLmNwcAppbmRleCBlN2Q0YTZiOWU5MmNhNGViZWY3
NmYyZDA0NzYwOWZkMTUzODU4NmU5Li41MmM2MGMwMmMwNzFkZmRiODg1N2Q0MTM4ZDI3NDZjODlk
ZTIxODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvdGVzdHF0YmluZGluZ3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS90ZXN0cXRiaW5kaW5ncy5jcHAKQEAgLTEw
NCw3ICsxMDQsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgIAog
ICAgICAgICBNeU9iamVjdCogbXlPYmplY3QgPSBuZXcgTXlPYmplY3Q7CiAgICAgICAgIAotICAg
ICAgICBnbG9iYWwtPnB1dFZpcnR1YWwoZXhlYywgSWRlbnRpZmllcigibXlJbnRlcmZhY2UiKSwg
SW5zdGFuY2U6OmNyZWF0ZVJ1bnRpbWVPYmplY3QoSW5zdGFuY2U6OlF0TGFuZ3VhZ2UsICh2b2lk
KilteU9iamVjdCkpOworICAgICAgICBnbG9iYWwtPm1ldGhvZFRhYmxlKCktPnB1dChnbG9iYWws
IGV4ZWMsIElkZW50aWZpZXIoIm15SW50ZXJmYWNlIiksIEluc3RhbmNlOjpjcmVhdGVSdW50aW1l
T2JqZWN0KEluc3RhbmNlOjpRdExhbmd1YWdlLCAodm9pZCopbXlPYmplY3QpKTsKICAgICAgICAg
CiAgICAgICAgIAogICAgICAgICBpZiAoY29kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5j
cHAKaW5kZXggMTM5OTVmNGZlNjgyMjNlNzExY2IyN2Y5Njk2MzMwYWVhNjM4NGFhZi4uOGI2Y2Vj
MDFiMmVkNTkyZDJlNmZhNGRkM2M1OWM3NjBmYjI4ZDg2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuY3BwCkBAIC0zNjU3LDcgKzM2NTcsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfanNfb2Jq
ZWN0X2FkZChFdmFzX09iamVjdCogZXdrVmlldywgRXdrX0pTX09iamVjdCogb2JqZWN0LCBjbwog
ICAgIEpTQzo6SWRlbnRpZmllciBpZCA9IEpTQzo6SWRlbnRpZmllcihleGVjdXRlU3RhdGUsIG9i
amVjdE5hbWUpOwogCiAgICAgSlNDOjpQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICB3aW5kb3ct
PnB1dFZpcnR1YWwoZXhlY3V0ZVN0YXRlLCBpZCwgcnVudGltZU9iamVjdCwgc2xvdCk7CisgICAg
d2luZG93LT5tZXRob2RUYWJsZSgpLT5wdXQod2luZG93LCBleGVjU3RhdGUsIGlkLCBydW50aW1l
T2JqZWN0LCBzbG90KTsKICAgICByZXR1cm4gRUlOQV9UUlVFOwogI2Vsc2UKICAgICByZXR1cm4g
RUlOQV9GQUxTRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVk
L05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCAwOWU1MzllNTU0
MzJmMTAwMTgzYWYzNTk1ZjJiNjI2ZTRkYmI3MDk3Li5hODk5N2FiOTU5M2U4YzQzZTQ0MDZhZDUy
OWU4NzQxZWQzMjU4MWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC0xMDYw
LDcgKzEwNjAsNyBAQCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0UHJvcGVy
dHkodWludDMyX3Qgb2JqZWN0SUQsIGNvbnN0IElkZW50aWZpZQogCiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IGRlbWFyc2hhbFZhbHVlKGV4ZWMsIHZhbHVlRGF0YSwgdmFsdWVMZW5ndGgpOwogICAgIFB1
dFByb3BlcnR5U2xvdCBzbG90OwotICAgIG9iamVjdC0+cHV0VmlydHVhbChleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBvYmplY3QtPm1ldGhvZFRhYmxlKCktPnB1dChvYmpl
Y3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogICAgIAogICAgIGV4ZWMtPmNs
ZWFyRXhjZXB0aW9uKCk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMDg1LDcgKzEwODUsNyBAQCBi
b29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0UHJvcGVydHkodWludDMyX3Qgb2Jq
ZWN0SUQsIHVuc2lnbmVkIHByb3BlcgogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25z
T25seSk7ICAgIAogICAgIAogICAgIEpTVmFsdWUgdmFsdWUgPSBkZW1hcnNoYWxWYWx1ZShleGVj
LCB2YWx1ZURhdGEsIHZhbHVlTGVuZ3RoKTsKLSAgICBvYmplY3QtPnB1dFZpcnR1YWwoZXhlYywg
cHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUlu
ZGV4KG9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CiAgICAgCiAgICAgZXhlYy0+
Y2xlYXJFeGNlcHRpb24oKTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJh
bWUuY3BwCmluZGV4IDQ4ZmFkMmM1YTY4NmZkYTU1MWIyOTUyOWNiODVmMjUxZWU0MzBiMmMuLjU3
ZjI0Yjg3MWU1MjQ3ZDQ1ZmYxOGRhMjE5ZGRiYjk4ZmY1OTMzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkv
cXdlYmZyYW1lLmNwcApAQCAtNjg4LDcgKzY4OCw3IEBAIHZvaWQgUVdlYkZyYW1lOjphZGRUb0ph
dmFTY3JpcHRXaW5kb3dPYmplY3QoY29uc3QgUVN0cmluZyAmbmFtZSwgUU9iamVjdCAqb2JqZWN0
CiAgICAgICAgICAgICBKU0M6OkJpbmRpbmdzOjpRdEluc3RhbmNlOjpnZXRRdEluc3RhbmNlKG9i
amVjdCwgcm9vdCwgb3duZXJzaGlwKS0+Y3JlYXRlUnVudGltZU9iamVjdChleGVjKTsKIAogICAg
IEpTQzo6UHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgd2luZG93LT5wdXRWaXJ0dWFsKGV4ZWMs
IEpTQzo6SWRlbnRpZmllcihleGVjLCByZWludGVycHJldF9jYXN0X3B0cjxjb25zdCBVQ2hhcio+
KG5hbWUuY29uc3REYXRhKCkpLCBuYW1lLmxlbmd0aCgpKSwgcnVudGltZU9iamVjdCwgc2xvdCk7
CisgICAgd2luZG93LT5tZXRob2RUYWJsZSgpLT5wdXQod2luZG93LCBleGVjLCBKU0M6OklkZW50
aWZpZXIoZXhlYywgcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgVUNoYXIqPihuYW1lLmNvbnN0
RGF0YSgpKSwgbmFtZS5sZW5ndGgoKSksIHJ1bnRpbWVPYmplY3QsIHNsb3QpOwogI2VsaWYgVVNF
KFY4KQogICAgIFFTY3JpcHRFbmdpbmUqIGVuZ2luZSA9IGQtPmZyYW1lLT5zY3JpcHQoKS0+cXRT
Y3JpcHRFbmdpbmUoKTsKICAgICBpZiAoIWVuZ2luZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAppbmRleCBk
MDU4ZWU1ZWIwZjZlNTBmZjhkOTZlMmNjNDA4NzA0YzliYTRjZTgxLi44MTgwM2M1YzNmN2E4Zjgz
MDhkOTZkODAxYzQyNTFhMjkyMmVkNjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCkBAIC0zMDcsMTEg
KzMwNyw2IEBAIGJvb2wgSlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIEpTTlBPYmplY3Q6OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKLXsKLSAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Ci19
Ci0KIHZvaWQgSlNOUE9iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpCiB7CiAgICAgSlNOUE9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTTlBP
YmplY3QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IDRhZTEzYmFmNjA1YTE0ODI4ZDhjMjM5
MDViN2IwMmMzOTYxMWRmOTYuLjQ2NTliNjM2OTExMjEzMTc1ZGVlNmVlNzZlMWNkNjUwOGVhNWFj
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuaApAQCAtODUsNyArODUsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNs
b3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlEZXNjcmlwdG9yJik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBK
U0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCos
IEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBk
ZWxldGVQcm9wZXJ0eVZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAKaW5kZXggODRjZWEwYzU0Y2E5M2Fj
N2FmYjQ3MDUzMGY5YmU0OTRkM2NjNzhhYy4uNWZkNjMyMDM3Y2IxYzA1NGUxZWQ2ZjNmOTc0ZjJj
NmY4YjgwMWI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05QSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcApAQCAtMTg4LDkgKzE4OCw5IEBAIGJvb2wg
TlBKU09iamVjdDo6c2V0UHJvcGVydHkoTlBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSwgY29uc3Qg
TlBWYXJpYW50KiB2YWx1ZSkKICAgICBKU1ZhbHVlIGpzVmFsdWUgPSBtX29iamVjdE1hcC0+Y29u
dmVydE5QVmFyaWFudFRvSlNWYWx1ZShleGVjLCBtX29iamVjdE1hcC0+Z2xvYmFsT2JqZWN0KCks
ICp2YWx1ZSk7CiAgICAgaWYgKGlkZW50aWZpZXJSZXAtPmlzU3RyaW5nKCkpIHsKICAgICAgICAg
UHV0UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIG1fanNPYmplY3QtPnB1dFZpcnR1YWwoZXhl
YywgaWRlbnRpZmllckZyb21JZGVudGlmaWVyUmVwKGV4ZWMsIGlkZW50aWZpZXJSZXApLCBqc1Zh
bHVlLCBzbG90KTsKKyAgICAgICAgbV9qc09iamVjdC0+bWV0aG9kVGFibGUoKS0+cHV0KG1fanNP
YmplY3QuZ2V0KCksIGV4ZWMsIGlkZW50aWZpZXJGcm9tSWRlbnRpZmllclJlcChleGVjLCBpZGVu
dGlmaWVyUmVwKSwganNWYWx1ZSwgc2xvdCk7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fanNPYmpl
Y3QtPnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllclJlcC0+bnVtYmVyKCksIGpzVmFsdWUpOwor
ICAgICAgICBtX2pzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5wdXRCeUluZGV4KG1fanNPYmplY3Qu
Z2V0KCksIGV4ZWMsIGlkZW50aWZpZXJSZXAtPm51bWJlcigpLCBqc1ZhbHVlKTsKICAgICBleGVj
LT5jbGVhckV4Y2VwdGlvbigpOwogICAgIAogICAgIHJldHVybiB0cnVlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>