<?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>78747</bug_id>
          
          <creation_ts>2012-02-15 14:47:49 -0800</creation_ts>
          <short_desc>Add zeroLayoutUnit constant.</short_desc>
          <delta_ts>2012-02-15 20:49:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>60318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>darin</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>557579</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-02-15 14:47:49 -0800</bug_when>
    <thetext>When we switch to subpixel LayoutUnits, we can&apos;t use raw integers in places like ternary operations. This patch adds a zeroLayoutUnit constant that can be used instead of raw zeros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557599</commentid>
    <comment_count>1</comment_count>
      <attachid>127244</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-02-15 14:59:15 -0800</bug_when>
    <thetext>Created attachment 127244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557604</commentid>
    <comment_count>2</comment_count>
      <attachid>127244</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-15 15:02:56 -0800</bug_when>
    <thetext>Comment on attachment 127244
Patch

OK.  Seems you added LayoutRect::zero() in another patch.  Since this is still a typedef, Ican see how that&apos;s impossible here.  Is the plan to move to something like that?  Doesn&apos;t really matter, just curious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557607</commentid>
    <comment_count>3</comment_count>
      <attachid>127244</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-02-15 15:07:07 -0800</bug_when>
    <thetext>Comment on attachment 127244
Patch

A LayoutRect would be different, but I think you meant LayoutUnit. I think it&apos;d make sense to keep this as a constant.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557876</commentid>
    <comment_count>4</comment_count>
      <attachid>127244</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 20:49:22 -0800</bug_when>
    <thetext>Comment on attachment 127244
Patch

Clearing flags on attachment: 127244

Committed r107880: &lt;http://trac.webkit.org/changeset/107880&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557877</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-15 20:49:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127244</attachid>
            <date>2012-02-15 14:59:15 -0800</date>
            <delta_ts>2012-02-15 20:49:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78747-20120215145914.patch</filename>
            <type>text/plain</type>
            <size>40915</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzg0MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4IEBACisyMDEyLTAyLTE1ICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgemVyb0xheW91dFVu
