<?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>70738</bug_id>
          
          <creation_ts>2011-10-24 10:35:18 -0700</creation_ts>
          <short_desc>Remove deletePropertyVirtual</short_desc>
          <delta_ts>2011-10-25 18:48:09 -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>489421</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-24 10:35:18 -0700</bug_when>
    <thetext>Now that we have an entry in the MethodTable for both versions of deleteProperty, 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>489505</commentid>
    <comment_count>1</comment_count>
      <attachid>112225</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-24 11:59:10 -0700</bug_when>
    <thetext>Created attachment 112225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489761</commentid>
    <comment_count>2</comment_count>
      <attachid>112271</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-24 16:19:56 -0700</bug_when>
    <thetext>Created attachment 112271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489765</commentid>
    <comment_count>3</comment_count>
      <attachid>112273</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-24 16:30:09 -0700</bug_when>
    <thetext>Created attachment 112273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490479</commentid>
    <comment_count>4</comment_count>
      <attachid>112273</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-25 17:09:14 -0700</bug_when>
    <thetext>Comment on attachment 112273
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490515</commentid>
    <comment_count>5</comment_count>
      <attachid>112273</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-25 18:16:37 -0700</bug_when>
    <thetext>Comment on attachment 112273
Patch

Rejecting attachment 112273 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
n/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.
Updating chromium port dependencies using gclient...

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/10213392</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490519</commentid>
    <comment_count>6</comment_count>
      <attachid>112273</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-25 18:19:32 -0700</bug_when>
    <thetext>Comment on attachment 112273
Patch

I thought we had that problem licked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490522</commentid>
    <comment_count>7</comment_count>
      <attachid>112273</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-25 18:22:07 -0700</bug_when>
    <thetext>Comment on attachment 112273
Patch

Rejecting attachment 112273 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
patching file Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp
Hunk #1 succeeded at 346 (offset -5 lines).
patching file Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h
Hunk #1 succeeded at 87 with fuzz 1 (offset -1 lines).
patching file Source/WebKit2/WebProcess/Plugins/Netscape/NPJSObject.cpp

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Geoffrey Garen&apos;, u&apos;--f...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/10210427</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490532</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-25 18:48:09 -0700</bug_when>
    <thetext>Committed r98422: &lt;http://trac.webkit.org/changeset/98422&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112225</attachid>
            <date>2011-10-24 11:59:10 -0700</date>
            <delta_ts>2011-10-24 16:19:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70738-20111024115909.patch</filename>
            <type>text/plain</type>
            <size>68967</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgyNTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdm
MjYzODU2NmI5NGZlYzE1ODllMGE5M2JjY2E3N2JiOTk1ZjgyMWMuLjFhZmRkZmZjNmMwNTg0NGQ4
MmIxOTA4NmJhMGQyNzczYmNjOTNlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYzIEBACisyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlbGV0ZVByb3BlcnR5VmlydHVhbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGFsbCBkZWNsYXJh
dGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIGRlbGV0ZVByb3BlcnR5VmlydHVhbC4KKyAgICAgICAg
QWxzbyByZXBsYWNlZCBhbGwgY2FsbCBzaXRlcyB0byBkZWxldGVQcm9wZXJ0eVZpcnR1YWwgd2l0
aCBhIAorICAgICAgICBjb3JyZXNwb25kaW5nIGxvb2t1cCBpbiB0aGUgTWV0aG9kVGFibGUuCisK
KyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAqIEFQSS9KU0NhbGxi
YWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6ZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KToKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgorICAgICAgICAoSlNPYmplY3RE
ZWxldGVQcm9wZXJ0eSk6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAq
IGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2Vy
QWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2Vy
QWN0aXZhdGlvbi5oOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAg
ICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBqaXQv
SklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6CisgICAg
ICAgICogcnVudGltZS9Bcmd1bWVudHMuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRz
Lmg6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OmFycmF5UHJvdG9GdW5jUG9wKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNSZXZlcnNl
KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNTaGlmdCk6CisgICAgICAgIChKU0M6OmFy
cmF5UHJvdG9GdW5jU3BsaWNlKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNVblNoaWZ0
KToKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogcnVudGlt
ZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAg
ICAoSlNDOjpKU0FycmF5OjpkZWxldGVQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6
OmRlbGV0ZVByb3BlcnR5QnlJbmRleCk6CisgICAgICAgICogcnVudGltZS9KU0FycmF5Lmg6Cisg
ICAgICAgICogcnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmRlbGV0
ZVByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0
aW9uLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50
aW1lL0pTTm90QW5PYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OldhbGtl
cjo6d2Fsayk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgpOgorICAgICAgICAoSlNDOjpKU09iamVj
dDo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTVmFyaWFibGVPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUv
SlNWYXJpYWJsZU9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5
Lmg6CisgICAgICAgICogcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHA6CisgICAgICAg
ICogcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvU3Ry
aW5nT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5oOgorCiAyMDEx
LTEwLTI0ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAg
IEludGVycHJldGVyIGJ1aWxkIGZpeCBhZnRlciByOTgxNzkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmUwNTM4
OTUzODBiYjdlYjQ1MzA4ZjlkNmY1M2NjNjQ0ZmNkYWU4OS4uNDZjYTMxNjE1ODg1NjA2YjI5NzJl
MGJkZTllZTk1MzFjODE4NjMyYSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDExLTEw
LTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmVtb3ZlIGRlbGV0ZVByb3BlcnR5VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwg
ZGVjbGFyYXRpb25zIGFuZCBkZWZpbml0aW9ucyBvZiBkZWxldGVQcm9wZXJ0eVZpcnR1YWwuCisg
ICAgICAgIEFsc28gcmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMgdG8gZGVsZXRlUHJvcGVydHlWaXJ0
dWFsIHdpdGggYSAKKyAgICAgICAgY29ycmVzcG9uZGluZyBsb29rdXAgaW4gdGhlIE1ldGhvZFRh
YmxlLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01TdHJpbmdNYXBDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01TdHJpbmdN
YXA6OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6ZGVsZXRlUHJvcGVydHkp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hp
c3RvcnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIaXN0b3J5OjpkZWxldGVQcm9w
ZXJ0eSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0xvY2F0aW9uOjpkZWxldGVQcm9wZXJ0eSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTU3RvcmFn
ZTo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRHbG9iYWxPYmplY3Q6OnJlbW92ZSk6CisgICAg
ICAgICogYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgICgtW1dlYlNj
cmlwdE9iamVjdCByZW1vdmVXZWJTY3JpcHRLZXk6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAg
ICAgICogYnJpZGdlL05QX2pzb2JqZWN0LmNwcDoKKyAgICAgICAgKF9OUE5fUmVtb3ZlUHJvcGVy
dHkpOgorICAgICAgICAqIGJyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tOgorICAgICAgICAoSmF2
YUpTT2JqZWN0OjpyZW1vdmVNZW1iZXIpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5oOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAg
KiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJy
YXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX29iamVjdC5oOgorCiAyMDExLTEwLTI0ICBDYXJsb3MgR2FyY2lhIENhbXBv
cyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBGaXggbWFrZSBkaXN0Y2hl
Y2sgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1YmQ5ZGI0OGQ5Y2M4MDFiNDRkMDY3MGExMWYy
MTc2NzZmMDM1ZTVlLi5mZTg0ZGNkOWRjMzdiYTc3MGNhNWY3NzUyMTdkZTJmM2MyNjdkMjRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMjQgIE1hcmsgSGFobmVu
YmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgZGVsZXRlUHJv
cGVydHlWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MDczOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZWQgYWxsIGRlY2xhcmF0aW9ucyBhbmQgZGVmaW5pdGlvbnMgb2YgZGVsZXRlUHJv
cGVydHlWaXJ0dWFsLgorICAgICAgICBBbHNvIHJlcGxhY2VkIGFsbCBjYWxsIHNpdGVzIHRvIGRl
bGV0ZVByb3BlcnR5VmlydHVhbCB3aXRoIGEgCisgICAgICAgIGNvcnJlc3BvbmRpbmcgbG9va3Vw
IGluIHRoZSBNZXRob2RUYWJsZS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5J
bnN0YW5jZVByb3h5OjpyZW1vdmVQcm9wZXJ0eSk6CisKIDIwMTEtMTAtMjMgIE1hcmsgSGFobmVu
YmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgZ2V0Q29uc3Ry
dWN0RGF0YVZpcnR1YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkOGYzYjBiNzA0M2IxZmEyMjFlZjQ5NGFiNDE2
YjM4NzJkOTg0Mzg2Li4zYjZiZTAzYjA0MjM3NmU2ODZiN2U4N2U2MmVlYWE5YTU5MTNkNzQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTAtMjQgIE1hcmsgSGFobmVuYmVyZyAg
PG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgZGVsZXRlUHJvcGVydHlW
aXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MDczOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZWQgYWxsIGRlY2xhcmF0aW9ucyBhbmQgZGVmaW5pdGlvbnMgb2YgZGVsZXRlUHJvcGVydHlW
aXJ0dWFsLgorICAgICAgICBBbHNvIHJlcGxhY2VkIGFsbCBjYWxsIHNpdGVzIHRvIGRlbGV0ZVBy
b3BlcnR5VmlydHVhbCB3aXRoIGEgCisgICAgICAgIGNvcnJlc3BvbmRpbmcgbG9va3VwIGluIHRo
ZSBNZXRob2RUYWJsZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TlBKU09iamVjdDo6cmVtb3ZlUHJvcGVydHkpOgor
CiAyMDExLTEwLTI0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXSBGaXggbWFrZSBkaXN0Y2hlY2sgYnVpbGQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggMzk4ZGQwM2QwNzc0NTBjMDI2
NTljYjRhZWVhMWViNjBjMjZhNzIzMS4uZmM5ZGJlMTVjY2RhNjdlODdmZTZmNTMzOWQ3NzVmMzg5
NDEyNjljNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0
LmgKQEAgLTE4NSw5ICsxODUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0
dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCi0gICAgdmlydHVhbCBib29s
IGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJik7CiAg
ICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYpOwotICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhl
Y1N0YXRlKiwgdW5zaWduZWQpOwogICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5QnlJbmRl
eChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFz
SW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbHVlIHByb3RvKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVu
Y3Rpb25zLmgKaW5kZXggMWRiYjFkNWM3MjY3YWEwZmZkMzRmMDY1YmJkNzBjMmRmNDNjODY3Yi4u
Zjk5NGZiZjU2NGJhNjc1ODY2OGEwN2YzNDBmYmE2ZDdiNzA3NDE0OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAg
LTI3MywxMiArMjczLDYgQEAgdm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnB1dChKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmkKIH0KIAogdGVtcGxhdGUg
PGNsYXNzIFBhcmVudD4KLWJvb2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpkZWxldGVQcm9w
ZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpCi17Ci0gICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSk7Ci19Ci0KLXRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBib29sIEpTQ2FsbGJhY2tPYmplY3Q8
UGFyZW50Pjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU0NhbGxiYWNrT2JqZWN0KiB0
aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdCo+KGNlbGwpOwpAQCAtMzIz
LDE1ICszMTcsMTAgQEAgYm9vbCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmRlbGV0ZVByb3Bl
cnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb24KIH0KIAogdGVtcGxhdGUgPGNs
YXNzIFBhcmVudD4KLWJvb2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpkZWxldGVQcm9wZXJ0
eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCi17Ci0gICAg
cmV0dXJuIGRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwot
fQotCi10ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgogYm9vbCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
dW5zaWduZWQgcHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0NhbGxi
YWNrT2JqZWN0Kj4oY2VsbCktPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBJZGVudGlmaWVy
Ojpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSkpOworICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNP
YmplY3QgPSBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0Kj4oY2VsbCk7CisgICAgcmV0dXJu
IHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KHRoaXNPYmplY3QsIGV4
ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSk7CiB9CiAKIHRlbXBsYXRl
IDxjbGFzcyBQYXJlbnQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
T2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3Bw
CmluZGV4IDZkNWYwM2Q2NWU0MzdiZmIwMmQxZWNmZGI2NDQ2MWRiYTY0N2E2Y2UuLjkwY2YzNTk3
NjA1Mjc3MWU3YzMzMTZiMTgzMzhhYTU3NTdhZmUzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC0zMjcsNyArMzI3LDcgQEAgYm9vbCBKU09iamVjdERl
bGV0ZVByb3BlcnR5KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJp
bmdSZWYgcHIKIAogICAgIEpTT2JqZWN0KiBqc09iamVjdCA9IHRvSlMob2JqZWN0KTsKIAotICAg
IGJvb2wgcmVzdWx0ID0ganNPYmplY3QtPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBwcm9w
ZXJ0eU5hbWUtPmlkZW50aWZpZXIoJmV4ZWMtPmdsb2JhbERhdGEoKSkpOworICAgIGJvb2wgcmVz
dWx0ID0ganNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KGpzT2JqZWN0LCBl
eGVjLCBwcm9wZXJ0eU5hbWUtPmlkZW50aWZpZXIoJmV4ZWMtPmdsb2JhbERhdGEoKSkpOwogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAg
ICAgICAgICAgKmV4Y2VwdGlvbiA9IHRvUmVmKGV4ZWMsIGV4ZWMtPmV4Y2VwdGlvbigpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDM5ZWU2ZTdhMWY5YmY0
OWU1MTcwYjVkNzQ3NmNiZGM5YjllN2Y5MTcuLjkxODY2YTkzYTRjOTFjNzQxYzYwMmY5ZWFjN2U5
MTkwN2U1MDE4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApA
QCAtMTk1LDcgKzE5NSw2IEBAIF9fWk4zSlNDMTZJbnRlcm5hbEZ1bmN0aW9uQzJFUE5TXzE0SlNH
bG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFCiBfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE0
ZGVsZXRlUHJvcGVydHlFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZp
ZXJFCiBfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE0c3ltYm9sVGFibGVHZXRFUktOU18xMElk
ZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0MxNkpTVmFyaWFibGVP
YmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlO
YW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCi1fX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVj
dDIxZGVsZXRlUHJvcGVydHlWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RQogX19aTjNKU0MxNmNyZWF0ZVJhbmdlRXJyb3JFUE5TXzlFeGVjU3RhdGVFUktOU183VVN0cmlu
Z0UKIF9fWk4zSlNDMTZzbG93VmFsaWRhdGVDZWxsRVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19a
TjNKU0MxNnNsb3dWYWxpZGF0ZUNlbGxFUE5TXzZKU0NlbGxFCkBAIC0yNjIsOCArMjYxLDYgQEAg
X19aTjNKU0M2SlNDZWxsMTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlm
aWVyRU5TXzdKU1ZhbHVlRVJOU18xNVAKIF9fWk4zSlNDNkpTQ2VsbDEwcHV0VmlydHVhbEVQTlNf
OUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFCiBfX1pOM0pTQzZKU0NlbGwxMWdldENhbGxEYXRhRVBT
MF9STlNfOENhbGxEYXRhRQogX19aTjNKU0M2SlNDZWxsMTZnZXRDb25zdHJ1Y3REYXRhRVBTMF9S
TlNfMTNDb25zdHJ1Y3REYXRhRQotX19aTjNKU0M2SlNDZWxsMjFkZWxldGVQcm9wZXJ0eVZpcnR1
YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCi1fX1pOM0pTQzZKU0NlbGwyMWRl
bGV0ZVByb3BlcnR5VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzZKU0NlbGwyNWdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
Uk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M2SlNDZWxsMjVnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsRVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzZKU0Nl
bGw5Z2V0T2JqZWN0RXYKQEAgLTMyOSw4ICszMjYsNiBAQCBfX1pOM0pTQzhKU09iamVjdDE3cHV0
V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRWoKIF9fWk4zSlNDOEpT
T2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFalJO
U18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEpTT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVz
RVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRpb25N
b2RlRQogX19aTjNKU0M4SlNPYmplY3QyMWRlbGV0ZVByb3BlcnR5QnlJbmRleEVQTlNfNkpTQ2Vs
bEVQTlNfOUV4ZWNTdGF0ZUVqCi1fX1pOM0pTQzhKU09iamVjdDIxZGVsZXRlUHJvcGVydHlWaXJ0
dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQotX19aTjNKU0M4SlNPYmplY3Qy
MWRlbGV0ZVByb3BlcnR5VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzhKU09iamVj
dDIxZ2V0UHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKIF9fWk4zSlNDOEpTT2JqZWN0MjJmaWxsR2V0dGVy
UHJvcGVydHlTbG90RVJOU18xMlByb3BlcnR5U2xvdEVQTlNfMTZXcml0ZUJhcnJpZXJCYXNlSU5T
XzdVbmtub3duRUVFCiBfX1pOM0pTQzhKU09iamVjdDIzYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2VF
Uk5TXzEySlNHbG9iYWxEYXRhRW1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IDcwZTFiYWViNmUwYjQwZWNkMDY1
ZDRmYTI3OWRjMDAyYzFlZWY4N2UuLjM4Mjg5NThmMWEyODQzYTU2MTQwZjhiNGI5NGJmMmJmMjA5
Y2U1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ckFjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlckFjdGl2YXRpb24uY3BwCkBAIC04NSwxNCArODUsMTAgQEAgdm9pZCBEZWJ1Z2dlckFjdGl2
YXRpb246OnB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHIKICAgICBtX2FjdGl2YXRpb24tPnB1dFdpdGhBdHRyaWJ1dGVzKGV4ZWMsIHByb3BlcnR5
TmFtZSwgdmFsdWUsIGF0dHJpYnV0ZXMpOwogfQogCi1ib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6
ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBw
cm9wZXJ0eU5hbWUpOwotfQotCiBib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVy
dHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3RpdmF0aW9uKj4o
Y2VsbCktPm1fYWN0aXZhdGlvbi0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5
TmFtZSk7CisgICAgRGVidWdnZXJBY3RpdmF0aW9uKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8
RGVidWdnZXJBY3RpdmF0aW9uKj4oY2VsbCk7CisgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1fYWN0
aXZhdGlvbi0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdC0+bV9hY3Rp
dmF0aW9uLmdldCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0
aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFt
ZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRleCAz
ZDdiMDI2ODIxZjk2NjU3ODlmYzA0ZDAzNmRlZTQ4ODBlMzhiZjdjLi42ZDViZWMyZDQwNDg1ZjY4
YTZjM2YwMTNhMGE1NTI3MjQwY2I0OTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00OCw3ICs0OCw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYp
OwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7Ci0gICAg
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJv
cGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwg
UHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51
bVByb3BlcnRpZXMpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3Bw
CmluZGV4IDgzOGY1MWM1OGI5N2U1ZmExYjg0OGVmNGU5MjNkZDExYjU5MzMxNGEuLjlhMzFmMTli
NThiZWFhMmRiMGJjOGNiZWE0MWM1YzUxYzIwZWVjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtMzM1OCw3ICszMzU4LDcg
QEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKIAogICAgICAgICBKU09iamVjdCogYmFzZU9iaiA9IGNh
bGxGcmFtZS0+cihiYXNlKS5qc1ZhbHVlKCkudG9PYmplY3QoY2FsbEZyYW1lKTsKICAgICAgICAg
SWRlbnRpZmllciYgaWRlbnQgPSBjb2RlQmxvY2stPmlkZW50aWZpZXIocHJvcGVydHkpOwotICAg
ICAgICBib29sIHJlc3VsdCA9IGJhc2VPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChjYWxsRnJh
bWUsIGlkZW50KTsKKyAgICAgICAgYm9vbCByZXN1bHQgPSBiYXNlT2JqLT5tZXRob2RUYWJsZSgp
LT5kZWxldGVQcm9wZXJ0eShiYXNlT2JqLCBjYWxsRnJhbWUsIGlkZW50KTsKICAgICAgICAgaWYg
KCFyZXN1bHQgJiYgY29kZUJsb2NrLT5pc1N0cmljdE1vZGUoKSkgewogICAgICAgICAgICAgZXhj
ZXB0aW9uVmFsdWUgPSBjcmVhdGVUeXBlRXJyb3IoY2FsbEZyYW1lLCAiVW5hYmxlIHRvIGRlbGV0
ZSBwcm9wZXJ0eS4iKTsKICAgICAgICAgICAgIGdvdG8gdm1fdGhyb3c7CkBAIC0zNTQ1LDEyICsz
NTQ1LDEyIEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgIGJvb2wgcmVzdWx0OwogICAg
ICAgICB1aW50MzJfdCBpOwogICAgICAgICBpZiAoc3Vic2NyaXB0LmdldFVJbnQzMihpKSkKLSAg
ICAgICAgICAgIHJlc3VsdCA9IGJhc2VPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChjYWxsRnJh
bWUsIGkpOworICAgICAgICAgICAgcmVzdWx0ID0gYmFzZU9iai0+bWV0aG9kVGFibGUoKS0+ZGVs
ZXRlUHJvcGVydHlCeUluZGV4KGJhc2VPYmosIGNhbGxGcmFtZSwgaSk7CiAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTigpOwogICAgICAgICAgICAgSWRlbnRp
ZmllciBwcm9wZXJ0eShjYWxsRnJhbWUsIHN1YnNjcmlwdC50b1N0cmluZyhjYWxsRnJhbWUpKTsK
ICAgICAgICAgICAgIENIRUNLX0ZPUl9FWENFUFRJT04oKTsKLSAgICAgICAgICAgIHJlc3VsdCA9
IGJhc2VPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChjYWxsRnJhbWUsIHByb3BlcnR5KTsKKyAg
ICAgICAgICAgIHJlc3VsdCA9IGJhc2VPYmotPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5
KGJhc2VPYmosIGNhbGxGcmFtZSwgcHJvcGVydHkpOwogICAgICAgICB9CiAgICAgICAgIGlmICgh
cmVzdWx0ICYmIGNvZGVCbG9jay0+aXNTdHJpY3RNb2RlKCkpIHsKICAgICAgICAgICAgIGV4Y2Vw
dGlvblZhbHVlID0gY3JlYXRlVHlwZUVycm9yKGNhbGxGcmFtZSwgIlVuYWJsZSB0byBkZWxldGUg
cHJvcGVydHkuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0
dWJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IDYz
Y2Y5YTFhZjkyZDNlOGM3NTBjMjczNGZhZmM1MWRmNTI0YjVjNWQuLjkzMzUxNmUyMGIzMjcxMmQ5
ZWNhOTcwMzcxZDE3MTg1ZGI1YzgxODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1
YnMuY3BwCkBAIC0yMTA4LDcgKzIxMDgsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVk
SlNWYWx1ZSwgb3BfZGVsX2J5X2lkKQogICAgIAogICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gc3Rh
Y2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKS50b09iamVjdChjYWxsRnJhbWUpOwogCi0gICAgYm9v
bCBjb3VsZERlbGV0ZSA9IGJhc2VPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChjYWxsRnJhbWUs
IHN0YWNrRnJhbWUuYXJnc1sxXS5pZGVudGlmaWVyKCkpOworICAgIGJvb2wgY291bGREZWxldGUg
PSBiYXNlT2JqLT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eShiYXNlT2JqLCBjYWxsRnJh
bWUsIHN0YWNrRnJhbWUuYXJnc1sxXS5pZGVudGlmaWVyKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0
ID0ganNCb29sZWFuKGNvdWxkRGVsZXRlKTsKICAgICBpZiAoIWNvdWxkRGVsZXRlICYmIGNhbGxG
cmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpKQogICAgICAgICBzdGFja0ZyYW1lLmds
b2JhbERhdGEtPmV4Y2VwdGlvbiA9IGNyZWF0ZVR5cGVFcnJvcihzdGFja0ZyYW1lLmNhbGxGcmFt
ZSwgIlVuYWJsZSB0byBkZWxldGUgcHJvcGVydHkuIik7CkBAIC0zNzIzLDEyICszNzIzLDEyIEBA
IERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF9kZWxfYnlfdmFsKQogICAg
IGJvb2wgcmVzdWx0OwogICAgIHVpbnQzMl90IGk7CiAgICAgaWYgKHN1YnNjcmlwdC5nZXRVSW50
MzIoaSkpCi0gICAgICAgIHJlc3VsdCA9IGJhc2VPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChj
YWxsRnJhbWUsIGkpOworICAgICAgICByZXN1bHQgPSBiYXNlT2JqLT5tZXRob2RUYWJsZSgpLT5k
ZWxldGVQcm9wZXJ0eUJ5SW5kZXgoYmFzZU9iaiwgY2FsbEZyYW1lLCBpKTsKICAgICBlbHNlIHsK
ICAgICAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTigpOwogICAgICAgICBJZGVudGlmaWVyIHByb3Bl
cnR5KGNhbGxGcmFtZSwgc3Vic2NyaXB0LnRvU3RyaW5nKGNhbGxGcmFtZSkpOwogICAgICAgICBD
SEVDS19GT1JfRVhDRVBUSU9OKCk7Ci0gICAgICAgIHJlc3VsdCA9IGJhc2VPYmotPmRlbGV0ZVBy
b3BlcnR5VmlydHVhbChjYWxsRnJhbWUsIHByb3BlcnR5KTsKKyAgICAgICAgcmVzdWx0ID0gYmFz
ZU9iai0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkoYmFzZU9iaiwgY2FsbEZyYW1lLCBw
cm9wZXJ0eSk7CiAgICAgfQogCiAgICAgaWYgKCFyZXN1bHQgJiYgY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKS0+aXNTdHJpY3RNb2RlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Bcmd1bWVudHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJn
dW1lbnRzLmNwcAppbmRleCAwODkwMWNhMDI0Njg1YzgyZjI1OGQwMzlmZjdjYTQ0ZTc0OTcxMWQ0
Li43MDNlMjRmMzY2MmQ5OGJmYTc4MzczNDE3NzA1MGJmODI0MGJiMjIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKQEAgLTMyOCwxMSArMzI4LDYgQEAg
dm9pZCBBcmd1bWVudHM6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW0KICAgICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCi1ib29sIEFyZ3VtZW50czo6ZGVs
ZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSkgCi17Ci0gICAg
cmV0dXJuIGRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzLCBleGVjLCBpKTsKLX0KLQogYm9vbCBB
cmd1bWVudHM6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQgaSkgCiB7CiAgICAgQXJndW1lbnRzKiB0aGlzT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8QXJndW1lbnRzKj4oY2VsbCk7CkBAIC0zNTAsMTEgKzM0NSw2IEBAIGJvb2wgQXJndW1l
bnRzOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IHVuc2lnbmVkIGkpCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzT2Jq
ZWN0LCBleGVjLCBJZGVudGlmaWVyKGV4ZWMsIFVTdHJpbmc6Om51bWJlcihpKSkpOwogfQogCi1i
b29sIEFyZ3VtZW50czo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKSAKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVy
dHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQogYm9vbCBBcmd1bWVudHM6OmRlbGV0
ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUpIAogewogICAgIEFyZ3VtZW50cyogdGhpc09iamVjdCA9IHN0YXRpY19j
YXN0PEFyZ3VtZW50cyo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1
bWVudHMuaAppbmRleCA0NWE3NWM5NGIxNzBmYWIyNmIxNGIwZmIzMGE2Y2I5ZWYzOTJjYTVkLi5h
YmM2OWFiYzM3NWQ2OWI4YTM5YjlkN2UwMTVkZTNhZDM0ZDQyMzI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAtMTQ1LDkgKzE0NSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwotICAgICAg
ICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3Bl
cnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVy
dHlCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAg
ICAgICAgIHZvaWQgY3JlYXRlU3RyaWN0TW9kZUNhbGxlcklmTmVjZXNzYXJ5KEV4ZWNTdGF0ZSop
OwogICAgICAgICB2b2lkIGNyZWF0ZVN0cmljdE1vZGVDYWxsZWVJZk5lY2Vzc2FyeShFeGVjU3Rh
dGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBl
LmNwcAppbmRleCBjNTQ0MDNiOWY1YzljMWJiZTc4ZGY0NjZkMGU2OTY1NDdiZmU2M2FiLi4wNGRi
M2EwNTRjMmRjM2ExYmE3ZDRiYmQ2ZDVhZjEwOWVjY2EwODlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0zODgsNyArMzg4LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1BvcChFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgIHJlc3VsdCA9IGpzVW5kZWZpbmVkKCk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgcmVzdWx0ID0gdGhpc09iai0+Z2V0KGV4ZWMsIGxlbmd0aCAtIDEpOwotICAgICAg
ICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgbGVuZ3RoIC0gMSk7CisgICAg
ICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzT2Jq
LCBleGVjLCBsZW5ndGggLSAxKTsKICAgICAgICAgcHV0UHJvcGVydHkoZXhlYywgdGhpc09iaiwg
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIobGVuZ3RoIC0gMSkpOwogICAg
IH0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CkBAIC00NDQsMTIgKzQ0NCwx
MiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmV2ZXJzZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIGlmIChvYmoyKQogICAgICAgICAgICAgdGhpc09iai0+
cHV0VmlydHVhbChleGVjLCBrLCBvYmoyKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhp
c09iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGspOworICAgICAgICAgICAgdGhpc09i
ai0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNPYmosIGV4ZWMsIGsp
OwogCiAgICAgICAgIGlmIChvYmopCiAgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4
ZWMsIGxrMSwgb2JqKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpc09iai0+ZGVsZXRl
UHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGxrMSk7CisgICAgICAgICAgICB0aGlzT2JqLT5tZXRob2RU
YWJsZSgpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iaiwgZXhlYywgbGsxKTsKICAgICB9
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqKTsKIH0KQEAgLTQ3Nyw5ICs0Nzcs
OSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU2hpZnQoRXhl
Y1N0YXRlKiBleGVjKQogICAgICAgICAgICAgICAgIGlmIChvYmopCiAgICAgICAgICAgICAgICAg
ICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgayAtIDEsIG9iaik7CiAgICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1
YWwoZXhlYywgayAtIDEpOworICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5tZXRob2RUYWJs
ZSgpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iaiwgZXhlYywgayAtIDEpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgdGhpc09iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMs
IGxlbmd0aCAtIDEpOworICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+ZGVsZXRl
UHJvcGVydHlCeUluZGV4KHRoaXNPYmosIGV4ZWMsIGxlbmd0aCAtIDEpOwogICAgICAgICB9CiAg
ICAgICAgIHB1dFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5s
ZW5ndGgsIGpzTnVtYmVyKGxlbmd0aCAtIDEpKTsKICAgICB9CkBAIC02MjMsMTAgKzYyMywxMCBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BsaWNlKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICAgICAgaWYgKHYpCiAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncywgdik7
CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNP
YmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MpOworICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVy
dHlCeUluZGV4KHRoaXNPYmosIGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyk7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IGxlbmd0aDsgayA+IGxl
bmd0aCAtIGRlbGV0ZUNvdW50ICsgYWRkaXRpb25hbEFyZ3M7IC0taykKLSAgICAgICAgICAgICAg
ICAgICAgdGhpc09iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGsgLSAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KHRoaXNPYmosIGV4ZWMsIGsgLSAxKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIGlmICgoIWJlZ2luKSAmJiAoaXNKU0FycmF5KCZleGVjLT5nbG9iYWxE
YXRhKCksIHRoaXNPYmopKSkKQEAgLTYzOSw3ICs2MzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BsaWNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAg
ICAgICAgICAgICAgaWYgKG9iaikKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPnB1
dFZpcnR1YWwoZXhlYywgayArIGFkZGl0aW9uYWxBcmdzIC0gMSwgb2JqKTsKICAgICAgICAgICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+ZGVsZXRlUHJv
cGVydHlWaXJ0dWFsKGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyAtIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHlCeUluZGV4
KHRoaXNPYmosIGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyAtIDEpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNjcyLDcgKzY3Miw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNVblNoaWZ0KEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgICAgICAgICBpZiAodikKICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+
cHV0VmlydHVhbChleGVjLCBrICsgbnJBcmdzIC0gMSwgdik7CiAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhl
YywgayArIG5yQXJncyAtIDEpOworICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5tZXRob2RU
YWJsZSgpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iaiwgZXhlYywgayArIG5yQXJncyAt
IDEpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggODUzMTA4MjVjMGZiNDgxOTll
MTYxZjIzMzQxYzlhODJhYTZjM2YxYy4uMGM1YzdjOGYyMGYyYTRmMDA3OGM1YzQ0MzEzODUxMzE1
NDk2M2Q2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3Rp
dmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRp
b24uY3BwCkBAIC0yMDUsMTEgKzIwNSw2IEBAIHZvaWQgSlNBY3RpdmF0aW9uOjpwdXRXaXRoQXR0
cmlidXRlcyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAg
SlNPYmplY3Q6OnB1dFdpdGhBdHRyaWJ1dGVzKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIGF0
dHJpYnV0ZXMsIHRydWUsIHNsb3QpOwogfQogCi1ib29sIEpTQWN0aXZhdGlvbjo6ZGVsZXRlUHJv
cGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKQotewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUpOwotfQotCiBib29sIEpTQWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAg
ICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmluZGV4IGQ0NGIy
YjYwNmRkMTg4MjZlNzRlZmRkZTA0ZWE2NGQ3MDg1NGM3ZTUuLmNhNTgwZDllMjRjZjVlZmI2Yjcy
YWZiYTBlNTFhY2ZhOTIyMDIyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQWN0aXZhdGlvbi5oCkBAIC02OSw3ICs2OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRX
aXRoQXR0cmlidXRlcyhFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgdW5z
aWduZWQgYXR0cmlidXRlcyk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZp
cnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAg
ICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKIAogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0
b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXkuY3BwCmluZGV4IGFkMzlhMGRkNGFhODFhMzdlMmFlMTJiOTNkN2UyMzU4M2Jj
MDkyNDIuLjc1MjBhMWMwODcwNGFjZTY5Yzc2NDhiY2NjZTJlMmQ5NzA5N2M5MWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCkBAIC01MDcsMTggKzUwNywxMyBA
QCBORVZFUl9JTkxJTkUgdm9pZCBKU0FycmF5OjpwdXRTbG93Q2FzZShFeGVjU3RhdGUqIGV4ZWMs
IHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdQogICAgIEhlYXA6OmhlYXAodGhpcyktPnJlcG9ydEV4
dHJhTWVtb3J5Q29zdChzdG9yYWdlU2l6ZShuZXdWZWN0b3JMZW5ndGgpIC0gc3RvcmFnZVNpemUo
dmVjdG9yTGVuZ3RoKSk7CiB9CiAKLWJvb2wgSlNBcnJheTo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQotewotICAg
IHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwotfQotCiBi
b29sIEpTQXJyYXk6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNBcnJheSogdGhpc09i
amVjdCA9IHN0YXRpY19jYXN0PEpTQXJyYXkqPihjZWxsKTsKICAgICBib29sIGlzQXJyYXlJbmRl
eDsKICAgICB1bnNpZ25lZCBpID0gcHJvcGVydHlOYW1lLnRvQXJyYXlJbmRleChpc0FycmF5SW5k
ZXgpOwogICAgIGlmIChpc0FycmF5SW5kZXgpCi0gICAgICAgIHJldHVybiB0aGlzT2JqZWN0LT5k
ZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgaSk7CisgICAgICAgIHJldHVybiB0aGlzT2JqZWN0
LT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iamVjdCwgZXhlYywg
aSk7CiAKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5n
dGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTUyNiwxMSArNTIxLDYgQEAgYm9vbCBKU0Fy
cmF5OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHIKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXNP
YmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKLWJvb2wgSlNBcnJheTo6ZGVsZXRlUHJv
cGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSkKLXsKLSAgICByZXR1cm4g
ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXMsIGV4ZWMsIGkpOwotfQotCiBib29sIEpTQXJyYXk6
OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5z
aWduZWQgaSkKIHsKICAgICBKU0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNBcnJh
eSo+KGNlbGwpOwpAQCAtNTY0LDcgKzU1NCw3IEBAIGJvb2wgSlNBcnJheTo6ZGVsZXRlUHJvcGVy
dHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpKQogICAg
IHRoaXNPYmplY3QtPmNoZWNrQ29uc2lzdGVuY3koKTsKIAogICAgIGlmIChpID4gTUFYX0FSUkFZ
X0lOREVYKQotICAgICAgICByZXR1cm4gdGhpc09iamVjdC0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFs
KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaSkpOworICAgICAgICByZXR1cm4gdGhpc09i
amVjdC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZXhlYywgSWRl
bnRpZmllcjo6ZnJvbShleGVjLCBpKSk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggNTZhM2I3OGVlODU2ZjMyNjIzYjUx
NTk4ZTdhZDI1NTJmMjU5MGUwMy4uYzI1MmUyYTg1YmEzNzM4MmMxYTdhNDBkODMyZTI2YTUxNjg0
NWRhZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtMTc0LDkg
KzE3NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVh
bChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHN0YXRp
YyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZp
cnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3RhdGlj
IGJvb2wgZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVz
KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBF
eGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5jcHAKaW5kZXggYzI3OWFlNWFhNGQxNDhlNTY2N2E2NjNmYTMwYWNlODk5ZDliZjk4
Ny4uOWJhMzRhYjA3NjNiYWFhZDJjZmFhMjA4ZGNkMjE5MWE4OGU3NTg3NSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCkBAIC0xMTgsMjQgKzExOCwxNiBAQCB2b2lk
IEpTQ2VsbDo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgaWRlbnRpZmllciwgSlNWYQogICAgIGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSktPnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllciwgdmFsdWUpOwog
fQogCi1ib29sIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVy
dHkodGhpcywgZXhlYywgaWRlbnRpZmllcik7Ci19Ci0KIGJvb2wgSlNDZWxsOjpkZWxldGVQcm9w
ZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRl
bnRpZmllcikKIHsKLSAgICByZXR1cm4gY2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpKS0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGlkZW50aWZpZXIp
OwotfQotCi1ib29sIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgaWRlbnRpZmllcikKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0g
Y2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICBy
ZXR1cm4gdGhpc09iamVjdC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkodGhpc09iamVj
dCwgZXhlYywgaWRlbnRpZmllcik7CiB9CiAKIGJvb2wgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eUJ5
SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpZXIp
CiB7Ci0gICAgcmV0dXJuIGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSktPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBpZGVudGlmaWVyKTsKKyAgICBK
U09iamVjdCogdGhpc09iamVjdCA9IGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSk7CisgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmRl
bGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzT2JqZWN0LCBleGVjLCBpZGVudGlmaWVyKTsKIH0KIAog
SlNPYmplY3QqIEpTQ2VsbDo6dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggN2UwZTUxZmUxYTc5ODYzMmFj
NTM0YTIzZDczYWMwOTk3N2FmNjlkNi4uM2E2ODQyN2NkOTRjN2JkNDFiOWJkOGY5MWQ2NWQ3NTNi
NjY4NzFmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxs
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTk0LDkg
Kzk0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFs
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgICAgIHN0
YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQ
cm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KTsKICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgdmlydHVhbCBib29s
IGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUp
OwogICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKTsKIAogICAgICAgICB2aXJ0dWFsIEpTT2Jq
ZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4IDM4M2I5NTNlMDA5YTg5ZTFjMzAwMTc4
YjE4YjZhODg1NDU2NzE4YWEuLjMzYjQwYTQ3MTQ5ZGQ1NGMzMjdlNjNkNTQyN2QyNmJkOTIzYjEw
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBA
IC0zNDcsMTEgKzM0Nyw2IEBAIHZvaWQgSlNGdW5jdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hCiAgICAgQmFzZTo6cHV0
KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCi1ib29s
IEpTRnVuY3Rpb246OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHko
dGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQogYm9vbCBKU0Z1bmN0aW9uOjpkZWxldGVQ
cm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lKQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2Fz
dDxKU0Z1bmN0aW9uKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmgKaW5kZXggZjg1YWEzODBkY2MxNDM2ZDc0MTM5ZTdlNmZkMzI0YmU5NTIzMGNjOS4u
NWQ0YjQ2MTEwODMwZTg1MmI3ZWJlYWVhYWZmNThhZTY4ZDU2NjM3YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtMTM3LDcgKzEzNyw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYp
OwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAotICAg
ICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVBy
b3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSk7CiAKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90Vmlz
aXRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RB
bk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0
LmNwcAppbmRleCBiNWE1YTMxZjVlOWExMjJhNzgwMjU1YTA1YzJlNDBmN2Q3MDEyM2M1Li5jY2Mx
NWE0OWFmOWFiNTUzZGE1NjYxYzI2N2E4Yjk4OWE3ZmRlZTliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcApAQCAtOTQsMjIgKzk0LDEyIEBA
IHZvaWQgSlNOb3RBbk9iamVjdDo6cHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqIGV4ZWMs
IHVuc2lnbmVkLCBKU1ZhbHVlKQogICAgIEFTU0VSVF9VTlVTRUQoZXhlYywgZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpOwogfQogCi1ib29sIEpTTm90QW5PYmplY3Q6OmRlbGV0ZVByb3BlcnR5VmlydHVh
bChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLXsKLSAg
ICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQog
Ym9vbCBKU05vdEFuT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImKQogewogICAgIEFTU0VSVF9VTlVTRUQoZXhlYywgZXhlYy0+
aGFkRXhjZXB0aW9uKCkpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKU05vdEFuT2Jq
ZWN0OjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzLCBleGVj
LCBwcm9wZXJ0eU5hbWUpOwotfQotCiBib29sIEpTTm90QW5PYmplY3Q6OmRlbGV0ZVByb3BlcnR5
QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkKQogewogICAgIEFTU0VS
VF9VTlVTRUQoZXhlYywgZXhlYy0+aGFkRXhjZXB0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCmluZGV4IDQxMzgzMWUyNWVkZTM5YmI2ZmM0
YmE1ZmNiMDFlZjMzZTY2NjQ4OWEuLmU1NmU5MDIyMzE0MjFlZTc0MWRhMjNiMzY1OTQ4ZmI5MDdm
NmVmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5P
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0
LmgKQEAgLTgwLDkgKzgwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7
CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5z
aWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZGVs
ZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIHZpcnR1YWwg
Ym9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlO
YW1lKTsKICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAKICAgICAgICAgdmlydHVhbCB2
b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBF
bnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCA3YzU5YWVmY2Ux
MGYzY2RlNmI3ZmNjNjRlZTE1MzUyN2E2M2Q3YzI4Li5lZGI3YTE0MzkwZTJhMDdiNTQ2NDQ0ZmVh
MmJjZGVhN2JkZDQzMTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcApAQCAtNzEwLDcgKzcxMCw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtl
cjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgICAgICAgICAgICAgSlNBcnJheSogYXJy
YXkgPSBhcnJheVN0YWNrLnBlZWsoKTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIGZpbHRlcmVk
VmFsdWUgPSBjYWxsUmV2aXZlcihhcnJheSwganNTdHJpbmcobV9leGVjLCBVU3RyaW5nOjpudW1i
ZXIoaW5kZXhTdGFjay5sYXN0KCkpKSwgb3V0VmFsdWUpOwogICAgICAgICAgICAgICAgIGlmIChm
aWx0ZXJlZFZhbHVlLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgICAgICAgICAgICAgIGFycmF5LT5k
ZWxldGVQcm9wZXJ0eVZpcnR1YWwobV9leGVjLCBpbmRleFN0YWNrLmxhc3QoKSk7CisgICAgICAg
ICAgICAgICAgICAgIGFycmF5LT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgo
YXJyYXksIG1fZXhlYywgaW5kZXhTdGFjay5sYXN0KCkpOwogICAgICAgICAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgICAgICAgICBpZiAoaXNKU0FycmF5KCZtX2V4ZWMtPmdsb2JhbERhdGEo
KSwgYXJyYXkpICYmIGFycmF5LT5jYW5TZXRJbmRleChpbmRleFN0YWNrLmxhc3QoKSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICBhcnJheS0+c2V0SW5kZXgobV9leGVjLT5nbG9iYWxEYXRhKCks
IGluZGV4U3RhY2subGFzdCgpLCBmaWx0ZXJlZFZhbHVlKTsKQEAgLTc3Nyw3ICs3NzcsNyBAQCBO
RVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAg
ICAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwogICAgICAgICAgICAgICAgIEpTVmFs
dWUgZmlsdGVyZWRWYWx1ZSA9IGNhbGxSZXZpdmVyKG9iamVjdCwganNTdHJpbmcobV9leGVjLCBw
cm9wLnVzdHJpbmcoKSksIG91dFZhbHVlKTsKICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRW
YWx1ZS5pc1VuZGVmaW5lZCgpKQotICAgICAgICAgICAgICAgICAgICBvYmplY3QtPmRlbGV0ZVBy
b3BlcnR5VmlydHVhbChtX2V4ZWMsIHByb3ApOworICAgICAgICAgICAgICAgICAgICBvYmplY3Qt
Pm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KG9iamVjdCwgbV9leGVjLCBwcm9wKTsKICAg
ICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+cHV0VmlydHVh
bChtX2V4ZWMsIHByb3AsIGZpbHRlcmVkVmFsdWUsIHNsb3QpOwogICAgICAgICAgICAgICAgIGlm
IChtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuY3BwCmluZGV4IDcyOGQ5YWZhMDZkZjkzM2I4NmRjNGY1ZjEzODljODgyYmJiNDdj
NmIuLjNkMTlkNzA3MjRkYjNjYWU5ZjcwZjE4MDQ2MmYzYjhlYTU3M2ZkMWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTI1OCwxMSArMjU4LDYgQEAg
Ym9vbCBKU09iamVjdDo6aGFzUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUpIGNvbnN0CiAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8SlNPYmplY3QqPih0aGlzKS0+
Z2V0UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgSlNP
YmplY3Q6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQogLy8gRUNNQSA4LjYuMi41CiBib29sIEpTT2JqZWN0
OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lKQogewpAQCAtMjk1LDE0ICsyOTAsMTAgQEAgYm9vbCBKU09i
amVjdDo6aGFzT3duUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpIGMKICAgICByZXR1cm4gY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5n
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAK
LWJvb2wgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHlCeUluZGV4
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci19Ci0KIGJvb2wgSlNPYmplY3Q6OmRlbGV0ZVBy
b3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lKQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+KGNlbGwpLT5k
ZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0
eU5hbWUpKTsKKyAgICBKU09iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTT2JqZWN0
Kj4oY2VsbCk7CisgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVBy
b3BlcnR5KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlO
YW1lKSk7CiB9CiAKIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgY2FsbERlZmF1bHRWYWx1
ZUZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNPYmplY3QqIG9iamVjdCwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQpAQCAtNzk4LDcgKzc4OSw3IEBAIGJvb2wgSlNPYmpl
Y3Q6OmRlZmluZU93blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lCiAgICAgLy8gQSBnZW5lcmljIGRlc2NyaXB0b3IgaXMgc2ltcGx5IGNoYW5n
aW5nIHRoZSBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5CiAgICAgaWYgKGRlc2Ny
aXB0b3IuaXNHZW5lcmljRGVzY3JpcHRvcigpKSB7CiAgICAgICAgIGlmICghY3VycmVudC5hdHRy
aWJ1dGVzRXF1YWwoZGVzY3JpcHRvcikpIHsKLSAgICAgICAgICAgIGRlbGV0ZVByb3BlcnR5Vmly
dHVhbChleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgbWV0aG9kVGFibGUoKS0+ZGVs
ZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgIHB1dERl
c2NyaXB0b3IoZXhlYywgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBjdXJyZW50LmF0
dHJpYnV0ZXNXaXRoT3ZlcnJpZGUoZGVzY3JpcHRvciksIGN1cnJlbnQpOwogICAgICAgICB9CiAg
ICAgICAgIHJldHVybiB0cnVlOwpAQCAtODExLDcgKzgwMiw3IEBAIGJvb2wgSlNPYmplY3Q6OmRl
ZmluZU93blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lCiAgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3Io
ZXhlYywgIkF0dGVtcHRpbmcgdG8gY2hhbmdlIGFjY2VzcyBtZWNoYW5pc20gZm9yIGFuIHVuY29u
ZmlndXJhYmxlIHByb3BlcnR5LiIpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgfQotICAgICAgICBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lKTsK
KyAgICAgICAgbWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lKTsKICAgICAgICAgcmV0dXJuIHB1dERlc2NyaXB0b3IoZXhlYywgdGhpcywgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yLCBjdXJyZW50LmF0dHJpYnV0ZXNXaXRoT3ZlcnJpZGUoZGVzY3Jp
cHRvciksIGN1cnJlbnQpOwogICAgIH0KIApAQCAtODM5LDcgKzgzMCw3IEBAIGJvb2wgSlNPYmpl
Y3Q6OmRlZmluZU93blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0KLSAgICAgICAgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4
ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIG1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHJldHVybiBwdXREZXNjcmlwdG9y
KGV4ZWMsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgY3VycmVudC5hdHRyaWJ1dGVz
V2l0aE92ZXJyaWRlKGRlc2NyaXB0b3IpLCBjdXJyZW50KTsKICAgICB9CiAKQEAgLTg2OCw3ICs4
NTksNyBAQCBib29sIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZQogICAgICAgICAgICAgZ2V0dGVyU2V0dGVy
LT5zZXRHZXR0ZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBhc09iamVjdChkZXNjcmlwdG9yLmdldHRl
cigpKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBkZWxldGVQcm9wZXJ0eVZp
cnR1YWwoZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICBtZXRob2RUYWJsZSgpLT5kZWxldGVQcm9w
ZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIHVuc2lnbmVkIGF0dHJzID0gY3Vy
cmVudC5hdHRyaWJ1dGVzV2l0aE92ZXJyaWRlKGRlc2NyaXB0b3IpOwogICAgIGlmIChkZXNjcmlw
dG9yLnNldHRlcigpKQogICAgICAgICBhdHRycyB8PSBTZXR0ZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCAwMGJkYmZmN2ExNTdhYTUzMWIyN2YxMDY5ZDQ2
ZGI0NzdhNGI0MGRjLi5iNzZkMjg5ZDJjNzQ5MzM1MmU2YWViNGEwOWFkYTBhMzFiNzJkYWZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTEyMyw5ICsxMjMs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBoYXNQcm9wZXJ0eShFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpIGNvbnN0OwogICAgICAgICBib29sIGhhc093blByb3Bl
cnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkgY29uc3Q7CiAK
LSAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBzdGF0aWMgYm9vbCBkZWxl
dGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0
ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUpOwogCiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSBkZWZhdWx0VmFsdWUoRXhlY1N0YXRlKiwg
UHJlZmVycmVkUHJpbWl0aXZlVHlwZSkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuY3BwCmluZGV4IDE4NDU5MDkzOWYzOTBmMmIw
MzE0MGZmYzllNWRiZWUwNjQzNTZkZTYuLjA5Yzg3YTE2OTJjZmUzOGRkNjE1YzAyMjc3ZDAwYjFh
MzdhNjcwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFy
aWFibGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFy
aWFibGVPYmplY3QuY3BwCkBAIC0zNCwxMSArMzQsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
Ym9vbCBKU1ZhcmlhYmxlT2JqZWN0OjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIGRlbGV0
ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci19Ci0KIGJvb2wgSlNWYXJpYWJs
ZU9iamVjdDo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU1ZhcmlhYmxlT2JqZWN0KiB0
aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNWYXJpYWJsZU9iamVjdCo+KGNlbGwpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCmluZGV4IDlk
ZTcwOTM3OTQ5MWEyMjBlNDcxZmQ2ZTIxZmIwZmFlMGU0ODc5ZDEuLjBmODZlMzVlMjlhOTZhNmI0
ODBlMDBhZGFlZjM0YzI1ZDhhNTU0NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKQEAgLTUwLDcgKzUwLDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKSA9IDA7CiAK
LSAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBF
bnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogICAgICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNo
ZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0Fy
cmF5LmgKaW5kZXggNWU4MDBlYzZkNDg0OGUyZDQ1NjIzNmNhMzA4MDhmMmQ5NzQzNjQ3Yy4uMjRm
N2YzYjA2ZmFmMjE2Y2VkNDgwNGE5ZGUyZTM2ZTlhMzU1ZWQ4NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKQEAgLTEwMiwxMSAr
MTAyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBKU0FycmF5OjpwdXRCeUluZGV4
KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdik7CiAgICAgICAgIH0KIAotICAgICAg
ICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgfQot
CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIFJlZ0V4cE1hdGNoZXNBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJl
Z0V4cE1hdGNoZXNBcnJheSo+KGNlbGwpOwpAQCAtMTE1LDExICsxMTAsNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgICAgIHJldHVybiBKU0FycmF5OjpkZWxldGVQcm9wZXJ0eSh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCBi
b29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5QnlJ
bmRleCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICB9Ci0KICAgICAgICAgc3Rh
dGljIGJvb2wgZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIFJlZ0V4
cE1hdGNoZXNBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJlZ0V4cE1hdGNoZXNBcnJh
eSo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aWN0RXZhbEFjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aWN0RXZhbEFjdGl2YXRpb24uY3BwCmluZGV4IDI4ZmMzNjVmZTUxN2QxYzQ0NTRkYmRlYjBhNmY2
ZTM2YWZmODM1NjMuLmNlOWRlNWE2ZmU1ODU1NGYxODJiYjhiNzM3YzRlMzgzY2RmZGFiM2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0
aXZhdGlvbi5jcHAKQEAgLTM1LDExICszNSw2IEBAIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpTdHJp
Y3RFdmFsQWN0aXZhdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7CiB9CiAKLWJvb2wgU3RyaWN0RXZh
bEFjdGl2YXRpb246OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIGlkZW50aWZpZXIpCi17Ci0gICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5KHRo
aXMsIGV4ZWMsIGlkZW50aWZpZXIpOwotfQotCiBib29sIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpk
ZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJikKIHsK
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaAppbmRleCBjOWEzNDljZjZiYzk5MzQzNWYyYTgxODE3
ZGUyMTZmYjVlYTFiNDkzLi4wOTc0NDY4YzY0Y2FlOGI0N2YyZTQ2NzljZWViY2ViM2ZkMTdjZjEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0
aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxB
Y3RpdmF0aW9uLmgKQEAgLTQxLDcgKzQxLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWN0
aXZhdGlvbjsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFs
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKICAgICBzdGF0aWMgYm9vbCBkZWxldGVQ
cm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgdmly
dHVhbCBKU09iamVjdCogdG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAppbmRleCBiNzIzZTkz
MDU4YzljZjI0NDUxNjMyMGVlNDIwNjc1OTM1MzhhNjA2Li4yOWY5ZWI2YzA4ZDIxYTU3MTA0OWZj
M2VlYTc1MGQzOWNiN2RiMDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5jcHAKQEAgLTg2LDExICs4Niw2IEBAIHZvaWQgU3RyaW5nT2JqZWN0Ojpw
dXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5CiAgICAgSlNPYmplY3Q6OnB1dChjZWxsLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBz
bG90KTsKIH0KIAotYm9vbCBTdHJpbmdPYmplY3Q6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1
cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQogYm9vbCBT
dHJpbmdPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgU3RyaW5nT2JqZWN0KiB0
aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8U3RyaW5nT2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IGRjZWIxYmIxZmFhMGU3
NGYyMjVmYmVmNjc0MDNhMzVjNmQ3YmE1OGQuLjNjNjAwNzQ3ZDQ3MDBkMDE4YmQ4ZjYyYWI4MGU2
M2RjMTEzOWVmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09i
amVjdC5oCkBAIC01NCw3ICs1NCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFs
IHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJv
cGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7
CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVy
YXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgppbmRleCAyMjhhMDEzYzE4MDI5OWY5NGY0YjUyYTUwYTQwYjE5ZjgzMTA1ZWVkLi44
OTU2YjE4MGIwNWQxM2NmN2FkZjcwYmRjYmI2NWVlYTNkN2EzODlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgpAQCAtMTcwNCw3ICsxNzA0LDYgQEAgX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmpl
Y3QxNGZpbmlzaENyZWF0aW9uRVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19aTjNKU0M4QmluZGlu
Z3MxM1J1bnRpbWVPYmplY3QxNmdldENvbnN0cnVjdERhdGFFUE5TXzZKU0NlbGxFUk5TXzEzQ29u
c3RydWN0RGF0YUUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MThnZXRPd25Qcm9w
ZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5T
XzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxOWdldE93
blByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNf
MTVFbnVtZXJhdGlvbk1vZGVFCi1fX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDIxZGVs
ZXRlUHJvcGVydHlWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19a
TjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JF
CiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDI1Z2V0T3duUHJvcGVydHlTbG90Vmly
dHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RF
CiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDNwdXRFUE5TXzZKU0NlbGxFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlT
bG90RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdN
YXBDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdNYXBD
dXN0b20uY3BwCmluZGV4IGRjMjUxNjkxMjQyNDVjYTIwOGUyZmI5MDZmZDY5YzU0OWMzYWI4NjAu
LmFhMjljMzllOTA1NjU4ZWE3NzBiYzQ5YjUyZGEwN2VhZjU0MDAwYWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTWFwQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5jcHAKQEAgLTU3
LDEzICs1NywxNCBAQCB2b2lkIEpTRE9NU3RyaW5nTWFwOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHBybwogICAgIEJhc2U6OmdldE93blBy
b3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKLWJvb2wgSlNET01T
dHJpbmdNYXA6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSkKK2Jvb2wgSlNET01TdHJpbmdNYXA6OmRlbGV0ZVByb3Bl
cnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpCiB7CisgICAgSlNET01TdHJpbmdNYXAqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2Fz
dDxKU0RPTVN0cmluZ01hcCo+KGNlbGwpOwogICAgIEF0b21pY1N0cmluZyBzdHJpbmdOYW1lID0g
aWRlbnRpZmllclRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKCFtX2ltcGwt
PmNvbnRhaW5zKHN0cmluZ05hbWUpKQorICAgIGlmICghdGhpc09iamVjdC0+bV9pbXBsLT5jb250
YWlucyhzdHJpbmdOYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIG1faW1wbC0+ZGVsZXRlSXRlbShzdHJpbmdOYW1lLCBlYyk7CisgICAg
dGhpc09iamVjdC0+bV9pbXBsLT5kZWxldGVJdGVtKHN0cmluZ05hbWUsIGVjKTsKICAgICBzZXRE
T01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIHJldHVybiAhZWM7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggMGFlMjQ3Nzhh
MzIxOTY4ZjljNDU4OGRkMmQwNjRlZTdiOTllZmI2MS4uOWEzOTI0OTYyZTk4YjBkN2VkMDQ5MDY5
ODBhNDFiOTdmNjQ0ODkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMzY5LDEyICszNjksMTMgQEAgdm9pZCBKU0RPTVdpbmRv
dzo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU4KICAgICAgICAgQmFzZTo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIHNsb3QpOwogfQogCi1ib29sIEpTRE9NV2luZG93OjpkZWxldGVQcm9wZXJ0eVZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiti
b29sIEpTRE9NV2luZG93OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogeworICAgIEpTRE9NV2luZG93
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3cqPihjZWxsKTsKICAgICAvLyBP
bmx5IGFsbG93IGRlbGV0aW5nIHByb3BlcnRpZXMgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdp
bi4KLSAgICBpZiAoIWFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCisgICAgaWYgKCF0aGlzT2JqZWN0
LT5hbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0
dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAg
cmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFt
ZSk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3c6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1v
ZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1No
ZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3Bw
CmluZGV4IGUzZDMzM2NjMzBjZDgzOTM3YzFiYzQ0ZjAxN2UxNTVkYjE5ZWJlYTEuLjhlZWZjY2U1
MWFjZmNjNzIzZDZkMWZhNDdkM2I2YTk4YTExNTI5NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC0xMzUsOSArMTM1LDEwIEBAIGJv
b2wgSlNET01XaW5kb3dTaGVsbDo6ZGVmaW5lT3duUHJvcGVydHkoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEpTQzo6SWRlbnRpCiAgICAgcmV0dXJuIG1fd2luZG93LT5kZWZpbmVPd25Qcm9w
ZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAot
Ym9vbCBKU0RPTVdpbmRvd1NoZWxsOjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCitib29sIEpTRE9NV2luZG93U2hl
bGw6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIG1fd2luZG93LT5kZWxldGVQ
cm9wZXJ0eVZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICBKU0RPTVdpbmRvd1NoZWxs
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KGNlbGwpOworICAg
IHJldHVybiB0aGlzT2JqZWN0LT5tX3dpbmRvdy0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVy
dHkodGhpc09iamVjdC0+bV93aW5kb3cuZ2V0KCksIGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAK
IHZvaWQgSlNET01XaW5kb3dTaGVsbDo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCAw
ZDY5MjE2MDI2NTBkZDNkODU0MThhOTEwZGM0N2NjOGNiMGJjZWE0Li4yM2NlYTgzMDkyNWI4NjMz
ZTVhNmEwYjEzNTdiODY2NWExYzU3YjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5oCkBAIC04Niw3ICs4Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpT
VmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRX
aXRoQXR0cmlidXRlcyhKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwotICAgICAgICB2
aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOworICAgICAgICBzdGF0aWMgYm9vbCBkZWxl
dGVQcm9wZXJ0eShKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlO
YW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6OkVudW1l
cmF0aW9uTW9kZSBtb2RlID0gSlNDOjpFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OlByb3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEpTQzo6RXhj
bHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVHZXR0
ZXIoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNDOjpKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHAKaW5kZXggYmUy
NmI3YjQ5YTljYTYzMDdmMzA1OGNhYWNmN2NmNzFjODQ2NTFlOC4uZDdmZGMwMDFkMDEwOWIyODQ1
Y2MzM2NjZjMzNzNhNjgxOWY2MzA2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hpc3RvcnlDdXN0b20uY3BwCkBAIC0xNDYsMTIgKzE0NiwxMyBAQCBib29sIEpTSGlzdG9y
eTo6cHV0RGVsZWdhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1
ZSwgUHV0UHJvcAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKU0hpc3Rvcnk6OmRlbGV0
ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSkKK2Jvb2wgSlNIaXN0b3J5OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogeworICAgIEpT
SGlzdG9yeSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTSGlzdG9yeSo+KGNlbGwpOwogICAg
IC8vIE9ubHkgYWxsb3cgZGVsZXRpbmcgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4KLSAg
ICBpZiAoIWFsbG93c0FjY2Vzc0Zyb21GcmFtZShleGVjLCBpbXBsKCktPmZyYW1lKCkpKQorICAg
IGlmICghYWxsb3dzQWNjZXNzRnJvbUZyYW1lKGV4ZWMsIHRoaXNPYmplY3QtPmltcGwoKS0+ZnJh
bWUoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJv
cGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gQmFzZTo6ZGVsZXRl
UHJvcGVydHkodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lKTsKIH0KIAogdm9pZCBKU0hp
c3Rvcnk6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVB
cnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmluZGV4IDg4ZTVhZTk0ZTNh
NjdmODlhNWY2ZGJjODlmYjUyNzhmYmVlNjg0MTguLjc3NTA5NTNmNDgzMGZjMmE3ZjIxZThiM2Mw
YTI5OGYyYjRiYTZjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TG9jYXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9j
YXRpb25DdXN0b20uY3BwCkBAIC0xNTIsMTIgKzE1MiwxMyBAQCBib29sIEpTTG9jYXRpb246OnB1
dERlbGVnYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKUwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKU0xvY2F0aW9uOjpkZWxldGVQcm9w
ZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpCitib29sIEpTTG9jYXRpb246OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CisgICAgSlNMb2Nh
dGlvbiogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTTG9jYXRpb24qPihjZWxsKTsKICAgICAv
LyBPbmx5IGFsbG93IGRlbGV0aW5nIGJ5IGZyYW1lcyBpbiB0aGUgc2FtZSBvcmlnaW4uCi0gICAg
aWYgKCFhbGxvd3NBY2Nlc3NGcm9tRnJhbWUoZXhlYywgaW1wbCgpLT5mcmFtZSgpKSkKKyAgICBp
ZiAoIWFsbG93c0FjY2Vzc0Zyb21GcmFtZShleGVjLCB0aGlzT2JqZWN0LT5pbXBsKCktPmZyYW1l
KCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3Bl
cnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVBy
b3BlcnR5KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKIHZvaWQgSlNMb2Nh
dGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFy
cmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwCmluZGV4IGVlMjY2ZjkwMWNhYTU4
NTEzOTdiZmMwYWM4NDRiOGIxNGEwOTVkOWYuLmEyNmY0ZjI0YTZhODYxMTNmNDMwZWUzYTU0ZTJm
NTY2MjcxODU2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3Rv
cmFnZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdG9yYWdl
Q3VzdG9tLmNwcApAQCAtNDUsMjAgKzQ1LDIxIEBAIEpTVmFsdWUgSlNTdG9yYWdlOjpuYW1lR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllCiAg
ICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKGV4ZWMsIHRoaXNPYmotPmltcGwoKS0+Z2V0SXRlbShp
ZGVudGlmaWVyVG9TdHJpbmcocHJvcGVydHlOYW1lKSkpOwogfQogCi1ib29sIEpTU3RvcmFnZTo6
ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lKQorYm9vbCBKU1N0b3JhZ2U6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7Cisg
ICAgSlNTdG9yYWdlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNTdG9yYWdlKj4oY2VsbCk7
CiAgICAgLy8gT25seSBwZXJmb3JtIHRoZSBjdXN0b20gZGVsZXRlIGlmIHRoZSBvYmplY3QgZG9l
c24ndCBoYXZlIGEgbmF0aXZlIHByb3BlcnR5IGJ5IHRoaXMgbmFtZS4KICAgICAvLyBTaW5jZSBo
YXNQcm9wZXJ0eSgpIHdvdWxkIGVuZCB1cCBjYWxsaW5nIGNhbkdldEl0ZW1zRm9yTmFtZSgpIGFu
ZCBiZSBmb29sZWQsIHdlIG5lZWQgdG8gY2hlY2sKICAgICAvLyB0aGUgbmF0aXZlIHByb3BlcnR5
IHNsb3RzIG1hbnVhbGx5LgogICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgIGlmIChnZXRTdGF0
aWNWYWx1ZVNsb3Q8SlNTdG9yYWdlLCBCYXNlPihleGVjLCBzX2luZm8ucHJvcEhhc2hUYWJsZShl
eGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICBpZiAoZ2V0U3RhdGljVmFsdWVT
bG90PEpTU3RvcmFnZSwgQmFzZT4oZXhlYywgc19pbmZvLnByb3BIYXNoVGFibGUoZXhlYyksIHRo
aXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgCi0gICAgSlNWYWx1ZSBwcm90b3R5cGUgPSB0aGlzLT5wcm90b3R5cGUoKTsKKyAgICBK
U1ZhbHVlIHByb3RvdHlwZSA9IHRoaXNPYmplY3QtPnByb3RvdHlwZSgpOwogICAgIGlmIChwcm90
b3R5cGUuaXNPYmplY3QoKSAmJiBhc09iamVjdChwcm90b3R5cGUpLT5oYXNQcm9wZXJ0eShleGVj
LCBwcm9wZXJ0eU5hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX2ltcGwtPnJl
bW92ZUl0ZW0oaWRlbnRpZmllclRvU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgIHRoaXNPYmpl
Y3QtPm1faW1wbC0+cmVtb3ZlSXRlbShpZGVudGlmaWVyVG9TdHJpbmcocHJvcGVydHlOYW1lKSk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRPYmplY3QuY3BwCmluZGV4IDYyNTdmNjU1MmM0YzIwNGZmMTdjY2VjYWI3OWQ3ZjZkMmJkMWNl
MDUuLjY3NjBlNDdiZjkzMjI2MjY5Y2YzOWVlMGM3NGZiYjEzNTYyN2RiOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmNwcApAQCAtMTAxLDcgKzEwMSw3IEBA
IGJvb2wgU2NyaXB0R2xvYmFsT2JqZWN0OjpnZXQoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlLCBj
b25zdCBjaGFyKiBuYW1lLCBTY3JpcHRPCiBib29sIFNjcmlwdEdsb2JhbE9iamVjdDo6cmVtb3Zl
KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgY29uc3QgY2hhciogbmFtZSkKIHsKICAgICBKU0xv
Y2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIHNjcmlwdFN0YXRlLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCktPmRlbGV0ZVByb3BlcnR5VmlydHVhbChzY3JpcHRTdGF0ZSwgSWRlbnRp
ZmllcihzY3JpcHRTdGF0ZSwgbmFtZSkpOworICAgIHNjcmlwdFN0YXRlLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCktPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KHNjcmlwdFN0YXRlLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCksIHNjcmlwdFN0YXRlLCBJZGVudGlmaWVyKHNjcmlwdFN0YXRlLCBu
YW1lKSk7CiAgICAgcmV0dXJuIGhhbmRsZUV4Y2VwdGlvbihzY3JpcHRTdGF0ZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1t
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KaW5kZXgg
NTkxMGUzNTZkZGJmOTM4MjI5MjE3NTU5MTg4NmE0NTFjNTlmZTg3ZS4uNThjYTE4N2I1YzBiNWMx
YzZmY2UxNGJlMDhmMTg5ZGRjZDc4NGJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KQEAgLTQwMyw3ICs0MDMsNyBAQCBzdGF0aWMgdm9p
ZCBnZXRMaXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRlICpleGVjLCBOU0FycmF5ICphcnJheSwgUm9v
dE9iamVjdCogcm9vdAogICAgIEFTU0VSVCghZXhlYy0+aGFkRXhjZXB0aW9uKCkpOwogCiAgICAg
SlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKLSAgICBbc2VsZiBfaW1wXS0+ZGVs
ZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXIoZXhlYywgc3RyaW5nVG9VU3RyaW5n
KFN0cmluZyhrZXkpKSkpOworICAgIFtzZWxmIF9pbXBdLT5tZXRob2RUYWJsZSgpLT5kZWxldGVQ
cm9wZXJ0eShbc2VsZiBfaW1wXSwgZXhlYywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJp
bmcoU3RyaW5nKGtleSkpKSk7CiAKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKICAg
ICAgICAgYWRkRXhjZXB0aW9uVG9Db25zb2xlKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAyZWMxZTc5ZDlkNWQ2
ODc0MjY1YjI4NTE2ODMxZjkzNGVlY2Q5Yzc4Li45MGJjYjZlYTRlZjZiY2NhMTE0NDJhMGU4ODNk
MmFhNDNjODA2MDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtODIyLDcgKzgyMiw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRl
cgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6Q2FsbFR5cGUgZ2V0
Q2FsbERhdGEoSlNDOjpKU0NlbGwqLCBKU0M6OkNhbGxEYXRhJik7XG5cbiIpIGlmICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNhbGwifTsKIAogICAgICMgQ3VzdG9tIGRl
bGV0ZVByb3BlcnR5IGZ1bmN0aW9uCi0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJik7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b21EZWxldGVQcm9wZXJ0eSJ9OworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3Rh
dGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tRGVsZXRlUHJvcGVydHkifTsKIAogICAgICMgQ3VzdG9tIGdldFByb3BlcnR5
TmFtZXMgZnVuY3Rpb24gZXhpc3RzIG9uIERPTVdpbmRvdwogICAgIGlmICgkaW50ZXJmYWNlTmFt
ZSBlcSAiRE9NV2luZG93IikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL05Q
X2pzb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKaW5k
ZXggZDZiNmU2OWU5YjZiNjU2MmQyYTc2MWQ4ZDM3ODBlOWIwNjQ3NjI4YS4uMGE4ZTc1MWM5NjZm
MzY4ZjM2YTBhYWIyMDkzNmMzYTBjM2EwOWM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL05QX2pzb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNv
YmplY3QuY3BwCkBAIC0zNzUsOSArMzc1LDkgQEAgYm9vbCBfTlBOX1JlbW92ZVByb3BlcnR5KE5Q
UCwgTlBPYmplY3QqIG8sIE5QSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUpCiAKICAgICAgICAgSlNM
b2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKICAgICAgICAgaWYgKGktPmlzU3RyaW5n
KCkpCi0gICAgICAgICAgICBvYmotPmltcC0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGlk
ZW50aWZpZXJGcm9tTlBJZGVudGlmaWVyKGV4ZWMsIGktPnN0cmluZygpKSk7CisgICAgICAgICAg
ICBvYmotPmltcC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkob2JqLT5pbXAsIGV4ZWMs
IGlkZW50aWZpZXJGcm9tTlBJZGVudGlmaWVyKGV4ZWMsIGktPnN0cmluZygpKSk7CiAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgIG9iai0+aW1wLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywg
aS0+bnVtYmVyKCkpOworICAgICAgICAgICAgb2JqLT5pbXAtPm1ldGhvZFRhYmxlKCktPmRlbGV0
ZVByb3BlcnR5QnlJbmRleChvYmotPmltcCwgZXhlYywgaS0+bnVtYmVyKCkpOwogCiAgICAgICAg
IGV4ZWMtPmNsZWFyRXhjZXB0aW9uKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbQppbmRleCAwZjliN2YxNmEyMzdkOTljOGQ4
YzU3ZjllNmM0NjgzMjFmM2FkYzFjLi4zNzMwNzQ1MTZkNzc1ODBjZTBmMjU1NjU2ZDEyMTlkYTQ5
MjdlMjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2puaV9qc29iamVj
dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbQpAQCAt
MzYyLDcgKzM2Miw3IEBAIHZvaWQgSmF2YUpTT2JqZWN0OjpyZW1vdmVNZW1iZXIoanN0cmluZyBt
ZW1iZXJOYW1lKSBjb25zdAogCiAgICAgRXhlY1N0YXRlKiBleGVjID0gcm9vdE9iamVjdC0+Z2xv
YmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0
aW9uc09ubHkpOwotICAgIF9pbXAtPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBJZGVudGlm
aWVyKGV4ZWMsIEphdmFTdHJpbmcobWVtYmVyTmFtZSkuaW1wbCgpKSk7CisgICAgX2ltcC0+bWV0
aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkoX2ltcCwgZXhlYywgSWRlbnRpZmllcihleGVjLCBK
YXZhU3RyaW5nKG1lbWJlck5hbWUpLmltcGwoKSkpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggMThkNWUzNDIwYTM5MTUyYmQ2MzFlNTQ2OGI3
NjczMDViNTViNGVhNi4uZDgyNzYyNzMwMTg3YWI2MTNkN2MwZTY2YmI0ODU2YTY4YmM1MDdiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKQEAgLTEyOSw3ICsx
MjksNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3Rh
dGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Ci0gICAgdmlydHVh
bCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgdmlydHVh
bCBKU1ZhbHVlIGRlZmF1bHRWYWx1ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBl
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmlu
ZGV4IDJiNzExYjQxNDA5Y2M4MTk3MDEwNDMxOTZmMzc0MGE0OGYzODAxNDIuLjdmNjMxOTYyOGVi
NWUzOWRjZDAxMGQ5ODc3YzgyMDIzZGMzY2I5ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTI3NCwxMSArMjc0LDYgQEAgQ2FsbFR5cGUgT2JqY0Zh
bGxiYWNrT2JqZWN0SW1wOjpnZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwsIENhbGxEYXRhJiBjYWxs
RGF0YSkKICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwogfQogCi1ib29sIE9iamNGYWxsYmFja09i
amVjdEltcDo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgaWRlbnRpZmllcikKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywg
ZXhlYywgaWRlbnRpZmllcik7Ci19Ci0KIGJvb2wgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpkZWxl
dGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5k
ZXggODcyMmU1ODUxOWFiZmVmNjAyMzY5MjQ4Njg4ZTVmNDhjNTM1Njc1Ny4uNDZmODRhOWEzMWU1
OWZiMjY3ZThjZjlmMDllYjdhNWFlZmY5YWFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX2FycmF5LmNwcApAQCAtMTgxLDIxICsxODEsMTEgQEAgdm9pZCBSdW50aW1lQXJyYXk6OnB1
dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBK
U1YKICAgICB0aGlzT2JqZWN0LT5nZXRDb25jcmV0ZUFycmF5KCktPnNldFZhbHVlQXQoZXhlYywg
aW5kZXgsIHZhbHVlKTsKIH0KIAotYm9vbCBSdW50aW1lQXJyYXk6OmRlbGV0ZVByb3BlcnR5Vmly
dHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLXsK
LSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKLX0K
LQogYm9vbCBSdW50aW1lQXJyYXk6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImKQogewogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBSdW50
aW1lQXJyYXk6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci19Ci0KIGJvb2wgUnVudGltZUFycmF5OjpkZWxldGVQcm9w
ZXJ0eUJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQpCiB7CiAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXku
aCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKaW5kZXggMTc4NTJlODlk
ZWM3ZmM2ZGQzY2NjMzJhNWVhMGQ2OWVlOThkY2ZkZi4uZmYzM2NmZTMxNGM3NTliNmIxMWJjMWJm
YzhlMDcxNGE3MzgzODBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCkBA
IC02MCw5ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVj
U3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lk
IHB1dEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlKTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGJv
b2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciAm
cHJvcGVydHlOYW1lKTsKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGJvb2wgZGVsZXRl
UHJvcGVydHlCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSk7CiAgICAgCiAgICAgdW5zaWduZWQgZ2V0TGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gZ2V0Q29u
Y3JldGVBcnJheSgpLT5nZXRMZW5ndGgoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5jcHAKaW5kZXggMzI4ZWNiZmY4YWFjN2ZhMWE1MjcxNzdhMjA4NzAxMjFkMjU3MGQ0
ZS4uOTBlMWRmMGQzYmMwMGYyMWY3Zjk2YTY0OWUzMjBiMTk3ODdlNmI0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC0yNDIsMTEgKzI0Miw2IEBAIHZvaWQg
UnVudGltZU9iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0CiAgICAgaW5zdGFuY2UtPmVuZCgpOwogfQogCi1ib29sIFJ1bnRp
bWVPYmplY3Q6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQogYm9vbCBSdW50aW1lT2JqZWN0OjpkZWxldGVQ
cm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAgICAv
LyBDYW4gbmV2ZXIgcmVtb3ZlIGEgcHJvcGVydHkgb2YgYSBSdW50aW1lT2JqZWN0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCA4YTI3MTllMTgxZWMzZDVkNWMxZjc2
ODBiMzIyZWNiOTc4ZTY2OTIzLi5hZTIyYTgwODI4ZWU3ZmEwMTJhYzc4OTUyMmY4NTUyYzQzNzgz
MjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApAQCAtNTAsNyArNTAs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAg
c3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCBib29s
IGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgdmlydHVhbCBKU1Zh
bHVlIGRlZmF1bHRWYWx1ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKSBjb25z
dDsKICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1
Z2luSW5zdGFuY2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCAwOWU1MzllNTU0MzJmMTAwMTgzYWYz
NTk1ZjJiNjI2ZTRkYmI3MDk3Li5hNjdkMjQ5ZjlmZTM4M2I0MjlmMDU4MGMyMmEzMDE1MjNiNzFl
MzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC0xMTEzLDcgKzExMTMsNyBA
QCBib29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6cmVtb3ZlUHJvcGVydHkodWludDMy
X3Qgb2JqZWN0SUQsIGNvbnN0IElkZW50aQogICAgIH0KICAgICAKICAgICBKU0xvY2sgbG9jayhT
aWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIG9iamVjdC0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5kZWxldGVQ
cm9wZXJ0eShvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgZXhlYy0+Y2xlYXJFeGNl
cHRpb24oKTsgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMTQwLDcgKzExNDAsNyBAQCBi
b29sIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6cmVtb3ZlUHJvcGVydHkodWludDMyX3Qg
b2JqZWN0SUQsIHVuc2lnbmVkIHBybwogICAgIH0KICAgICAKICAgICBKU0xvY2sgbG9jayhTaWxl
bmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIG9iamVjdC0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4
ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9w
ZXJ0eUJ5SW5kZXgob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIGV4ZWMtPmNsZWFy
RXhjZXB0aW9uKCk7ICAgIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmlu
ZGV4IGQwNThlZTVlYjBmNmU1MGZmOGQ5NmUyY2M0MDg3MDRjOWJhNGNlODEuLjM2MzhkYmZlOTIz
ZWU4Y2EyOGRiNDBiOTYzYmE0NjMyNGJkOGE4M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAgLTM1
MSwyMSArMzUxLDExIEBAIHZvaWQgSlNOUE9iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hCiAgICAgcmVsZWFzZU5QVmFy
aWFudFZhbHVlKCZ2YXJpYW50KTsKIH0KIAotYm9vbCBKU05QT2JqZWN0OjpkZWxldGVQcm9wZXJ0
eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUp
Ci17Ci0gICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7
Ci19Ci0KIGJvb2wgSlNOUE9iamVjdDo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SlNOUE9iamVjdCo+KGNlbGwpLT5kZWxldGVQcm9wZXJ0eShleGVjLCBu
cElkZW50aWZpZXJGcm9tSWRlbnRpZmllcihwcm9wZXJ0eU5hbWUpKTsKIH0KIAotYm9vbCBKU05Q
T2JqZWN0OjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzLCBl
eGVjLCBwcm9wZXJ0eU5hbWUpOwotfQotCiBib29sIEpTTlBPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU05QT2JqZWN0Kj4oY2VsbCktPmRlbGV0
ZVByb3BlcnR5KGV4ZWMsIHN0YXRpY19jYXN0PE5QSWRlbnRpZmllcj4oSWRlbnRpZmllclJlcDo6
Z2V0KHByb3BlcnR5TmFtZSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IDRhZTEzYmFmNjA1YTE0ODI4
ZDhjMjM5MDViN2IwMmMzOTYxMWRmOTYuLjA0NDk2ZjVjZWYyOGE5NjgxN2JmOGQ3MDdjODNiYTM3
YTUzNDU3OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaApAQCAtODgsOSArODgsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3Qm
KTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0
UHJvcGVydHlTbG90Jik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFs
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwog
ICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7Ci0gICAgdmlydHVhbCBi
b29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSk7CiAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwogCiAgICAgYm9v
bCBkZWxldGVQcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSosIE5QSWRlbnRpZmllciBwcm9wZXJ0eU5h
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05QSlNPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05QSlNPYmplY3QuY3BwCmluZGV4IDg0Y2VhMGM1NGNhOTNhYzdhZmI0NzA1MzBmOWJl
NDk0ZDNjYzc4YWMuLjYzMzMyNjIyNzNhNThkNmU0MDg4Njc0Y2QxMThkMDIzNDljYjc5ODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpT
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTlBKU09iamVjdC5jcHAKQEAgLTIxMywxNCArMjEzLDE0IEBAIGJvb2wgTlBKU09iamVjdDo6
cmVtb3ZlUHJvcGVydHkoTlBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgbV9qc09iamVjdC0+ZGVs
ZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGlkZW50aWZpZXIpOworICAgICAgICBtX2pzT2JqZWN0
LT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eShtX2pzT2JqZWN0LmdldCgpLCBleGVjLCBp
ZGVudGlmaWVyKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoIW1fanNPYmplY3QtPmhhc1By
b3BlcnR5KGV4ZWMsIGlkZW50aWZpZXJSZXAtPm51bWJlcigpKSkgewogICAgICAgICAgICAgZXhl
Yy0+Y2xlYXJFeGNlcHRpb24oKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
fQogCi0gICAgICAgIG1fanNPYmplY3QtPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBpZGVu
dGlmaWVyUmVwLT5udW1iZXIoKSk7CisgICAgICAgIG1fanNPYmplY3QtPm1ldGhvZFRhYmxlKCkt
PmRlbGV0ZVByb3BlcnR5QnlJbmRleChtX2pzT2JqZWN0LmdldCgpLCBleGVjLCBpZGVudGlmaWVy
UmVwLT5udW1iZXIoKSk7CiAgICAgfQogCiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112271</attachid>
            <date>2011-10-24 16:19:56 -0700</date>
            <delta_ts>2011-10-24 16:30:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70738-20111024161955.patch</filename>
            <type>text/plain</type>
            <size>70329</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgyNTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDdm
MjYzODU2NmI5NGZlYzE1ODllMGE5M2JjY2E3N2JiOTk1ZjgyMWMuLjRhOWQ3ZGNiNTFjMDRjNGE0
ZmUxOTcyMWQ3NTJmOGJkNTA2YTRhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY0IEBACisyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlbGV0ZVByb3BlcnR5VmlydHVhbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGFsbCBkZWNsYXJh
dGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIGRlbGV0ZVByb3BlcnR5VmlydHVhbC4KKyAgICAgICAg
QWxzbyByZXBsYWNlZCBhbGwgY2FsbCBzaXRlcyB0byBkZWxldGVQcm9wZXJ0eVZpcnR1YWwgd2l0
aCBhIAorICAgICAgICBjb3JyZXNwb25kaW5nIGxvb2t1cCBpbiB0aGUgTWV0aG9kVGFibGUuCisK
KyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAqIEFQSS9KU0NhbGxi
YWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6ZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KToKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgorICAgICAgICAoSlNPYmplY3RE
ZWxldGVQcm9wZXJ0eSk6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6
CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKEpT
Qzo6RGVidWdnZXJBY3RpdmF0aW9uOjpkZWxldGVQcm9wZXJ0eSk6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0
ZXIuY3BwOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUpOgorICAg
ICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNU
SU9OKToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9Bcmd1bWVudHMuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNQb3ApOgorICAgICAgICAoSlNDOjphcnJheVByb3Rv
RnVuY1JldmVyc2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NoaWZ0KToKKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNTcGxpY2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3Rv
RnVuY1VuU2hpZnQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5j
cHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKEpT
Qzo6SlNBcnJheTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KToKKyAgICAgICAgKiBydW50aW1lL0pT
QXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5jcHA6CisgICAgICAgIChKU0M6OkpT
Q2VsbDo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmRlbGV0ZVByb3Bl
cnR5QnlJbmRleCk6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAgICAgKiBydW50
aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU05v
dEFuT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6V2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5QnlJbmRleCk6CisgICAgICAgIChK
U0M6OkpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9KU09i
amVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBN
YXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNw
cDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmg6CisgICAgICAgICog
cnVudGltZS9TdHJpbmdPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0
Lmg6CisKIDIwMTEtMTAtMjQgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgSW50ZXJwcmV0ZXIgYnVpbGQgZml4IGFmdGVyIHI5ODE3OS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA2ZTA1Mzg5NTM4MGJiN2ViNDUzMDhmOWQ2ZjUzY2M2NDRmY2RhZTg5Li40NmNhMzE2MTU4
ODU2MDZiMjk3MmUwYmRlOWVlOTUzMWM4MTg2MzJhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcg
QEAKKzIwMTEtMTAtMjQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgZGVsZXRlUHJvcGVydHlWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDczOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICBS
ZW1vdmVkIGFsbCBkZWNsYXJhdGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIGRlbGV0ZVByb3BlcnR5
VmlydHVhbC4KKyAgICAgICAgQWxzbyByZXBsYWNlZCBhbGwgY2FsbCBzaXRlcyB0byBkZWxldGVQ
cm9wZXJ0eVZpcnR1YWwgd2l0aCBhIAorICAgICAgICBjb3JyZXNwb25kaW5nIGxvb2t1cCBpbiB0
aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U0RPTVN0cmluZ01hcDo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpkZWxl
dGVQcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpkZWxldGVQcm9wZXJ0eSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hpc3Rvcnk6
OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTG9jYXRpb246OmRlbGV0ZVByb3BlcnR5KToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNTdG9yYWdlOjpkZWxldGVQcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2Ny
aXB0T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEdsb2JhbE9iamVjdDo6cmVt
b3ZlKToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbToKKyAgICAg
ICAgKC1bV2ViU2NyaXB0T2JqZWN0IHJlbW92ZVdlYlNjcmlwdEtleTpdKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVh
ZGVyKToKKyAgICAgICAgKiBicmlkZ2UvTlBfanNvYmplY3QuY3BwOgorICAgICAgICAoX05QTl9S
ZW1vdmVQcm9wZXJ0eSk6CisgICAgICAgICogYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW06Cisg
ICAgICAgIChKYXZhSlNPYmplY3Q6OnJlbW92ZU1lbWJlcik6CisgICAgICAgICogYnJpZGdlL29i
amMvb2JqY19ydW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1t
OgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKiBicmlkZ2Uv
cnVudGltZV9hcnJheS5oOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6Cisg
ICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisKIDIwMTEtMTAtMjQgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEZpeCBt
YWtlIGRpc3RjaGVjayBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDViZDlkYjQ4ZDljYzgwMWI0
NGQwNjcwYTExZjIxNzY3NmYwMzVlNWUuLmZlODRkY2Q5ZGMzN2JhNzcwY2E1Zjc3NTIxN2RlMmYz
YzI2N2QyNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0xMC0yNCAg
TWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBkZWxldGVQcm9wZXJ0eVZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcwNzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFyYXRpb25zIGFuZCBkZWZpbml0aW9ucyBv
ZiBkZWxldGVQcm9wZXJ0eVZpcnR1YWwuCisgICAgICAgIEFsc28gcmVwbGFjZWQgYWxsIGNhbGwg
c2l0ZXMgdG8gZGVsZXRlUHJvcGVydHlWaXJ0dWFsIHdpdGggYSAKKyAgICAgICAgY29ycmVzcG9u
ZGluZyBsb29rdXAgaW4gdGhlIE1ldGhvZFRhYmxlLgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRz
Y2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnJlbW92ZVByb3BlcnR5KToKKwogMjAxMS0xMC0yMyAg
TWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92
ZSBnZXRDb25zdHJ1Y3REYXRhVmlydHVhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGQ4ZjNiMGI3MDQzYjFmYTIy
MWVmNDk0YWI0MTZiMzg3MmQ5ODQzODYuLjNiNmJlMDNiMDQyMzc2ZTY4NmI3ZTg3ZTYyZWVhYTlh
NTkxM2Q3NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0xMC0yNCAgTWFyayBI
YWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBkZWxl
dGVQcm9wZXJ0eVZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcwNzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFyYXRpb25zIGFuZCBkZWZpbml0aW9ucyBvZiBkZWxl
dGVQcm9wZXJ0eVZpcnR1YWwuCisgICAgICAgIEFsc28gcmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMg
dG8gZGVsZXRlUHJvcGVydHlWaXJ0dWFsIHdpdGggYSAKKyAgICAgICAgY29ycmVzcG9uZGluZyBs
b29rdXAgaW4gdGhlIE1ldGhvZFRhYmxlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05QSlNPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0OjpyZW1vdmVQ
cm9wZXJ0eSk6CisKIDIwMTEtMTAtMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEZpeCBtYWtlIGRpc3RjaGVjayBidWlsZApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCAzOThkZDAz
ZDA3NzQ1MGMwMjY1OWNiNGFlZWExZWI2MGMyNmE3MjMxLi5mYzlkYmUxNWNjZGE2N2U4N2ZlNmY1
MzM5ZDc3NWYzODk0MTI2OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3QuaApAQCAtMTg1LDkgKzE4NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKLSAgICB2
aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImKTsKICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJik7Ci0gICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5
VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCk7CiAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJv
cGVydHlCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkKTsKIAogICAgIHZpcnR1
YWwgYm9vbCBoYXNJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIEpTVmFs
dWUgcHJvdG8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCAxZGJiMWQ1YzcyNjdhYTBmZmQzNGYwNjViYmQ3MGMy
ZGY0M2M4NjdiLi5mOTk0ZmJmNTY0YmE2NzU4NjY4YTA3ZjM0MGZiYTZkN2I3MDc0MTQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlv
bnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5j
dGlvbnMuaApAQCAtMjczLDEyICsyNzMsNiBAQCB2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaQogfQog
CiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotYm9vbCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46
OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lKTsKLX0KLQotdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KIGJvb2wgSlNDYWxs
YmFja09iamVjdDxQYXJlbnQ+OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewogICAgIEpTQ2FsbGJh
Y2tPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0Kj4oY2Vs
bCk7CkBAIC0zMjMsMTUgKzMxNywxMCBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6
ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbgogfQogCiB0
ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotYm9vbCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmRl
bGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSk7Ci19Ci0KLXRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBib29sIEpTQ2FsbGJhY2tP
YmplY3Q8UGFyZW50Pjo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PEpTQ2FsbGJhY2tPYmplY3QqPihjZWxsKS0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMs
IElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSk7CisgICAgSlNDYWxsYmFja09i
amVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3QqPihjZWxsKTsK
KyAgICByZXR1cm4gdGhpc09iamVjdC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkodGhp
c09iamVjdCwgZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpKTsKIH0K
IAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09i
amVjdFJlZi5jcHAKaW5kZXggNmQ1ZjAzZDY1ZTQzN2JmYjAyZDFlY2ZkYjY0NDYxZGJhNjQ3YTZj
ZS4uOTBjZjM1OTc2MDUyNzcxZTdjMzMxNmIxODMzOGFhNTc1N2FmZTMzZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCBib29s
IEpTT2JqZWN0RGVsZXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2Jq
ZWN0LCBKU1N0cmluZ1JlZiBwcgogCiAgICAgSlNPYmplY3QqIGpzT2JqZWN0ID0gdG9KUyhvYmpl
Y3QpOwogCi0gICAgYm9vbCByZXN1bHQgPSBqc09iamVjdC0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFs
KGV4ZWMsIHByb3BlcnR5TmFtZS0+aWRlbnRpZmllcigmZXhlYy0+Z2xvYmFsRGF0YSgpKSk7Cisg
ICAgYm9vbCByZXN1bHQgPSBqc09iamVjdC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHko
anNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZS0+aWRlbnRpZmllcigmZXhlYy0+Z2xvYmFsRGF0
YSgpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CiAgICAgICAgIGlmIChleGNl
cHRpb24pCiAgICAgICAgICAgICAqZXhjZXB0aW9uID0gdG9SZWYoZXhlYywgZXhlYy0+ZXhjZXB0
aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggMzll
ZTZlN2ExZjliZjQ5ZTUxNzBiNWQ3NDc2Y2JkYzliOWU3ZjkxNy4uOTE4NjZhOTNhNGM5MWM3NDFj
NjAyZjllYWM3ZTkxOTA3ZTUwMTg3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZXhwCkBAIC0xOTUsNyArMTk1LDYgQEAgX19aTjNKU0MxNkludGVybmFsRnVuY3Rpb25D
MkVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDMTZKU1Zhcmlh
YmxlT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckUKIF9fWk4zSlNDMTZKU1ZhcmlhYmxlT2JqZWN0MTRzeW1ib2xUYWJsZUdl
dEVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzE2
SlNWYXJpYWJsZU9iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNf
MTdQcm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKLV9fWk4zSlNDMTZKU1Zh
cmlhYmxlT2JqZWN0MjFkZWxldGVQcm9wZXJ0eVZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFCiBfX1pOM0pTQzE2Y3JlYXRlUmFuZ2VFcnJvckVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzdVU3RyaW5nRQogX19aTjNKU0MxNnNsb3dWYWxpZGF0ZUNlbGxFUE5TXzE0SlNHbG9iYWxP
YmplY3RFCiBfX1pOM0pTQzE2c2xvd1ZhbGlkYXRlQ2VsbEVQTlNfNkpTQ2VsbEUKQEAgLTI2Miw4
ICsyNjEsNiBAQCBfX1pOM0pTQzZKU0NlbGwxMHB1dFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UAogX19aTjNKU0M2SlNDZWxsMTBwdXRW
aXJ0dWFsRVBOU185RXhlY1N0YXRlRWpOU183SlNWYWx1ZUUKIF9fWk4zSlNDNkpTQ2VsbDExZ2V0
Q2FsbERhdGFFUFMwX1JOU184Q2FsbERhdGFFCiBfX1pOM0pTQzZKU0NlbGwxNmdldENvbnN0cnVj
dERhdGFFUFMwX1JOU18xM0NvbnN0cnVjdERhdGFFCi1fX1pOM0pTQzZKU0NlbGwyMWRlbGV0ZVBy
b3BlcnR5VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKLV9fWk4zSlND
NkpTQ2VsbDIxZGVsZXRlUHJvcGVydHlWaXJ0dWFsRVBOU185RXhlY1N0YXRlRWoKIF9fWk4zSlND
NkpTQ2VsbDI1Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEw
SWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzZKU0NlbGwyNWdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKIF9f
Wk4zSlNDNkpTQ2VsbDlnZXRPYmplY3RFdgpAQCAtMzI5LDggKzMyNiw2IEBAIF9fWk4zSlNDOEpT
T2JqZWN0MTdwdXRXaXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFagog
X19aTjNKU0M4SlNPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfNkpTQ2VsbEVQTlNfOUV4
ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0M4SlNPYmplY3QxOWdldE93blBy
b3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVF
bnVtZXJhdGlvbk1vZGVFCiBfX1pOM0pTQzhKU09iamVjdDIxZGVsZXRlUHJvcGVydHlCeUluZGV4
RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRWoKLV9fWk4zSlNDOEpTT2JqZWN0MjFkZWxldGVQ
cm9wZXJ0eVZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCi1fX1pOM0pT
QzhKU09iamVjdDIxZGVsZXRlUHJvcGVydHlWaXJ0dWFsRVBOU185RXhlY1N0YXRlRWoKIF9fWk4z
SlNDOEpTT2JqZWN0MjFnZXRQcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0M4SlNPYmplY3Qy
MmZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RFUk5TXzEyUHJvcGVydHlTbG90RVBOU18xNldyaXRlQmFy
cmllckJhc2VJTlNfN1Vua25vd25FRUUKIF9fWk4zSlNDOEpTT2JqZWN0MjNhbGxvY2F0ZVByb3Bl
cnR5U3RvcmFnZUVSTlNfMTJKU0dsb2JhbERhdGFFbW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZGVmIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKaW5kZXggMmMwZWQ2YjYzYjU4MDgwMTA2
YjE0NDExNTMyMTY5MDk3OTM5ZGU4OC4uN2RlNjZmYWQ5M2M1NjRiYjJhMWFlYzlmMjNmMmFhOWU2
MmY3ZmUxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5kZWYKQEAgLTE0NSwxMSArMTQ1LDYgQEAgRVhQT1JUUwogICAgID9kZWxldGVPd25l
ZFB0ckBXVEZAQFlBWFBBVUhSR05fX0BAQFoKICAgICA/ZGVsZXRlUHJvcGVydHlASlNPYmplY3RA
SlNDQEBTQV9OUEFWSlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEBaCiAg
ICAgP2RlbGV0ZVByb3BlcnR5QEpTVmFyaWFibGVPYmplY3RASlNDQEBTQV9OUEFWSlNDZWxsQDJA
UEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEBaCi0gICAgP2RlbGV0ZVByb3BlcnR5Vmly
dHVhbEBKU0NlbGxASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBAWgot
ICAgID9kZWxldGVQcm9wZXJ0eVZpcnR1YWxASlNDZWxsQEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVA
MkBJQFoKLSAgICA/ZGVsZXRlUHJvcGVydHlWaXJ0dWFsQEpTT2JqZWN0QEpTQ0BAVUFFX05QQVZF
eGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQFoKLSAgICA/ZGVsZXRlUHJvcGVydHlWaXJ0dWFs
QEpTT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBJQFoKLSAgICA/ZGVsZXRlUHJvcGVy
dHlWaXJ0dWFsQEpTVmFyaWFibGVPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklk
ZW50aWZpZXJAMkBAWgogICAgID9kZWxldGVUYWJsZUBIYXNoVGFibGVASlNDQEBRQkVYWFoKICAg
ICA/ZGVzcGVjaWZ5RGljdGlvbmFyeUZ1bmN0aW9uQFN0cnVjdHVyZUBKU0NAQFFBRVhBQVZKU0ds
b2JhbERhdGFAMkBBQlZJZGVudGlmaWVyQDJAQFoKICAgICA/ZGVzcGVjaWZ5RnVuY3Rpb25UcmFu
c2l0aW9uQFN0cnVjdHVyZUBKU0NAQFNBUEFWMTJAQUFWSlNHbG9iYWxEYXRhQDJAUEFWMTJAQUJW
SWRlbnRpZmllckAyQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IDcwZTFiYWViNmUwYjQwZWNkMDY1ZDRmYTI3
OWRjMDAyYzFlZWY4N2UuLjM4Mjg5NThmMWEyODQzYTU2MTQwZjhiNGI5NGJmMmJmMjA5Y2U1MjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFj
dGl2YXRpb24uY3BwCkBAIC04NSwxNCArODUsMTAgQEAgdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246
OnB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHIK
ICAgICBtX2FjdGl2YXRpb24tPnB1dFdpdGhBdHRyaWJ1dGVzKGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIGF0dHJpYnV0ZXMpOwogfQogCi1ib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6ZGVsZXRl
UHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKQotewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUpOwotfQotCiBib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHkoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3RpdmF0aW9uKj4oY2VsbCkt
Pm1fYWN0aXZhdGlvbi0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSk7
CisgICAgRGVidWdnZXJBY3RpdmF0aW9uKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8RGVidWdn
ZXJBY3RpdmF0aW9uKj4oY2VsbCk7CisgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1fYWN0aXZhdGlv
bi0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdC0+bV9hY3RpdmF0aW9u
LmdldCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0aXZhdGlv
bjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5
JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRleCAzZDdiMDI2
ODIxZjk2NjU3ODlmYzA0ZDAzNmRlZTQ4ODBlMzhiZjdjLi42ZDViZWMyZDQwNDg1ZjY4YTZjM2Yw
MTNhMGE1NTI3MjQwY2I0OTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00OCw3ICs0OCw2IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHko
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVy
dHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3Bl
cnRpZXMpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4
IDgzOGY1MWM1OGI5N2U1ZmExYjg0OGVmNGU5MjNkZDExYjU5MzMxNGEuLjlhMzFmMTliNThiZWFh
MmRiMGJjOGNiZWE0MWM1YzUxYzIwZWVjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtMzM1OCw3ICszMzU4LDcgQEAgc2tp
cF9pZF9jdXN0b21fc2VsZjoKIAogICAgICAgICBKU09iamVjdCogYmFzZU9iaiA9IGNhbGxGcmFt
ZS0+cihiYXNlKS5qc1ZhbHVlKCkudG9PYmplY3QoY2FsbEZyYW1lKTsKICAgICAgICAgSWRlbnRp
ZmllciYgaWRlbnQgPSBjb2RlQmxvY2stPmlkZW50aWZpZXIocHJvcGVydHkpOwotICAgICAgICBi
b29sIHJlc3VsdCA9IGJhc2VPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChjYWxsRnJhbWUsIGlk
ZW50KTsKKyAgICAgICAgYm9vbCByZXN1bHQgPSBiYXNlT2JqLT5tZXRob2RUYWJsZSgpLT5kZWxl
dGVQcm9wZXJ0eShiYXNlT2JqLCBjYWxsRnJhbWUsIGlkZW50KTsKICAgICAgICAgaWYgKCFyZXN1
bHQgJiYgY29kZUJsb2NrLT5pc1N0cmljdE1vZGUoKSkgewogICAgICAgICAgICAgZXhjZXB0aW9u
VmFsdWUgPSBjcmVhdGVUeXBlRXJyb3IoY2FsbEZyYW1lLCAiVW5hYmxlIHRvIGRlbGV0ZSBwcm9w
ZXJ0eS4iKTsKICAgICAgICAgICAgIGdvdG8gdm1fdGhyb3c7CkBAIC0zNTQ1LDEyICszNTQ1LDEy
IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgIGJvb2wgcmVzdWx0OwogICAgICAgICB1
aW50MzJfdCBpOwogICAgICAgICBpZiAoc3Vic2NyaXB0LmdldFVJbnQzMihpKSkKLSAgICAgICAg
ICAgIHJlc3VsdCA9IGJhc2VPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChjYWxsRnJhbWUsIGkp
OworICAgICAgICAgICAgcmVzdWx0ID0gYmFzZU9iai0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJv
cGVydHlCeUluZGV4KGJhc2VPYmosIGNhbGxGcmFtZSwgaSk7CiAgICAgICAgIGVsc2UgewogICAg
ICAgICAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTigpOwogICAgICAgICAgICAgSWRlbnRpZmllciBw
cm9wZXJ0eShjYWxsRnJhbWUsIHN1YnNjcmlwdC50b1N0cmluZyhjYWxsRnJhbWUpKTsKICAgICAg
ICAgICAgIENIRUNLX0ZPUl9FWENFUFRJT04oKTsKLSAgICAgICAgICAgIHJlc3VsdCA9IGJhc2VP
YmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChjYWxsRnJhbWUsIHByb3BlcnR5KTsKKyAgICAgICAg
ICAgIHJlc3VsdCA9IGJhc2VPYmotPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KGJhc2VP
YmosIGNhbGxGcmFtZSwgcHJvcGVydHkpOwogICAgICAgICB9CiAgICAgICAgIGlmICghcmVzdWx0
ICYmIGNvZGVCbG9jay0+aXNTdHJpY3RNb2RlKCkpIHsKICAgICAgICAgICAgIGV4Y2VwdGlvblZh
bHVlID0gY3JlYXRlVHlwZUVycm9yKGNhbGxGcmFtZSwgIlVuYWJsZSB0byBkZWxldGUgcHJvcGVy
dHkuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IDYzY2Y5YTFh
ZjkyZDNlOGM3NTBjMjczNGZhZmM1MWRmNTI0YjVjNWQuLjkzMzUxNmUyMGIzMjcxMmQ5ZWNhOTcw
MzcxZDE3MTg1ZGI1YzgxODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3Bw
CkBAIC0yMTA4LDcgKzIxMDgsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1
ZSwgb3BfZGVsX2J5X2lkKQogICAgIAogICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gc3RhY2tGcmFt
ZS5hcmdzWzBdLmpzVmFsdWUoKS50b09iamVjdChjYWxsRnJhbWUpOwogCi0gICAgYm9vbCBjb3Vs
ZERlbGV0ZSA9IGJhc2VPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChjYWxsRnJhbWUsIHN0YWNr
RnJhbWUuYXJnc1sxXS5pZGVudGlmaWVyKCkpOworICAgIGJvb2wgY291bGREZWxldGUgPSBiYXNl
T2JqLT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eShiYXNlT2JqLCBjYWxsRnJhbWUsIHN0
YWNrRnJhbWUuYXJnc1sxXS5pZGVudGlmaWVyKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNC
b29sZWFuKGNvdWxkRGVsZXRlKTsKICAgICBpZiAoIWNvdWxkRGVsZXRlICYmIGNhbGxGcmFtZS0+
Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpKQogICAgICAgICBzdGFja0ZyYW1lLmdsb2JhbERh
dGEtPmV4Y2VwdGlvbiA9IGNyZWF0ZVR5cGVFcnJvcihzdGFja0ZyYW1lLmNhbGxGcmFtZSwgIlVu
YWJsZSB0byBkZWxldGUgcHJvcGVydHkuIik7CkBAIC0zNzIzLDEyICszNzIzLDEyIEBAIERFRklO
RV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF9kZWxfYnlfdmFsKQogICAgIGJvb2wg
cmVzdWx0OwogICAgIHVpbnQzMl90IGk7CiAgICAgaWYgKHN1YnNjcmlwdC5nZXRVSW50MzIoaSkp
Ci0gICAgICAgIHJlc3VsdCA9IGJhc2VPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChjYWxsRnJh
bWUsIGkpOworICAgICAgICByZXN1bHQgPSBiYXNlT2JqLT5tZXRob2RUYWJsZSgpLT5kZWxldGVQ
cm9wZXJ0eUJ5SW5kZXgoYmFzZU9iaiwgY2FsbEZyYW1lLCBpKTsKICAgICBlbHNlIHsKICAgICAg
ICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTigpOwogICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5KGNh
bGxGcmFtZSwgc3Vic2NyaXB0LnRvU3RyaW5nKGNhbGxGcmFtZSkpOwogICAgICAgICBDSEVDS19G
T1JfRVhDRVBUSU9OKCk7Ci0gICAgICAgIHJlc3VsdCA9IGJhc2VPYmotPmRlbGV0ZVByb3BlcnR5
VmlydHVhbChjYWxsRnJhbWUsIHByb3BlcnR5KTsKKyAgICAgICAgcmVzdWx0ID0gYmFzZU9iai0+
bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkoYmFzZU9iaiwgY2FsbEZyYW1lLCBwcm9wZXJ0
eSk7CiAgICAgfQogCiAgICAgaWYgKCFyZXN1bHQgJiYgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+
aXNTdHJpY3RNb2RlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmNwcAppbmRleCAwODkwMWNhMDI0Njg1YzgyZjI1OGQwMzlmZjdjYTQ0ZTc0OTcxMWQ0Li43MDNl
MjRmMzY2MmQ5OGJmYTc4MzczNDE3NzA1MGJmODI0MGJiMjIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKQEAgLTMyOCwxMSArMzI4LDYgQEAgdm9pZCBB
cmd1bWVudHM6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW0KICAgICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCi1ib29sIEFyZ3VtZW50czo6ZGVsZXRlUHJv
cGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSkgCi17Ci0gICAgcmV0dXJu
IGRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzLCBleGVjLCBpKTsKLX0KLQogYm9vbCBBcmd1bWVu
dHM6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
dW5zaWduZWQgaSkgCiB7CiAgICAgQXJndW1lbnRzKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8
QXJndW1lbnRzKj4oY2VsbCk7CkBAIC0zNTAsMTEgKzM0NSw2IEBAIGJvb2wgQXJndW1lbnRzOjpk
ZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIGkpCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LCBl
eGVjLCBJZGVudGlmaWVyKGV4ZWMsIFVTdHJpbmc6Om51bWJlcihpKSkpOwogfQogCi1ib29sIEFy
Z3VtZW50czo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lKSAKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhp
cywgZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQogYm9vbCBBcmd1bWVudHM6OmRlbGV0ZVByb3Bl
cnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpIAogewogICAgIEFyZ3VtZW50cyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEFy
Z3VtZW50cyo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
aAppbmRleCA0NWE3NWM5NGIxNzBmYWIyNmIxNGIwZmIzMGE2Y2I5ZWYzOTJjYTVkLi5hYmM2OWFi
YzM3NWQ2OWI4YTM5YjlkN2UwMTVkZTNhZDM0ZDQyMzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAtMTQ1LDkgKzE0NSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwotICAgICAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7Ci0gICAg
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAgICAgICAg
IHZvaWQgY3JlYXRlU3RyaWN0TW9kZUNhbGxlcklmTmVjZXNzYXJ5KEV4ZWNTdGF0ZSopOwogICAg
ICAgICB2b2lkIGNyZWF0ZVN0cmljdE1vZGVDYWxsZWVJZk5lY2Vzc2FyeShFeGVjU3RhdGUqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApp
bmRleCBjNTQ0MDNiOWY1YzljMWJiZTc4ZGY0NjZkMGU2OTY1NDdiZmU2M2FiLi4wNGRiM2EwNTRj
MmRjM2ExYmE3ZDRiYmQ2ZDVhZjEwOWVjY2EwODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC0zODgsNyArMzg4LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1BvcChFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgICAgIHJlc3VsdCA9IGpzVW5kZWZpbmVkKCk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgcmVzdWx0ID0gdGhpc09iai0+Z2V0KGV4ZWMsIGxlbmd0aCAtIDEpOwotICAgICAgICB0aGlz
T2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgbGVuZ3RoIC0gMSk7CisgICAgICAgIHRo
aXNPYmotPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzT2JqLCBleGVj
LCBsZW5ndGggLSAxKTsKICAgICAgICAgcHV0UHJvcGVydHkoZXhlYywgdGhpc09iaiwgZXhlYy0+
cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIobGVuZ3RoIC0gMSkpOwogICAgIH0KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CkBAIC00NDQsMTIgKzQ0NCwxMiBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmV2ZXJzZShFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgIGlmIChvYmoyKQogICAgICAgICAgICAgdGhpc09iai0+cHV0Vmly
dHVhbChleGVjLCBrLCBvYmoyKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpc09iai0+
ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGspOworICAgICAgICAgICAgdGhpc09iai0+bWV0
aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNPYmosIGV4ZWMsIGspOwogCiAg
ICAgICAgIGlmIChvYmopCiAgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGxr
MSwgb2JqKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpc09iai0+ZGVsZXRlUHJvcGVy
dHlWaXJ0dWFsKGV4ZWMsIGxrMSk7CisgICAgICAgICAgICB0aGlzT2JqLT5tZXRob2RUYWJsZSgp
LT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iaiwgZXhlYywgbGsxKTsKICAgICB9CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqKTsKIH0KQEAgLTQ3Nyw5ICs0NzcsOSBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU2hpZnQoRXhlY1N0YXRl
KiBleGVjKQogICAgICAgICAgICAgICAgIGlmIChvYmopCiAgICAgICAgICAgICAgICAgICAgIHRo
aXNPYmotPnB1dFZpcnR1YWwoZXhlYywgayAtIDEsIG9iaik7CiAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhl
YywgayAtIDEpOworICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5tZXRob2RUYWJsZSgpLT5k
ZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iaiwgZXhlYywgayAtIDEpOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgdGhpc09iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGxlbmd0
aCAtIDEpOworICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVy
dHlCeUluZGV4KHRoaXNPYmosIGV4ZWMsIGxlbmd0aCAtIDEpOwogICAgICAgICB9CiAgICAgICAg
IHB1dFByb3BlcnR5KGV4ZWMsIHRoaXNPYmosIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgs
IGpzTnVtYmVyKGxlbmd0aCAtIDEpKTsKICAgICB9CkBAIC02MjMsMTAgKzYyMywxMCBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BsaWNlKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICAgICAgICAgICAgICAgICAgaWYgKHYpCiAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncywgdik7CiAgICAg
ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPmRl
bGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBrICsgYWRkaXRpb25hbEFyZ3MpOworICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KHRoaXNPYmosIGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IGxlbmd0aDsgayA+IGxlbmd0aCAt
IGRlbGV0ZUNvdW50ICsgYWRkaXRpb25hbEFyZ3M7IC0taykKLSAgICAgICAgICAgICAgICAgICAg
dGhpc09iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGsgLSAxKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRo
aXNPYmosIGV4ZWMsIGsgLSAxKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIGlmICgoIWJlZ2luKSAmJiAoaXNKU0FycmF5KCZleGVjLT5nbG9iYWxEYXRhKCks
IHRoaXNPYmopKSkKQEAgLTYzOSw3ICs2MzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGFycmF5UHJvdG9GdW5jU3BsaWNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAg
ICAgICAgaWYgKG9iaikKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1
YWwoZXhlYywgayArIGFkZGl0aW9uYWxBcmdzIC0gMSwgb2JqKTsKICAgICAgICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+ZGVsZXRlUHJvcGVydHlW
aXJ0dWFsKGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyAtIDEpOworICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpc09iai0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNP
YmosIGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyAtIDEpOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNjcyLDcgKzY3Miw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNVblNoaWZ0KEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgICAgICAgICBpZiAodikKICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0Vmly
dHVhbChleGVjLCBrICsgbnJBcmdzIC0gMSwgdik7CiAgICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgayAr
IG5yQXJncyAtIDEpOworICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5tZXRob2RUYWJsZSgp
LT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iaiwgZXhlYywgayArIG5yQXJncyAtIDEpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggODUzMTA4MjVjMGZiNDgxOTllMTYxZjIz
MzQxYzlhODJhYTZjM2YxYy4uMGM1YzdjOGYyMGYyYTRmMDA3OGM1YzQ0MzEzODUxMzE1NDk2M2Q2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3Bw
CkBAIC0yMDUsMTEgKzIwNSw2IEBAIHZvaWQgSlNBY3RpdmF0aW9uOjpwdXRXaXRoQXR0cmlidXRl
cyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAgICAgSlNPYmpl
Y3Q6OnB1dFdpdGhBdHRyaWJ1dGVzKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIGF0dHJpYnV0
ZXMsIHRydWUsIHNsb3QpOwogfQogCi1ib29sIEpTQWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHlW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQot
ewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwot
fQotCiBib29sIEpTQWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICBpZiAo
cHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmluZGV4IGQ0NGIyYjYwNmRk
MTg4MjZlNzRlZmRkZTA0ZWE2NGQ3MDg1NGM3ZTUuLmNhNTgwZDllMjRjZjVlZmI2YjcyYWZiYTBl
NTFhY2ZhOTIyMDIyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0
aXZhdGlvbi5oCkBAIC02OSw3ICs2OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRXaXRoQXR0
cmlidXRlcyhFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgdW5zaWduZWQg
YXR0cmlidXRlcyk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3Rh
dGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKTsKIAogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNP
YmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuY3BwCmluZGV4IGFkMzlhMGRkNGFhODFhMzdlMmFlMTJiOTNkN2UyMzU4M2JjMDkyNDIu
Ljc1MjBhMWMwODcwNGFjZTY5Yzc2NDhiY2NjZTJlMmQ5NzA5N2M5MWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCkBAIC01MDcsMTggKzUwNywxMyBAQCBORVZF
Ul9JTkxJTkUgdm9pZCBKU0FycmF5OjpwdXRTbG93Q2FzZShFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIGksIEpTVmFsdWUgdmFsdQogICAgIEhlYXA6OmhlYXAodGhpcyktPnJlcG9ydEV4dHJhTWVt
b3J5Q29zdChzdG9yYWdlU2l6ZShuZXdWZWN0b3JMZW5ndGgpIC0gc3RvcmFnZVNpemUodmVjdG9y
TGVuZ3RoKSk7CiB9CiAKLWJvb2wgSlNBcnJheTo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQotewotICAgIHJldHVy
biBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwotfQotCiBib29sIEpT
QXJyYXk6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNBcnJheSogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PEpTQXJyYXkqPihjZWxsKTsKICAgICBib29sIGlzQXJyYXlJbmRleDsKICAg
ICB1bnNpZ25lZCBpID0gcHJvcGVydHlOYW1lLnRvQXJyYXlJbmRleChpc0FycmF5SW5kZXgpOwog
ICAgIGlmIChpc0FycmF5SW5kZXgpCi0gICAgICAgIHJldHVybiB0aGlzT2JqZWN0LT5kZWxldGVQ
cm9wZXJ0eVZpcnR1YWwoZXhlYywgaSk7CisgICAgICAgIHJldHVybiB0aGlzT2JqZWN0LT5tZXRo
b2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iamVjdCwgZXhlYywgaSk7CiAK
ICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTUyNiwxMSArNTIxLDYgQEAgYm9vbCBKU0FycmF5Ojpk
ZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHIKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXNPYmplY3Qs
IGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKLWJvb2wgSlNBcnJheTo6ZGVsZXRlUHJvcGVydHlW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSkKLXsKLSAgICByZXR1cm4gZGVsZXRl
UHJvcGVydHlCeUluZGV4KHRoaXMsIGV4ZWMsIGkpOwotfQotCiBib29sIEpTQXJyYXk6OmRlbGV0
ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQg
aSkKIHsKICAgICBKU0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNBcnJheSo+KGNl
bGwpOwpAQCAtNTY0LDcgKzU1NCw3IEBAIGJvb2wgSlNBcnJheTo6ZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpKQogICAgIHRoaXNP
YmplY3QtPmNoZWNrQ29uc2lzdGVuY3koKTsKIAogICAgIGlmIChpID4gTUFYX0FSUkFZX0lOREVY
KQotICAgICAgICByZXR1cm4gdGhpc09iamVjdC0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMs
IElkZW50aWZpZXI6OmZyb20oZXhlYywgaSkpOworICAgICAgICByZXR1cm4gdGhpc09iamVjdC0+
bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZXhlYywgSWRlbnRpZmll
cjo6ZnJvbShleGVjLCBpKSk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggNTZhM2I3OGVlODU2ZjMyNjIzYjUxNTk4ZTdh
ZDI1NTJmMjU5MGUwMy4uYzI1MmUyYTg1YmEzNzM4MmMxYTdhNDBkODMyZTI2YTUxNjg0NWRhZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtMTc0LDkgKzE3NCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
KTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHN0YXRpYyBib29s
IGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwo
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3RhdGljIGJvb2wg
ZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRl
RG9udEVudW1Qcm9wZXJ0aWVzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bC5jcHAKaW5kZXggYzI3OWFlNWFhNGQxNDhlNTY2N2E2NjNmYTMwYWNlODk5ZDliZjk4Ny4uOWJh
MzRhYjA3NjNiYWFhZDJjZmFhMjA4ZGNkMjE5MWE4OGU3NTg3NSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NlbGwuY3BwCkBAIC0xMTgsMjQgKzExOCwxNiBAQCB2b2lkIEpTQ2Vs
bDo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRl
bnRpZmllciwgSlNWYQogICAgIGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSktPnB1dFZpcnR1YWwoZXhlYywgaWRlbnRpZmllciwgdmFsdWUpOwogfQogCi1i
b29sIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgaWRlbnRpZmllcikKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhp
cywgZXhlYywgaWRlbnRpZmllcik7Ci19Ci0KIGJvb2wgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eShK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmll
cikKIHsKLSAgICByZXR1cm4gY2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpKS0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGlkZW50aWZpZXIpOwotfQot
Ci1ib29sIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5z
aWduZWQgaWRlbnRpZmllcikKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHlCeUluZGV4KHRo
aXMsIGV4ZWMsIGlkZW50aWZpZXIpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0gY2VsbC0+
dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICByZXR1cm4g
dGhpc09iamVjdC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZXhl
YywgaWRlbnRpZmllcik7CiB9CiAKIGJvb2wgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgo
SlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpZXIpCiB7Ci0g
ICAgcmV0dXJuIGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSktPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBpZGVudGlmaWVyKTsKKyAgICBKU09iamVj
dCogdGhpc09iamVjdCA9IGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSk7CisgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVBy
b3BlcnR5QnlJbmRleCh0aGlzT2JqZWN0LCBleGVjLCBpZGVudGlmaWVyKTsKIH0KIAogSlNPYmpl
Y3QqIEpTQ2VsbDo6dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggN2UwZTUxZmUxYTc5ODYzMmFjNTM0YTIz
ZDczYWMwOTk3N2FmNjlkNi4uM2E2ODQyN2NkOTRjN2JkNDFiOWJkOGY5MWQ2NWQ3NTNiNjY4NzFm
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTk0LDkgKzk0LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgICAgIHN0YXRpYyB2
b2lkIHB1dEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlKTsKICAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0
eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAg
ICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwogICAg
ICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKTsKIAogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0
b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4IDM4M2I5NTNlMDA5YTg5ZTFjMzAwMTc4YjE4YjZh
ODg1NDU2NzE4YWEuLjMzYjQwYTQ3MTQ5ZGQ1NGMzMjdlNjNkNTQyN2QyNmJkOTIzYjEwYTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0zNDcs
MTEgKzM0Nyw2IEBAIHZvaWQgSlNGdW5jdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hCiAgICAgQmFzZTo6cHV0KHRoaXNP
YmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCi1ib29sIEpTRnVu
Y3Rpb246OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQogYm9vbCBKU0Z1bmN0aW9uOjpkZWxldGVQcm9wZXJ0
eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0Z1
bmN0aW9uKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmgKaW5kZXggZjg1YWEzODBkY2MxNDM2ZDc0MTM5ZTdlNmZkMzI0YmU5NTIzMGNjOS4uNWQ0YjQ2
MTEwODMwZTg1MmI3ZWJlYWVhYWZmNThhZTY4ZDU2NjM3YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtMTM3LDcgKzEzNyw2IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAotICAgICAgICB2
aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAK
ICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcApp
bmRleCBiNWE1YTMxZjVlOWExMjJhNzgwMjU1YTA1YzJlNDBmN2Q3MDEyM2M1Li5jY2MxNWE0OWFm
OWFiNTUzZGE1NjYxYzI2N2E4Yjk4OWE3ZmRlZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcApAQCAtOTQsMjIgKzk0LDEyIEBAIHZvaWQg
SlNOb3RBbk9iamVjdDo6cHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkLCBKU1ZhbHVlKQogICAgIEFTU0VSVF9VTlVTRUQoZXhlYywgZXhlYy0+aGFkRXhjZXB0aW9u
KCkpOwogfQogCi1ib29sIEpTTm90QW5PYmplY3Q6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1
cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQogYm9vbCBK
U05vdEFuT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImKQogewogICAgIEFTU0VSVF9VTlVTRUQoZXhlYywgZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKU05vdEFuT2JqZWN0Ojpk
ZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUpCi17Ci0gICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUpOwotfQotCiBib29sIEpTTm90QW5PYmplY3Q6OmRlbGV0ZVByb3BlcnR5QnlJbmRl
eChKU0NlbGwqLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkKQogewogICAgIEFTU0VSVF9VTlVT
RUQoZXhlYywgZXhlYy0+aGFkRXhjZXB0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCmluZGV4IDQxMzgzMWUyNWVkZTM5YmI2ZmM0YmE1ZmNi
MDFlZjMzZTY2NjQ4OWEuLmU1NmU5MDIyMzE0MjFlZTc0MWRhMjNiMzY1OTQ4ZmI5MDdmNmVmZjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKQEAg
LTgwLDkgKzgwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRW
aXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAg
ICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJv
cGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7
CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBk
ZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJh
dGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCA3YzU5YWVmY2UxMGYzY2Rl
NmI3ZmNjNjRlZTE1MzUyN2E2M2Q3YzI4Li5lZGI3YTE0MzkwZTJhMDdiNTQ2NDQ0ZmVhMmJjZGVh
N2JkZDQzMTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmNwcApAQCAtNzEwLDcgKzcxMCw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2Fs
ayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgICAgICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBh
cnJheVN0YWNrLnBlZWsoKTsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIGZpbHRlcmVkVmFsdWUg
PSBjYWxsUmV2aXZlcihhcnJheSwganNTdHJpbmcobV9leGVjLCBVU3RyaW5nOjpudW1iZXIoaW5k
ZXhTdGFjay5sYXN0KCkpKSwgb3V0VmFsdWUpOwogICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJl
ZFZhbHVlLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgICAgICAgICAgICAgIGFycmF5LT5kZWxldGVQ
cm9wZXJ0eVZpcnR1YWwobV9leGVjLCBpbmRleFN0YWNrLmxhc3QoKSk7CisgICAgICAgICAgICAg
ICAgICAgIGFycmF5LT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgoYXJyYXks
IG1fZXhlYywgaW5kZXhTdGFjay5sYXN0KCkpOwogICAgICAgICAgICAgICAgIGVsc2UgewogICAg
ICAgICAgICAgICAgICAgICBpZiAoaXNKU0FycmF5KCZtX2V4ZWMtPmdsb2JhbERhdGEoKSwgYXJy
YXkpICYmIGFycmF5LT5jYW5TZXRJbmRleChpbmRleFN0YWNrLmxhc3QoKSkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBhcnJheS0+c2V0SW5kZXgobV9leGVjLT5nbG9iYWxEYXRhKCksIGluZGV4
U3RhY2subGFzdCgpLCBmaWx0ZXJlZFZhbHVlKTsKQEAgLTc3Nyw3ICs3NzcsNyBAQCBORVZFUl9J
TkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAgICAgICAg
ICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwogICAgICAgICAgICAgICAgIEpTVmFsdWUgZmls
dGVyZWRWYWx1ZSA9IGNhbGxSZXZpdmVyKG9iamVjdCwganNTdHJpbmcobV9leGVjLCBwcm9wLnVz
dHJpbmcoKSksIG91dFZhbHVlKTsKICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRWYWx1ZS5p
c1VuZGVmaW5lZCgpKQotICAgICAgICAgICAgICAgICAgICBvYmplY3QtPmRlbGV0ZVByb3BlcnR5
VmlydHVhbChtX2V4ZWMsIHByb3ApOworICAgICAgICAgICAgICAgICAgICBvYmplY3QtPm1ldGhv
ZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KG9iamVjdCwgbV9leGVjLCBwcm9wKTsKICAgICAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+cHV0VmlydHVhbChtX2V4
ZWMsIHByb3AsIGZpbHRlcmVkVmFsdWUsIHNsb3QpOwogICAgICAgICAgICAgICAgIGlmIChtX2V4
ZWMtPmhhZEV4Y2VwdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuY3BwCmluZGV4IDcyOGQ5YWZhMDZkZjkzM2I4NmRjNGY1ZjEzODljODgyYmJiNDdjNmIuLjNk
MTlkNzA3MjRkYjNjYWU5ZjcwZjE4MDQ2MmYzYjhlYTU3M2ZkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTI1OCwxMSArMjU4LDYgQEAgYm9vbCBK
U09iamVjdDo6aGFzUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUpIGNvbnN0CiAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8SlNPYmplY3QqPih0aGlzKS0+Z2V0UHJv
cGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgSlNPYmplY3Q6
OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lKTsKLX0KLQogLy8gRUNNQSA4LjYuMi41CiBib29sIEpTT2JqZWN0OjpkZWxl
dGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKQogewpAQCAtMjk1LDE0ICsyOTAsMTAgQEAgYm9vbCBKU09iamVjdDo6
aGFzT3duUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpIGMKICAgICByZXR1cm4gY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5nZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wg
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci19Ci0KIGJvb2wgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlO
YW1lKQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+KGNlbGwpLT5kZWxldGVQ
cm9wZXJ0eVZpcnR1YWwoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUp
KTsKKyAgICBKU09iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2Vs
bCk7CisgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5
KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSk7
CiB9CiAKIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgY2FsbERlZmF1bHRWYWx1ZUZ1bmN0
aW9uKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNPYmplY3QqIG9iamVjdCwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKQpAQCAtNzk4LDcgKzc4OSw3IEBAIGJvb2wgSlNPYmplY3Q6OmRl
ZmluZU93blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lCiAgICAgLy8gQSBnZW5lcmljIGRlc2NyaXB0b3IgaXMgc2ltcGx5IGNoYW5naW5nIHRo
ZSBhdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5CiAgICAgaWYgKGRlc2NyaXB0b3Iu
aXNHZW5lcmljRGVzY3JpcHRvcigpKSB7CiAgICAgICAgIGlmICghY3VycmVudC5hdHRyaWJ1dGVz
RXF1YWwoZGVzY3JpcHRvcikpIHsKLSAgICAgICAgICAgIGRlbGV0ZVByb3BlcnR5VmlydHVhbChl
eGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgbWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJv
cGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgIHB1dERlc2NyaXB0
b3IoZXhlYywgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBjdXJyZW50LmF0dHJpYnV0
ZXNXaXRoT3ZlcnJpZGUoZGVzY3JpcHRvciksIGN1cnJlbnQpOwogICAgICAgICB9CiAgICAgICAg
IHJldHVybiB0cnVlOwpAQCAtODExLDcgKzgwMiw3IEBAIGJvb2wgSlNPYmplY3Q6OmRlZmluZU93
blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
CiAgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywg
IkF0dGVtcHRpbmcgdG8gY2hhbmdlIGFjY2VzcyBtZWNoYW5pc20gZm9yIGFuIHVuY29uZmlndXJh
YmxlIHByb3BlcnR5LiIpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQot
ICAgICAgICBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICAg
ICAgbWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
KTsKICAgICAgICAgcmV0dXJuIHB1dERlc2NyaXB0b3IoZXhlYywgdGhpcywgcHJvcGVydHlOYW1l
LCBkZXNjcmlwdG9yLCBjdXJyZW50LmF0dHJpYnV0ZXNXaXRoT3ZlcnJpZGUoZGVzY3JpcHRvciks
IGN1cnJlbnQpOwogICAgIH0KIApAQCAtODM5LDcgKzgzMCw3IEBAIGJvb2wgSlNPYmplY3Q6OmRl
ZmluZU93blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KLSAgICAgICAgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIHBy
b3BlcnR5TmFtZSk7CisgICAgICAgIG1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHJldHVybiBwdXREZXNjcmlwdG9yKGV4ZWMs
IHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgY3VycmVudC5hdHRyaWJ1dGVzV2l0aE92
ZXJyaWRlKGRlc2NyaXB0b3IpLCBjdXJyZW50KTsKICAgICB9CiAKQEAgLTg2OCw3ICs4NTksNyBA
QCBib29sIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZQogICAgICAgICAgICAgZ2V0dGVyU2V0dGVyLT5zZXRH
ZXR0ZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBhc09iamVjdChkZXNjcmlwdG9yLmdldHRlcigpKSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBkZWxldGVQcm9wZXJ0eVZpcnR1YWwo
ZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICBtZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eSh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIHVuc2lnbmVkIGF0dHJzID0gY3VycmVudC5h
dHRyaWJ1dGVzV2l0aE92ZXJyaWRlKGRlc2NyaXB0b3IpOwogICAgIGlmIChkZXNjcmlwdG9yLnNl
dHRlcigpKQogICAgICAgICBhdHRycyB8PSBTZXR0ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAppbmRleCAwMGJkYmZmN2ExNTdhYTUzMWIyN2YxMDY5ZDQ2ZGI0Nzdh
NGI0MGRjLi5iNzZkMjg5ZDJjNzQ5MzM1MmU2YWViNGEwOWFkYTBhMzFiNzJkYWZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTEyMyw5ICsxMjMsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBoYXNQcm9wZXJ0eShFeGVjU3RhdGUqLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUpIGNvbnN0OwogICAgICAgICBib29sIGhhc093blByb3BlcnR5KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkgY29uc3Q7CiAKLSAgICAg
ICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9w
ZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUp
OwotICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3Bl
cnR5QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwog
CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSBkZWZhdWx0VmFsdWUoRXhlY1N0YXRlKiwgUHJlZmVy
cmVkUHJpbWl0aXZlVHlwZSkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVmFyaWFibGVPYmplY3QuY3BwCmluZGV4IDE4NDU5MDkzOWYzOTBmMmIwMzE0MGZm
YzllNWRiZWUwNjQzNTZkZTYuLjA5Yzg3YTE2OTJjZmUzOGRkNjE1YzAyMjc3ZDAwYjFhMzdhNjcw
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVP
YmplY3QuY3BwCkBAIC0zNCwxMSArMzQsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotYm9vbCBK
U1ZhcmlhYmxlT2JqZWN0OjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIGRlbGV0ZVByb3Bl
cnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci19Ci0KIGJvb2wgSlNWYXJpYWJsZU9iamVj
dDo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU1ZhcmlhYmxlT2JqZWN0KiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8SlNWYXJpYWJsZU9iamVjdCo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCmluZGV4IDlkZTcwOTM3
OTQ5MWEyMjBlNDcxZmQ2ZTIxZmIwZmFlMGU0ODc5ZDEuLjBmODZlMzVlMjlhOTZhNmI0ODBlMDBh
ZGFlZjM0YzI1ZDhhNTU0NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVmFyaWFibGVPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1ZhcmlhYmxlT2JqZWN0LmgKQEAgLTUwLDcgKzUwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKSA9IDA7CiAKLSAgICAg
ICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJik7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJh
dGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogICAgICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJh
eS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgK
aW5kZXggNWU4MDBlYzZkNDg0OGUyZDQ1NjIzNmNhMzA4MDhmMmQ5NzQzNjQ3Yy4uMjRmN2YzYjA2
ZmFmMjE2Y2VkNDgwNGE5ZGUyZTM2ZTlhMzU1ZWQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKQEAgLTEwMiwxMSArMTAyLDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBKU0FycmF5OjpwdXRCeUluZGV4KHRoaXNP
YmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdik7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gZGVs
ZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgfQotCiAgICAg
ICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIFJlZ0V4cE1hdGNoZXNBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJlZ0V4cE1h
dGNoZXNBcnJheSo+KGNlbGwpOwpAQCAtMTE1LDExICsxMTAsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgICAgIHJldHVybiBKU0FycmF5OjpkZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LCBl
eGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGRl
bGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5QnlJbmRleCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICB9Ci0KICAgICAgICAgc3RhdGljIGJv
b2wgZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIFJlZ0V4cE1hdGNo
ZXNBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJlZ0V4cE1hdGNoZXNBcnJheSo+KGNl
bGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZh
bEFjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZh
bEFjdGl2YXRpb24uY3BwCmluZGV4IDI4ZmMzNjVmZTUxN2QxYzQ0NTRkYmRlYjBhNmY2ZTM2YWZm
ODM1NjMuLmNlOWRlNWE2ZmU1ODU1NGYxODJiYjhiNzM3YzRlMzgzY2RmZGFiM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlv
bi5jcHAKQEAgLTM1LDExICszNSw2IEBAIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpTdHJpY3RFdmFs
QWN0aXZhdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7CiB9CiAKLWJvb2wgU3RyaWN0RXZhbEFjdGl2
YXRpb246OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIGlkZW50aWZpZXIpCi17Ci0gICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4
ZWMsIGlkZW50aWZpZXIpOwotfQotCiBib29sIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpkZWxldGVQ
cm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpY3RFdmFsQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aWN0RXZhbEFjdGl2YXRpb24uaAppbmRleCBjOWEzNDljZjZiYzk5MzQzNWYyYTgxODE3ZGUyMTZm
YjVlYTFiNDkzLi4wOTc0NDY4YzY0Y2FlOGI0N2YyZTQ2NzljZWViY2ViM2ZkMTdjZjEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlv
bi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0
aW9uLmgKQEAgLTQxLDcgKzQxLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWN0aXZhdGlv
bjsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0
eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgdmlydHVhbCBK
U09iamVjdCogdG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAppbmRleCBiNzIzZTkzMDU4Yzlj
ZjI0NDUxNjMyMGVlNDIwNjc1OTM1MzhhNjA2Li4yOWY5ZWI2YzA4ZDIxYTU3MTA0OWZjM2VlYTc1
MGQzOWNiN2RiMDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z09iamVjdC5jcHAKQEAgLTg2LDExICs4Niw2IEBAIHZvaWQgU3RyaW5nT2JqZWN0OjpwdXQoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5CiAg
ICAgSlNPYmplY3Q6OnB1dChjZWxsLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsK
IH0KIAotYm9vbCBTdHJpbmdPYmplY3Q6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVs
ZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQogYm9vbCBTdHJpbmdP
YmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgU3RyaW5nT2JqZWN0KiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8U3RyaW5nT2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IGRjZWIxYmIxZmFhMGU3NGYyMjVm
YmVmNjc0MDNhMzVjNmQ3YmE1OGQuLjNjNjAwNzQ3ZDQ3MDBkMDE4YmQ4ZjYyYWI4MGU2M2RjMTEz
OWVmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5o
CkBAIC01NCw3ICs1NCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAg
ICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Q
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25N
b2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCAyMjhhMDEzYzE4MDI5OWY5NGY0YjUyYTUwYTQwYjE5ZjgzMTA1ZWVkLi44OTU2YjE4
MGIwNWQxM2NmN2FkZjcwYmRjYmI2NWVlYTNkN2EzODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtMTcwNCw3ICsxNzA0LDYgQEAgX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNGZp
bmlzaENyZWF0aW9uRVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19aTjNKU0M4QmluZGluZ3MxM1J1
bnRpbWVPYmplY3QxNmdldENvbnN0cnVjdERhdGFFUE5TXzZKU0NlbGxFUk5TXzEzQ29uc3RydWN0
RGF0YUUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNs
b3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJv
cGVydHlTbG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxOWdldE93blByb3Bl
cnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVt
ZXJhdGlvbk1vZGVFCi1fX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDIxZGVsZXRlUHJv
cGVydHlWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M4
QmluZGluZ3MxM1J1bnRpbWVPYmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pO
M0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDI1Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbEVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pO
M0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDNwdXRFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3Rh
dGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdNYXBDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdNYXBDdXN0b20u
Y3BwCmluZGV4IGRjMjUxNjkxMjQyNDVjYTIwOGUyZmI5MDZmZDY5YzU0OWMzYWI4NjAuLmFhMjlj
MzllOTA1NjU4ZWE3NzBiYzQ5YjUyZGEwN2VhZjU0MDAwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTWFwQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5jcHAKQEAgLTU3LDEzICs1
NywxNCBAQCB2b2lkIEpTRE9NU3RyaW5nTWFwOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHBybwogICAgIEJhc2U6OmdldE93blByb3BlcnR5
TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKLWJvb2wgSlNET01TdHJpbmdN
YXA6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSkKK2Jvb2wgSlNET01TdHJpbmdNYXA6OmRlbGV0ZVByb3BlcnR5KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpCiB7CisgICAgSlNET01TdHJpbmdNYXAqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RP
TVN0cmluZ01hcCo+KGNlbGwpOwogICAgIEF0b21pY1N0cmluZyBzdHJpbmdOYW1lID0gaWRlbnRp
ZmllclRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKCFtX2ltcGwtPmNvbnRh
aW5zKHN0cmluZ05hbWUpKQorICAgIGlmICghdGhpc09iamVjdC0+bV9pbXBsLT5jb250YWlucyhz
dHJpbmdOYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwotICAgIG1faW1wbC0+ZGVsZXRlSXRlbShzdHJpbmdOYW1lLCBlYyk7CisgICAgdGhpc09i
amVjdC0+bV9pbXBsLT5kZWxldGVJdGVtKHN0cmluZ05hbWUsIGVjKTsKICAgICBzZXRET01FeGNl
cHRpb24oZXhlYywgZWMpOwogICAgIHJldHVybiAhZWM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggMGFlMjQ3NzhhMzIxOTY4
ZjljNDU4OGRkMmQwNjRlZTdiOTllZmI2MS4uOWEzOTI0OTYyZTk4YjBkN2VkMDQ5MDY5ODBhNDFi
OTdmNjQ0ODkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcApAQCAtMzY5LDEyICszNjksMTMgQEAgdm9pZCBKU0RPTVdpbmRvdzo6cHV0
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU4KICAgICAgICAgQmFzZTo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHNsb3QpOwogfQogCi1ib29sIEpTRE9NV2luZG93OjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCitib29sIEpT
RE9NV2luZG93OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogeworICAgIEpTRE9NV2luZG93KiB0aGlz
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3cqPihjZWxsKTsKICAgICAvLyBPbmx5IGFs
bG93IGRlbGV0aW5nIHByb3BlcnRpZXMgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4KLSAg
ICBpZiAoIWFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCisgICAgaWYgKCF0aGlzT2JqZWN0LT5hbGxv
d3NBY2Nlc3NGcm9tKGV4ZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIEJh
c2U6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJu
IEJhc2U6OmRlbGV0ZVByb3BlcnR5KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9
CiAKIHZvaWQgSlNET01XaW5kb3c6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCmluZGV4
IGUzZDMzM2NjMzBjZDgzOTM3YzFiYzQ0ZjAxN2UxNTVkYjE5ZWJlYTEuLjhlZWZjY2U1MWFjZmNj
NzIzZDZkMWZhNDdkM2I2YTk4YTExNTI5NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC0xMzUsOSArMTM1LDEwIEBAIGJvb2wgSlNE
T01XaW5kb3dTaGVsbDo6ZGVmaW5lT3duUHJvcGVydHkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IEpTQzo6SWRlbnRpCiAgICAgcmV0dXJuIG1fd2luZG93LT5kZWZpbmVPd25Qcm9wZXJ0eShl
eGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAotYm9vbCBK
U0RPTVdpbmRvd1NoZWxsOjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCitib29sIEpTRE9NV2luZG93U2hlbGw6OmRl
bGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIG1fd2luZG93LT5kZWxldGVQcm9wZXJ0
eVZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiB0aGlz
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KGNlbGwpOworICAgIHJldHVy
biB0aGlzT2JqZWN0LT5tX3dpbmRvdy0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkodGhp
c09iamVjdC0+bV93aW5kb3cuZ2V0KCksIGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKIHZvaWQg
SlNET01XaW5kb3dTaGVsbDo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCAwZDY5MjE2
MDI2NTBkZDNkODU0MThhOTEwZGM0N2NjOGNiMGJjZWE0Li4yM2NlYTgzMDkyNWI4NjMzZTVhNmEw
YjEzNTdiODY2NWExYzU3YjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dTaGVsbC5oCkBAIC04Niw3ICs4Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUs
IEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRXaXRoQXR0
cmlidXRlcyhKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU0M6OkpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwotICAgICAgICB2aXJ0dWFs
IGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOworICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9w
ZXJ0eShKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlOYW1lcyhK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6OkVudW1lcmF0aW9u
TW9kZSBtb2RlID0gSlNDOjpFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3Bl
cnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEpTQzo6RXhjbHVkZURv
bnRFbnVtUHJvcGVydGllcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVHZXR0ZXIoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpK
U09iamVjdCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHAKaW5kZXggYmUyNmI3YjQ5
YTljYTYzMDdmMzA1OGNhYWNmN2NmNzFjODQ2NTFlOC4uZDdmZGMwMDFkMDEwOWIyODQ1Y2MzM2Nj
ZjMzNzNhNjgxOWY2MzA2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNIaXN0b3J5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hp
c3RvcnlDdXN0b20uY3BwCkBAIC0xNDYsMTIgKzE0NiwxMyBAQCBib29sIEpTSGlzdG9yeTo6cHV0
RGVsZWdhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0
UHJvcAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKU0hpc3Rvcnk6OmRlbGV0ZVByb3Bl
cnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSkKK2Jvb2wgSlNIaXN0b3J5OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogeworICAgIEpTSGlzdG9y
eSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTSGlzdG9yeSo+KGNlbGwpOwogICAgIC8vIE9u
bHkgYWxsb3cgZGVsZXRpbmcgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4KLSAgICBpZiAo
IWFsbG93c0FjY2Vzc0Zyb21GcmFtZShleGVjLCBpbXBsKCktPmZyYW1lKCkpKQorICAgIGlmICgh
YWxsb3dzQWNjZXNzRnJvbUZyYW1lKGV4ZWMsIHRoaXNPYmplY3QtPmltcGwoKS0+ZnJhbWUoKSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHko
dGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVy
dHkodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lKTsKIH0KIAogdm9pZCBKU0hpc3Rvcnk6
OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYg
cHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmluZGV4IDg4ZTVhZTk0ZTNhNjdmODlh
NWY2ZGJjODlmYjUyNzhmYmVlNjg0MTguLjc3NTA5NTNmNDgzMGZjMmE3ZjIxZThiM2MwYTI5OGYy
YjRiYTZjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRp
b25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25D
dXN0b20uY3BwCkBAIC0xNTIsMTIgKzE1MiwxMyBAQCBib29sIEpTTG9jYXRpb246OnB1dERlbGVn
YXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKUwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKU0xvY2F0aW9uOjpkZWxldGVQcm9wZXJ0eVZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiti
b29sIEpTTG9jYXRpb246OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CisgICAgSlNMb2NhdGlvbiog
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTTG9jYXRpb24qPihjZWxsKTsKICAgICAvLyBPbmx5
IGFsbG93IGRlbGV0aW5nIGJ5IGZyYW1lcyBpbiB0aGUgc2FtZSBvcmlnaW4uCi0gICAgaWYgKCFh
bGxvd3NBY2Nlc3NGcm9tRnJhbWUoZXhlYywgaW1wbCgpLT5mcmFtZSgpKSkKKyAgICBpZiAoIWFs
bG93c0FjY2Vzc0Zyb21GcmFtZShleGVjLCB0aGlzT2JqZWN0LT5pbXBsKCktPmZyYW1lKCkpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5
KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKIHZvaWQgSlNMb2NhdGlvbjo6
Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBw
cm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwCmluZGV4IGVlMjY2ZjkwMWNhYTU4NTEzOTdi
ZmMwYWM4NDRiOGIxNGEwOTVkOWYuLmEyNmY0ZjI0YTZhODYxMTNmNDMwZWUzYTU0ZTJmNTY2Mjcx
ODU2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3RvcmFnZUN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9t
LmNwcApAQCAtNDUsMjAgKzQ1LDIxIEBAIEpTVmFsdWUgSlNTdG9yYWdlOjpuYW1lR2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllCiAgICAgcmV0
dXJuIGpzU3RyaW5nT3JOdWxsKGV4ZWMsIHRoaXNPYmotPmltcGwoKS0+Z2V0SXRlbShpZGVudGlm
aWVyVG9TdHJpbmcocHJvcGVydHlOYW1lKSkpOwogfQogCi1ib29sIEpTU3RvcmFnZTo6ZGVsZXRl
UHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKQorYm9vbCBKU1N0b3JhZ2U6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CisgICAgSlNT
dG9yYWdlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNTdG9yYWdlKj4oY2VsbCk7CiAgICAg
Ly8gT25seSBwZXJmb3JtIHRoZSBjdXN0b20gZGVsZXRlIGlmIHRoZSBvYmplY3QgZG9lc24ndCBo
YXZlIGEgbmF0aXZlIHByb3BlcnR5IGJ5IHRoaXMgbmFtZS4KICAgICAvLyBTaW5jZSBoYXNQcm9w
ZXJ0eSgpIHdvdWxkIGVuZCB1cCBjYWxsaW5nIGNhbkdldEl0ZW1zRm9yTmFtZSgpIGFuZCBiZSBm
b29sZWQsIHdlIG5lZWQgdG8gY2hlY2sKICAgICAvLyB0aGUgbmF0aXZlIHByb3BlcnR5IHNsb3Rz
IG1hbnVhbGx5LgogICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgIGlmIChnZXRTdGF0aWNWYWx1
ZVNsb3Q8SlNTdG9yYWdlLCBCYXNlPihleGVjLCBzX2luZm8ucHJvcEhhc2hUYWJsZShleGVjKSwg
dGhpcywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICBpZiAoZ2V0U3RhdGljVmFsdWVTbG90PEpT
U3RvcmFnZSwgQmFzZT4oZXhlYywgc19pbmZvLnByb3BIYXNoVGFibGUoZXhlYyksIHRoaXNPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
Ci0gICAgSlNWYWx1ZSBwcm90b3R5cGUgPSB0aGlzLT5wcm90b3R5cGUoKTsKKyAgICBKU1ZhbHVl
IHByb3RvdHlwZSA9IHRoaXNPYmplY3QtPnByb3RvdHlwZSgpOwogICAgIGlmIChwcm90b3R5cGUu
aXNPYmplY3QoKSAmJiBhc09iamVjdChwcm90b3R5cGUpLT5oYXNQcm9wZXJ0eShleGVjLCBwcm9w
ZXJ0eU5hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX2ltcGwtPnJlbW92ZUl0
ZW0oaWRlbnRpZmllclRvU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgIHRoaXNPYmplY3QtPm1f
aW1wbC0+cmVtb3ZlSXRlbShpZGVudGlmaWVyVG9TdHJpbmcocHJvcGVydHlOYW1lKSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmpl
Y3QuY3BwCmluZGV4IDYyNTdmNjU1MmM0YzIwNGZmMTdjY2VjYWI3OWQ3ZjZkMmJkMWNlMDUuLjY3
NjBlNDdiZjkzMjI2MjY5Y2YzOWVlMGM3NGZiYjEzNTYyN2RiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIGJvb2wg
U2NyaXB0R2xvYmFsT2JqZWN0OjpnZXQoU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlLCBjb25zdCBj
aGFyKiBuYW1lLCBTY3JpcHRPCiBib29sIFNjcmlwdEdsb2JhbE9iamVjdDo6cmVtb3ZlKFNjcmlw
dFN0YXRlKiBzY3JpcHRTdGF0ZSwgY29uc3QgY2hhciogbmFtZSkKIHsKICAgICBKU0xvY2sgbG9j
ayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIHNjcmlwdFN0YXRlLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCktPmRlbGV0ZVByb3BlcnR5VmlydHVhbChzY3JpcHRTdGF0ZSwgSWRlbnRpZmllcihz
Y3JpcHRTdGF0ZSwgbmFtZSkpOworICAgIHNjcmlwdFN0YXRlLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCktPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KHNjcmlwdFN0YXRlLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCksIHNjcmlwdFN0YXRlLCBJZGVudGlmaWVyKHNjcmlwdFN0YXRlLCBuYW1lKSk7
CiAgICAgcmV0dXJuIGhhbmRsZUV4Y2VwdGlvbihzY3JpcHRTdGF0ZSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KaW5kZXggNTkxMGUz
NTZkZGJmOTM4MjI5MjE3NTU5MTg4NmE0NTFjNTlmZTg3ZS4uNThjYTE4N2I1YzBiNWMxYzZmY2Ux
NGJlMDhmMTg5ZGRjZDc4NGJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9XZWJTY3JpcHRPYmplY3QubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9XZWJTY3JpcHRPYmplY3QubW0KQEAgLTQwMyw3ICs0MDMsNyBAQCBzdGF0aWMgdm9pZCBnZXRM
aXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRlICpleGVjLCBOU0FycmF5ICphcnJheSwgUm9vdE9iamVj
dCogcm9vdAogICAgIEFTU0VSVCghZXhlYy0+aGFkRXhjZXB0aW9uKCkpOwogCiAgICAgSlNMb2Nr
IGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKLSAgICBbc2VsZiBfaW1wXS0+ZGVsZXRlUHJv
cGVydHlWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXIoZXhlYywgc3RyaW5nVG9VU3RyaW5nKFN0cmlu
ZyhrZXkpKSkpOworICAgIFtzZWxmIF9pbXBdLT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0
eShbc2VsZiBfaW1wXSwgZXhlYywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJpbmcoU3Ry
aW5nKGtleSkpKSk7CiAKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpIHsKICAgICAgICAg
YWRkRXhjZXB0aW9uVG9Db25zb2xlKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAyZWMxZTc5ZDlkNWQ2ODc0MjY1
YjI4NTE2ODMxZjkzNGVlY2Q5Yzc4Li45MGJjYjZlYTRlZjZiY2NhMTE0NDJhMGU4ODNkMmFhNDNj
ODA2MDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQpAQCAtODIyLDcgKzgyMiw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6Q2FsbFR5cGUgZ2V0Q2FsbERh
dGEoSlNDOjpKU0NlbGwqLCBKU0M6OkNhbGxEYXRhJik7XG5cbiIpIGlmICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNhbGwifTsKIAogICAgICMgQ3VzdG9tIGRlbGV0ZVBy
b3BlcnR5IGZ1bmN0aW9uCi0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIGJv
b2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJik7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21E
ZWxldGVQcm9wZXJ0eSJ9OworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGJv
b2wgZGVsZXRlUHJvcGVydHkoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q3VzdG9tRGVsZXRlUHJvcGVydHkifTsKIAogICAgICMgQ3VzdG9tIGdldFByb3BlcnR5TmFtZXMg
ZnVuY3Rpb24gZXhpc3RzIG9uIERPTVdpbmRvdwogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAi
RE9NV2luZG93IikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKaW5kZXggZDZi
NmU2OWU5YjZiNjU2MmQyYTc2MWQ4ZDM3ODBlOWIwNjQ3NjI4YS4uMGE4ZTc1MWM5NjZmMzY4ZjM2
YTBhYWIyMDkzNmMzYTBjM2EwOWM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L05QX2pzb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3Qu
Y3BwCkBAIC0zNzUsOSArMzc1LDkgQEAgYm9vbCBfTlBOX1JlbW92ZVByb3BlcnR5KE5QUCwgTlBP
YmplY3QqIG8sIE5QSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUpCiAKICAgICAgICAgSlNMb2NrIGxv
Y2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKICAgICAgICAgaWYgKGktPmlzU3RyaW5nKCkpCi0g
ICAgICAgICAgICBvYmotPmltcC0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGlkZW50aWZp
ZXJGcm9tTlBJZGVudGlmaWVyKGV4ZWMsIGktPnN0cmluZygpKSk7CisgICAgICAgICAgICBvYmot
PmltcC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkob2JqLT5pbXAsIGV4ZWMsIGlkZW50
aWZpZXJGcm9tTlBJZGVudGlmaWVyKGV4ZWMsIGktPnN0cmluZygpKSk7CiAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIG9iai0+aW1wLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgaS0+bnVt
YmVyKCkpOworICAgICAgICAgICAgb2JqLT5pbXAtPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3Bl
cnR5QnlJbmRleChvYmotPmltcCwgZXhlYywgaS0+bnVtYmVyKCkpOwogCiAgICAgICAgIGV4ZWMt
PmNsZWFyRXhjZXB0aW9uKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbQppbmRleCAwZjliN2YxNmEyMzdkOTljOGQ4YzU3Zjll
NmM0NjgzMjFmM2FkYzFjLi4zNzMwNzQ1MTZkNzc1ODBjZTBmMjU1NjU2ZDEyMTlkYTQ5MjdlMjgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbQpAQCAtMzYyLDcg
KzM2Miw3IEBAIHZvaWQgSmF2YUpTT2JqZWN0OjpyZW1vdmVNZW1iZXIoanN0cmluZyBtZW1iZXJO
YW1lKSBjb25zdAogCiAgICAgRXhlY1N0YXRlKiBleGVjID0gcm9vdE9iamVjdC0+Z2xvYmFsT2Jq
ZWN0KCktPmdsb2JhbEV4ZWMoKTsKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09u
bHkpOwotICAgIF9pbXAtPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBJZGVudGlmaWVyKGV4
ZWMsIEphdmFTdHJpbmcobWVtYmVyTmFtZSkuaW1wbCgpKSk7CisgICAgX2ltcC0+bWV0aG9kVGFi
bGUoKS0+ZGVsZXRlUHJvcGVydHkoX2ltcCwgZXhlYywgSWRlbnRpZmllcihleGVjLCBKYXZhU3Ry
aW5nKG1lbWJlck5hbWUpLmltcGwoKSkpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvb2JqY19ydW50aW1lLmgKaW5kZXggMThkNWUzNDIwYTM5MTUyYmQ2MzFlNTQ2OGI3NjczMDVi
NTViNGVhNi4uZDgyNzYyNzMwMTg3YWI2MTNkN2MwZTY2YmI0ODU2YTY4YmM1MDdiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKQEAgLTEyOSw3ICsxMjksNiBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAg
ICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIENh
bGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7Ci0gICAgdmlydHVhbCBib29s
IGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgdmlydHVhbCBKU1Zh
bHVlIGRlZmF1bHRWYWx1ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKSBjb25z
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1l
Lm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDJi
NzExYjQxNDA5Y2M4MTk3MDEwNDMxOTZmMzc0MGE0OGYzODAxNDIuLjdmNjMxOTYyOGViNWUzOWRj
ZDAxMGQ5ODc3YzgyMDIzZGMzY2I5ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUubW0KQEAgLTI3NCwxMSArMjc0LDYgQEAgQ2FsbFR5cGUgT2JqY0ZhbGxiYWNr
T2JqZWN0SW1wOjpnZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwsIENhbGxEYXRhJiBjYWxsRGF0YSkK
ICAgICByZXR1cm4gQ2FsbFR5cGVIb3N0OwogfQogCi1ib29sIE9iamNGYWxsYmFja09iamVjdElt
cDo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgaWRlbnRpZmllcikKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywg
aWRlbnRpZmllcik7Ci19Ci0KIGJvb2wgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpkZWxldGVQcm9w
ZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJh
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggODcy
MmU1ODUxOWFiZmVmNjAyMzY5MjQ4Njg4ZTVmNDhjNTM1Njc1Ny4uNDZmODRhOWEzMWU1OWZiMjY3
ZThjZjlmMDllYjdhNWFlZmY5YWFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2Fy
cmF5LmNwcApAQCAtMTgxLDIxICsxODEsMTEgQEAgdm9pZCBSdW50aW1lQXJyYXk6OnB1dEJ5SW5k
ZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1YKICAg
ICB0aGlzT2JqZWN0LT5nZXRDb25jcmV0ZUFycmF5KCktPnNldFZhbHVlQXQoZXhlYywgaW5kZXgs
IHZhbHVlKTsKIH0KIAotYm9vbCBSdW50aW1lQXJyYXk6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLXsKLSAgICBy
ZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQogYm9v
bCBSdW50aW1lQXJyYXk6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImKQogewogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBSdW50aW1lQXJy
YXk6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXMsIGV4ZWMs
IHByb3BlcnR5TmFtZSk7Ci19Ci0KIGJvb2wgUnVudGltZUFycmF5OjpkZWxldGVQcm9wZXJ0eUJ5
SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQpCiB7CiAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKaW5kZXggMTc4NTJlODlkZWM3ZmM2
ZGQzY2NjMzJhNWVhMGQ2OWVlOThkY2ZkZi4uZmYzM2NmZTMxNGM3NTliNmIxMWJjMWJmYzhlMDcx
NGE3MzgzODBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJy
YXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCkBAIC02MCw5
ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIHB1dEJ5
SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
KTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGJvb2wgZGVs
ZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciAmcHJvcGVy
dHlOYW1lKTsKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0
ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVy
dHlCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAg
ICAgCiAgICAgdW5zaWduZWQgZ2V0TGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gZ2V0Q29uY3JldGVB
cnJheSgpLT5nZXRMZW5ndGgoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5jcHAKaW5kZXggMzI4ZWNiZmY4YWFjN2ZhMWE1MjcxNzdhMjA4NzAxMjFkMjU3MGQ0ZS4uOTBl
MWRmMGQzYmMwMGYyMWY3Zjk2YTY0OWUzMjBiMTk3ODdlNmI0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC0yNDIsMTEgKzI0Miw2IEBAIHZvaWQgUnVudGlt
ZU9iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0CiAgICAgaW5zdGFuY2UtPmVuZCgpOwogfQogCi1ib29sIFJ1bnRpbWVPYmpl
Y3Q6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lKTsKLX0KLQogYm9vbCBSdW50aW1lT2JqZWN0OjpkZWxldGVQcm9wZXJ0
eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAgICAvLyBDYW4g
bmV2ZXIgcmVtb3ZlIGEgcHJvcGVydHkgb2YgYSBSdW50aW1lT2JqZWN0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCA4YTI3MTllMTgxZWMzZDVkNWMxZjc2ODBiMzIy
ZWNiOTc4ZTY2OTIzLi5hZTIyYTgwODI4ZWU3ZmEwMTJhYzc4OTUyMmY4NTUyYzQzNzgzMjQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApAQCAtNTAsNyArNTAsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwogICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGlj
IHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpOwogICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgdmlydHVhbCBKU1ZhbHVlIGRl
ZmF1bHRWYWx1ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKSBjb25zdDsKICAg
ICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5z
dGFuY2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCAwOWU1MzllNTU0MzJmMTAwMTgzYWYzNTk1ZjJi
NjI2ZTRkYmI3MDk3Li5hNjdkMjQ5ZjlmZTM4M2I0MjlmMDU4MGMyMmEzMDE1MjNiNzFlMzcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC0xMTEzLDcgKzExMTMsNyBAQCBib29s
IE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6cmVtb3ZlUHJvcGVydHkodWludDMyX3Qgb2Jq
ZWN0SUQsIGNvbnN0IElkZW50aQogICAgIH0KICAgICAKICAgICBKU0xvY2sgbG9jayhTaWxlbmNl
QXNzZXJ0aW9uc09ubHkpOwotICAgIG9iamVjdC0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMs
IHByb3BlcnR5TmFtZSk7CisgICAgb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0
eShvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24o
KTsgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMTQwLDcgKzExNDAsNyBAQCBib29sIE5l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6cmVtb3ZlUHJvcGVydHkodWludDMyX3Qgb2JqZWN0
SUQsIHVuc2lnbmVkIHBybwogICAgIH0KICAgICAKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNz
ZXJ0aW9uc09ubHkpOwotICAgIG9iamVjdC0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIHBy
b3BlcnR5TmFtZSk7CisgICAgb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eUJ5
SW5kZXgob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIGV4ZWMtPmNsZWFyRXhjZXB0
aW9uKCk7ICAgIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmluZGV4IGQw
NThlZTVlYjBmNmU1MGZmOGQ5NmUyY2M0MDg3MDRjOWJhNGNlODEuLjM2MzhkYmZlOTIzZWU4Y2Ey
OGRiNDBiOTYzYmE0NjMyNGJkOGE4M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAgLTM1MSwyMSAr
MzUxLDExIEBAIHZvaWQgSlNOUE9iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hCiAgICAgcmVsZWFzZU5QVmFyaWFudFZh
bHVlKCZ2YXJpYW50KTsKIH0KIAotYm9vbCBKU05QT2JqZWN0OjpkZWxldGVQcm9wZXJ0eVZpcnR1
YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCi17Ci0g
ICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci19Ci0K
IGJvb2wgSlNOUE9iamVjdDo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8SlNOUE9iamVjdCo+KGNlbGwpLT5kZWxldGVQcm9wZXJ0eShleGVjLCBucElkZW50
aWZpZXJGcm9tSWRlbnRpZmllcihwcm9wZXJ0eU5hbWUpKTsKIH0KIAotYm9vbCBKU05QT2JqZWN0
OjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUpCi17Ci0gICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzLCBleGVjLCBw
cm9wZXJ0eU5hbWUpOwotfQotCiBib29sIEpTTlBPYmplY3Q6OmRlbGV0ZVByb3BlcnR5QnlJbmRl
eChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU05QT2JqZWN0Kj4oY2VsbCktPmRlbGV0ZVByb3Bl
cnR5KGV4ZWMsIHN0YXRpY19jYXN0PE5QSWRlbnRpZmllcj4oSWRlbnRpZmllclJlcDo6Z2V0KHBy
b3BlcnR5TmFtZSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IDRhZTEzYmFmNjA1YTE0ODI4ZDhjMjM5
MDViN2IwMmMzOTYxMWRmOTYuLjA0NDk2ZjVjZWYyOGE5NjgxN2JmOGQ3MDdjODNiYTM3YTUzNDU3
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuaApAQCAtODgsOSArODgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAg
ICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVy
dHlTbG90Jik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0
YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7Ci0gICAgdmlydHVhbCBib29sIGRl
bGV0ZVByb3BlcnR5VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSk7CiAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQzo6SlNDZWxsKiwg
SlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwogCiAgICAgYm9vbCBkZWxl
dGVQcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSosIE5QSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05Q
SlNPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05QSlNPYmplY3QuY3BwCmluZGV4IDg0Y2VhMGM1NGNhOTNhYzdhZmI0NzA1MzBmOWJlNDk0ZDNj
Yzc4YWMuLjYzMzMyNjIyNzNhNThkNmU0MDg4Njc0Y2QxMThkMDIzNDljYjc5ODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBK
U09iamVjdC5jcHAKQEAgLTIxMywxNCArMjEzLDE0IEBAIGJvb2wgTlBKU09iamVjdDo6cmVtb3Zl
UHJvcGVydHkoTlBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgbV9qc09iamVjdC0+ZGVsZXRlUHJv
cGVydHlWaXJ0dWFsKGV4ZWMsIGlkZW50aWZpZXIpOworICAgICAgICBtX2pzT2JqZWN0LT5tZXRo
b2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eShtX2pzT2JqZWN0LmdldCgpLCBleGVjLCBpZGVudGlm
aWVyKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoIW1fanNPYmplY3QtPmhhc1Byb3BlcnR5
KGV4ZWMsIGlkZW50aWZpZXJSZXAtPm51bWJlcigpKSkgewogICAgICAgICAgICAgZXhlYy0+Y2xl
YXJFeGNlcHRpb24oKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCi0g
ICAgICAgIG1fanNPYmplY3QtPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBpZGVudGlmaWVy
UmVwLT5udW1iZXIoKSk7CisgICAgICAgIG1fanNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmRlbGV0
ZVByb3BlcnR5QnlJbmRleChtX2pzT2JqZWN0LmdldCgpLCBleGVjLCBpZGVudGlmaWVyUmVwLT5u
dW1iZXIoKSk7CiAgICAgfQogCiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112273</attachid>
            <date>2011-10-24 16:30:09 -0700</date>
            <delta_ts>2011-10-25 18:22:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70738-20111024163008.patch</filename>
            <type>text/plain</type>
            <size>70427</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgyODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGIw
YzQ0MjkyODE3NTBmOTE3MDliNGVjYzJmZWJkNDgwNGI4YzU4ODMuLmRiZjJmZDM4MTZjZTA4MWVi
Njk1MDZhNWM4YTJkNDY1YmQzYmVmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDY2IEBACiAyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKKyAgICAgICAgUmVtb3ZlIGRlbGV0ZVByb3BlcnR5VmlydHVhbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGFsbCBkZWNsYXJh
dGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIGRlbGV0ZVByb3BlcnR5VmlydHVhbC4KKyAgICAgICAg
QWxzbyByZXBsYWNlZCBhbGwgY2FsbCBzaXRlcyB0byBkZWxldGVQcm9wZXJ0eVZpcnR1YWwgd2l0
aCBhIAorICAgICAgICBjb3JyZXNwb25kaW5nIGxvb2t1cCBpbiB0aGUgTWV0aG9kVGFibGUuCisK
KyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAqIEFQSS9KU0NhbGxi
YWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6ZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KToKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgorICAgICAgICAoSlNPYmplY3RE
ZWxldGVQcm9wZXJ0eSk6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6
CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKEpT
Qzo6RGVidWdnZXJBY3RpdmF0aW9uOjpkZWxldGVQcm9wZXJ0eSk6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0
ZXIuY3BwOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUpOgorICAg
ICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNU
SU9OKToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgICogcnVudGlt
ZS9Bcmd1bWVudHMuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNQb3ApOgorICAgICAgICAoSlNDOjphcnJheVByb3Rv
RnVuY1JldmVyc2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NoaWZ0KToKKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNTcGxpY2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3Rv
RnVuY1VuU2hpZnQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcDoKKyAgICAg
ICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5j
cHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKEpT
Qzo6SlNBcnJheTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KToKKyAgICAgICAgKiBydW50aW1lL0pT
QXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5jcHA6CisgICAgICAgIChKU0M6OkpT
Q2VsbDo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAoSlNDOjpKU0NlbGw6OmRlbGV0ZVByb3Bl
cnR5QnlJbmRleCk6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAgICAgKiBydW50
aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU05v
dEFuT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6V2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5QnlJbmRleCk6CisgICAgICAgIChK
U0M6OkpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9KU09i
amVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBN
YXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNw
cDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmg6CisgICAgICAgICog
cnVudGltZS9TdHJpbmdPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0
Lmg6CisKKzIwMTEtMTAtMjQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KKwogICAgICAgICBGaXhpbmcgV2luZG93cyBidWlsZAogCiAgICAgICAgIFVucmV2aWV3ZWQg
YnVpbGQgZml4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM2Y2ZmNGEzMWQ4NzQ3YzQwMzdjZWU3OWU2NTMzOGIw
MmYxNDA1Yi4uN2UwMTczM2ZjNTMyZjdiMTM4NGQ3MzQ2MzIzZjQ2NDliOTc0MWU5OSAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDExLTEwLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFo
bmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGRlbGV0ZVByb3BlcnR5VmlydHVh
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MzgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcg
dGVzdHMuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFyYXRpb25zIGFuZCBkZWZpbml0aW9u
cyBvZiBkZWxldGVQcm9wZXJ0eVZpcnR1YWwuCisgICAgICAgIEFsc28gcmVwbGFjZWQgYWxsIGNh
bGwgc2l0ZXMgdG8gZGVsZXRlUHJvcGVydHlWaXJ0dWFsIHdpdGggYSAKKyAgICAgICAgY29ycmVz
cG9uZGluZyBsb29rdXAgaW4gdGhlIE1ldGhvZFRhYmxlLgorCisgICAgICAgICogV2ViQ29yZS5l
eHAuaW46CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01TdHJpbmdNYXBDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01TdHJpbmdNYXA6OmRlbGV0ZVByb3BlcnR5KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvdzo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6
ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNIaXN0b3J5OjpkZWxldGVQcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNMb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0xvY2F0aW9uOjpk
ZWxldGVQcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTU3RvcmFnZTo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRHbG9iYWxPYmplY3Q6OnJlbW92ZSk6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9XZWJTY3Jp
cHRPYmplY3QubW06CisgICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCByZW1vdmVXZWJTY3JpcHRL
ZXk6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06Cisg
ICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgICogYnJpZGdlL05QX2pzb2JqZWN0LmNw
cDoKKyAgICAgICAgKF9OUE5fUmVtb3ZlUHJvcGVydHkpOgorICAgICAgICAqIGJyaWRnZS9qbmkv
am5pX2pzb2JqZWN0Lm1tOgorICAgICAgICAoSmF2YUpTT2JqZWN0OjpyZW1vdmVNZW1iZXIpOgor
ICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5oOgorICAgICAgICAqIGJyaWRnZS9v
YmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6
CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9vYmplY3QuY3BwOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorCiAy
MDExLTEwLTIxICBOYXQgRHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hy
b21pdW1dIEFkZCBpc1RyYWNlRXZlbnRFbmFibGVkIHRvIFBsYXRmb3JtU3VwcG9ydC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwppbmRleCA4OTFhZjA2N2EwOTZjODYxNDQxNGM1MmI5N2QzMWIwMWQwNzJjOGI4Li5j
YmEyNGU4MGI5Nzc2MmRlZWFiOGFlNTU5MjRhZTZhMTBkYTI3MjYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMjQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5i
ZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgZGVsZXRlUHJvcGVydHlWaXJ0dWFsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDczOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgYWxs
IGRlY2xhcmF0aW9ucyBhbmQgZGVmaW5pdGlvbnMgb2YgZGVsZXRlUHJvcGVydHlWaXJ0dWFsLgor
ICAgICAgICBBbHNvIHJlcGxhY2VkIGFsbCBjYWxsIHNpdGVzIHRvIGRlbGV0ZVByb3BlcnR5Vmly
dHVhbCB3aXRoIGEgCisgICAgICAgIGNvcnJlc3BvbmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RU
YWJsZS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQ
cm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Ojpy
ZW1vdmVQcm9wZXJ0eSk6CisKIDIwMTEtMTAtMjQgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0IGRvZXNuJ3QgYnVpbGQgd2l0aCByZWNlbnQgY2hh
bmdlcyB0byBsaWJkaXNwYXRjaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA3MTI5YTk1MjllMTFkY2MwNzI2YTdj
ZmViZjVjYmEwMmZjNjE4N2UuLjI3NDI5OWRlYTJhZWRmYmZjZDFkN2ViZTFjOTFmMTgzNzdmOTBl
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0xMC0yNCAgTWFyayBIYWhuZW5i
ZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBkZWxldGVQcm9w
ZXJ0eVZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcwNzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlZCBhbGwgZGVjbGFyYXRpb25zIGFuZCBkZWZpbml0aW9ucyBvZiBkZWxldGVQcm9w
ZXJ0eVZpcnR1YWwuCisgICAgICAgIEFsc28gcmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMgdG8gZGVs
ZXRlUHJvcGVydHlWaXJ0dWFsIHdpdGggYSAKKyAgICAgICAgY29ycmVzcG9uZGluZyBsb29rdXAg
aW4gdGhlIE1ldGhvZFRhYmxlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05Q
SlNPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0OjpyZW1vdmVQcm9wZXJ0
eSk6CisKIDIwMTEtMTAtMjQgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViS2l0IGRvZXNuJ3QgYnVpbGQgd2l0aCByZWNlbnQgY2hhbmdlcyB0byBsaWJk
aXNwYXRjaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApp
bmRleCAzOThkZDAzZDA3NzQ1MGMwMjY1OWNiNGFlZWExZWI2MGMyNmE3MjMxLi5mYzlkYmUxNWNj
ZGE2N2U4N2ZlNmY1MzM5ZDc3NWYzODk0MTI2OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTg1LDkgKzE4NSw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImKTsKICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0Nl
bGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJik7Ci0gICAgdmlydHVhbCBib29sIGRl
bGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCk7CiAgICAgc3RhdGljIGJv
b2wgZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBoYXNJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
dmFsdWUsIEpTVmFsdWUgcHJvdG8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCAxZGJiMWQ1YzcyNjdhYTBmZmQz
NGYwNjViYmQ3MGMyZGY0M2M4NjdiLi5mOTk0ZmJmNTY0YmE2NzU4NjY4YTA3ZjM0MGZiYTZkN2I3
MDc0MTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tP
YmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tPYmplY3RGdW5jdGlvbnMuaApAQCAtMjczLDEyICsyNzMsNiBAQCB2b2lkIEpTQ2FsbGJhY2tP
YmplY3Q8UGFyZW50Pjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotYm9vbCBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHko
dGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQotdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4K
IGJvb2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewog
ICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0NhbGxiYWNr
T2JqZWN0Kj4oY2VsbCk7CkBAIC0zMjMsMTUgKzMxNywxMCBAQCBib29sIEpTQ2FsbGJhY2tPYmpl
Y3Q8UGFyZW50Pjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbgogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotYm9vbCBKU0NhbGxiYWNrT2JqZWN0
PFBhcmVudD46OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci19Ci0KLXRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBib29s
IEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3QqPihjZWxsKS0+ZGVsZXRlUHJvcGVydHlW
aXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSk7CisgICAg
SlNDYWxsYmFja09iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmpl
Y3QqPihjZWxsKTsKKyAgICByZXR1cm4gdGhpc09iamVjdC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRl
UHJvcGVydHkodGhpc09iamVjdCwgZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0
eU5hbWUpKTsKIH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU09iamVjdFJlZi5jcHAKaW5kZXggNmQ1ZjAzZDY1ZTQzN2JmYjAyZDFlY2ZkYjY0
NDYxZGJhNjQ3YTZjZS4uOTBjZjM1OTc2MDUyNzcxZTdjMzMxNmIxODMzOGFhNTc1N2FmZTMzZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKQEAgLTMyNyw3ICsz
MjcsNyBAQCBib29sIEpTT2JqZWN0RGVsZXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcgogCiAgICAgSlNPYmplY3QqIGpzT2JqZWN0
ID0gdG9KUyhvYmplY3QpOwogCi0gICAgYm9vbCByZXN1bHQgPSBqc09iamVjdC0+ZGVsZXRlUHJv
cGVydHlWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZS0+aWRlbnRpZmllcigmZXhlYy0+Z2xvYmFs
RGF0YSgpKSk7CisgICAgYm9vbCByZXN1bHQgPSBqc09iamVjdC0+bWV0aG9kVGFibGUoKS0+ZGVs
ZXRlUHJvcGVydHkoanNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZS0+aWRlbnRpZmllcigmZXhl
Yy0+Z2xvYmFsRGF0YSgpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSB7CiAgICAg
ICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgICAgICAqZXhjZXB0aW9uID0gdG9SZWYoZXhlYywg
ZXhlYy0+ZXhjZXB0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5l
eHAKaW5kZXggY2UyMTYxNzhhOWEzNjAxZjFhYjdiYTZjMTk2NjMyODNkYmU1NmUzZC4uY2I5YjE3
MDA0MTY3MmNjNzcxYjc0ZjUxNDI2NzE1YmIwYmY0OTQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCkBAIC0xOTUsNyArMTk1LDYgQEAgX19aTjNKU0MxNkludGVy
bmFsRnVuY3Rpb25DMkVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUUKIF9fWk4z
SlNDMTZKU1ZhcmlhYmxlT2JqZWN0MTRkZWxldGVQcm9wZXJ0eUVQTlNfNkpTQ2VsbEVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDMTZKU1ZhcmlhYmxlT2JqZWN0MTRz
eW1ib2xUYWJsZUdldEVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JF
CiBfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4
ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKLV9f
Wk4zSlNDMTZKU1ZhcmlhYmxlT2JqZWN0MjFkZWxldGVQcm9wZXJ0eVZpcnR1YWxFUE5TXzlFeGVj
U3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzE2Y3JlYXRlUmFuZ2VFcnJvckVQTlNf
OUV4ZWNTdGF0ZUVSS05TXzdVU3RyaW5nRQogX19aTjNKU0MxNnNsb3dWYWxpZGF0ZUNlbGxFUE5T
XzE0SlNHbG9iYWxPYmplY3RFCiBfX1pOM0pTQzE2c2xvd1ZhbGlkYXRlQ2VsbEVQTlNfNkpTQ2Vs
bEUKQEAgLTI2Miw4ICsyNjEsNiBAQCBfX1pOM0pTQzZKU0NlbGwxMHB1dFZpcnR1YWxFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UAogX19aTjNKU0M2
SlNDZWxsMTBwdXRWaXJ0dWFsRVBOU185RXhlY1N0YXRlRWpOU183SlNWYWx1ZUUKIF9fWk4zSlND
NkpTQ2VsbDExZ2V0Q2FsbERhdGFFUFMwX1JOU184Q2FsbERhdGFFCiBfX1pOM0pTQzZKU0NlbGwx
NmdldENvbnN0cnVjdERhdGFFUFMwX1JOU18xM0NvbnN0cnVjdERhdGFFCi1fX1pOM0pTQzZKU0Nl
bGwyMWRlbGV0ZVByb3BlcnR5VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckUKLV9fWk4zSlNDNkpTQ2VsbDIxZGVsZXRlUHJvcGVydHlWaXJ0dWFsRVBOU185RXhlY1N0YXRl
RWoKIF9fWk4zSlNDNkpTQ2VsbDI1Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbEVQTlNfOUV4ZWNT
dGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzZKU0Nl
bGwyNWdldE93blByb3BlcnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3Bl
cnR5U2xvdEUKIF9fWk4zSlNDNkpTQ2VsbDlnZXRPYmplY3RFdgpAQCAtMzI4LDggKzMyNSw2IEBA
IF9fWk4zSlNDOEpTT2JqZWN0MTdwdXRXaXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckVOU183SlNWYWx1CiBfX1pOM0pTQzhKU09iamVjdDE3cHV0V2l0aEF0dHJp
YnV0ZXNFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRWoKIF9fWk4zSlNDOEpTT2JqZWN0MTln
ZXRPd25Qcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5
RU5TXzE1RW51bWVyYXRpb25Nb2RlRQogX19aTjNKU0M4SlNPYmplY3QyMWRlbGV0ZVByb3BlcnR5
QnlJbmRleEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVqCi1fX1pOM0pTQzhKU09iamVjdDIx
ZGVsZXRlUHJvcGVydHlWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQot
X19aTjNKU0M4SlNPYmplY3QyMWRlbGV0ZVByb3BlcnR5VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVq
CiBfX1pOM0pTQzhKU09iamVjdDIxZ2V0UHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRl
RVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKIF9fWk4zSlNDOEpT
T2JqZWN0MjJmaWxsR2V0dGVyUHJvcGVydHlTbG90RVJOU18xMlByb3BlcnR5U2xvdEVQTlNfMTZX
cml0ZUJhcnJpZXJCYXNlSU5TXzdVbmtub3duRUVFCiBfX1pOM0pTQzhKU09iamVjdDIzYWxsb2Nh
dGVQcm9wZXJ0eVN0b3JhZ2VFUk5TXzEySlNHbG9iYWxEYXRhRW1tCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IGYyZjlhMzRhMDQ0
ODQ1ZDliZmUwMGJiZTYyMjBjNDczMTRjOTJmYjkuLjkyNmJkYWJmODFiODgyYjFlMTFjMjg3NjQz
NmQ0MjdlNTdjYjUyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZGVmCkBAIC0xNDYsMTEgKzE0Niw2IEBAIEVYUE9SVFMKICAgICA/ZGVs
ZXRlUHJvcGVydHlASlNPYmplY3RASlNDQEBTQV9OUEFWSlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJA
QUJWSWRlbnRpZmllckAyQEBaCiAgICAgP2RlbGV0ZVByb3BlcnR5QEpTVmFyaWFibGVPYmplY3RA
SlNDQEBTQV9OUEFWSlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEBaCiAg
ICAgP2RlbGV0ZVByb3BlcnR5QnlJbmRleEBKU09iamVjdEBKU0NAQFNBX05QQVZKU0NlbGxAMkBQ
QVZFeGVjU3RhdGVAMkBJQFoKLSAgICA/ZGVsZXRlUHJvcGVydHlWaXJ0dWFsQEpTQ2VsbEBKU0NA
QFVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEBaCi0gICAgP2RlbGV0ZVByb3Bl
cnR5VmlydHVhbEBKU0NlbGxASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQElAWgotICAgID9kZWxl
dGVQcm9wZXJ0eVZpcnR1YWxASlNPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklk
ZW50aWZpZXJAMkBAWgotICAgID9kZWxldGVQcm9wZXJ0eVZpcnR1YWxASlNPYmplY3RASlNDQEBV
QUVfTlBBVkV4ZWNTdGF0ZUAyQElAWgotICAgID9kZWxldGVQcm9wZXJ0eVZpcnR1YWxASlNWYXJp
YWJsZU9iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEBaCiAg
ICAgP2RlbGV0ZVRhYmxlQEhhc2hUYWJsZUBKU0NAQFFCRVhYWgogICAgID9kZXNwZWNpZnlEaWN0
aW9uYXJ5RnVuY3Rpb25AU3RydWN0dXJlQEpTQ0BAUUFFWEFBVkpTR2xvYmFsRGF0YUAyQEFCVklk
ZW50aWZpZXJAMkBAWgogICAgID9kZXNwZWNpZnlGdW5jdGlvblRyYW5zaXRpb25AU3RydWN0dXJl
QEpTQ0BAU0FQQVYxMkBBQVZKU0dsb2JhbERhdGFAMkBQQVYxMkBBQlZJZGVudGlmaWVyQDJAQFoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2
YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZh
dGlvbi5jcHAKaW5kZXggNzBlMWJhZWI2ZTBiNDBlY2QwNjVkNGZhMjc5ZGMwMDJjMWVlZjg3ZS4u
MzgyODk1OGYxYTI4NDNhNTYxNDBmOGI0Yjk0YmYyYmYyMDljZTUyNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKQEAg
LTg1LDE0ICs4NSwxMCBAQCB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6cHV0V2l0aEF0dHJpYnV0
ZXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcgogICAgIG1fYWN0aXZhdGlv
bi0+cHV0V2l0aEF0dHJpYnV0ZXMoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgYXR0cmlidXRl
cyk7CiB9CiAKLWJvb2wgRGVidWdnZXJBY3RpdmF0aW9uOjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCi17Ci0gICAg
cmV0dXJuIGRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci19Ci0KIGJv
b2wgRGVidWdnZXJBY3RpdmF0aW9uOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9uLT5k
ZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICBEZWJ1Z2dlckFj
dGl2YXRpb24qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24qPihj
ZWxsKTsKKyAgICByZXR1cm4gdGhpc09iamVjdC0+bV9hY3RpdmF0aW9uLT5tZXRob2RUYWJsZSgp
LT5kZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LT5tX2FjdGl2YXRpb24uZ2V0KCksIGV4ZWMsIHBy
b3BlcnR5TmFtZSk7CiB9CiAKIHZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMs
IEVudW1lcmF0aW9uTW9kZSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4IDNkN2IwMjY4MjFmOTY2NTc4OWZjMDRk
MDM2ZGVlNDg4MGUzOGJmN2MuLjZkNWJlYzJkNDA0ODVmNjhhNmMzZjAxM2EwYTU1MjcyNDBjYjQ5
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFj
dGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJB
Y3RpdmF0aW9uLmgKQEAgLTQ4LDcgKzQ4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lk
IHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0
aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKLSAgICAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVu
dW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5kZXggODM4ZjUxYzU4Yjk3ZTVm
YTFiODQ4ZWY0ZTkyM2RkMTFiNTkzMzE0YS4uOWEzMWYxOWI1OGJlYWEyZGIwYmM4Y2JlYTQxYzVj
NTFjMjBlZWNlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0ludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SW50ZXJwcmV0ZXIuY3BwCkBAIC0zMzU4LDcgKzMzNTgsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxm
OgogCiAgICAgICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gY2FsbEZyYW1lLT5yKGJhc2UpLmpzVmFs
dWUoKS50b09iamVjdChjYWxsRnJhbWUpOwogICAgICAgICBJZGVudGlmaWVyJiBpZGVudCA9IGNv
ZGVCbG9jay0+aWRlbnRpZmllcihwcm9wZXJ0eSk7Ci0gICAgICAgIGJvb2wgcmVzdWx0ID0gYmFz
ZU9iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGNhbGxGcmFtZSwgaWRlbnQpOworICAgICAgICBi
b29sIHJlc3VsdCA9IGJhc2VPYmotPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KGJhc2VP
YmosIGNhbGxGcmFtZSwgaWRlbnQpOwogICAgICAgICBpZiAoIXJlc3VsdCAmJiBjb2RlQmxvY2st
PmlzU3RyaWN0TW9kZSgpKSB7CiAgICAgICAgICAgICBleGNlcHRpb25WYWx1ZSA9IGNyZWF0ZVR5
cGVFcnJvcihjYWxsRnJhbWUsICJVbmFibGUgdG8gZGVsZXRlIHByb3BlcnR5LiIpOwogICAgICAg
ICAgICAgZ290byB2bV90aHJvdzsKQEAgLTM1NDUsMTIgKzM1NDUsMTIgQEAgc2tpcF9pZF9jdXN0
b21fc2VsZjoKICAgICAgICAgYm9vbCByZXN1bHQ7CiAgICAgICAgIHVpbnQzMl90IGk7CiAgICAg
ICAgIGlmIChzdWJzY3JpcHQuZ2V0VUludDMyKGkpKQotICAgICAgICAgICAgcmVzdWx0ID0gYmFz
ZU9iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGNhbGxGcmFtZSwgaSk7CisgICAgICAgICAgICBy
ZXN1bHQgPSBiYXNlT2JqLT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgoYmFz
ZU9iaiwgY2FsbEZyYW1lLCBpKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBDSEVDS19G
T1JfRVhDRVBUSU9OKCk7CiAgICAgICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5KGNhbGxGcmFt
ZSwgc3Vic2NyaXB0LnRvU3RyaW5nKGNhbGxGcmFtZSkpOwogICAgICAgICAgICAgQ0hFQ0tfRk9S
X0VYQ0VQVElPTigpOwotICAgICAgICAgICAgcmVzdWx0ID0gYmFzZU9iai0+ZGVsZXRlUHJvcGVy
dHlWaXJ0dWFsKGNhbGxGcmFtZSwgcHJvcGVydHkpOworICAgICAgICAgICAgcmVzdWx0ID0gYmFz
ZU9iai0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkoYmFzZU9iaiwgY2FsbEZyYW1lLCBw
cm9wZXJ0eSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFyZXN1bHQgJiYgY29kZUJsb2NrLT5p
c1N0cmljdE1vZGUoKSkgewogICAgICAgICAgICAgZXhjZXB0aW9uVmFsdWUgPSBjcmVhdGVUeXBl
RXJyb3IoY2FsbEZyYW1lLCAiVW5hYmxlIHRvIGRlbGV0ZSBwcm9wZXJ0eS4iKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKaW5kZXggNjNjZjlhMWFmOTJkM2U4Yzc1MGMyNzM0
ZmFmYzUxZGY1MjRiNWM1ZC4uOTMzNTE2ZTIwYjMyNzEyZDllY2E5NzAzNzFkMTcxODVkYjVjODE4
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKQEAgLTIxMDgsNyArMjEw
OCw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF9kZWxfYnlfaWQp
CiAgICAgCiAgICAgSlNPYmplY3QqIGJhc2VPYmogPSBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1
ZSgpLnRvT2JqZWN0KGNhbGxGcmFtZSk7CiAKLSAgICBib29sIGNvdWxkRGVsZXRlID0gYmFzZU9i
ai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGNhbGxGcmFtZSwgc3RhY2tGcmFtZS5hcmdzWzFdLmlk
ZW50aWZpZXIoKSk7CisgICAgYm9vbCBjb3VsZERlbGV0ZSA9IGJhc2VPYmotPm1ldGhvZFRhYmxl
KCktPmRlbGV0ZVByb3BlcnR5KGJhc2VPYmosIGNhbGxGcmFtZSwgc3RhY2tGcmFtZS5hcmdzWzFd
LmlkZW50aWZpZXIoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0Jvb2xlYW4oY291bGREZWxl
dGUpOwogICAgIGlmICghY291bGREZWxldGUgJiYgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNT
dHJpY3RNb2RlKCkpCiAgICAgICAgIHN0YWNrRnJhbWUuZ2xvYmFsRGF0YS0+ZXhjZXB0aW9uID0g
Y3JlYXRlVHlwZUVycm9yKHN0YWNrRnJhbWUuY2FsbEZyYW1lLCAiVW5hYmxlIHRvIGRlbGV0ZSBw
cm9wZXJ0eS4iKTsKQEAgLTM3MjMsMTIgKzM3MjMsMTIgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04o
RW5jb2RlZEpTVmFsdWUsIG9wX2RlbF9ieV92YWwpCiAgICAgYm9vbCByZXN1bHQ7CiAgICAgdWlu
dDMyX3QgaTsKICAgICBpZiAoc3Vic2NyaXB0LmdldFVJbnQzMihpKSkKLSAgICAgICAgcmVzdWx0
ID0gYmFzZU9iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGNhbGxGcmFtZSwgaSk7CisgICAgICAg
IHJlc3VsdCA9IGJhc2VPYmotPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5QnlJbmRleChi
YXNlT2JqLCBjYWxsRnJhbWUsIGkpOwogICAgIGVsc2UgewogICAgICAgICBDSEVDS19GT1JfRVhD
RVBUSU9OKCk7CiAgICAgICAgIElkZW50aWZpZXIgcHJvcGVydHkoY2FsbEZyYW1lLCBzdWJzY3Jp
cHQudG9TdHJpbmcoY2FsbEZyYW1lKSk7CiAgICAgICAgIENIRUNLX0ZPUl9FWENFUFRJT04oKTsK
LSAgICAgICAgcmVzdWx0ID0gYmFzZU9iai0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGNhbGxGcmFt
ZSwgcHJvcGVydHkpOworICAgICAgICByZXN1bHQgPSBiYXNlT2JqLT5tZXRob2RUYWJsZSgpLT5k
ZWxldGVQcm9wZXJ0eShiYXNlT2JqLCBjYWxsRnJhbWUsIHByb3BlcnR5KTsKICAgICB9CiAKICAg
ICBpZiAoIXJlc3VsdCAmJiBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCmluZGV4IDdiNjZl
ZGExMzM1OTY2OTQyMWQ0YjkxM2NlODc3ZGEyZWU1ZGY4ZjcuLjYyNDRmZDI5ODY5OWJkZTYyMWNk
MDY4YjNhYjg3OGYyMThkMDUxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJndW1lbnRzLmNwcApAQCAtMzI4LDExICszMjgsNiBAQCB2b2lkIEFyZ3VtZW50czo6cHV0KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bQogICAgIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7CiB9CiAKLWJvb2wgQXJndW1lbnRzOjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpKSAKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHlC
eUluZGV4KHRoaXMsIGV4ZWMsIGkpOwotfQotCiBib29sIEFyZ3VtZW50czo6ZGVsZXRlUHJvcGVy
dHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpKSAKIHsK
ICAgICBBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxBcmd1bWVudHMqPihjZWxs
KTsKQEAgLTM1MCwxMSArMzQ1LDYgQEAgYm9vbCBBcmd1bWVudHM6OmRlbGV0ZVByb3BlcnR5QnlJ
bmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSkKICAgICByZXR1
cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXIo
ZXhlYywgVVN0cmluZzo6bnVtYmVyKGkpKSk7CiB9CiAKLWJvb2wgQXJndW1lbnRzOjpkZWxldGVQ
cm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpIAotewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUpOwotfQotCiBib29sIEFyZ3VtZW50czo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkgCiB7CiAg
ICAgQXJndW1lbnRzKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8QXJndW1lbnRzKj4oY2VsbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IGQ5NzY1NWQx
MDA5YjE2YWY4YWQ1ZGNkNWZhNjFjOGZlZDExZjFkNGIuLjkzNGVkNzQ3ZjYzYTU3Yzg0MTc5YWE3
YmNkOTk3MTQ1MzM5MDEyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5oCkBAIC0xNDUsOSArMTQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRp
YyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwog
ICAgICAgICBzdGF0aWMgdm9pZCBwdXRCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQ
cm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KTsKICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgdmlydHVhbCBib29s
IGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUp
OwogICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdm9pZCBjcmVhdGVTdHJp
Y3RNb2RlQ2FsbGVySWZOZWNlc3NhcnkoRXhlY1N0YXRlKik7CiAgICAgICAgIHZvaWQgY3JlYXRl
U3RyaWN0TW9kZUNhbGxlZUlmTmVjZXNzYXJ5KEV4ZWNTdGF0ZSopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IGM1NDQwM2I5ZjVj
OWMxYmJlNzhkZjQ2NmQwZTY5NjU0N2JmZTYzYWIuLjA0ZGIzYTA1NGMyZGMzYTFiYTdkNGJiZDZk
NWFmMTA5ZWNjYTA4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5jcHAKQEAgLTM4OCw3ICszODgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUG9wKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmVz
dWx0ID0ganNVbmRlZmluZWQoKTsKICAgICB9IGVsc2UgewogICAgICAgICByZXN1bHQgPSB0aGlz
T2JqLT5nZXQoZXhlYywgbGVuZ3RoIC0gMSk7Ci0gICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3Bl
cnR5VmlydHVhbChleGVjLCBsZW5ndGggLSAxKTsKKyAgICAgICAgdGhpc09iai0+bWV0aG9kVGFi
bGUoKS0+ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNPYmosIGV4ZWMsIGxlbmd0aCAtIDEpOwog
ICAgICAgICBwdXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
bGVuZ3RoLCBqc051bWJlcihsZW5ndGggLSAxKSk7CiAgICAgfQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKQEAgLTQ0NCwxMiArNDQ0LDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNSZXZlcnNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAg
ICAgaWYgKG9iajIpCiAgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGssIG9i
ajIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZp
cnR1YWwoZXhlYywgayk7CisgICAgICAgICAgICB0aGlzT2JqLT5tZXRob2RUYWJsZSgpLT5kZWxl
dGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iaiwgZXhlYywgayk7CiAKICAgICAgICAgaWYgKG9iaikK
ICAgICAgICAgICAgIHRoaXNPYmotPnB1dFZpcnR1YWwoZXhlYywgbGsxLCBvYmopOwogICAgICAg
ICBlbHNlCi0gICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywg
bGsxKTsKKyAgICAgICAgICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5
QnlJbmRleCh0aGlzT2JqLCBleGVjLCBsazEpOwogICAgIH0KICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHRoaXNPYmopOwogfQpAQCAtNDc3LDkgKzQ3Nyw5IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTaGlmdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
ICAgICAgICAgaWYgKG9iaikKICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVh
bChleGVjLCBrIC0gMSwgb2JqKTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgICAgIHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBrIC0gMSk7CisgICAg
ICAgICAgICAgICAgICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5QnlJ
bmRleCh0aGlzT2JqLCBleGVjLCBrIC0gMSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB0
aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgbGVuZ3RoIC0gMSk7CisgICAgICAg
ICAgICB0aGlzT2JqLT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09i
aiwgZXhlYywgbGVuZ3RoIC0gMSk7CiAgICAgICAgIH0KICAgICAgICAgcHV0UHJvcGVydHkoZXhl
YywgdGhpc09iaiwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIobGVuZ3Ro
IC0gMSkpOwogICAgIH0KQEAgLTYyMywxMCArNjIzLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTcGxpY2UoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAg
ICAgICAgICAgICBpZiAodikKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPnB1dFZp
cnR1YWwoZXhlYywgayArIGFkZGl0aW9uYWxBcmdzLCB2KTsKICAgICAgICAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+ZGVsZXRlUHJvcGVydHlWaXJ0
dWFsKGV4ZWMsIGsgKyBhZGRpdGlvbmFsQXJncyk7CisgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzT2JqLT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iaiwgZXhl
YywgayArIGFkZGl0aW9uYWxBcmdzKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBrID0gbGVuZ3RoOyBrID4gbGVuZ3RoIC0gZGVsZXRlQ291bnQgKyBh
ZGRpdGlvbmFsQXJnczsgLS1rKQotICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQ
cm9wZXJ0eVZpcnR1YWwoZXhlYywgayAtIDEpOworICAgICAgICAgICAgICAgICAgICB0aGlzT2Jq
LT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iaiwgZXhlYywgayAt
IDEpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKCgh
YmVnaW4pICYmIChpc0pTQXJyYXkoJmV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpc09iaikpKQpAQCAt
NjM5LDcgKzYzOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNTcGxpY2UoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgICAgICAgICBpZiAob2JqKQog
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0VmlydHVhbChleGVjLCBrICsgYWRk
aXRpb25hbEFyZ3MgLSAxLCBvYmopOwogICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgICAgICB0aGlzT2JqLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgayAr
IGFkZGl0aW9uYWxBcmdzIC0gMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5t
ZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iaiwgZXhlYywgayArIGFk
ZGl0aW9uYWxBcmdzIC0gMSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAg
ICAgICB9CkBAIC02NzIsNyArNjcyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBh
cnJheVByb3RvRnVuY1VuU2hpZnQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgICAgIGlm
ICh2KQogICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLT5wdXRWaXJ0dWFsKGV4ZWMsIGsgKyBu
ckFyZ3MgLSAxLCB2KTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg
IHRoaXNPYmotPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBrICsgbnJBcmdzIC0gMSk7Cisg
ICAgICAgICAgICAgICAgICAgIHRoaXNPYmotPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5
QnlJbmRleCh0aGlzT2JqLCBleGVjLCBrICsgbnJBcmdzIC0gMSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3Rp
dmF0aW9uLmNwcAppbmRleCA4NTMxMDgyNWMwZmI0ODE5OWUxNjFmMjMzNDFjOWE4MmFhNmMzZjFj
Li4wYzVjN2M4ZjIwZjJhNGYwMDc4YzVjNDQzMTM4NTEzMTU0OTYzZDZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKQEAgLTIwNSwxMSArMjA1
LDYgQEAgdm9pZCBKU0FjdGl2YXRpb246OnB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHkKICAgICBKU09iamVjdDo6cHV0V2l0aEF0dHJp
YnV0ZXMoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgYXR0cmlidXRlcywgdHJ1ZSwgc2xvdCk7
CiB9CiAKLWJvb2wgSlNBY3RpdmF0aW9uOjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIGRl
bGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci19Ci0KIGJvb2wgSlNBY3Rp
dmF0aW9uOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKaW5kZXggZDQ0YjJiNjA2ZGQxODgyNmU3NGVmZGRlMDRl
YTY0ZDcwODU0YzdlNS4uY2E1ODBkOWUyNGNmNWVmYjZiNzJhZmJhMGU1MWFjZmE5MjIwMjJhYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKQEAgLTY5
LDcgKzY5LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlT
bG90Jik7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKLSAg
ICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQ
cm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpOwogCiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUq
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXgg
MzIxNDFmODA5ZmJlNTIyNTQwYzYxNTlkMWYzZmE3ZDhjZTZiMmQ5ZS4uYTU4ZWVmMGRiMTdkYzM4
ZGZjNTM0Y2JhOTliZGNkNjMzMDBmMzg3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5jcHAKQEAgLTUwNywxOCArNTA3LDEzIEBAIE5FVkVSX0lOTElORSB2b2lkIEpT
QXJyYXk6OnB1dFNsb3dDYXNlKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2
YWx1CiAgICAgSGVhcDo6aGVhcCh0aGlzKS0+cmVwb3J0RXh0cmFNZW1vcnlDb3N0KHN0b3JhZ2VT
aXplKG5ld1ZlY3Rvckxlbmd0aCkgLSBzdG9yYWdlU2l6ZSh2ZWN0b3JMZW5ndGgpKTsKIH0KIAot
Ym9vbCBKU0FycmF5OjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci19Ci0KIGJvb2wgSlNBcnJheTo6ZGVsZXRlUHJv
cGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSkKIHsKICAgICBKU0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNB
cnJheSo+KGNlbGwpOwogICAgIGJvb2wgaXNBcnJheUluZGV4OwogICAgIHVuc2lnbmVkIGkgPSBw
cm9wZXJ0eU5hbWUudG9BcnJheUluZGV4KGlzQXJyYXlJbmRleCk7CiAgICAgaWYgKGlzQXJyYXlJ
bmRleCkKLSAgICAgICAgcmV0dXJuIHRoaXNPYmplY3QtPmRlbGV0ZVByb3BlcnR5VmlydHVhbChl
eGVjLCBpKTsKKyAgICAgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmRlbGV0
ZVByb3BlcnR5QnlJbmRleCh0aGlzT2JqZWN0LCBleGVjLCBpKTsKIAogICAgIGlmIChwcm9wZXJ0
eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtNTI2LDExICs1MjEsNiBAQCBib29sIEpTQXJyYXk6OmRlbGV0ZVByb3BlcnR5KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcgogICAgIHJl
dHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lKTsKIH0KIAotYm9vbCBKU0FycmF5OjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBpKQotewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eUJ5SW5kZXgo
dGhpcywgZXhlYywgaSk7Ci19Ci0KIGJvb2wgSlNBcnJheTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpKQogewogICAgIEpTQXJy
YXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0FycmF5Kj4oY2VsbCk7CkBAIC01NjQsNyAr
NTU0LDcgQEAgYm9vbCBKU0FycmF5OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGkpCiAgICAgdGhpc09iamVjdC0+Y2hlY2tDb25z
aXN0ZW5jeSgpOwogCiAgICAgaWYgKGkgPiBNQVhfQVJSQVlfSU5ERVgpCi0gICAgICAgIHJldHVy
biB0aGlzT2JqZWN0LT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgSWRlbnRpZmllcjo6ZnJv
bShleGVjLCBpKSk7CisgICAgICAgIHJldHVybiB0aGlzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5k
ZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LCBleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkp
KTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuaAppbmRleCA2YjVmYmM2ZTBjYjFiN2Y4Y2ZhNTM0N2ZkNGI5ZThiN2E5ZGNiYzIzLi4w
ZmM0ZDQ1MDE0Yjk1Y2FiNTk2M2QxODlmYzYyMDI0NTQ0MzhkOGYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCkBAIC0xNzQsOSArMTc0LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCi0gICAgICAgIHZp
cnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHko
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKLSAg
ICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eUJ5
SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlO
YW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRp
ZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAppbmRleCAxNTI4
MzVmM2M5MGM5OTcyOWRiMzc3OTk1OTY4MTBiM2RkNTQ4YWI3Li5mMmQ3YTc4ZDE3N2E0MmJhNGQ3
ZDhkOGY1MzM5MWE0MzhkYmE0ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbC5jcHAKQEAgLTExOCwyNCArMTE4LDE2IEBAIHZvaWQgSlNDZWxsOjpwdXRCeUluZGV4KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBKU1ZhCiAg
ICAgY2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0
VmlydHVhbChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSk7CiB9CiAKLWJvb2wgSlNDZWxsOjpkZWxl
dGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dGlmaWVyKQotewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBpZGVudGlm
aWVyKTsKLX0KLQogYm9vbCBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQogewotICAgIHJldHVy
biBjZWxsLT50b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5kZWxl
dGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgaWRlbnRpZmllcik7Ci19Ci0KLWJvb2wgSlNDZWxsOjpk
ZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVy
KQotewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpcywgZXhlYywgaWRlbnRp
Zmllcik7CisgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBjZWxsLT50b09iamVjdChleGVjLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpOworICAgIHJldHVybiB0aGlzT2JqZWN0LT5tZXRo
b2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LCBleGVjLCBpZGVudGlmaWVyKTsK
IH0KIAogYm9vbCBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gY2VsbC0+
dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+ZGVsZXRlUHJvcGVy
dHlWaXJ0dWFsKGV4ZWMsIGlkZW50aWZpZXIpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqZWN0ID0g
Y2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICBy
ZXR1cm4gdGhpc09iamVjdC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRo
aXNPYmplY3QsIGV4ZWMsIGlkZW50aWZpZXIpOwogfQogCiBKU09iamVjdCogSlNDZWxsOjp0b1Ro
aXNPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGwuaAppbmRleCBlYTBlZGRjOWFiZDIzMDM4ZDMyNjRkODU1MzdiZTcwZDhlODZkMDcy
Li5jZGIxNmZlZmUwNzRjZmRmNzc2MWUxYzAxYTNiYjAyODU4YWYzMzI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAtOTQsOSArOTQsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChK
U0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAg
ICAgICAKLSAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBzdGF0aWMgYm9v
bCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFs
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHN0YXRpYyBib29s
IGRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUpOwogCiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVj
U3RhdGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5jcHAKaW5kZXggMzgzYjk1M2UwMDlhODllMWMzMDAxNzhiMThiNmE4ODU0NTY3MThhYS4uMzNi
NDBhNDcxNDlkZDU0YzMyN2U2M2Q1NDI3ZDI2YmQ5MjNiMTBhNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTM0NywxMSArMzQ3LDYgQEAgdm9p
ZCBKU0Z1bmN0aW9uOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmEKICAgICBCYXNlOjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKLWJvb2wgSlNGdW5jdGlvbjo6ZGVsZXRlUHJv
cGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKQotewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUpOwotfQotCiBib29sIEpTRnVuY3Rpb246OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAg
SlNGdW5jdGlvbiogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTRnVuY3Rpb24qPihjZWxsKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCBmODVhYTM4
MGRjYzE0MzZkNzQxMzllN2U2ZmQzMjRiZTk1MjMwY2M5Li41ZDRiNDYxMTA4MzBlODUyYjdlYmVh
ZWFhZmY1OGFlNjhkNTY2MzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5oCkBAIC0xMzcsNyArMTM3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lk
IHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBkZWxl
dGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKTsKICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKIAogICAgICAgICBzdGF0aWMg
dm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCmluZGV4IGU5ZDQ1ZDUxMjFi
NmE5ZWJhOWFhN2Y3NmRkMzdiMDFkYjY2ZjlhODcuLmJjNGQ4YTZjMWI2NzU2NzhmMjFiYjNlZGIz
N2YzMDUwOTIwZjgxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Tm90QW5PYmplY3QuY3BwCkBAIC05NCwyMiArOTQsMTIgQEAgdm9pZCBKU05vdEFuT2JqZWN0Ojpw
dXRCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQsIEpTVmFsdWUpCiAg
ICAgQVNTRVJUX1VOVVNFRChleGVjLCBleGVjLT5oYWRFeGNlcHRpb24oKSk7CiB9CiAKLWJvb2wg
SlNOb3RBbk9iamVjdDo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0
eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwotfQotCiBib29sIEpTTm90QW5PYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYp
CiB7CiAgICAgQVNTRVJUX1VOVVNFRChleGVjLCBleGVjLT5oYWRFeGNlcHRpb24oKSk7CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEpTTm90QW5PYmplY3Q6OmRlbGV0ZVByb3BlcnR5Vmly
dHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1
cm4gZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci19Ci0K
IGJvb2wgSlNOb3RBbk9iamVjdDo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCosIEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChleGVjLCBleGVjLT5o
YWRFeGNlcHRpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFu
T2JqZWN0LmgKaW5kZXggOGQ1ZTdiYzQ5MWYzMDE1OWEyYTc3ODAyODMxOGNlOGI4MGNjNjNmZi4u
NGM1OWZkNDRjZDQ4MWUyMDkzYjAzNzk1NmQ0ZDZiNDVlYmU0MTU5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtODAsOSArODAsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgc3RhdGljIHZvaWQg
cHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3RhdGlj
IGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5Vmly
dHVhbChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBzdGF0aWMg
Ym9vbCBkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0g
RXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IDdjNTlhZWZjZTEwZjNjZGU2YjdmY2M2NGVlMTUzNTI3
YTYzZDdjMjguLmVkYjdhMTQzOTBlMmEwN2I1NDY0NDRmZWEyYmNkZWE3YmRkNDMxMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC03MTAsNyAr
NzEwLDcgQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0
ZXJlZCkKICAgICAgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IGFycmF5U3RhY2sucGVlaygp
OwogICAgICAgICAgICAgICAgIEpTVmFsdWUgZmlsdGVyZWRWYWx1ZSA9IGNhbGxSZXZpdmVyKGFy
cmF5LCBqc1N0cmluZyhtX2V4ZWMsIFVTdHJpbmc6Om51bWJlcihpbmRleFN0YWNrLmxhc3QoKSkp
LCBvdXRWYWx1ZSk7CiAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcmVkVmFsdWUuaXNVbmRlZmlu
ZWQoKSkKLSAgICAgICAgICAgICAgICAgICAgYXJyYXktPmRlbGV0ZVByb3BlcnR5VmlydHVhbCht
X2V4ZWMsIGluZGV4U3RhY2subGFzdCgpKTsKKyAgICAgICAgICAgICAgICAgICAgYXJyYXktPm1l
dGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5QnlJbmRleChhcnJheSwgbV9leGVjLCBpbmRleFN0
YWNrLmxhc3QoKSk7CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmIChpc0pTQXJyYXkoJm1fZXhlYy0+Z2xvYmFsRGF0YSgpLCBhcnJheSkgJiYgYXJyYXktPmNh
blNldEluZGV4KGluZGV4U3RhY2subGFzdCgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGFy
cmF5LT5zZXRJbmRleChtX2V4ZWMtPmdsb2JhbERhdGEoKSwgaW5kZXhTdGFjay5sYXN0KCksIGZp
bHRlcmVkVmFsdWUpOwpAQCAtNzc3LDcgKzc3Nyw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdh
bGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgICAgICAgICAgICAgUHV0UHJvcGVy
dHlTbG90IHNsb3Q7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBmaWx0ZXJlZFZhbHVlID0gY2Fs
bFJldml2ZXIob2JqZWN0LCBqc1N0cmluZyhtX2V4ZWMsIHByb3AudXN0cmluZygpKSwgb3V0VmFs
dWUpOwogICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJlZFZhbHVlLmlzVW5kZWZpbmVkKCkpCi0g
ICAgICAgICAgICAgICAgICAgIG9iamVjdC0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKG1fZXhlYywg
cHJvcCk7CisgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRl
UHJvcGVydHkob2JqZWN0LCBtX2V4ZWMsIHByb3ApOwogICAgICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICAgICAgb2JqZWN0LT5wdXRWaXJ0dWFsKG1fZXhlYywgcHJvcCwgZmlsdGVy
ZWRWYWx1ZSwgc2xvdCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fZXhlYy0+aGFkRXhjZXB0aW9u
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggYzY5
MDkzOTFmODY3NjdkMTAwNzU0NDJhNGExMWRjN2ZjZWUzZmE3Zi4uNmE3YmJjZGM3YTk0NDAwZmUw
OGMyNTYyMmU5YWE5MmQ1NmUzYTAxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcApAQCAtMjU4LDExICsyNTgsNiBAQCBib29sIEpTT2JqZWN0OjpoYXNQcm9w
ZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkgY29uc3QKICAgICBy
ZXR1cm4gY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHlW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQot
ewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwot
fQotCiAvLyBFQ01BIDguNi4yLjUKIGJvb2wgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUp
CiB7CkBAIC0yOTUsMTQgKzI5MCwxMCBAQCBib29sIEpTT2JqZWN0OjpoYXNPd25Qcm9wZXJ0eShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkgYwogICAgIHJl
dHVybiBjb25zdF9jYXN0PEpTT2JqZWN0Kj4odGhpcyktPmdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBKU09iamVjdDo6ZGVsZXRl
UHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lKQot
ewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lKTsKLX0KLQogYm9vbCBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2VsbCktPmRlbGV0ZVByb3BlcnR5VmlydHVhbChl
eGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSkpOworICAgIEpTT2JqZWN0
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihjZWxsKTsKKyAgICByZXR1cm4g
dGhpc09iamVjdC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZXhl
YywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpKTsKIH0KIAogc3RhdGljIEFM
V0FZU19JTkxJTkUgSlNWYWx1ZSBjYWxsRGVmYXVsdFZhbHVlRnVuY3Rpb24oRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBKU09iamVjdCogb2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpCkBAIC03OTgsNyArNzg5LDcgQEAgYm9vbCBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHko
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUKICAgICAvLyBB
IGdlbmVyaWMgZGVzY3JpcHRvciBpcyBzaW1wbHkgY2hhbmdpbmcgdGhlIGF0dHJpYnV0ZXMgb2Yg
YW4gZXhpc3RpbmcgcHJvcGVydHkKICAgICBpZiAoZGVzY3JpcHRvci5pc0dlbmVyaWNEZXNjcmlw
dG9yKCkpIHsKICAgICAgICAgaWYgKCFjdXJyZW50LmF0dHJpYnV0ZXNFcXVhbChkZXNjcmlwdG9y
KSkgewotICAgICAgICAgICAgZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFt
ZSk7CisgICAgICAgICAgICBtZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVj
LCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICAgICAgcHV0RGVzY3JpcHRvcihleGVjLCB0aGlzLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIGN1cnJlbnQuYXR0cmlidXRlc1dpdGhPdmVycmlkZShk
ZXNjcmlwdG9yKSwgY3VycmVudCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CkBA
IC04MTEsNyArODAyLDcgQEAgYm9vbCBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUKICAgICAgICAgICAgICAg
ICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiQXR0ZW1wdGluZyB0byBj
aGFuZ2UgYWNjZXNzIG1lY2hhbmlzbSBmb3IgYW4gdW5jb25maWd1cmFibGUgcHJvcGVydHkuIikp
OwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgICAgIGRlbGV0ZVBy
b3BlcnR5VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICBtZXRob2RUYWJsZSgp
LT5kZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICByZXR1
cm4gcHV0RGVzY3JpcHRvcihleGVjLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIGN1
cnJlbnQuYXR0cmlidXRlc1dpdGhPdmVycmlkZShkZXNjcmlwdG9yKSwgY3VycmVudCk7CiAgICAg
fQogCkBAIC04MzksNyArODMwLDcgQEAgYm9vbCBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHko
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQotICAgICAgICBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lKTsKKyAg
ICAgICAgbWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lKTsKICAgICAgICAgcmV0dXJuIHB1dERlc2NyaXB0b3IoZXhlYywgdGhpcywgcHJvcGVydHlO
YW1lLCBkZXNjcmlwdG9yLCBjdXJyZW50LmF0dHJpYnV0ZXNXaXRoT3ZlcnJpZGUoZGVzY3JpcHRv
ciksIGN1cnJlbnQpOwogICAgIH0KIApAQCAtODY4LDcgKzg1OSw3IEBAIGJvb2wgSlNPYmplY3Q6
OmRlZmluZU93blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lCiAgICAgICAgICAgICBnZXR0ZXJTZXR0ZXItPnNldEdldHRlcihleGVjLT5nbG9i
YWxEYXRhKCksIGFzT2JqZWN0KGRlc2NyaXB0b3IuZ2V0dGVyKCkpKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQotICAgIGRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBwcm9wZXJ0eU5h
bWUpOworICAgIG1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSk7CiAgICAgdW5zaWduZWQgYXR0cnMgPSBjdXJyZW50LmF0dHJpYnV0ZXNXaXRoT3Zl
cnJpZGUoZGVzY3JpcHRvcik7CiAgICAgaWYgKGRlc2NyaXB0b3Iuc2V0dGVyKCkpCiAgICAgICAg
IGF0dHJzIHw9IFNldHRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5o
CmluZGV4IDFjMjg4NTdiZmVkZDEzNTUzMzljMWFhOTI4NDUyMDliZjVkNjUzNzAuLmQwODNlNjEz
NGNiMjQxZjQ4MjEzMjg1ZTZjNmUyNzdkNDc4Y2M3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTIzLDkgKzEyMyw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBib29sIGhhc1Byb3BlcnR5KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSkgY29uc3Q7CiAgICAgICAgIGJvb2wgaGFzT3duUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wg
ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lKTsKICAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAKICAgICAgICAgdmlydHVh
bCBKU1ZhbHVlIGRlZmF1bHRWYWx1ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBl
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFy
aWFibGVPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJs
ZU9iamVjdC5jcHAKaW5kZXggMTg0NTkwOTM5ZjM5MGYyYjAzMTQwZmZjOWU1ZGJlZTA2NDM1NmRl
Ni4uMDljODdhMTY5MmNmZTM4ZGQ2MTVjMDIyNzdkMDBiMWEzN2E2NzBkMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHAKQEAgLTM0
LDExICszNCw2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1ib29sIEpTVmFyaWFibGVPYmplY3Q6
OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lKTsKLX0KLQogYm9vbCBKU1ZhcmlhYmxlT2JqZWN0OjpkZWxldGVQcm9wZXJ0
eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKQogewogICAgIEpTVmFyaWFibGVPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2Fz
dDxKU1ZhcmlhYmxlT2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKaW5kZXggOWRlNzA5Mzc5NDkxYTIyMGU0NzFmZDZl
MjFmYjBmYWUwZTQ4NzlkMS4uMGY4NmUzNWUyOWE5NmE2YjQ4MGUwMGFkYWVmMzRjMjVkOGE1NTQ1
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmpl
Y3QuaApAQCAtNTAsNyArNTAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpT
VmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpID0gMDsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wg
ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKICAg
ICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0g
RXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaAppbmRleCA0NzAwZmM5M2Ux
ZmU1YmVmYzllMWQ0MTAxN2RlZGM5MWYzYTI5ZDEzLi42ZjU0ODUzMzUxNDIyNDYwOTA3NWZmNDA1
MjZmMTY5YjNlY2M2ZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBNYXRjaGVzQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBNYXRjaGVzQXJyYXkuaApAQCAtMTAyLDExICsxMDIsNiBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgICAgIEpTQXJyYXk6OnB1dEJ5SW5kZXgodGhpc09iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lLCB2KTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQ
cm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICB9Ci0KICAgICAgICAgc3RhdGljIGJvb2wg
ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSkKICAgICAgICAgewogICAgICAgICAgICAgUmVnRXhwTWF0Y2hl
c0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UmVnRXhwTWF0Y2hlc0FycmF5Kj4oY2Vs
bCk7CkBAIC0xMTUsMTEgKzExMCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0
dXJuIEpTQXJyYXk6OmRlbGV0ZVByb3BlcnR5KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFt
ZSk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0
dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lKQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSk7Ci0gICAgICAgIH0KLQogICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0
eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSkKICAgICAgICAgewogICAgICAgICAgICAgUmVnRXhwTWF0Y2hlc0FycmF5KiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8UmVnRXhwTWF0Y2hlc0FycmF5Kj4oY2VsbCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAK
aW5kZXggMjhmYzM2NWZlNTE3ZDFjNDQ1NGRiZGViMGE2ZjZlMzZhZmY4MzU2My4uY2U5ZGU1YTZm
ZTU4NTU0ZjE4MmJiOGI3MzdjNGUzODNjZGZkYWIzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcApAQCAtMzUsMTEg
KzM1LDYgQEAgU3RyaWN0RXZhbEFjdGl2YXRpb246OlN0cmljdEV2YWxBY3RpdmF0aW9uKEV4ZWNT
dGF0ZSogZXhlYykKIHsKIH0KIAotYm9vbCBTdHJpY3RFdmFsQWN0aXZhdGlvbjo6ZGVsZXRlUHJv
cGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmll
cikKLXsKLSAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgaWRlbnRpZmllcik7
Ci19Ci0KIGJvb2wgU3RyaWN0RXZhbEFjdGl2YXRpb246OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKQogewogICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0
aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlv
bi5oCmluZGV4IGM5YTM0OWNmNmJjOTkzNDM1ZjJhODE4MTdkZTIxNmZiNWVhMWI0OTMuLjA5NzQ0
NjhjNjRjYWU4YjQ3ZjJlNDY3OWNlZWJjZWIzZmQxN2NmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaApAQCAtNDEsNyAr
NDEsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhY3RpdmF0aW9uOwogICAgIH0KIAotICAg
IHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYpOwogICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNP
YmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdPYmplY3QuY3BwCmluZGV4IDY3NTA0Y2EwZmY3Zjc2YWY5NWU1ZmEwMDBjYTk1
MjRiZTI2YzM1YTMuLmNmYzU5YzkyNjc5MGM3NjRlNjcxN2FmNjhkNWNiZjhhN2U0ODQyNTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApAQCAt
ODYsMTEgKzg2LDYgQEAgdm9pZCBTdHJpbmdPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHkKICAgICBKU09iamVjdDo6cHV0
KGNlbGwsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCi1ib29sIFN0cmlu
Z09iamVjdDo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUpOwotfQotCiBib29sIFN0cmluZ09iamVjdDo6ZGVsZXRlUHJv
cGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSkKIHsKICAgICBTdHJpbmdPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2Fz
dDxTdHJpbmdPYmplY3QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nT2JqZWN0LmgKaW5kZXggNDFkNTNhMTI2YjA1MDEyYjgyMzg5ODExNmU1NmJjMTY4ZmYw
ZGRkYi4uNGU1YjlkYjEzNTkzZTZhOGZhN2M5ODI5N2VjM2YyOTU2MGIxZGIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKQEAgLTU0LDcgKzU0LDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYp
OwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3RhdGljIGJvb2wg
ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhl
Y1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1
ZGVEb250RW51bVByb3BlcnRpZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDAwZjEyMjY2
NDI0ZDUzNGUwY2I1YzQ2ZjgwMzgxYTFkYzQyODUyNTQuLjA4ZDRlM2Q4MjdhNDlkM2NhZTU2ZjVk
OTEzMGZkZWU5NTkwNGY1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNzA0LDcgKzE3MDQs
NiBAQCBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE0ZmluaXNoQ3JlYXRpb25FUE5T
XzE0SlNHbG9iYWxPYmplY3RFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE2Z2V0
Q29uc3RydWN0RGF0YUVQTlNfNkpTQ2VsbEVSTlNfMTNDb25zdHJ1Y3REYXRhRQogX19aTjNKU0M4
QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfNkpTQ2VsbEVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pO
M0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4
ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKLV9f
Wk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MjFkZWxldGVQcm9wZXJ0eVZpcnR1YWxFUE5T
XzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGlt
ZU9iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJ
ZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKIF9fWk4zSlNDOEJpbmRpbmdzMTNS
dW50aW1lT2JqZWN0MjVnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNS
dW50aW1lT2JqZWN0M3B1dEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRp
ZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5jcHAKaW5kZXggZGMyNTE2
OTEyNDI0NWNhMjA4ZTJmYjkwNmZkNjljNTQ5YzNhYjg2MC4uYWEyOWMzOWU5MDU2NThlYTc3MGJj
NDliNTJkYTA3ZWFmNTQwMDBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01TdHJpbmdNYXBDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NU3RyaW5nTWFwQ3VzdG9tLmNwcApAQCAtNTcsMTMgKzU3LDE0IEBAIHZvaWQgSlNE
T01TdHJpbmdNYXA6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWVBcnJheSYgcHJvCiAgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9w
ZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotYm9vbCBKU0RPTVN0cmluZ01hcDo6ZGVsZXRlUHJvcGVy
dHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KQorYm9vbCBKU0RPTVN0cmluZ01hcDo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKKyAgICBKU0RP
TVN0cmluZ01hcCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NU3RyaW5nTWFwKj4oY2Vs
bCk7CiAgICAgQXRvbWljU3RyaW5nIHN0cmluZ05hbWUgPSBpZGVudGlmaWVyVG9BdG9taWNTdHJp
bmcocHJvcGVydHlOYW1lKTsKLSAgICBpZiAoIW1faW1wbC0+Y29udGFpbnMoc3RyaW5nTmFtZSkp
CisgICAgaWYgKCF0aGlzT2JqZWN0LT5tX2ltcGwtPmNvbnRhaW5zKHN0cmluZ05hbWUpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgbV9pbXBs
LT5kZWxldGVJdGVtKHN0cmluZ05hbWUsIGVjKTsKKyAgICB0aGlzT2JqZWN0LT5tX2ltcGwtPmRl
bGV0ZUl0ZW0oc3RyaW5nTmFtZSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7
CiAgICAgcmV0dXJuICFlYzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCAwYWUyNDc3OGEzMjE5NjhmOWM0NTg4ZGQyZDA2NGVl
N2I5OWVmYjYxLi45YTM5MjQ5NjJlOThiMGQ3ZWQwNDkwNjk4MGE0MWI5N2Y2NDQ4OTBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBA
IC0zNjksMTIgKzM2OSwxMyBAQCB2b2lkIEpTRE9NV2luZG93OjpwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TgogICAgICAgICBCYXNl
OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAK
LWJvb2wgSlNET01XaW5kb3c6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKK2Jvb2wgSlNET01XaW5kb3c6OmRlbGV0
ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUpCiB7CisgICAgSlNET01XaW5kb3cqIHRoaXNPYmplY3QgPSBzdGF0aWNf
Y2FzdDxKU0RPTVdpbmRvdyo+KGNlbGwpOwogICAgIC8vIE9ubHkgYWxsb3cgZGVsZXRpbmcgcHJv
cGVydGllcyBieSBmcmFtZXMgaW4gdGhlIHNhbWUgb3JpZ2luLgotICAgIGlmICghYWxsb3dzQWNj
ZXNzRnJvbShleGVjKSkKKyAgICBpZiAoIXRoaXNPYmplY3QtPmFsbG93c0FjY2Vzc0Zyb20oZXhl
YykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVy
dHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJv
cGVydHkodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lKTsKIH0KIAogdm9pZCBKU0RPTVdp
bmRvdzo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5
JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggZTNkMzMzY2MzMGNkODM5
MzdjMWJjNDRmMDE3ZTE1NWRiMTllYmVhMS4uOGVlZmNjZTUxYWNmY2M3MjNkNmQxZmE0N2QzYjZh
OThhMTE1Mjk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dTaGVsbC5jcHAKQEAgLTEzNSw5ICsxMzUsMTAgQEAgYm9vbCBKU0RPTVdpbmRvd1NoZWxsOjpk
ZWZpbmVPd25Qcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpJZGVudGkK
ICAgICByZXR1cm4gbV93aW5kb3ctPmRlZmluZU93blByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCi1ib29sIEpTRE9NV2luZG93U2hlbGw6
OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSkKK2Jvb2wgSlNET01XaW5kb3dTaGVsbDo6ZGVsZXRlUHJvcGVydHkoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSkKIHsKLSAgICByZXR1cm4gbV93aW5kb3ctPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBw
cm9wZXJ0eU5hbWUpOworICAgIEpTRE9NV2luZG93U2hlbGwqIHRoaXNPYmplY3QgPSBzdGF0aWNf
Y2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4oY2VsbCk7CisgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1f
d2luZG93LT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LT5tX3dpbmRv
dy5nZXQoKSwgZXhlYywgcHJvcGVydHlOYW1lKTsKIH0KIAogdm9pZCBKU0RPTVdpbmRvd1NoZWxs
OjpnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHBy
b3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4IDBkNjkyMTYwMjY1MGRkM2Q4NTQxOGE5
MTBkYzQ3Y2M4Y2IwYmNlYTQuLjIzY2VhODMwOTI1Yjg2MzNlNWE2YTBiMTM1N2I4NjY1YTFjNTdi
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hl
bGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgK
QEAgLTg2LDcgKzg2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1
ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9w
ZXJ0eVZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSk7CisgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQzo6SlNDZWxs
KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYsIEpTQzo6RW51bWVyYXRpb25Nb2RlIG1vZGUgPSBKU0M6
OkV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBK
U0M6OkVudW1lcmF0aW9uTW9kZSBtb2RlID0gSlNDOjpFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVz
KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0KiBnZXR0ZXJG
dW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcAppbmRleCBiZTI2YjdiNDlhOWNhNjMwN2YzMDU4Y2Fh
Y2Y3Y2Y3MWM4NDY1MWU4Li5kN2ZkYzAwMWQwMTA5YjI4NDVjYzMzY2NmMzM3M2E2ODE5ZjYzMDZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHAK
QEAgLTE0NiwxMiArMTQ2LDEzIEBAIGJvb2wgSlNIaXN0b3J5OjpwdXREZWxlZ2F0ZShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1ib29sIEpTSGlzdG9yeTo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorYm9vbCBKU0hpc3Rv
cnk6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CisgICAgSlNIaXN0b3J5KiB0aGlzT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8SlNIaXN0b3J5Kj4oY2VsbCk7CiAgICAgLy8gT25seSBhbGxvdyBkZWxldGlu
ZyBieSBmcmFtZXMgaW4gdGhlIHNhbWUgb3JpZ2luLgotICAgIGlmICghYWxsb3dzQWNjZXNzRnJv
bUZyYW1lKGV4ZWMsIGltcGwoKS0+ZnJhbWUoKSkpCisgICAgaWYgKCFhbGxvd3NBY2Nlc3NGcm9t
RnJhbWUoZXhlYywgdGhpc09iamVjdC0+aW1wbCgpLT5mcmFtZSgpKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUpOworICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LCBl
eGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCiB2b2lkIEpTSGlzdG9yeTo6Z2V0T3duUHJvcGVydHlO
YW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBF
bnVtZXJhdGlvbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTG9jYXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNM
b2NhdGlvbkN1c3RvbS5jcHAKaW5kZXggODhlNWFlOTRlM2E2N2Y4OWE1ZjZkYmM4OWZiNTI3OGZi
ZWU2ODQxOC4uNzc1MDk1M2Y0ODMwZmMyYTdmMjFlOGIzYzBhMjk4ZjJiNGJhNmM3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTE1
MiwxMiArMTUyLDEzIEBAIGJvb2wgSlNMb2NhdGlvbjo6cHV0RGVsZWdhdGUoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi1ib29sIEpTTG9jYXRpb246OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKK2Jvb2wgSlNMb2NhdGlvbjo6
ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKKyAgICBKU0xvY2F0aW9uKiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8SlNMb2NhdGlvbio+KGNlbGwpOwogICAgIC8vIE9ubHkgYWxsb3cgZGVsZXRpbmcg
YnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4KLSAgICBpZiAoIWFsbG93c0FjY2Vzc0Zyb21G
cmFtZShleGVjLCBpbXBsKCktPmZyYW1lKCkpKQorICAgIGlmICghYWxsb3dzQWNjZXNzRnJvbUZy
YW1lKGV4ZWMsIHRoaXNPYmplY3QtPmltcGwoKS0+ZnJhbWUoKSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lKTsKKyAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZXhl
YywgcHJvcGVydHlOYW1lKTsKIH0KIAogdm9pZCBKU0xvY2F0aW9uOjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVu
dW1lcmF0aW9uTW9kZSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNTdG9yYWdlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3Rv
cmFnZUN1c3RvbS5jcHAKaW5kZXggZWUyNjZmOTAxY2FhNTg1MTM5N2JmYzBhYzg0NGI4YjE0YTA5
NWQ5Zi4uYTI2ZjRmMjRhNmE4NjExM2Y0MzBlZTNhNTRlMmY1NjYyNzE4NTY2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwCkBAIC00NSwyMCAr
NDUsMjEgQEAgSlNWYWx1ZSBKU1N0b3JhZ2U6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWUKICAgICByZXR1cm4ganNTdHJpbmdPck51
bGwoZXhlYywgdGhpc09iai0+aW1wbCgpLT5nZXRJdGVtKGlkZW50aWZpZXJUb1N0cmluZyhwcm9w
ZXJ0eU5hbWUpKSk7CiB9CiAKLWJvb2wgSlNTdG9yYWdlOjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCitib29sIEpT
U3RvcmFnZTo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKKyAgICBKU1N0b3JhZ2UqIHRoaXNPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxKU1N0b3JhZ2UqPihjZWxsKTsKICAgICAvLyBPbmx5IHBlcmZvcm0g
dGhlIGN1c3RvbSBkZWxldGUgaWYgdGhlIG9iamVjdCBkb2Vzbid0IGhhdmUgYSBuYXRpdmUgcHJv
cGVydHkgYnkgdGhpcyBuYW1lLgogICAgIC8vIFNpbmNlIGhhc1Byb3BlcnR5KCkgd291bGQgZW5k
IHVwIGNhbGxpbmcgY2FuR2V0SXRlbXNGb3JOYW1lKCkgYW5kIGJlIGZvb2xlZCwgd2UgbmVlZCB0
byBjaGVjawogICAgIC8vIHRoZSBuYXRpdmUgcHJvcGVydHkgc2xvdHMgbWFudWFsbHkuCiAgICAg
UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgaWYgKGdldFN0YXRpY1ZhbHVlU2xvdDxKU1N0b3JhZ2Us
IEJhc2U+KGV4ZWMsIHNfaW5mby5wcm9wSGFzaFRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpKQorICAgIGlmIChnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNTdG9yYWdlLCBCYXNlPihl
eGVjLCBzX2luZm8ucHJvcEhhc2hUYWJsZShleGVjKSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1l
LCBzbG90KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKLSAgICBKU1ZhbHVlIHBy
b3RvdHlwZSA9IHRoaXMtPnByb3RvdHlwZSgpOworICAgIEpTVmFsdWUgcHJvdG90eXBlID0gdGhp
c09iamVjdC0+cHJvdG90eXBlKCk7CiAgICAgaWYgKHByb3RvdHlwZS5pc09iamVjdCgpICYmIGFz
T2JqZWN0KHByb3RvdHlwZSktPmhhc1Byb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1faW1wbC0+cmVtb3ZlSXRlbShpZGVudGlmaWVyVG9T
dHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgdGhpc09iamVjdC0+bV9pbXBsLT5yZW1vdmVJdGVt
KGlkZW50aWZpZXJUb1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5jcHAKaW5kZXggNjI1
N2Y2NTUyYzRjMjA0ZmYxN2NjZWNhYjc5ZDdmNmQyYmQxY2UwNS4uNjc2MGU0N2JmOTMyMjYyNjlj
ZjM5ZWUwYzc0ZmJiMTM1NjI3ZGI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRPYmplY3QuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgYm9vbCBTY3JpcHRHbG9iYWxPYmpl
Y3Q6OmdldChTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUsIGNvbnN0IGNoYXIqIG5hbWUsIFNjcmlw
dE8KIGJvb2wgU2NyaXB0R2xvYmFsT2JqZWN0OjpyZW1vdmUoU2NyaXB0U3RhdGUqIHNjcmlwdFN0
YXRlLCBjb25zdCBjaGFyKiBuYW1lKQogewogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRp
b25zT25seSk7Ci0gICAgc2NyaXB0U3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZGVsZXRl
UHJvcGVydHlWaXJ0dWFsKHNjcmlwdFN0YXRlLCBJZGVudGlmaWVyKHNjcmlwdFN0YXRlLCBuYW1l
KSk7CisgICAgc2NyaXB0U3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+bWV0aG9kVGFibGUo
KS0+ZGVsZXRlUHJvcGVydHkoc2NyaXB0U3RhdGUtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgc2Ny
aXB0U3RhdGUsIElkZW50aWZpZXIoc2NyaXB0U3RhdGUsIG5hbWUpKTsKICAgICByZXR1cm4gaGFu
ZGxlRXhjZXB0aW9uKHNjcmlwdFN0YXRlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQppbmRleCA1OTEwZTM1NmRkYmY5MzgyMjkyMTc1
NTkxODg2YTQ1MWM1OWZlODdlLi41OGNhMTg3YjVjMGI1YzFjNmZjZTE0YmUwOGYxODlkZGNkNzg0
YmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9i
amVjdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVj
dC5tbQpAQCAtNDAzLDcgKzQwMyw3IEBAIHN0YXRpYyB2b2lkIGdldExpc3RGcm9tTlNBcnJheShF
eGVjU3RhdGUgKmV4ZWMsIE5TQXJyYXkgKmFycmF5LCBSb290T2JqZWN0KiByb290CiAgICAgQVNT
RVJUKCFleGVjLT5oYWRFeGNlcHRpb24oKSk7CiAKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNz
ZXJ0aW9uc09ubHkpOwotICAgIFtzZWxmIF9pbXBdLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhl
YywgSWRlbnRpZmllcihleGVjLCBzdHJpbmdUb1VTdHJpbmcoU3RyaW5nKGtleSkpKSk7CisgICAg
W3NlbGYgX2ltcF0tPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KFtzZWxmIF9pbXBdLCBl
eGVjLCBJZGVudGlmaWVyKGV4ZWMsIHN0cmluZ1RvVVN0cmluZyhTdHJpbmcoa2V5KSkpKTsKIAog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBhZGRFeGNlcHRpb25Ub0Nv
bnNvbGUoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCmluZGV4IGVjMWFiNGNlYTIwMzliODJjN2Q4MTlhZGI0NjFmYzBhMGRi
ODU5MWUuLmEzYjA3MmJkZGZhOThjMGI4Mzc4OWFmNjYyYmU0MDBkNWU4ZDkxZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBA
IC04MjIsNyArODIyLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBzdGF0aWMgSlNDOjpDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0M6OkpTQ2VsbCos
IEpTQzo6Q2FsbERhdGEmKTtcblxuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ3VzdG9tQ2FsbCJ9OwogCiAgICAgIyBDdXN0b20gZGVsZXRlUHJvcGVydHkgZnVuY3Rpb24K
LSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0
eVZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTtcbiIpIGlm
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbURlbGV0ZVByb3BlcnR5In07
CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0
eShKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7
XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21EZWxldGVQcm9w
ZXJ0eSJ9OwogCiAgICAgIyBDdXN0b20gZ2V0UHJvcGVydHlOYW1lcyBmdW5jdGlvbiBleGlzdHMg
b24gRE9NV2luZG93CiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcAppbmRleCBkNmI2ZTY5ZTliNmI2NTYyZDJh
NzYxZDhkMzc4MGU5YjA2NDc2MjhhLi4wYThlNzUxYzk2NmYzNjhmMzZhMGFhYjIwOTM2YzNhMGMz
YTA5YzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKQEAgLTM3NSw5ICsz
NzUsOSBAQCBib29sIF9OUE5fUmVtb3ZlUHJvcGVydHkoTlBQLCBOUE9iamVjdCogbywgTlBJZGVu
dGlmaWVyIHByb3BlcnR5TmFtZSkKIAogICAgICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0
aW9uc09ubHkpOwogICAgICAgICBpZiAoaS0+aXNTdHJpbmcoKSkKLSAgICAgICAgICAgIG9iai0+
aW1wLT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgaWRlbnRpZmllckZyb21OUElkZW50aWZp
ZXIoZXhlYywgaS0+c3RyaW5nKCkpKTsKKyAgICAgICAgICAgIG9iai0+aW1wLT5tZXRob2RUYWJs
ZSgpLT5kZWxldGVQcm9wZXJ0eShvYmotPmltcCwgZXhlYywgaWRlbnRpZmllckZyb21OUElkZW50
aWZpZXIoZXhlYywgaS0+c3RyaW5nKCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgb2Jq
LT5pbXAtPmRlbGV0ZVByb3BlcnR5VmlydHVhbChleGVjLCBpLT5udW1iZXIoKSk7CisgICAgICAg
ICAgICBvYmotPmltcC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHlCeUluZGV4KG9iai0+
aW1wLCBleGVjLCBpLT5udW1iZXIoKSk7CiAKICAgICAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24o
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvam5pL2puaV9qc29iamVjdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvam5pX2pz
b2JqZWN0Lm1tCmluZGV4IDBmOWI3ZjE2YTIzN2Q5OWM4ZDhjNTdmOWU2YzQ2ODMyMWYzYWRjMWMu
LjM3MzA3NDUxNmQ3NzU4MGNlMGYyNTU2NTZkMTIxOWRhNDkyN2UyODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1tCkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCBK
YXZhSlNPYmplY3Q6OnJlbW92ZU1lbWJlcihqc3RyaW5nIG1lbWJlck5hbWUpIGNvbnN0CiAKICAg
ICBFeGVjU3RhdGUqIGV4ZWMgPSByb290T2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhl
YygpOwogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0gICAgX2ltcC0+
ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXIoZXhlYywgSmF2YVN0cmluZyht
ZW1iZXJOYW1lKS5pbXBsKCkpKTsKKyAgICBfaW1wLT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9w
ZXJ0eShfaW1wLCBleGVjLCBJZGVudGlmaWVyKGV4ZWMsIEphdmFTdHJpbmcobWVtYmVyTmFtZSku
aW1wbCgpKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
b2JqY19ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUu
aAppbmRleCAxOGQ1ZTM0MjBhMzkxNTJiZDYzMWU1NDY4Yjc2NzMwNWI1NWI0ZWE2Li5kODI3NjI3
MzAxODdhYjYxM2Q3YzBlNjZiYjQ4NTZhNjhiYzUwN2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUuaApAQCAtMTI5LDcgKzEyOSw2IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERh
dGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlW
aXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAg
c3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICB2aXJ0dWFsIEpTVmFsdWUgZGVmYXVsdFZhbHVl
KEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggMmI3MTFiNDE0MDljYzgxOTcw
MTA0MzE5NmYzNzQwYTQ4ZjM4MDE0Mi4uN2Y2MzE5NjI4ZWI1ZTM5ZGNkMDEwZDk4NzdjODIwMjNk
YzNjYjllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpA
QCAtMjc0LDExICsyNzQsNiBAQCBDYWxsVHlwZSBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmdldENh
bGxEYXRhKEpTQ2VsbCogY2VsbCwgQ2FsbERhdGEmIGNhbGxEYXRhKQogICAgIHJldHVybiBDYWxs
VHlwZUhvc3Q7CiB9CiAKLWJvb2wgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpkZWxldGVQcm9wZXJ0
eVZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQot
ewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBpZGVudGlmaWVyKTsKLX0K
LQogYm9vbCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKQogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRleCBlM2I1NDBlYmQ3MjAyMTdlMGRl
Y2JiODhjOGJhNDQ1YWQ1Y2YwYzg4Li5hNzM5YTBiYzRjZmQyNzU2NWRiMzcxNGNmYzczYjcwOTMy
MzVjZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0xODEs
MjEgKzE4MSwxMSBAQCB2b2lkIFJ1bnRpbWVBcnJheTo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVgogICAgIHRoaXNPYmplY3QtPmdl
dENvbmNyZXRlQXJyYXkoKS0+c2V0VmFsdWVBdChleGVjLCBpbmRleCwgdmFsdWUpOwogfQogCi1i
b29sIFJ1bnRpbWVBcnJheTo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBkZWxldGVQcm9w
ZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwotfQotCiBib29sIFJ1bnRpbWVBcnJheTo6
ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYpCiB7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFJ1bnRpbWVBcnJheTo6ZGVsZXRlUHJvcGVy
dHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lKQotewotICAg
IHJldHVybiBkZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsK
LX0KLQogYm9vbCBSdW50aW1lQXJyYXk6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqLCBF
eGVjU3RhdGUqLCB1bnNpZ25lZCkKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBkZGJlMzdmZDNiOGVjZGQ2ZWFkODJhMTdlZTFmN2Rh
ZGJiODJjMDliLi5kYzlkNjA2ZGRkYzNiMjViYjQ5MzFkNGNlZjJhMDJiYmRjY2Q2OTdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTYwLDkgKzYwLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAgIAotICAgIHZp
cnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciAmcHJvcGVydHlOYW1lKTsKICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0Nl
bGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUpOwotICAgIHZp
cnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lKTsKICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKTsKICAgICAKICAgICB1bnNpZ25l
ZCBnZXRMZW5ndGgoKSBjb25zdCB7IHJldHVybiBnZXRDb25jcmV0ZUFycmF5KCktPmdldExlbmd0
aCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCAzMjhl
Y2JmZjhhYWM3ZmExYTUyNzE3N2EyMDg3MDEyMWQyNTcwZDRlLi45MGUxZGYwZDNiYzAwZjIxZjdm
OTZhNjQ5ZTMyMGIxOTc4N2U2YjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29i
amVjdC5jcHAKQEAgLTI0MiwxMSArMjQyLDYgQEAgdm9pZCBSdW50aW1lT2JqZWN0OjpwdXQoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnQKICAg
ICBpbnN0YW5jZS0+ZW5kKCk7CiB9CiAKLWJvb2wgUnVudGltZU9iamVjdDo6ZGVsZXRlUHJvcGVy
dHlWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KQotewotICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUp
OwotfQotCiBib29sIFJ1bnRpbWVPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImKQogewogICAgIC8vIENhbiBuZXZlciByZW1vdmUgYSBw
cm9wZXJ0eSBvZiBhIFJ1bnRpbWVPYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29i
amVjdC5oCmluZGV4IDhhMjcxOWUxODFlYzNkNWQ1YzFmNzY4MGIzMjJlY2I5NzhlNjY5MjMuLmFl
MjJhODA4MjhlZTdmYTAxMmFjNzg5NTIyZjg1NTJjNDM3ODMyNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC01MCw3ICs1MCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2
b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0dWFs
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGlj
IGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKTsKICAgICB2aXJ0dWFsIEpTVmFsdWUgZGVmYXVsdFZhbHVlKEV4ZWNT
dGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpIGNvbnN0OwogICAgIHN0YXRpYyBDYWxsVHlw
ZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBy
b3h5Lm1tCmluZGV4IDA5ZTUzOWU1NTQzMmYxMDAxODNhZjM1OTVmMmI2MjZlNGRiYjcwOTcuLmE2
N2QyNDlmOWZlMzgzYjQyOWYwNTgwYzIyYTMwMTUyM2I3MWUzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHkubW0KQEAgLTExMTMsNyArMTExMyw3IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5J
bnN0YW5jZVByb3h5OjpyZW1vdmVQcm9wZXJ0eSh1aW50MzJfdCBvYmplY3RJRCwgY29uc3QgSWRl
bnRpCiAgICAgfQogICAgIAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7
Ci0gICAgb2JqZWN0LT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lKTsK
KyAgICBvYmplY3QtPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KG9iamVjdCwgZXhlYywg
cHJvcGVydHlOYW1lKTsKICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOyAgICAKICAgICByZXR1
cm4gdHJ1ZTsKIH0KQEAgLTExNDAsNyArMTE0MCw3IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5OjpyZW1vdmVQcm9wZXJ0eSh1aW50MzJfdCBvYmplY3RJRCwgdW5zaWduZWQgcHJv
CiAgICAgfQogICAgIAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0g
ICAgb2JqZWN0LT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lKTsKKyAg
ICBvYmplY3QtPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5QnlJbmRleChvYmplY3QsIGV4
ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsgICAgCiAgICAg
cmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5kZXggZDA1OGVlNWViMGY2ZTUwZmY4
ZDk2ZTJjYzQwODcwNGM5YmE0Y2U4MS4uMzYzOGRiZmU5MjNlZThjYTI4ZGI0MGI5NjNiYTQ2MzI0
YmQ4YTgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcApAQCAtMzUxLDIxICszNTEsMTEgQEAgdm9pZCBK
U05QT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmEKICAgICByZWxlYXNlTlBWYXJpYW50VmFsdWUoJnZhcmlhbnQpOwog
fQogCi1ib29sIEpTTlBPYmplY3Q6OmRlbGV0ZVByb3BlcnR5VmlydHVhbChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gZGVsZXRl
UHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKLX0KLQogYm9vbCBKU05QT2JqZWN0
OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU05QT2Jq
ZWN0Kj4oY2VsbCktPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIG5wSWRlbnRpZmllckZyb21JZGVudGlm
aWVyKHByb3BlcnR5TmFtZSkpOwogfQogCi1ib29sIEpTTlBPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkKLXsKLSAgICBy
ZXR1cm4gZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci19
Ci0KIGJvb2wgSlNOUE9iamVjdDo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEpTTlBPYmplY3QqPihjZWxsKS0+ZGVsZXRlUHJvcGVydHkoZXhlYywgc3RhdGlj
X2Nhc3Q8TlBJZGVudGlmaWVyPihJZGVudGlmaWVyUmVwOjpnZXQocHJvcGVydHlOYW1lKSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmgKaW5kZXggNGFlMTNiYWY2MDVhMTQ4MjhkOGMyMzkwNWI3YjAyYzM5NjExZGY5
Ni4uMDQ0OTZmNWNlZjI4YTk2ODE3YmY4ZDcwN2M4M2JhMzdhNTM0NTc4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVj
dC5oCkBAIC04OCw5ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1
YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIHB1
dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKIAotICAg
IHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eVZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGJvb2wgZGVsZXRl
UHJvcGVydHkoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKTsKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHlWaXJ0
dWFsKEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKTsKICAgICBzdGF0aWMg
Ym9vbCBkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAKICAgICBib29sIGRlbGV0ZVByb3BlcnR5KEpTQzo6
RXhlY1N0YXRlKiwgTlBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAK
aW5kZXggODRjZWEwYzU0Y2E5M2FjN2FmYjQ3MDUzMGY5YmU0OTRkM2NjNzhhYy4uNjMzMzI2MjI3
M2E1OGQ2ZTQwODg2NzRjZDExOGQwMjM0OWNiNzk4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcApAQCAt
MjEzLDE0ICsyMTMsMTQgQEAgYm9vbCBOUEpTT2JqZWN0OjpyZW1vdmVQcm9wZXJ0eShOUElkZW50
aWZpZXIgcHJvcGVydHlOYW1lKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9
CiAgICAgICAgIAotICAgICAgICBtX2pzT2JqZWN0LT5kZWxldGVQcm9wZXJ0eVZpcnR1YWwoZXhl
YywgaWRlbnRpZmllcik7CisgICAgICAgIG1fanNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmRlbGV0
ZVByb3BlcnR5KG1fanNPYmplY3QuZ2V0KCksIGV4ZWMsIGlkZW50aWZpZXIpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGlmICghbV9qc09iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgaWRlbnRpZmll
clJlcC0+bnVtYmVyKCkpKSB7CiAgICAgICAgICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAgbV9qc09iamVj
dC0+ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKGV4ZWMsIGlkZW50aWZpZXJSZXAtPm51bWJlcigpKTsK
KyAgICAgICAgbV9qc09iamVjdC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHlCeUluZGV4
KG1fanNPYmplY3QuZ2V0KCksIGV4ZWMsIGlkZW50aWZpZXJSZXAtPm51bWJlcigpKTsKICAgICB9
CiAKICAgICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwo=
</data>
<flag name="review"
          id="110334"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="110508"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>