aXQgY29uc3RhbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03ODc0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENvbnZlcnRpbmcgY2FsbCBzaXRlcyB3aGVyZSBMYXlvdXRVbml0cyBhbmQgcmF3IHplcm9z
IGFyZSBpbiB0ZXJuYXJ5IG9wZXJhdGlvbnMKKyAgICAgICAgYW5kIHRlbXBsYXRpemVkIGZ1bmN0
aW9uIGNhbGxzIChsaWtlIHN0ZDo6bWF4IGFuZCBtaW4pIHRvIHVzZSBhIG5ldyB6ZXJvTGF5b3V0
VW5pdAorICAgICAgICBjb25zdGFudCBpbnN0ZWFkIG9mIHRoZSByYXcgemVyby4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHJlbmRl
cmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6
OnBsYWNlQm94ZXNJbkJsb2NrRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZs
b3dCb3g6OmFkZEJvcmRlck91dHNldFZpc3VhbE92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6
OklubGluZUZsb3dCb3g6OnBhaW50RmlsbExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZUZsb3dCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
Rmxvd0JveDo6cGFpbnRNYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OmNv
bXB1dGVPdmVyQW5ub3RhdGlvbkFkanVzdG1lbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9MYXlv
dXRUeXBlcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpNYXJnaW5JbmZvOjpN
YXJnaW5JbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphZGp1c3RGbG9hdGlu
Z0Jsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludENvbHVtblJ1bGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpuZXh0RmxvYXRMb2dpY2FsQm90dG9t
QmVsb3cpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmdldENsZWFyRGVsdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVQcmVmZXJyZWRMb2dp
Y2FsV2lkdGhzKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEhlaWdodEZvckxpbmVDb3VudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YWRqdXN0Rm9yVW5zcGxpdHRhYmxlQ2hpbGQp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQmxvY2s6OnBhZ2luYXRpb25TdHJ1dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6cGFnZUxvZ2ljYWxPZmZzZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9j
a0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGluZUxheW91dFN0YXRlOjp1cGRh
dGVSZXBhaW50UmFuZ2VGcm9tQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjph
ZGRPdmVyZmxvd0Zyb21JbmxpbmVDaGlsZHJlbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBvc2l0aW9uRm9yUG9pbnQp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6bWluWVZpc3VhbE92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eDo6bWluWFZpc3VhbE92ZXJmbG93KToKKyAgICAgICAgKFJlbmRlckJveCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveE1vZGVsT2JqZWN0OjpvZmZzZXRMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveE1vZGVsT2JqZWN0OjpvZmZzZXRUb3ApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94
TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJGaWVsZHNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWVsZHNldDo6
cGFpbnRCb3hEZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxv
YWRDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5vZGVXaWR0aCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Rmxvd1RocmVhZDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6
OmNvbXB1dGVMb2dpY2FsV2lkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpwYWludE91dGxpbmVGb3JMaW5l
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnJlc2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6bGlzdEluZGV4QXRPZmZz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6dmVydGljYWxTY3JvbGxiYXJX
aWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTWFycXVlZTo6Y29tcHV0ZVBvc2l0aW9uKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
cmVwYWludEFmdGVyTGF5b3V0SWZOZWVkZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZTo6Y29udmVydFN0eWxlTG9naWNhbFdp
ZHRoVG9Db21wdXRlZFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpsYXlv
dXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGFibGU6OmJvcmRlcnNQYWRkaW5nQW5kU3BhY2luZ0luUm93RGlyZWN0aW9uKToK
KyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFN1YlN1cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxTdWJTdXA6OmxheW91dCk6CisKIDIwMTItMDItMTUg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBUaWxlQ2Fj
aGUgbmVlZHMgdG8gc3VwcG9ydCBzZXR0aW5nIHRoZSBjb250ZW50cyBzY2FsZQpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2aXNpb24gMTA3ODM1
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NTcsOCArNjU3LDggQEAgdm9pZCBJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVz
SW5CbG9ja0RpcgogCiAgICAgICAgICAgICAgICAgUmVuZGVyUnVieVJ1biogcnVieVJ1biA9IHRv
UmVuZGVyUnVieVJ1bihjdXJyLT5yZW5kZXJlcigpKTsKICAgICAgICAgICAgICAgICBpZiAoUmVu
ZGVyUnVieUJhc2UqIHJ1YnlCYXNlID0gcnVieVJ1bi0+cnVieUJhc2UoKSkgewotICAgICAgICAg
ICAgICAgICAgICBMYXlvdXRVbml0IGJvdHRvbVJ1YnlCYXNlTGVhZGluZyA9IChjdXJyLT5sb2dp
Y2FsSGVpZ2h0KCkgLSBydWJ5QmFzZS0+bG9naWNhbEJvdHRvbSgpKSArIHJ1YnlCYXNlLT5sb2dp
Y2FsSGVpZ2h0KCkgLSAocnVieUJhc2UtPmxhc3RSb290Qm94KCkgPyBydWJ5QmFzZS0+bGFzdFJv
b3RCb3goKS0+bGluZUJvdHRvbSgpIDogMCk7Ci0gICAgICAgICAgICAgICAgICAgIExheW91dFVu
aXQgdG9wUnVieUJhc2VMZWFkaW5nID0gcnVieUJhc2UtPmxvZ2ljYWxUb3AoKSArIChydWJ5QmFz
ZS0+Zmlyc3RSb290Qm94KCkgPyBydWJ5QmFzZS0+Zmlyc3RSb290Qm94KCktPmxpbmVUb3AoKSA6
IDApOworICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IGJvdHRvbVJ1YnlCYXNlTGVhZGlu
ZyA9IChjdXJyLT5sb2dpY2FsSGVpZ2h0KCkgLSBydWJ5QmFzZS0+bG9naWNhbEJvdHRvbSgpKSAr
IHJ1YnlCYXNlLT5sb2dpY2FsSGVpZ2h0KCkgLSAocnVieUJhc2UtPmxhc3RSb290Qm94KCkgPyBy
dWJ5QmFzZS0+bGFzdFJvb3RCb3goKS0+bGluZUJvdHRvbSgpIDogemVyb0xheW91dFVuaXQpOwor
ICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IHRvcFJ1YnlCYXNlTGVhZGluZyA9IHJ1YnlC
YXNlLT5sb2dpY2FsVG9wKCkgKyAocnVieUJhc2UtPmZpcnN0Um9vdEJveCgpID8gcnVieUJhc2Ut
PmZpcnN0Um9vdEJveCgpLT5saW5lVG9wKCkgOiB6ZXJvTGF5b3V0VW5pdCk7CiAgICAgICAgICAg
ICAgICAgICAgIG5ld0xvZ2ljYWxUb3AgKz0gIXJlbmRlcmVyKCktPnN0eWxlKCktPmlzRmxpcHBl
ZExpbmVzV3JpdGluZ01vZGUoKSA/IHRvcFJ1YnlCYXNlTGVhZGluZyA6IGJvdHRvbVJ1YnlCYXNl
TGVhZGluZzsKICAgICAgICAgICAgICAgICAgICAgYm94SGVpZ2h0IC09ICh0b3BSdWJ5QmFzZUxl
YWRpbmcgKyBib3R0b21SdWJ5QmFzZUxlYWRpbmcpOwogICAgICAgICAgICAgICAgIH0KQEAgLTc4
Nyw4ICs3ODcsOCBAQCBpbmxpbmUgdm9pZCBJbmxpbmVGbG93Qm94OjphZGRCb3JkZXJPdXRzCiAg
ICAgTGF5b3V0VW5pdCBib3JkZXJPdXRzZXRMb2dpY2FsUmlnaHQ7CiAgICAgc3R5bGUtPmdldEJv
cmRlckltYWdlSW5saW5lRGlyZWN0aW9uT3V0c2V0cyhib3JkZXJPdXRzZXRMb2dpY2FsTGVmdCwg
Ym9yZGVyT3V0c2V0TG9naWNhbFJpZ2h0KTsKIAotICAgIExheW91dFVuaXQgb3V0c2V0TG9naWNh
bExlZnQgPSBpbmNsdWRlTG9naWNhbExlZnRFZGdlKCkgPyBib3JkZXJPdXRzZXRMb2dpY2FsTGVm
dCA6IDA7Ci0gICAgTGF5b3V0VW5pdCBvdXRzZXRMb2dpY2FsUmlnaHQgPSBpbmNsdWRlTG9naWNh
bFJpZ2h0RWRnZSgpID8gYm9yZGVyT3V0c2V0TG9naWNhbFJpZ2h0IDogMDsKKyAgICBMYXlvdXRV
bml0IG91dHNldExvZ2ljYWxMZWZ0ID0gaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSgpID8gYm9yZGVy
T3V0c2V0TG9naWNhbExlZnQgOiB6ZXJvTGF5b3V0VW5pdDsKKyAgICBMYXlvdXRVbml0IG91dHNl
dExvZ2ljYWxSaWdodCA9IGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKCkgPyBib3JkZXJPdXRzZXRM
b2dpY2FsUmlnaHQgOiB6ZXJvTGF5b3V0VW5pdDsKIAogICAgIExheW91dFVuaXQgbG9naWNhbExl
ZnRWaXN1YWxPdmVyZmxvdyA9IG1pbihwaXhlbFNuYXBwZWRMb2dpY2FsTGVmdCgpIC0gb3V0c2V0
TG9naWNhbExlZnQsIGxvZ2ljYWxWaXN1YWxPdmVyZmxvdy54KCkpOwogICAgIExheW91dFVuaXQg
bG9naWNhbFJpZ2h0VmlzdWFsT3ZlcmZsb3cgPSBtYXgocGl4ZWxTbmFwcGVkTG9naWNhbFJpZ2h0
KCkgKyBvdXRzZXRMb2dpY2FsUmlnaHQsIGxvZ2ljYWxWaXN1YWxPdmVyZmxvdy5tYXhYKCkpOwpA
QCAtMTEwNyw4ICsxMTA3LDggQEAgdm9pZCBJbmxpbmVGbG93Qm94OjpwYWludEZpbGxMYXllcihj
b25zdAogICAgICAgICAgICAgZm9yIChJbmxpbmVGbG93Qm94KiBjdXJyID0gdGhpczsgY3Vycjsg
Y3VyciA9IGN1cnItPnByZXZMaW5lQm94KCkpCiAgICAgICAgICAgICAgICAgdG90YWxMb2dpY2Fs
V2lkdGggKz0gY3Vyci0+bG9naWNhbFdpZHRoKCk7CiAgICAgICAgIH0KLSAgICAgICAgTGF5b3V0
VW5pdCBzdHJpcFggPSByZWN0LngoKSAtIChpc0hvcml6b250YWwoKSA/IGxvZ2ljYWxPZmZzZXRP
bkxpbmUgOiAwKTsKLSAgICAgICAgTGF5b3V0VW5pdCBzdHJpcFkgPSByZWN0LnkoKSAtIChpc0hv
cml6b250YWwoKSA/IDAgOiBsb2dpY2FsT2Zmc2V0T25MaW5lKTsKKyAgICAgICAgTGF5b3V0VW5p
dCBzdHJpcFggPSByZWN0LngoKSAtIChpc0hvcml6b250YWwoKSA/IGxvZ2ljYWxPZmZzZXRPbkxp
bmUgOiB6ZXJvTGF5b3V0VW5pdCk7CisgICAgICAgIExheW91dFVuaXQgc3RyaXBZID0gcmVjdC55
KCkgLSAoaXNIb3Jpem9udGFsKCkgPyB6ZXJvTGF5b3V0VW5pdCA6IGxvZ2ljYWxPZmZzZXRPbkxp
bmUpOwogICAgICAgICBMYXlvdXRVbml0IHN0cmlwV2lkdGggPSBpc0hvcml6b250YWwoKSA/IHRv
dGFsTG9naWNhbFdpZHRoIDogd2lkdGgoKTsKICAgICAgICAgTGF5b3V0VW5pdCBzdHJpcEhlaWdo
dCA9IGlzSG9yaXpvbnRhbCgpID8gaGVpZ2h0KCkgOiB0b3RhbExvZ2ljYWxXaWR0aDsKIApAQCAt
MTIzNyw4ICsxMjM3LDggQEAgdm9pZCBJbmxpbmVGbG93Qm94OjpwYWludEJveERlY29yYXRpb25z
KAogICAgICAgICAgICAgICAgIExheW91dFVuaXQgdG90YWxMb2dpY2FsV2lkdGggPSBsb2dpY2Fs
T2Zmc2V0T25MaW5lOwogICAgICAgICAgICAgICAgIGZvciAoSW5saW5lRmxvd0JveCogY3VyciA9
IHRoaXM7IGN1cnI7IGN1cnIgPSBjdXJyLT5uZXh0TGluZUJveCgpKQogICAgICAgICAgICAgICAg
ICAgICB0b3RhbExvZ2ljYWxXaWR0aCArPSBjdXJyLT5sb2dpY2FsV2lkdGgoKTsKLSAgICAgICAg
ICAgICAgICBMYXlvdXRVbml0IHN0cmlwWCA9IGFkanVzdGVkUGFpbnRvZmZzZXQueCgpIC0gKGlz
SG9yaXpvbnRhbCgpID8gbG9naWNhbE9mZnNldE9uTGluZSA6IDApOwotICAgICAgICAgICAgICAg
IExheW91dFVuaXQgc3RyaXBZID0gYWRqdXN0ZWRQYWludG9mZnNldC55KCkgLSAoaXNIb3Jpem9u
dGFsKCkgPyAwIDogbG9naWNhbE9mZnNldE9uTGluZSk7CisgICAgICAgICAgICAgICAgTGF5b3V0
VW5pdCBzdHJpcFggPSBhZGp1c3RlZFBhaW50b2Zmc2V0LngoKSAtIChpc0hvcml6b250YWwoKSA/
IGxvZ2ljYWxPZmZzZXRPbkxpbmUgOiB6ZXJvTGF5b3V0VW5pdCk7CisgICAgICAgICAgICAgICAg
TGF5b3V0VW5pdCBzdHJpcFkgPSBhZGp1c3RlZFBhaW50b2Zmc2V0LnkoKSAtIChpc0hvcml6b250
YWwoKSA/IHplcm9MYXlvdXRVbml0IDogbG9naWNhbE9mZnNldE9uTGluZSk7CiAgICAgICAgICAg
ICAgICAgTGF5b3V0VW5pdCBzdHJpcFdpZHRoID0gaXNIb3Jpem9udGFsKCkgPyB0b3RhbExvZ2lj
YWxXaWR0aCA6IGZyYW1lUmVjdC53aWR0aCgpOwogICAgICAgICAgICAgICAgIExheW91dFVuaXQg
c3RyaXBIZWlnaHQgPSBpc0hvcml6b250YWwoKSA/IGZyYW1lUmVjdC5oZWlnaHQoKSA6IHRvdGFs
TG9naWNhbFdpZHRoOwogCkBAIC0xMzA4LDggKzEzMDgsOCBAQCB2b2lkIElubGluZUZsb3dCb3g6
OnBhaW50TWFzayhQYWludEluZm8mCiAgICAgICAgIExheW91dFVuaXQgdG90YWxMb2dpY2FsV2lk
dGggPSBsb2dpY2FsT2Zmc2V0T25MaW5lOwogICAgICAgICBmb3IgKElubGluZUZsb3dCb3gqIGN1
cnIgPSB0aGlzOyBjdXJyOyBjdXJyID0gY3Vyci0+bmV4dExpbmVCb3goKSkKICAgICAgICAgICAg
IHRvdGFsTG9naWNhbFdpZHRoICs9IGN1cnItPmxvZ2ljYWxXaWR0aCgpOwotICAgICAgICBMYXlv
dXRVbml0IHN0cmlwWCA9IGFkanVzdGVkUGFpbnRPZmZzZXQueCgpIC0gKGlzSG9yaXpvbnRhbCgp
ID8gbG9naWNhbE9mZnNldE9uTGluZSA6IDApOwotICAgICAgICBMYXlvdXRVbml0IHN0cmlwWSA9
IGFkanVzdGVkUGFpbnRPZmZzZXQueSgpIC0gKGlzSG9yaXpvbnRhbCgpID8gMCA6IGxvZ2ljYWxP
ZmZzZXRPbkxpbmUpOworICAgICAgICBMYXlvdXRVbml0IHN0cmlwWCA9IGFkanVzdGVkUGFpbnRP
ZmZzZXQueCgpIC0gKGlzSG9yaXpvbnRhbCgpID8gbG9naWNhbE9mZnNldE9uTGluZSA6IHplcm9M
YXlvdXRVbml0KTsKKyAgICAgICAgTGF5b3V0VW5pdCBzdHJpcFkgPSBhZGp1c3RlZFBhaW50T2Zm
c2V0LnkoKSAtIChpc0hvcml6b250YWwoKSA/IHplcm9MYXlvdXRVbml0IDogbG9naWNhbE9mZnNl
dE9uTGluZSk7CiAgICAgICAgIExheW91dFVuaXQgc3RyaXBXaWR0aCA9IGlzSG9yaXpvbnRhbCgp
ID8gdG90YWxMb2dpY2FsV2lkdGggOiBmcmFtZVJlY3Qud2lkdGgoKTsKICAgICAgICAgTGF5b3V0
VW5pdCBzdHJpcEhlaWdodCA9IGlzSG9yaXpvbnRhbCgpID8gZnJhbWVSZWN0LmhlaWdodCgpIDog
dG90YWxMb2dpY2FsV2lkdGg7CiAKQEAgLTE0MDYsNyArMTQwNiw3IEBAIExheW91dFVuaXQgSW5s
aW5lRmxvd0JveDo6Y29tcHV0ZU92ZXJBbm4KICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFydWJ5UnVuLT5zdHlsZSgpLT5pc0ZsaXBwZWRM
aW5lc1dyaXRpbmdNb2RlKCkpIHsKLSAgICAgICAgICAgICAgICBMYXlvdXRVbml0IHRvcE9mRmly
c3RSdWJ5VGV4dExpbmUgPSBydWJ5VGV4dC0+bG9naWNhbFRvcCgpICsgKHJ1YnlUZXh0LT5maXJz
dFJvb3RCb3goKSA/IHJ1YnlUZXh0LT5maXJzdFJvb3RCb3goKS0+bGluZVRvcCgpIDogMCk7Cisg
ICAgICAgICAgICAgICAgTGF5b3V0VW5pdCB0b3BPZkZpcnN0UnVieVRleHRMaW5lID0gcnVieVRl
eHQtPmxvZ2ljYWxUb3AoKSArIChydWJ5VGV4dC0+Zmlyc3RSb290Qm94KCkgPyBydWJ5VGV4dC0+
Zmlyc3RSb290Qm94KCktPmxpbmVUb3AoKSA6IHplcm9MYXlvdXRVbml0KTsKICAgICAgICAgICAg
ICAgICBpZiAodG9wT2ZGaXJzdFJ1YnlUZXh0TGluZSA+PSAwKQogICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB0b3BPZkZpcnN0UnVieVRleHRMaW5lICs9IGN1
cnItPmxvZ2ljYWxUb3AoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRU
eXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRUeXBl
cy5oCShyZXZpc2lvbiAxMDc4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0
VHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsOCBAQCB0eXBlZGVmIEludFBvaW50
IExheW91dFBvaW50OwogdHlwZWRlZiBJbnRTaXplIExheW91dFNpemU7CiB0eXBlZGVmIEludFJl
Y3QgTGF5b3V0UmVjdDsKIAorY29uc3QgTGF5b3V0VW5pdCB6ZXJvTGF5b3V0VW5pdCA9IDA7CisK
IGlubGluZSBMYXlvdXRSZWN0IGVuY2xvc2luZ0xheW91dFJlY3QoY29uc3QgRmxvYXRSZWN0JiBy
ZWN0KQogewogICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHJlY3QpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiAxMDc4MzUpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTQsOCArMTE0LDggQEAgUmVuZGVyQmxvY2s6Ok1hcmdpbkluZm86Ok1hcmdpbkluZm8oUmVu
ZAogICAgIG1fcXVpcmtDb250YWluZXIgPSBibG9jay0+aXNUYWJsZUNlbGwoKSB8fCBibG9jay0+
aXNCb2R5KCkgfHwgYmxvY2tTdHlsZS0+bWFyZ2luQmVmb3JlQ29sbGFwc2UoKSA9PSBNRElTQ0FS
RAogICAgICAgICB8fCBibG9ja1N0eWxlLT5tYXJnaW5BZnRlckNvbGxhcHNlKCkgPT0gTURJU0NB
UkQ7CiAKLSAgICBtX3Bvc2l0aXZlTWFyZ2luID0gbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdp
dGhDaGlsZHJlbiA/IGJsb2NrLT5tYXhQb3NpdGl2ZU1hcmdpbkJlZm9yZSgpIDogMDsKLSAgICBt
X25lZ2F0aXZlTWFyZ2luID0gbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiA/
IGJsb2NrLT5tYXhOZWdhdGl2ZU1hcmdpbkJlZm9yZSgpIDogMDsKKyAgICBtX3Bvc2l0aXZlTWFy
Z2luID0gbV9jYW5Db2xsYXBzZU1hcmdpbkJlZm9yZVdpdGhDaGlsZHJlbiA/IGJsb2NrLT5tYXhQ
b3NpdGl2ZU1hcmdpbkJlZm9yZSgpIDogemVyb0xheW91dFVuaXQ7CisgICAgbV9uZWdhdGl2ZU1h
cmdpbiA9IG1fY2FuQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoQ2hpbGRyZW4gPyBibG9jay0+bWF4
TmVnYXRpdmVNYXJnaW5CZWZvcmUoKSA6IHplcm9MYXlvdXRVbml0OwogfQogCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNjExLDcgKzE2MTEs
NyBAQCB2b2lkIFJlbmRlckJsb2NrOjphZGp1c3RGbG9hdGluZ0Jsb2NrKGNvCiAgICAgLy8gZm9y
IGJ5IHNpbXBseSBjYWxsaW5nIGNhbkNvbGxhcHNlV2l0aE1hcmdpbkJlZm9yZS4gIFNlZQogICAg
IC8vIGh0dHA6Ly93d3cuaGl4aWUuY2gvdGVzdHMvYWRob2MvY3NzL2JveC9ibG9jay9tYXJnaW4t
Y29sbGFwc2UvMDQ2Lmh0bWwgZm9yCiAgICAgLy8gYW4gZXhhbXBsZSBvZiB0aGlzIHNjZW5hcmlv
LgotICAgIExheW91dFVuaXQgbWFyZ2luT2Zmc2V0ID0gbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdp
dGhNYXJnaW5CZWZvcmUoKSA/IDAgOiBtYXJnaW5JbmZvLm1hcmdpbigpOworICAgIExheW91dFVu
aXQgbWFyZ2luT2Zmc2V0ID0gbWFyZ2luSW5mby5jYW5Db2xsYXBzZVdpdGhNYXJnaW5CZWZvcmUo
KSA/IHplcm9MYXlvdXRVbml0IDogbWFyZ2luSW5mby5tYXJnaW4oKTsKICAgICBzZXRMb2dpY2Fs
SGVpZ2h0KGxvZ2ljYWxIZWlnaHQoKSArIG1hcmdpbk9mZnNldCk7CiAgICAgcG9zaXRpb25OZXdG
bG9hdHMoKTsKICAgICBzZXRMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQoKSAtIG1hcmdpbk9m
ZnNldCk7CkBAIC0yNDgzLDkgKzI0ODMsOSBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludENvbHVt
blJ1bGVzKFBhaW50CiAgICAgYm9vbCBhbnRpYWxpYXMgPSBzaG91bGRBbnRpYWxpYXNMaW5lcyhw
YWludEluZm8uY29udGV4dCk7CiAKICAgICBpZiAoY29sSW5mby0+cHJvZ3Jlc3Npb25BeGlzKCkg
PT0gQ29sdW1uSW5mbzo6SW5saW5lQXhpcykgewotICAgICAgICBMYXlvdXRVbml0IGN1cnJMb2dp
Y2FsTGVmdE9mZnNldCA9IHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IDAgOiBj
b250ZW50TG9naWNhbFdpZHRoKCk7CisgICAgICAgIExheW91dFVuaXQgY3VyckxvZ2ljYWxMZWZ0
T2Zmc2V0ID0gc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gemVyb0xheW91dFVu
aXQgOiBjb250ZW50TG9naWNhbFdpZHRoKCk7CiAgICAgICAgIExheW91dFVuaXQgcnVsZUFkZCA9
IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudCgpOwotICAgICAgICBMYXlvdXRVbml0IHJ1bGVM
b2dpY2FsTGVmdCA9IHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IDAgOiBjb250
ZW50TG9naWNhbFdpZHRoKCk7CisgICAgICAgIExheW91dFVuaXQgcnVsZUxvZ2ljYWxMZWZ0ID0g
c3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gemVyb0xheW91dFVuaXQgOiBjb250
ZW50TG9naWNhbFdpZHRoKCk7CiAgICAgICAgIExheW91dFVuaXQgaW5saW5lRGlyZWN0aW9uU2l6
ZSA9IGNvbEluZm8tPmRlc2lyZWRDb2x1bW5XaWR0aCgpOwogICAgICAgICBCb3hTaWRlIGJveFNp
ZGUgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpCiAgICAgICAgICAgICA/IHN0eWxlKCktPmlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IEJTTGVmdCA6IEJTUmlnaHQKQEAgLTM3ODksNyArMzc4
OSw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6Om5leHRGbG9hdExvZ2ljYWwKICAgICAgICAg
ICAgIGJvdHRvbSA9IG1pbihmbG9hdEJvdHRvbSwgYm90dG9tKTsKICAgICB9CiAKLSAgICByZXR1
cm4gYm90dG9tID09IG51bWVyaWNfbGltaXRzPExheW91dFVuaXQ+OjptYXgoKSA/IDAgOiBib3R0
b207CisgICAgcmV0dXJuIGJvdHRvbSA9PSBudW1lcmljX2xpbWl0czxMYXlvdXRVbml0Pjo6bWF4
KCkgPyB6ZXJvTGF5b3V0VW5pdCA6IGJvdHRvbTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJCbG9j
azo6bG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tKEZsb2F0aW5nT2JqZWN0OjpUeXBlIGZsb2F0VHlw
ZSkgY29uc3QKQEAgLTQxODYsNyArNDE4Niw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6Omdl
dENsZWFyRGVsdGEoUmUKICAgICB9CiAKICAgICAvLyBXZSBhbHNvIGNsZWFyIGZsb2F0cyBpZiB3
ZSBhcmUgdG9vIGJpZyB0byBzaXQgb24gdGhlIHNhbWUgbGluZSBhcyBhIGZsb2F0IChhbmQgd2lz
aCB0byBhdm9pZCBmbG9hdHMgYnkgZGVmYXVsdCkuCi0gICAgTGF5b3V0VW5pdCByZXN1bHQgPSBj
bGVhclNldCA/IG1heDxMYXlvdXRVbml0PigwLCBsb2dpY2FsQm90dG9tIC0gbG9naWNhbFRvcCkg
OiAwOworICAgIExheW91dFVuaXQgcmVzdWx0ID0gY2xlYXJTZXQgPyBtYXg8TGF5b3V0VW5pdD4o
MCwgbG9naWNhbEJvdHRvbSAtIGxvZ2ljYWxUb3ApIDogemVyb0xheW91dFVuaXQ7CiAgICAgaWYg
KCFyZXN1bHQgJiYgY2hpbGQtPmF2b2lkc0Zsb2F0cygpKSB7CiAgICAgICAgIExheW91dFVuaXQg
bmV3TG9naWNhbFRvcCA9IGxvZ2ljYWxUb3A7CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CkBAIC01
MTcyLDcgKzUxNzIsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lUHJlZmVycmVk
CiAKICAgICBSZW5kZXJTdHlsZSogc3R5bGVUb1VzZSA9IHN0eWxlKCk7CiAgICAgUmVuZGVyQmxv
Y2sqIGNvbnRhaW5pbmdCbG9jayA9IHRoaXMtPmNvbnRhaW5pbmdCbG9jaygpOwotICAgIExheW91
dFVuaXQgY3cgPSBjb250YWluaW5nQmxvY2sgPyBjb250YWluaW5nQmxvY2stPmNvbnRlbnRMb2dp
Y2FsV2lkdGgoKSA6IDA7CisgICAgTGF5b3V0VW5pdCBjdyA9IGNvbnRhaW5pbmdCbG9jayA/IGNv
bnRhaW5pbmdCbG9jay0+Y29udGVudExvZ2ljYWxXaWR0aCgpIDogemVyb0xheW91dFVuaXQ7CiAK
ICAgICAvLyBJZiB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZSwgd2Ugd2FudCB0byBpZ25v
cmUgYWxsIHdoaXRlLXNwYWNlLgogICAgIC8vIEFsc28gc3RyaXAgc3BhY2VzIGlmIHdlIHByZXZp
b3VzbHkgaGFkIHRleHQgdGhhdCBlbmRlZCBpbiBhIHRyYWlsaW5nIHNwYWNlLgpAQCAtNTk0NCw3
ICs1OTQ0LDcgQEAgc3RhdGljIGludCBnZXRIZWlnaHRGb3JMaW5lQ291bnQoUmVuZGVyQgogICAg
ICAgICBpZiAoYmxvY2stPmNoaWxkcmVuSW5saW5lKCkpIHsKICAgICAgICAgICAgIGZvciAoUm9v
dElubGluZUJveCogYm94ID0gYmxvY2stPmZpcnN0Um9vdEJveCgpOyBib3g7IGJveCA9IGJveC0+
bmV4dFJvb3RCb3goKSkgewogICAgICAgICAgICAgICAgIGlmICgrK2NvdW50ID09IGwpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBib3gtPmxpbmVCb3R0b20oKSArIChpbmNsdWRlQm90dG9t
ID8gKGJsb2NrLT5ib3JkZXJCb3R0b20oKSArIGJsb2NrLT5wYWRkaW5nQm90dG9tKCkpIDogMCk7
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBib3gtPmxpbmVCb3R0b20oKSArIChpbmNsdWRl
Qm90dG9tID8gKGJsb2NrLT5ib3JkZXJCb3R0b20oKSArIGJsb2NrLT5wYWRkaW5nQm90dG9tKCkp
IDogemVyb0xheW91dFVuaXQpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGVs
c2UgewpAQCAtNTk1Myw3ICs1OTUzLDcgQEAgc3RhdGljIGludCBnZXRIZWlnaHRGb3JMaW5lQ291
bnQoUmVuZGVyQgogICAgICAgICAgICAgICAgIGlmIChzaG91bGRDaGVja0xpbmVzKG9iaikpIHsK
ICAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IGdldEhlaWdodEZvckxpbmVDb3VudCh0
b1JlbmRlckJsb2NrKG9iaiksIGwsIGZhbHNlLCBjb3VudCk7CiAgICAgICAgICAgICAgICAgICAg
IGlmIChyZXN1bHQgIT0gLTEpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
ICsgb2JqLT55KCkgKyAoaW5jbHVkZUJvdHRvbSA/IChibG9jay0+Ym9yZGVyQm90dG9tKCkgKyBi
bG9jay0+cGFkZGluZ0JvdHRvbSgpKSA6IDApOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdCArIG9iai0+eSgpICsgKGluY2x1ZGVCb3R0b20gPyAoYmxvY2stPmJvcmRlckJv
dHRvbSgpICsgYmxvY2stPnBhZGRpbmdCb3R0b20oKSkgOiB6ZXJvTGF5b3V0VW5pdCk7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFvYmotPmlzRmxvYXRpbmdP
clBvc2l0aW9uZWQoKSAmJiAhb2JqLT5pc1J1bkluKCkpCiAgICAgICAgICAgICAgICAgICAgIG5v
cm1hbEZsb3dDaGlsZFdpdGhvdXRMaW5lcyA9IG9iajsKQEAgLTY1MjEsNyArNjUyMSw3IEBAIExh
eW91dFVuaXQgUmVuZGVyQmxvY2s6OmFkanVzdEZvclVuc3BsaXQKICAgICAgICAgfHwgY2hpbGQt
PnN0eWxlKCktPnJlZ2lvbkJyZWFrSW5zaWRlKCkgPT0gUEJBVk9JRDsKICAgICBpZiAoIWlzVW5z
cGxpdHRhYmxlKQogICAgICAgICByZXR1cm4gbG9naWNhbE9mZnNldDsKLSAgICBMYXlvdXRVbml0
IGNoaWxkTG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHRGb3JDaGlsZChjaGlsZCkgKyAoaW5j
bHVkZU1hcmdpbnMgPyBtYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZCkgKyBtYXJnaW5BZnRlckZv
ckNoaWxkKGNoaWxkKSA6IDApOworICAgIExheW91dFVuaXQgY2hpbGRMb2dpY2FsSGVpZ2h0ID0g
bG9naWNhbEhlaWdodEZvckNoaWxkKGNoaWxkKSArIChpbmNsdWRlTWFyZ2lucyA/IG1hcmdpbkJl
Zm9yZUZvckNoaWxkKGNoaWxkKSArIG1hcmdpbkFmdGVyRm9yQ2hpbGQoY2hpbGQpIDogemVyb0xh
eW91dFVuaXQpOwogICAgIExheW91dFN0YXRlKiBsYXlvdXRTdGF0ZSA9IHZpZXcoKS0+bGF5b3V0
U3RhdGUoKTsKICAgICBpZiAobGF5b3V0U3RhdGUtPm1fY29sdW1uSW5mbykKICAgICAgICAgbGF5
b3V0U3RhdGUtPm1fY29sdW1uSW5mby0+dXBkYXRlTWluaW11bUNvbHVtbkhlaWdodChjaGlsZExv
Z2ljYWxIZWlnaHQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJ
KHJldmlzaW9uIDEwNzgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsMTIgKzI0MiwxMiBAQCBwdWJsaWM6CiAgICAgdW5z
aWduZWQgY29sdW1uQ291bnQoQ29sdW1uSW5mbyopIGNvbnN0OwogICAgIExheW91dFJlY3QgY29s
dW1uUmVjdEF0KENvbHVtbkluZm8qLCB1bnNpZ25lZCkgY29uc3Q7CiAKLSAgICBMYXlvdXRVbml0
IHBhZ2luYXRpb25TdHJ1dCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZURhdGEgPyBtX3JhcmVEYXRh
LT5tX3BhZ2luYXRpb25TdHJ1dCA6IDA7IH0KKyAgICBMYXlvdXRVbml0IHBhZ2luYXRpb25TdHJ1
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZURhdGEgPyBtX3JhcmVEYXRhLT5tX3BhZ2luYXRpb25T
dHJ1dCA6IHplcm9MYXlvdXRVbml0OyB9CiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uU3RydXQoTGF5
b3V0VW5pdCk7CiAgICAgCiAgICAgLy8gVGhlIHBhZ2UgbG9naWNhbCBvZmZzZXQgaXMgdGhlIG9i
amVjdCdzIG9mZnNldCBmcm9tIHRoZSB0b3Agb2YgdGhlIHBhZ2UgaW4gdGhlIHBhZ2UgcHJvZ3Jl
c3Npb24KICAgICAvLyBkaXJlY3Rpb24gKHNvIGFuIHgtb2Zmc2V0IGluIHZlcnRpY2FsIHRleHQg
YW5kIGEgeS1vZmZzZXQgZm9yIGhvcml6b250YWwgdGV4dCkuCi0gICAgaW50IHBhZ2VMb2dpY2Fs
T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlRGF0YSA/IG1fcmFyZURhdGEtPm1fcGFnZUxv
Z2ljYWxPZmZzZXQgOiAwOyB9CisgICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbE9mZnNldCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmFyZURhdGEgPyBtX3JhcmVEYXRhLT5tX3BhZ2VMb2dpY2FsT2Zmc2V0
IDogemVyb0xheW91dFVuaXQ7IH0KICAgICB2b2lkIHNldFBhZ2VMb2dpY2FsT2Zmc2V0KGludCk7
CiAKICAgICBSb290SW5saW5lQm94KiBsaW5lR3JpZEJveCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFy
ZURhdGEgPyBtX3JhcmVEYXRhLT5tX2xpbmVHcmlkQm94IDogMDsgfQpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHJldmlz
aW9uIDEwNzgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVM
YXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDkzLDggKzEwOTMsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCB1cGRhdGVSZXBhaW50UmFuZ2VGcm9tQm94KFJvb3RJbmxpbmVCb3gqIGJveCwgTGF5
b3V0VW5pdCBwYWdpbmF0aW9uRGVsdGEgPSAwKQogICAgIHsKICAgICAgICAgbV91c2VzUmVwYWlu
dEJvdW5kcyA9IHRydWU7Ci0gICAgICAgIG1fcmVwYWludExvZ2ljYWxUb3AgPSBtaW4obV9yZXBh
aW50TG9naWNhbFRvcCwgYm94LT5sb2dpY2FsVG9wVmlzdWFsT3ZlcmZsb3coKSArIG1pbihwYWdp
bmF0aW9uRGVsdGEsIDApKTsKLSAgICAgICAgbV9yZXBhaW50TG9naWNhbEJvdHRvbSA9IG1heCht
X3JlcGFpbnRMb2dpY2FsQm90dG9tLCBib3gtPmxvZ2ljYWxCb3R0b21WaXN1YWxPdmVyZmxvdygp
ICsgbWF4KHBhZ2luYXRpb25EZWx0YSwgMCkpOworICAgICAgICBtX3JlcGFpbnRMb2dpY2FsVG9w
ID0gbWluKG1fcmVwYWludExvZ2ljYWxUb3AsIGJveC0+bG9naWNhbFRvcFZpc3VhbE92ZXJmbG93
KCkgKyBtaW4ocGFnaW5hdGlvbkRlbHRhLCB6ZXJvTGF5b3V0VW5pdCkpOworICAgICAgICBtX3Jl
cGFpbnRMb2dpY2FsQm90dG9tID0gbWF4KG1fcmVwYWludExvZ2ljYWxCb3R0b20sIGJveC0+bG9n
aWNhbEJvdHRvbVZpc3VhbE92ZXJmbG93KCkgKyBtYXgocGFnaW5hdGlvbkRlbHRhLCB6ZXJvTGF5
b3V0VW5pdCkpOwogICAgIH0KICAgICAKICAgICBib29sIGVuZExpbmVNYXRjaGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9lbmRMaW5lTWF0Y2hlZDsgfQpAQCAtMjY1MSw3ICsyNjUxLDcgQEAgSW5saW5l
SXRlcmF0b3IgUmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOgogCiB2b2lkIFJlbmRlckJsb2NrOjph
ZGRPdmVyZmxvd0Zyb21JbmxpbmVDaGlsZHJlbigpCiB7Ci0gICAgTGF5b3V0VW5pdCBlbmRQYWRk
aW5nID0gaGFzT3ZlcmZsb3dDbGlwKCkgPyBwYWRkaW5nRW5kKCkgOiAwOworICAgIExheW91dFVu
aXQgZW5kUGFkZGluZyA9IGhhc092ZXJmbG93Q2xpcCgpID8gcGFkZGluZ0VuZCgpIDogemVyb0xh
eW91dFVuaXQ7CiAgICAgLy8gRklYTUU6IE5lZWQgdG8gZmluZCBhbm90aGVyIHdheSB0byBkbyB0
aGlzLCBzaW5jZSBzY3JvbGxiYXJzIGNvdWxkIHNob3cgd2hlbiB3ZSBkb24ndCB3YW50IHRoZW0g
dG8uCiAgICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpICYmICFlbmRQYWRkaW5nICYmIG5vZGUoKSAm
JiBub2RlKCktPnJlbmRlcmVySXNFZGl0YWJsZSgpICYmIG5vZGUoKSA9PSBub2RlKCktPnJvb3RF
ZGl0YWJsZUVsZW1lbnQoKSAmJiBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAg
ICAgICAgIGVuZFBhZGRpbmcgPSAxOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAJKHJldmlzaW9uIDEwNzgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDQ0LDkgKzM0NDQsOSBAQCBWaXNpYmxl
UG9zaXRpb24gUmVuZGVyQm94Ojpwb3NpdGlvbkZvclBvCiAgICAgICAgIAogICAgICAgICBSZW5k
ZXJCb3gqIHJlbmRlcmVyID0gdG9SZW5kZXJCb3gocmVuZGVyT2JqZWN0KTsKIAotICAgICAgICBM
YXlvdXRVbml0IHRvcCA9IHJlbmRlcmVyLT5ib3JkZXJUb3AoKSArIHJlbmRlcmVyLT5wYWRkaW5n
VG9wKCkgKyAoaXNUYWJsZVJvdygpID8gMCA6IHJlbmRlcmVyLT55KCkpOworICAgICAgICBMYXlv
dXRVbml0IHRvcCA9IHJlbmRlcmVyLT5ib3JkZXJUb3AoKSArIHJlbmRlcmVyLT5wYWRkaW5nVG9w
KCkgKyAoaXNUYWJsZVJvdygpID8gemVyb0xheW91dFVuaXQgOiByZW5kZXJlci0+eSgpKTsKICAg
ICAgICAgTGF5b3V0VW5pdCBib3R0b20gPSB0b3AgKyByZW5kZXJlci0+Y29udGVudEhlaWdodCgp
OwotICAgICAgICBMYXlvdXRVbml0IGxlZnQgPSByZW5kZXJlci0+Ym9yZGVyTGVmdCgpICsgcmVu
ZGVyZXItPnBhZGRpbmdMZWZ0KCkgKyAoaXNUYWJsZVJvdygpID8gMCA6IHJlbmRlcmVyLT54KCkp
OworICAgICAgICBMYXlvdXRVbml0IGxlZnQgPSByZW5kZXJlci0+Ym9yZGVyTGVmdCgpICsgcmVu
ZGVyZXItPnBhZGRpbmdMZWZ0KCkgKyAoaXNUYWJsZVJvdygpID8gemVyb0xheW91dFVuaXQgOiBy
ZW5kZXJlci0+eCgpKTsKICAgICAgICAgTGF5b3V0VW5pdCByaWdodCA9IGxlZnQgKyByZW5kZXJl
ci0+Y29udGVudFdpZHRoKCk7CiAgICAgICAgIAogICAgICAgICBpZiAocG9pbnQueCgpIDw9IHJp
Z2h0ICYmIHBvaW50LngoKSA+PSBsZWZ0ICYmIHBvaW50LnkoKSA8PSB0b3AgJiYgcG9pbnQueSgp
ID49IGJvdHRvbSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkocmV2
aXNpb24gMTA3ODM1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjEsOSArMTYxLDkgQEAgcHVibGljOgogICAgIExheW91dFVuaXQg
bG9naWNhbFJpZ2h0TGF5b3V0T3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLT5pc0hv
cml6b250YWxXcml0aW5nTW9kZSgpID8gbWF4WExheW91dE92ZXJmbG93KCkgOiBtYXhZTGF5b3V0
T3ZlcmZsb3coKTsgfQogICAgIAogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCB2aXN1YWxPdmVyZmxv
d1JlY3QoKSBjb25zdCB7IHJldHVybiBtX292ZXJmbG93ID8gbV9vdmVyZmxvdy0+dmlzdWFsT3Zl
cmZsb3dSZWN0KCkgOiBib3JkZXJCb3hSZWN0KCk7IH0KLSAgICBMYXlvdXRVbml0IG1pbllWaXN1
YWxPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcmZsb3c/IG1fb3ZlcmZsb3ctPm1pbllW
aXN1YWxPdmVyZmxvdygpIDogMDsgfQorICAgIExheW91dFVuaXQgbWluWVZpc3VhbE92ZXJmbG93
KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvdz8gbV9vdmVyZmxvdy0+bWluWVZpc3VhbE92ZXJm
bG93KCkgOiB6ZXJvTGF5b3V0VW5pdDsgfQogICAgIExheW91dFVuaXQgbWF4WVZpc3VhbE92ZXJm
bG93KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvdyA/IG1fb3ZlcmZsb3ctPm1heFlWaXN1YWxP
dmVyZmxvdygpIDogaGVpZ2h0KCk7IH0KLSAgICBMYXlvdXRVbml0IG1pblhWaXN1YWxPdmVyZmxv
dygpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcmZsb3cgPyBtX292ZXJmbG93LT5taW5YVmlzdWFsT3Zl
cmZsb3coKSA6IDA7IH0KKyAgICBMYXlvdXRVbml0IG1pblhWaXN1YWxPdmVyZmxvdygpIGNvbnN0
IHsgcmV0dXJuIG1fb3ZlcmZsb3cgPyBtX292ZXJmbG93LT5taW5YVmlzdWFsT3ZlcmZsb3coKSA6
IHplcm9MYXlvdXRVbml0OyB9CiAgICAgTGF5b3V0VW5pdCBtYXhYVmlzdWFsT3ZlcmZsb3coKSBj
b25zdCB7IHJldHVybiBtX292ZXJmbG93ID8gbV9vdmVyZmxvdy0+bWF4WFZpc3VhbE92ZXJmbG93
KCkgOiB3aWR0aCgpOyB9CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdFZpc3VhbE92ZXJmbG93
KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG1p
blhWaXN1YWxPdmVyZmxvdygpIDogbWluWVZpc3VhbE92ZXJmbG93KCk7IH0KICAgICBMYXlvdXRV
bml0IGxvZ2ljYWxSaWdodFZpc3VhbE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IG1heFhWaXN1YWxPdmVyZmxvdygpIDogbWF4WVZp
c3VhbE92ZXJmbG93KCk7IH0KQEAgLTMxNCw3ICszMTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CiAKICAgICBSZW5kZXJCb3hSZWdpb25JbmZv
KiByZW5kZXJCb3hSZWdpb25JbmZvKFJlbmRlclJlZ2lvbiosIExheW91dFVuaXQgb2Zmc2V0RnJv
bUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgUmVuZGVyQm94UmVnaW9uSW5mb0ZsYWdzID0gQ2FjaGVS
ZW5kZXJCb3hSZWdpb25JbmZvKSBjb25zdDsKLSAgICB2b2lkIGNvbXB1dGVMb2dpY2FsV2lkdGhJ
blJlZ2lvbihSZW5kZXJSZWdpb24qID0gMCwgTGF5b3V0VW5pdCBvZmZzZXRGcm9tTG9naWNhbFRv
cE9mRmlyc3RQYWdlID0gMCk7CisgICAgdm9pZCBjb21wdXRlTG9naWNhbFdpZHRoSW5SZWdpb24o
UmVuZGVyUmVnaW9uKiA9IDAsIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0
UGFnZSA9IHplcm9MYXlvdXRVbml0KTsKIAogICAgIGJvb2wgc3RyZXRjaGVzVG9WaWV3cG9ydCgp
IGNvbnN0CiAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuY3BwCShyZXZpc2lvbiAxMDc4MzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NTMsNyArNDUzLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6b2Zmc2V0TAog
ICAgICAgICByZXR1cm4gMDsKICAgICAKICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogb2Zmc2V0
UGFyID0gb2Zmc2V0UGFyZW50KCk7Ci0gICAgTGF5b3V0VW5pdCB4UG9zID0gKGlzQm94KCkgPyB0
b1JlbmRlckJveCh0aGlzKS0+bGVmdCgpIDogMCk7CisgICAgTGF5b3V0VW5pdCB4UG9zID0gKGlz
Qm94KCkgPyB0b1JlbmRlckJveCh0aGlzKS0+bGVmdCgpIDogemVyb0xheW91dFVuaXQpOwogICAg
IAogICAgIC8vIElmIHRoZSBvZmZzZXRQYXJlbnQgb2YgdGhlIGVsZW1lbnQgaXMgbnVsbCwgb3Ig
aXMgdGhlIEhUTUwgYm9keSBlbGVtZW50LAogICAgIC8vIHJldHVybiB0aGUgZGlzdGFuY2UgYmV0
d2VlbiB0aGUgY2FudmFzIG9yaWdpbiBhbmQgdGhlIGxlZnQgYm9yZGVyIGVkZ2UgCkBAIC00ODcs
NyArNDg3LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6b2Zmc2V0VAogICAg
ICAgICByZXR1cm4gMDsKICAgICAKICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogb2Zmc2V0UGFy
ID0gb2Zmc2V0UGFyZW50KCk7Ci0gICAgTGF5b3V0VW5pdCB5UG9zID0gKGlzQm94KCkgPyB0b1Jl
bmRlckJveCh0aGlzKS0+dG9wKCkgOiAwKTsKKyAgICBMYXlvdXRVbml0IHlQb3MgPSAoaXNCb3go
KSA/IHRvUmVuZGVyQm94KHRoaXMpLT50b3AoKSA6IHplcm9MYXlvdXRVbml0KTsKICAgICAKICAg
ICAvLyBJZiB0aGUgb2Zmc2V0UGFyZW50IG9mIHRoZSBlbGVtZW50IGlzIG51bGwsIG9yIGlzIHRo
ZSBIVE1MIGJvZHkgZWxlbWVudCwKICAgICAvLyByZXR1cm4gdGhlIGRpc3RhbmNlIGJldHdlZW4g
dGhlIGNhbnZhcyBvcmlnaW4gYW5kIHRoZSB0b3AgYm9yZGVyIGVkZ2UgCkBAIC02ODUsMTAgKzY4
NSwxMCBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllCiAgICAgICAg
IGNvbnRleHQtPmFkZFJvdW5kZWRSZWN0Q2xpcChib3JkZXIpOwogICAgIH0KICAgICAKLSAgICBM
YXlvdXRVbml0IGJMZWZ0ID0gaW5jbHVkZUxlZnRFZGdlID8gYm9yZGVyTGVmdCgpIDogMDsKLSAg
ICBMYXlvdXRVbml0IGJSaWdodCA9IGluY2x1ZGVSaWdodEVkZ2UgPyBib3JkZXJSaWdodCgpIDog
MDsKLSAgICBMYXlvdXRVbml0IHBMZWZ0ID0gaW5jbHVkZUxlZnRFZGdlID8gcGFkZGluZ0xlZnQo
KSA6IDA7Ci0gICAgTGF5b3V0VW5pdCBwUmlnaHQgPSBpbmNsdWRlUmlnaHRFZGdlID8gcGFkZGlu
Z1JpZ2h0KCkgOiAwOworICAgIExheW91dFVuaXQgYkxlZnQgPSBpbmNsdWRlTGVmdEVkZ2UgPyBi
b3JkZXJMZWZ0KCkgOiB6ZXJvTGF5b3V0VW5pdDsKKyAgICBMYXlvdXRVbml0IGJSaWdodCA9IGlu
Y2x1ZGVSaWdodEVkZ2UgPyBib3JkZXJSaWdodCgpIDogemVyb0xheW91dFVuaXQ7CisgICAgTGF5
b3V0VW5pdCBwTGVmdCA9IGluY2x1ZGVMZWZ0RWRnZSA/IHBhZGRpbmdMZWZ0KCkgOiB6ZXJvTGF5
b3V0VW5pdDsKKyAgICBMYXlvdXRVbml0IHBSaWdodCA9IGluY2x1ZGVSaWdodEVkZ2UgPyBwYWRk
aW5nUmlnaHQoKSA6IHplcm9MYXlvdXRVbml0OwogCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBjbGlwV2l0aFNjcm9sbGluZ1N0YXRlU2F2ZXIoKmNvbnRleHQsIGNsaXBwZWRXaXRoTG9j
YWxTY3JvbGxpbmcpOwogICAgIExheW91dFJlY3Qgc2Nyb2xsZWRQYWludFJlY3QgPSByZWN0OwpA
QCAtNzA3LDEwICs3MDcsMTAgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxs
TGF5ZQogICAgIGlmIChiZ0xheWVyLT5jbGlwKCkgPT0gUGFkZGluZ0ZpbGxCb3ggfHwgYmdMYXll
ci0+Y2xpcCgpID09IENvbnRlbnRGaWxsQm94KSB7CiAgICAgICAgIC8vIENsaXAgdG8gdGhlIHBh
ZGRpbmcgb3IgY29udGVudCBib3hlcyBhcyBuZWNlc3NhcnkuCiAgICAgICAgIGJvb2wgaW5jbHVk
ZVBhZGRpbmcgPSBiZ0xheWVyLT5jbGlwKCkgPT0gQ29udGVudEZpbGxCb3g7Ci0gICAgICAgIExh
eW91dFJlY3QgY2xpcFJlY3QgPSBMYXlvdXRSZWN0KHNjcm9sbGVkUGFpbnRSZWN0LngoKSArIGJM
ZWZ0ICsgKGluY2x1ZGVQYWRkaW5nID8gcExlZnQgOiAwKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2Nyb2xsZWRQYWludFJlY3QueSgpICsgYm9yZGVyVG9wKCkgKyAoaW5j
bHVkZVBhZGRpbmcgPyBwYWRkaW5nVG9wKCkgOiAwKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2Nyb2xsZWRQYWludFJlY3Qud2lkdGgoKSAtIGJMZWZ0IC0gYlJpZ2h0IC0g
KGluY2x1ZGVQYWRkaW5nID8gcExlZnQgKyBwUmlnaHQgOiAwKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2Nyb2xsZWRQYWludFJlY3QuaGVpZ2h0KCkgLSBib3JkZXJUb3Ao
KSAtIGJvcmRlckJvdHRvbSgpIC0gKGluY2x1ZGVQYWRkaW5nID8gcGFkZGluZ1RvcCgpICsgcGFk
ZGluZ0JvdHRvbSgpIDogMCkpOworICAgICAgICBMYXlvdXRSZWN0IGNsaXBSZWN0ID0gTGF5b3V0
UmVjdChzY3JvbGxlZFBhaW50UmVjdC54KCkgKyBiTGVmdCArIChpbmNsdWRlUGFkZGluZyA/IHBM
ZWZ0IDogemVyb0xheW91dFVuaXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzY3JvbGxlZFBhaW50UmVjdC55KCkgKyBib3JkZXJUb3AoKSArIChpbmNsdWRlUGFkZGluZyA/
IHBhZGRpbmdUb3AoKSA6IHplcm9MYXlvdXRVbml0KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2Nyb2xsZWRQYWludFJlY3Qud2lkdGgoKSAtIGJMZWZ0IC0gYlJpZ2h0IC0g
KGluY2x1ZGVQYWRkaW5nID8gcExlZnQgKyBwUmlnaHQgOiB6ZXJvTGF5b3V0VW5pdCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGVkUGFpbnRSZWN0LmhlaWdodCgp
IC0gYm9yZGVyVG9wKCkgLSBib3JkZXJCb3R0b20oKSAtIChpbmNsdWRlUGFkZGluZyA/IHBhZGRp
bmdUb3AoKSArIHBhZGRpbmdCb3R0b20oKSA6IHplcm9MYXlvdXRVbml0KSk7CiAgICAgICAgIGJh
Y2tncm91bmRDbGlwU3RhdGVTYXZlci5zYXZlKCk7CiAgICAgICAgIGNvbnRleHQtPmNsaXAoY2xp
cFJlY3QpOwogICAgIH0gZWxzZSBpZiAoYmdMYXllci0+Y2xpcCgpID09IFRleHRGaWxsQm94KSB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAJKHJl
dmlzaW9uIDEwNzgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWVsZHNl
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMiwxMSArMTMyLDExIEBAIHZvaWQgUmVuZGVyRmll
bGRzZXQ6OnBhaW50Qm94RGVjb3JhdGlvbnMKICAgICAvLyBjYXNlcyB0aGUgbGVnZW5kIGlzIGVt
YmVkZGVkIGluIHRoZSByaWdodCBhbmQgYm90dG9tIGJvcmRlcnMgcmVzcGVjdGl2ZWx5LgogICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzIzNgogICAgIGlm
IChzdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgIExheW91dFVu
aXQgeU9mZiA9IChsZWdlbmQtPnkoKSA+IDApID8gMCA6IChsZWdlbmQtPmhlaWdodCgpIC0gYm9y
ZGVyVG9wKCkpIC8gMjsKKyAgICAgICAgTGF5b3V0VW5pdCB5T2ZmID0gKGxlZ2VuZC0+eSgpID4g
MCkgPyB6ZXJvTGF5b3V0VW5pdCA6IChsZWdlbmQtPmhlaWdodCgpIC0gYm9yZGVyVG9wKCkpIC8g
MjsKICAgICAgICAgcGFpbnRSZWN0LnNldEhlaWdodChwYWludFJlY3QuaGVpZ2h0KCkgLSB5T2Zm
KTsKICAgICAgICAgcGFpbnRSZWN0LnNldFkocGFpbnRSZWN0LnkoKSArIHlPZmYpOwogICAgIH0g
ZWxzZSB7Ci0gICAgICAgIExheW91dFVuaXQgeE9mZiA9IChsZWdlbmQtPngoKSA+IDApID8gMCA6
IChsZWdlbmQtPndpZHRoKCkgLSBib3JkZXJMZWZ0KCkpIC8gMjsKKyAgICAgICAgTGF5b3V0VW5p
dCB4T2ZmID0gKGxlZ2VuZC0+eCgpID4gMCkgPyB6ZXJvTGF5b3V0VW5pdCA6IChsZWdlbmQtPndp
ZHRoKCkgLSBib3JkZXJMZWZ0KCkpIC8gMjsKICAgICAgICAgcGFpbnRSZWN0LnNldFdpZHRoKHBh
aW50UmVjdC53aWR0aCgpIC0geE9mZik7CiAgICAgICAgIHBhaW50UmVjdC5zZXRYKHBhaW50UmVj
dC54KCkgKyB4T2ZmKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAJKHJldmlzaW9uIDEwNzgzNSkKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bDo6dXBkYXRlRnJvbQogCiBzdGF0aWMgaW50IG5vZGVXaWR0aChOb2RlKiBub2RlKQogewotICAg
IHJldHVybiBub2RlID8gbm9kZS0+cmVuZGVyQm94KCktPndpZHRoKCkgOiAwOworICAgIHJldHVy
biBub2RlID8gbm9kZS0+cmVuZGVyQm94KCktPndpZHRoKCkgOiB6ZXJvTGF5b3V0VW5pdDsKIH0K
IAogaW50IFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjptYXhGaWxlbmFtZVdpZHRoKCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAJ
KHJldmlzaW9uIDEwNzgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93
VGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgyLDEwICszODIsMTAgQEAgdm9pZCBSZW5k
ZXJGbG93VGhyZWFkOjpsYXlvdXQoKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgICAgICBMYXlvdXRSZWN0IHJlZ2lvblJlY3Q7CiAgICAgICAgICAgICAgICAgaWYg
KGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVnaW9u
UmVjdCA9IExheW91dFJlY3Qoc3R5bGUoKS0+ZGlyZWN0aW9uKCkgPT0gTFRSID8gMCA6IGxvZ2lj
YWxXaWR0aCgpIC0gcmVnaW9uLT5jb250ZW50V2lkdGgoKSwgbG9naWNhbEhlaWdodCwgcmVnaW9u
LT5jb250ZW50V2lkdGgoKSwgcmVnaW9uLT5jb250ZW50SGVpZ2h0KCkpOworICAgICAgICAgICAg
ICAgICAgICByZWdpb25SZWN0ID0gTGF5b3V0UmVjdChzdHlsZSgpLT5kaXJlY3Rpb24oKSA9PSBM
VFIgPyB6ZXJvTGF5b3V0VW5pdCA6IGxvZ2ljYWxXaWR0aCgpIC0gcmVnaW9uLT5jb250ZW50V2lk
dGgoKSwgbG9naWNhbEhlaWdodCwgcmVnaW9uLT5jb250ZW50V2lkdGgoKSwgcmVnaW9uLT5jb250
ZW50SGVpZ2h0KCkpOwogICAgICAgICAgICAgICAgICAgICBsb2dpY2FsSGVpZ2h0ICs9IHJlZ2lv
blJlY3QuaGVpZ2h0KCk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgICAgcmVnaW9uUmVjdCA9IExheW91dFJlY3QobG9naWNhbEhlaWdodCwgc3R5bGUoKS0+ZGly
ZWN0aW9uKCkgPT0gTFRSID8gMCA6IGxvZ2ljYWxXaWR0aCgpIC0gcmVnaW9uLT5jb250ZW50SGVp
Z2h0KCksIHJlZ2lvbi0+Y29udGVudFdpZHRoKCksIHJlZ2lvbi0+Y29udGVudEhlaWdodCgpKTsK
KyAgICAgICAgICAgICAgICAgICAgcmVnaW9uUmVjdCA9IExheW91dFJlY3QobG9naWNhbEhlaWdo
dCwgc3R5bGUoKS0+ZGlyZWN0aW9uKCkgPT0gTFRSID8gemVyb0xheW91dFVuaXQgOiBsb2dpY2Fs
V2lkdGgoKSAtIHJlZ2lvbi0+Y29udGVudEhlaWdodCgpLCByZWdpb24tPmNvbnRlbnRXaWR0aCgp
LCByZWdpb24tPmNvbnRlbnRIZWlnaHQoKSk7CiAgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxI
ZWlnaHQgKz0gcmVnaW9uUmVjdC53aWR0aCgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICByZWdpb24tPnNldFJlZ2lvblJlY3QocmVnaW9uUmVjdCk7CkBAIC00MTksNyArNDE5
LDcgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjb21wdXRlTG9naWNhbFdpZAogICAgICAgICAK
ICAgICAgICAgTGF5b3V0VW5pdCByZWdpb25Mb2dpY2FsV2lkdGggPSBpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpID8gcmVnaW9uLT5jb250ZW50V2lkdGgoKSA6IHJlZ2lvbi0+Y29udGVudEhlaWdo
dCgpOwogICAgICAgICBpZiAocmVnaW9uTG9naWNhbFdpZHRoICE9IGxvZ2ljYWxXaWR0aCkgewot
ICAgICAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCA9IHN0eWxlKCktPmRpcmVjdGlvbigp
ID09IExUUiA/IDAgOiBsb2dpY2FsV2lkdGggLSByZWdpb25Mb2dpY2FsV2lkdGg7CisgICAgICAg
ICAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0ID0gc3R5bGUoKS0+ZGlyZWN0aW9uKCkgPT0gTFRS
ID8gemVyb0xheW91dFVuaXQgOiBsb2dpY2FsV2lkdGggLSByZWdpb25Mb2dpY2FsV2lkdGg7CiAg
ICAgICAgICAgICByZWdpb24tPnNldFJlbmRlckJveFJlZ2lvbkluZm8odGhpcywgbG9naWNhbExl
ZnQsIHJlZ2lvbkxvZ2ljYWxXaWR0aCwgZmFsc2UpOwogICAgICAgICB9CiAgICAgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHJldmlzaW9uIDEwNzgz
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDE4LDkgKzE0MTgsOSBAQCB2b2lkIFJlbmRlcklubGluZTo6cGFpbnRPdXRs
aW5lRm9yTGluZShHCiAgICAgLy8gbGVmdCBlZGdlCiAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdy
YXBoaWNzQ29udGV4dCwKICAgICAgICAgbGVmdCAtIG91dGxpbmVXaWR0aCwKLSAgICAgICAgdG9w
IC0gKGxhc3RsaW5lLmlzRW1wdHkoKSB8fCB0aGlzbGluZS54KCkgPCBsYXN0bGluZS54KCkgfHwg
KGxhc3RsaW5lLm1heFgoKSAtIDEpIDw9IHRoaXNsaW5lLngoKSA/IG91dGxpbmVXaWR0aCA6IDAp
LAorICAgICAgICB0b3AgLSAobGFzdGxpbmUuaXNFbXB0eSgpIHx8IHRoaXNsaW5lLngoKSA8IGxh
c3RsaW5lLngoKSB8fCAobGFzdGxpbmUubWF4WCgpIC0gMSkgPD0gdGhpc2xpbmUueCgpID8gb3V0
bGluZVdpZHRoIDogemVyb0xheW91dFVuaXQpLAogICAgICAgICBsZWZ0LAotICAgICAgICBib3R0
b20gKyAobmV4dGxpbmUuaXNFbXB0eSgpIHx8IHRoaXNsaW5lLngoKSA8PSBuZXh0bGluZS54KCkg
fHwgKG5leHRsaW5lLm1heFgoKSAtIDEpIDw9IHRoaXNsaW5lLngoKSA/IG91dGxpbmVXaWR0aCA6
IDApLAorICAgICAgICBib3R0b20gKyAobmV4dGxpbmUuaXNFbXB0eSgpIHx8IHRoaXNsaW5lLngo
KSA8PSBuZXh0bGluZS54KCkgfHwgKG5leHRsaW5lLm1heFgoKSAtIDEpIDw9IHRoaXNsaW5lLngo
KSA/IG91dGxpbmVXaWR0aCA6IHplcm9MYXlvdXRVbml0KSwKICAgICAgICAgQlNMZWZ0LAogICAg
ICAgICBvdXRsaW5lQ29sb3IsIG91dGxpbmVTdHlsZSwKICAgICAgICAgKGxhc3RsaW5lLmlzRW1w
dHkoKSB8fCB0aGlzbGluZS54KCkgPCBsYXN0bGluZS54KCkgfHwgKGxhc3RsaW5lLm1heFgoKSAt
IDEpIDw9IHRoaXNsaW5lLngoKSA/IG91dGxpbmVXaWR0aCA6IC1vdXRsaW5lV2lkdGgpLApAQCAt
MTQzMCw5ICsxNDMwLDkgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZUZvckxpbmUo
RwogICAgIC8vIHJpZ2h0IGVkZ2UKICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250
ZXh0LAogICAgICAgICByaWdodCwKLSAgICAgICAgdG9wIC0gKGxhc3RsaW5lLmlzRW1wdHkoKSB8
fCBsYXN0bGluZS5tYXhYKCkgPCB0aGlzbGluZS5tYXhYKCkgfHwgKHRoaXNsaW5lLm1heFgoKSAt
IDEpIDw9IGxhc3RsaW5lLngoKSA/IG91dGxpbmVXaWR0aCA6IDApLAorICAgICAgICB0b3AgLSAo
bGFzdGxpbmUuaXNFbXB0eSgpIHx8IGxhc3RsaW5lLm1heFgoKSA8IHRoaXNsaW5lLm1heFgoKSB8
fCAodGhpc2xpbmUubWF4WCgpIC0gMSkgPD0gbGFzdGxpbmUueCgpID8gb3V0bGluZVdpZHRoIDog
emVyb0xheW91dFVuaXQpLAogICAgICAgICByaWdodCArIG91dGxpbmVXaWR0aCwKLSAgICAgICAg
Ym90dG9tICsgKG5leHRsaW5lLmlzRW1wdHkoKSB8fCBuZXh0bGluZS5tYXhYKCkgPD0gdGhpc2xp
bmUubWF4WCgpIHx8ICh0aGlzbGluZS5tYXhYKCkgLSAxKSA8PSBuZXh0bGluZS54KCkgPyBvdXRs
aW5lV2lkdGggOiAwKSwKKyAgICAgICAgYm90dG9tICsgKG5leHRsaW5lLmlzRW1wdHkoKSB8fCBu
ZXh0bGluZS5tYXhYKCkgPD0gdGhpc2xpbmUubWF4WCgpIHx8ICh0aGlzbGluZS5tYXhYKCkgLSAx
KSA8PSBuZXh0bGluZS54KCkgPyBvdXRsaW5lV2lkdGggOiB6ZXJvTGF5b3V0VW5pdCksCiAgICAg
ICAgIEJTUmlnaHQsCiAgICAgICAgIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLAogICAgICAg
ICAobGFzdGxpbmUuaXNFbXB0eSgpIHx8IGxhc3RsaW5lLm1heFgoKSA8IHRoaXNsaW5lLm1heFgo
KSB8fCAodGhpc2xpbmUubWF4WCgpIC0gMSkgPD0gbGFzdGxpbmUueCgpID8gb3V0bGluZVdpZHRo
IDogLW91dGxpbmVXaWR0aCksCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAJKHJldmlzaW9uIDEwNzgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NDcsNyArMTc0Nyw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnJlc2l6ZShjb25zdCBQbGF0Zm9ybU0KICAgICAgICAgICAgIHN0eWxlRGVj
bGFyYXRpb24tPnNldFByb3BlcnR5KENTU1Byb3BlcnR5TWFyZ2luTGVmdCwgU3RyaW5nOjpudW1i
ZXIocmVuZGVyZXItPm1hcmdpbkxlZnQoKSAvIHpvb21GYWN0b3IpICsgInB4IiwgZmFsc2UpOwog
ICAgICAgICAgICAgc3R5bGVEZWNsYXJhdGlvbi0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlNYXJn
aW5SaWdodCwgU3RyaW5nOjpudW1iZXIocmVuZGVyZXItPm1hcmdpblJpZ2h0KCkgLyB6b29tRmFj
dG9yKSArICJweCIsIGZhbHNlKTsKICAgICAgICAgfQotICAgICAgICBMYXlvdXRVbml0IGJhc2VX
aWR0aCA9IHJlbmRlcmVyLT53aWR0aCgpIC0gKGlzQm94U2l6aW5nQm9yZGVyID8gMCA6IHJlbmRl
cmVyLT5ib3JkZXJBbmRQYWRkaW5nV2lkdGgoKSk7CisgICAgICAgIExheW91dFVuaXQgYmFzZVdp
ZHRoID0gcmVuZGVyZXItPndpZHRoKCkgLSAoaXNCb3hTaXppbmdCb3JkZXIgPyB6ZXJvTGF5b3V0
VW5pdCA6IHJlbmRlcmVyLT5ib3JkZXJBbmRQYWRkaW5nV2lkdGgoKSk7CiAgICAgICAgIGJhc2VX
aWR0aCA9IGJhc2VXaWR0aCAvIHpvb21GYWN0b3I7CiAgICAgICAgIHN0eWxlRGVjbGFyYXRpb24t
PnNldFByb3BlcnR5KENTU1Byb3BlcnR5V2lkdGgsIFN0cmluZzo6bnVtYmVyKGJhc2VXaWR0aCAr
IGRpZmZlcmVuY2Uud2lkdGgoKSkgKyAicHgiLCBmYWxzZSk7CiAgICAgfQpAQCAtMTc1OCw3ICsx
NzU4LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cmVzaXplKGNvbnN0IFBsYXRmb3JtTQogICAgICAg
ICAgICAgc3R5bGVEZWNsYXJhdGlvbi0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlNYXJnaW5Ub3As
IFN0cmluZzo6bnVtYmVyKHJlbmRlcmVyLT5tYXJnaW5Ub3AoKSAvIHpvb21GYWN0b3IpICsgInB4
IiwgZmFsc2UpOwogICAgICAgICAgICAgc3R5bGVEZWNsYXJhdGlvbi0+c2V0UHJvcGVydHkoQ1NT
UHJvcGVydHlNYXJnaW5Cb3R0b20sIFN0cmluZzo6bnVtYmVyKHJlbmRlcmVyLT5tYXJnaW5Cb3R0
b20oKSAvIHpvb21GYWN0b3IpICsgInB4IiwgZmFsc2UpOwogICAgICAgICB9Ci0gICAgICAgIExh
eW91dFVuaXQgYmFzZUhlaWdodCA9IHJlbmRlcmVyLT5oZWlnaHQoKSAtIChpc0JveFNpemluZ0Jv
cmRlciA/IDAgOiByZW5kZXJlci0+Ym9yZGVyQW5kUGFkZGluZ0hlaWdodCgpKTsKKyAgICAgICAg
TGF5b3V0VW5pdCBiYXNlSGVpZ2h0ID0gcmVuZGVyZXItPmhlaWdodCgpIC0gKGlzQm94U2l6aW5n
Qm9yZGVyID8gemVyb0xheW91dFVuaXQgOiByZW5kZXJlci0+Ym9yZGVyQW5kUGFkZGluZ0hlaWdo
dCgpKTsKICAgICAgICAgYmFzZUhlaWdodCA9IGJhc2VIZWlnaHQgLyB6b29tRmFjdG9yOwogICAg
ICAgICBzdHlsZURlY2xhcmF0aW9uLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUhlaWdodCwgU3Ry
aW5nOjpudW1iZXIoYmFzZUhlaWdodCArIGRpZmZlcmVuY2UuaGVpZ2h0KCkpICsgInB4IiwgZmFs
c2UpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5jcHAJKHJldmlzaW9uIDEwNzgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDczLDcgKzQ3Myw3IEBAIGludCBSZW5k
ZXJMaXN0Qm94OjpsaXN0SW5kZXhBdE9mZnNldChjb24KICAgICBpZiAob2Zmc2V0LmhlaWdodCgp
IDwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkgfHwgb2Zmc2V0LmhlaWdodCgpID4gaGVpZ2h0
KCkgLSBwYWRkaW5nQm90dG9tKCkgLSBib3JkZXJCb3R0b20oKSkKICAgICAgICAgcmV0dXJuIC0x
OwogCi0gICAgTGF5b3V0VW5pdCBzY3JvbGxiYXJXaWR0aCA9IG1fdkJhciA/IG1fdkJhci0+d2lk
dGgoKSA6IExheW91dFVuaXQoMCk7CisgICAgaW50IHNjcm9sbGJhcldpZHRoID0gbV92QmFyID8g
bV92QmFyLT53aWR0aCgpIDogMDsKICAgICBpZiAob2Zmc2V0LndpZHRoKCkgPCBib3JkZXJMZWZ0
KCkgKyBwYWRkaW5nTGVmdCgpIHx8IG9mZnNldC53aWR0aCgpID4gd2lkdGgoKSAtIGJvcmRlclJp
Z2h0KCkgLSBwYWRkaW5nUmlnaHQoKSAtIHNjcm9sbGJhcldpZHRoKQogICAgICAgICByZXR1cm4g
LTE7CiAKQEAgLTYzOCw3ICs2MzgsNyBAQCBMYXlvdXRVbml0IFJlbmRlckxpc3RCb3g6Oml0ZW1I
ZWlnaHQoKSBjCiAKIGludCBSZW5kZXJMaXN0Qm94Ojp2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV92QmFyICYmICFtX3ZCYXItPmlzT3ZlcmxheVNjcm9sbGJh
cigpID8gbV92QmFyLT53aWR0aCgpIDogTGF5b3V0VW5pdCgwKTsKKyAgICByZXR1cm4gbV92QmFy
ICYmICFtX3ZCYXItPmlzT3ZlcmxheVNjcm9sbGJhcigpID8gbV92QmFyLT53aWR0aCgpIDogMDsK
IH0KIAogLy8gRklYTUU6IFdlIGlnbm9yZSBwYWRkaW5nIGluIHRoZSB2ZXJ0aWNhbCBkaXJlY3Rp
b24gYXMgZmFyIGFzIHRoZXNlIHZhbHVlcyBhcmUgY29uY2VybmVkLCBzaW5jZSB0aGF0J3MKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5jcHAJKHJldmlzaW9u
IDEwNzgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTI1LDEzICsxMjUsMTMgQEAgaW50IFJlbmRlck1hcnF1ZWU6OmNv
bXB1dGVQb3NpdGlvbihFTWFycQogICAgICAgICB9CiAgICAgICAgIGlmIChkaXIgPT0gTVJJR0hU
KSB7CiAgICAgICAgICAgICBpZiAoc3RvcEF0Q29udGVudEVkZ2UpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIG1heCgwLCBsdHIgPyAoY29udGVudFdpZHRoIC0gY2xpZW50V2lkdGgpIDogKGNsaWVu
dFdpZHRoIC0gY29udGVudFdpZHRoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1heCh6ZXJv
TGF5b3V0VW5pdCwgbHRyID8gKGNvbnRlbnRXaWR0aCAtIGNsaWVudFdpZHRoKSA6IChjbGllbnRX
aWR0aCAtIGNvbnRlbnRXaWR0aCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IHJldHVybiBsdHIgPyBjb250ZW50V2lkdGggOiBjbGllbnRXaWR0aDsKICAgICAgICAgfQogICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIGlmIChzdG9wQXRDb250ZW50RWRnZSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gbWluKDAsIGx0ciA/IChjb250ZW50V2lkdGggLSBjbGllbnRXaWR0aCkg
OiAoY2xpZW50V2lkdGggLSBjb250ZW50V2lkdGgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
bWluKHplcm9MYXlvdXRVbml0LCBsdHIgPyAoY29udGVudFdpZHRoIC0gY2xpZW50V2lkdGgpIDog
KGNsaWVudFdpZHRoIC0gY29udGVudFdpZHRoKSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGx0ciA/IC1jbGllbnRXaWR0aCA6IC1jb250ZW50V2lkdGg7CiAgICAg
ICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCShy
ZXZpc2lvbiAxMDc4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQxNyw4ICsxNDE3LDggQEAgYm9vbCBSZW5kZXJPYmpl
Y3Q6OnJlcGFpbnRBZnRlckxheW91dElmTgogICAgICAgICBMYXlvdXRVbml0IHNoYWRvd1JpZ2h0
OwogICAgICAgICBzdHlsZSgpLT5nZXRCb3hTaGFkb3dIb3Jpem9udGFsRXh0ZW50KHNoYWRvd0xl
ZnQsIHNoYWRvd1JpZ2h0KTsKIAotICAgICAgICBMYXlvdXRVbml0IGJvcmRlclJpZ2h0ID0gaXNC
b3goKSA/IHRvUmVuZGVyQm94KHRoaXMpLT5ib3JkZXJSaWdodCgpIDogTGF5b3V0VW5pdCgwKTsK
LSAgICAgICAgTGF5b3V0VW5pdCBib3hXaWR0aCA9IGlzQm94KCkgPyB0b1JlbmRlckJveCh0aGlz
KS0+d2lkdGgoKSA6IExheW91dFVuaXQoMCk7CisgICAgICAgIExheW91dFVuaXQgYm9yZGVyUmln
aHQgPSBpc0JveCgpID8gdG9SZW5kZXJCb3godGhpcyktPmJvcmRlclJpZ2h0KCkgOiB6ZXJvTGF5
b3V0VW5pdDsKKyAgICAgICAgTGF5b3V0VW5pdCBib3hXaWR0aCA9IGlzQm94KCkgPyB0b1JlbmRl
ckJveCh0aGlzKS0+d2lkdGgoKSA6IHplcm9MYXlvdXRVbml0OwogICAgICAgICBMYXlvdXRVbml0
IGJvcmRlcldpZHRoID0gbWF4PExheW91dFVuaXQ+KC1vdXRsaW5lU3R5bGUtPm91dGxpbmVPZmZz
ZXQoKSwgbWF4KGJvcmRlclJpZ2h0LCBtYXg8TGF5b3V0VW5pdD4oc3R5bGUoKS0+Ym9yZGVyVG9w
UmlnaHRSYWRpdXMoKS53aWR0aCgpLmNhbGNWYWx1ZShib3hXaWR0aCksIHN0eWxlKCktPmJvcmRl
ckJvdHRvbVJpZ2h0UmFkaXVzKCkud2lkdGgoKS5jYWxjVmFsdWUoYm94V2lkdGgpKSkpICsgbWF4
KG93LCBzaGFkb3dSaWdodCk7CiAgICAgICAgIExheW91dFJlY3QgcmlnaHRSZWN0KG5ld091dGxp
bmVCb3gueCgpICsgbWluKG5ld091dGxpbmVCb3gud2lkdGgoKSwgb2xkT3V0bGluZUJveC53aWR0
aCgpKSAtIGJvcmRlcldpZHRoLAogICAgICAgICAgICAgbmV3T3V0bGluZUJveC55KCksCkBAIC0x
NDM2LDggKzE0MzYsOCBAQCBib29sIFJlbmRlck9iamVjdDo6cmVwYWludEFmdGVyTGF5b3V0SWZO
CiAgICAgICAgIExheW91dFVuaXQgc2hhZG93Qm90dG9tOwogICAgICAgICBzdHlsZSgpLT5nZXRC
b3hTaGFkb3dWZXJ0aWNhbEV4dGVudChzaGFkb3dUb3AsIHNoYWRvd0JvdHRvbSk7CiAKLSAgICAg
ICAgTGF5b3V0VW5pdCBib3JkZXJCb3R0b20gPSBpc0JveCgpID8gdG9SZW5kZXJCb3godGhpcykt
PmJvcmRlckJvdHRvbSgpIDogTGF5b3V0VW5pdCgwKTsKLSAgICAgICAgTGF5b3V0VW5pdCBib3hI
ZWlnaHQgPSBpc0JveCgpID8gdG9SZW5kZXJCb3godGhpcyktPmhlaWdodCgpIDogTGF5b3V0VW5p
dCgwKTsKKyAgICAgICAgTGF5b3V0VW5pdCBib3JkZXJCb3R0b20gPSBpc0JveCgpID8gdG9SZW5k
ZXJCb3godGhpcyktPmJvcmRlckJvdHRvbSgpIDogemVyb0xheW91dFVuaXQ7CisgICAgICAgIExh
eW91dFVuaXQgYm94SGVpZ2h0ID0gaXNCb3goKSA/IHRvUmVuZGVyQm94KHRoaXMpLT5oZWlnaHQo
KSA6IHplcm9MYXlvdXRVbml0OwogICAgICAgICBMYXlvdXRVbml0IGJvcmRlckhlaWdodCA9IG1h
eDxMYXlvdXRVbml0Pigtb3V0bGluZVN0eWxlLT5vdXRsaW5lT2Zmc2V0KCksIG1heChib3JkZXJC
b3R0b20sIG1heDxMYXlvdXRVbml0PihzdHlsZSgpLT5ib3JkZXJCb3R0b21MZWZ0UmFkaXVzKCku
aGVpZ2h0KCkuY2FsY1ZhbHVlKGJveEhlaWdodCksIHN0eWxlKCktPmJvcmRlckJvdHRvbVJpZ2h0
UmFkaXVzKCkuaGVpZ2h0KCkuY2FsY1ZhbHVlKGJveEhlaWdodCkpKSkgKyBtYXgob3csIHNoYWRv
d0JvdHRvbSk7CiAgICAgICAgIExheW91dFJlY3QgYm90dG9tUmVjdChuZXdPdXRsaW5lQm94Lngo
KSwKICAgICAgICAgICAgIG1pbihuZXdPdXRsaW5lQm94Lm1heFkoKSwgb2xkT3V0bGluZUJveC5t
YXhZKCkpIC0gYm9yZGVySGVpZ2h0LApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJlcGxhY2VkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwCShyZXZpc2lvbiAxMDc4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzgsNyArNDM4
LDcgQEAgdm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVByZWZlcnJlZExvZwogICAgIG1fbWF4
UHJlZmVycmVkTG9naWNhbFdpZHRoID0gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGZhbHNl
KSArIGJvcmRlckFuZFBhZGRpbmc7CiAKICAgICBpZiAoc3R5bGUoKS0+bWF4V2lkdGgoKS5pc0Zp
eGVkKCkpCi0gICAgICAgIG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoID0gbWluKG1fbWF4UHJl
ZmVycmVkTG9naWNhbFdpZHRoLCBzdHlsZSgpLT5tYXhXaWR0aCgpLnZhbHVlKCkgKyAoc3R5bGUo
KS0+Ym94U2l6aW5nKCkgPT0gQ09OVEVOVF9CT1ggPyBib3JkZXJBbmRQYWRkaW5nIDogMCkpOwor
ICAgICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IG1pbihtX21heFByZWZlcnJlZExv
Z2ljYWxXaWR0aCwgc3R5bGUoKS0+bWF4V2lkdGgoKS52YWx1ZSgpICsgKHN0eWxlKCktPmJveFNp
emluZygpID09IENPTlRFTlRfQk9YID8gYm9yZGVyQW5kUGFkZGluZyA6IHplcm9MYXlvdXRVbml0
KSk7CiAKICAgICBpZiAoc3R5bGUoKS0+d2lkdGgoKS5pc1BlcmNlbnQoKSB8fCBzdHlsZSgpLT5o
ZWlnaHQoKS5pc1BlcmNlbnQoKQogICAgICAgICB8fCBzdHlsZSgpLT5tYXhXaWR0aCgpLmlzUGVy
Y2VudCgpIHx8IHN0eWxlKCktPm1heEhlaWdodCgpLmlzUGVyY2VudCgpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAJKHJldmlzaW9uIDEwNzgzNSkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI3Miw3ICsyNzIsNyBAQCBMYXlvdXRVbml0IFJlbmRlclRhYmxlOjpjb252ZXJ0U3R5bGVMb2dp
CiAgICAgYm9vbCBpc0NTU1RhYmxlID0gIW5vZGUoKSB8fCAhbm9kZSgpLT5oYXNUYWdOYW1lKHRh
YmxlVGFnKTsKICAgICBpZiAoaXNDU1NUYWJsZSAmJiBzdHlsZUxvZ2ljYWxXaWR0aC5pc0ZpeGVk
KCkgJiYgc3R5bGVMb2dpY2FsV2lkdGguaXNQb3NpdGl2ZSgpKSB7CiAgICAgICAgIHJlY2FsY0Jv
cmRlcnNJblJvd0RpcmVjdGlvbigpOwotICAgICAgICBib3JkZXJzID0gYm9yZGVyU3RhcnQoKSAr
IGJvcmRlckVuZCgpICsgKGNvbGxhcHNlQm9yZGVycygpID8gMCA6IHBhZGRpbmdTdGFydCgpICsg
cGFkZGluZ0VuZCgpKTsKKyAgICAgICAgYm9yZGVycyA9IGJvcmRlclN0YXJ0KCkgKyBib3JkZXJF
bmQoKSArIChjb2xsYXBzZUJvcmRlcnMoKSA/IHplcm9MYXlvdXRVbml0IDogcGFkZGluZ1N0YXJ0
KCkgKyBwYWRkaW5nRW5kKCkpOwogICAgIH0KICAgICByZXR1cm4gc3R5bGVMb2dpY2FsV2lkdGgu
Y2FsY01pblZhbHVlKGF2YWlsYWJsZVdpZHRoKSArIGJvcmRlcnM7CiB9CkBAIC0zNzAsOCArMzcw
LDggQEAgdm9pZCBSZW5kZXJUYWJsZTo6bGF5b3V0KCkKICAgICAgICAgfQogICAgIH0KIAotICAg
IExheW91dFVuaXQgYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSA9IGJvcmRlckJlZm9yZSgpICsgKGNv
bGxhcHNpbmcgPyAwIDogcGFkZGluZ0JlZm9yZSgpKTsKLSAgICBMYXlvdXRVbml0IGJvcmRlckFu
ZFBhZGRpbmdBZnRlciA9IGJvcmRlckFmdGVyKCkgKyAoY29sbGFwc2luZyA/IDAgOiBwYWRkaW5n
QWZ0ZXIoKSk7CisgICAgTGF5b3V0VW5pdCBib3JkZXJBbmRQYWRkaW5nQmVmb3JlID0gYm9yZGVy
QmVmb3JlKCkgKyAoY29sbGFwc2luZyA/IHplcm9MYXlvdXRVbml0IDogcGFkZGluZ0JlZm9yZSgp
KTsKKyAgICBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmdBZnRlciA9IGJvcmRlckFmdGVyKCkg
KyAoY29sbGFwc2luZyA/IHplcm9MYXlvdXRVbml0IDogcGFkZGluZ0FmdGVyKCkpOwogCiAgICAg
c2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KCkgKyBib3JkZXJBbmRQYWRkaW5nQmVmb3Jl
KTsKIApAQCAtMzgyLDcgKzM4Miw3IEBAIHZvaWQgUmVuZGVyVGFibGU6OmxheW91dCgpCiAgICAg
TGF5b3V0VW5pdCBjb21wdXRlZExvZ2ljYWxIZWlnaHQgPSAwOwogICAgIGlmIChsb2dpY2FsSGVp
Z2h0TGVuZ3RoLmlzRml4ZWQoKSkgewogICAgICAgICAvLyBIVE1MIHRhYmxlcyBzaXplIGFzIHRo
b3VnaCBDU1MgaGVpZ2h0IGluY2x1ZGVzIGJvcmRlci9wYWRkaW5nLCBDU1MgdGFibGVzIGRvIG5v
dC4KLSAgICAgICAgTGF5b3V0VW5pdCBib3JkZXJzID0gbm9kZSgpICYmIG5vZGUoKS0+aGFzVGFn
TmFtZSh0YWJsZVRhZykgPyAoYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSArIGJvcmRlckFuZFBhZGRp
bmdBZnRlcikgOiAwOworICAgICAgICBMYXlvdXRVbml0IGJvcmRlcnMgPSBub2RlKCkgJiYgbm9k
ZSgpLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSA/IChib3JkZXJBbmRQYWRkaW5nQmVmb3JlICsgYm9y
ZGVyQW5kUGFkZGluZ0FmdGVyKSA6IHplcm9MYXlvdXRVbml0OwogICAgICAgICBjb21wdXRlZExv
Z2ljYWxIZWlnaHQgPSBsb2dpY2FsSGVpZ2h0TGVuZ3RoLnZhbHVlKCkgLSBib3JkZXJzOwogICAg
IH0gZWxzZSBpZiAobG9naWNhbEhlaWdodExlbmd0aC5pc1BlcmNlbnQoKSkKICAgICAgICAgY29t
cHV0ZWRMb2dpY2FsSGVpZ2h0ID0gY29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KGxvZ2lj
YWxIZWlnaHRMZW5ndGgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
LmgJKHJldmlzaW9uIDEwNzgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNyArMTcyLDcgQEAgcHVibGljOgogICAgIExh
eW91dFVuaXQgYm9yZGVyc1BhZGRpbmdBbmRTcGFjaW5nSW5Sb3dEaXJlY3Rpb24oKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuIGJvcmRlclN0YXJ0KCkgKyBib3JkZXJFbmQoKSArCi0gICAg
ICAgICAgICAgICAoY29sbGFwc2VCb3JkZXJzKCkgPyAwIDogKHBhZGRpbmdTdGFydCgpICsgcGFk
ZGluZ0VuZCgpICsgKG51bUVmZkNvbHMoKSArIDEpICogaEJvcmRlclNwYWNpbmcoKSkpOworICAg
ICAgICAgICAgICAgKGNvbGxhcHNlQm9yZGVycygpID8gemVyb0xheW91dFVuaXQgOiAocGFkZGlu
Z1N0YXJ0KCkgKyBwYWRkaW5nRW5kKCkgKyAobnVtRWZmQ29scygpICsgMSkgKiBoQm9yZGVyU3Bh
Y2luZygpKSk7CiAgICAgfQogCiAgICAgUmVuZGVyVGFibGVDb2wqIGNvbEVsZW1lbnQodW5zaWdu
ZWQgY29sLCBib29sKiBzdGFydEVkZ2UgPSAwLCBib29sKiBlbmRFZGdlID0gMCkgY29uc3Q7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFN1YlN1cC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxTdWJTdXAuY3BwCShyZXZpc2lvbiAxMDc4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFN1YlN1cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2
Miw3ICsxNjIsNyBAQCB2b2lkIFJlbmRlck1hdGhNTFN1YlN1cDo6bGF5b3V0KCkgCiAgICAgICAg
ICAgICAgICAgICAgIG1heEhlaWdodCA9IGhlaWdodDsKICAgICAgICAgICAgICAgICBjdXJyZW50
ID0gY3VycmVudC0+bmV4dFNpYmxpbmcoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIExh
eW91dFVuaXQgaGVpZ2h0RGlmZiA9IG1fc2NyaXB0cyA/IChtX3NjcmlwdHMtPm9mZnNldEhlaWdo
dCgpIC0gbWF4SGVpZ2h0KSAvIDIgOiAwOworICAgICAgICAgICAgTGF5b3V0VW5pdCBoZWlnaHRE
aWZmID0gbV9zY3JpcHRzID8gKG1fc2NyaXB0cy0+b2Zmc2V0SGVpZ2h0KCkgLSBtYXhIZWlnaHQp
IC8gMiA6IHplcm9MYXlvdXRVbml0OwogICAgICAgICAgICAgaWYgKGhlaWdodERpZmYgPCAwKSAK
ICAgICAgICAgICAgICAgICBoZWlnaHREaWZmID0gMDsKICAgICAgICAgICAgIGJhc2UtPnN0eWxl
KCktPnNldFBhZGRpbmdUb3AoTGVuZ3RoKGhlaWdodERpZmYsIEZpeGVkKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>