<?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>70673</bug_id>
          
          <creation_ts>2011-10-21 23:50:40 -0700</creation_ts>
          <short_desc>Separated string lifetime bits from character buffer state bits</short_desc>
          <delta_ts>2011-10-23 00:20:37 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>abarth</cc>
    
    <cc>barraclough</cc>
    
    <cc>japhet</cc>
    
    <cc>msaboff</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>488896</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-21 23:50:40 -0700</bug_when>
    <thetext>Separated string lifetime bits from character bufer state bits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488900</commentid>
    <comment_count>1</comment_count>
      <attachid>112081</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-22 00:28:07 -0700</bug_when>
    <thetext>Created attachment 112081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488902</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-22 00:31:01 -0700</bug_when>
    <thetext>Attachment 112081 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1

Source/JavaScriptCore/wtf/text/StringImpl.h:275:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488908</commentid>
    <comment_count>3</comment_count>
      <attachid>112081</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-10-22 02:12:23 -0700</bug_when>
    <thetext>Comment on attachment 112081
Patch

Attachment 112081 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/10202168</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488944</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-22 10:42:11 -0700</bug_when>
    <thetext>@dbates Look closer at the mac-ews results: &quot;Unable to build without patch [results]&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488946</commentid>
    <comment_count>5</comment_count>
      <attachid>112091</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-22 11:14:42 -0700</bug_when>
    <thetext>Created attachment 112091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488947</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-22 11:16:26 -0700</bug_when>
    <thetext>Attachment 112091 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1

Source/JavaScriptCore/wtf/text/StringImpl.h:275:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488998</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-23 00:20:37 -0700</bug_when>
    <thetext>Committed r98199: &lt;http://trac.webkit.org/changeset/98199&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112081</attachid>
            <date>2011-10-22 00:28:07 -0700</date>
            <delta_ts>2011-10-22 11:14:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70673-20111022002805.patch</filename>
            <type>text/plain</type>
            <size>31069</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTgxOTEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDkgQEAK
KzIwMTEtMTAtMjEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBTZXBhcmF0ZWQgc3RyaW5nIGxpZmV0aW1lIGJpdHMgZnJvbSBjaGFyYWN0ZXIgYnVmZXIgc3Rh
dGUgYml0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzA2NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIE1vdmVkIHRoZSBzdGF0aWMvaW1tb3J0YWwgYml0IGludG8gdGhlIGJvdHRvbSBiaXQg
b2YgdGhlIHJlZmNvdW50LCBhbmQKKyAgICAgICAgbW92ZWQgYWxsIG90aGVyIGJpdHMgaW50byB0
aGUgaGlnaCBiaXRzIG9mIHRoZSBoYXNoIGNvZGUuCisgICAgICAgIAorICAgICAgICBUaGlzIGlz
IHRoZSBmaXJzdCBzdGVwIHRvd2FyZCBhIG5ldyBDaGFyYWN0ZXJzL1Bhc3NTdHJpbmcgY2xhc3Ms
IGFuZCBpdAorICAgICAgICBtYWtlcyByZWYvZGVyZWYgc2xpZ2h0bHkgbW9yZSBlZmZpY2llbnQu
CisKKyAgICAgICAgKiBjcmVhdGVfaGFzaF90YWJsZToKKyAgICAgICAgKiB3dGYvU3RyaW5nSGFz
aGVyLmg6CisgICAgICAgIChXVEY6OlN0cmluZ0hhc2hlcjo6aGFzaCk6IFR3ZWFrZWQgdGhlIHN0
cmluZyBoYXNoaW5nIGZ1bmN0aW9uIHRvIGxlYXZlCisgICAgICAgIHRoZSB0b3AgYml0cyBjbGVh
ciwgc28gdGhleSBjYW4gYmUgdXNlZCBhcyBmbGFncy4KKyAgICAgICAgCisgICAgICAgIEZpeGVk
IHNvbWUgc21hbGwgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgUEVSTCBjb3B5IG9mIHRoaXMgZnVu
Y3Rpb24gYW5kCisgICAgICAgIHRoZSBDKysgY29weSBvZiB0aGlzIGZ1bmN0aW9uLCB3aGljaCBj
b3VsZCBoYXZlIGluIHRoZW9yeSBjYXVzZWQgc3VidGxlCisgICAgICAgIGNyYXNoZXMuCisKKyAg
ICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1w
bDo6c2hhcmVkQnVmZmVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6Y3JlYXRlV2l0aFRl
cm1pbmF0aW5nTnVsbENoYXJhY3Rlcik6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5o
OgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpTdHJpbmdJbXBsKToKKyAgICAgICAgKFdURjo6
U3RyaW5nSW1wbDo6Y29zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmlzSWRlbnRpZmll
cik6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnNldElzSWRlbnRpZmllcik6CisgICAgICAg
IChXVEY6OlN0cmluZ0ltcGw6Omhhc1Rlcm1pbmF0aW5nTnVsbENoYXJhY3Rlcik6CisgICAgICAg
IChXVEY6OlN0cmluZ0ltcGw6OmlzQXRvbWljKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6
c2V0SXNBdG9taWMpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpzZXRIYXNoKToKKyAgICAg
ICAgKFdURjo6U3RyaW5nSW1wbDo6cmF3SGFzaCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6
Omhhc0hhc2gpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpleGlzdGluZ0hhc2gpOgorICAg
ICAgICAoV1RGOjpTdHJpbmdJbXBsOjpoYXNoKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6
aGFzT25lUmVmKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6cmVmKToKKyAgICAgICAgKFdU
Rjo6U3RyaW5nSW1wbDo6ZGVyZWYpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpidWZmZXJP
d25lcnNoaXApOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjppc1N0YXRpYyk6IE1vdmVkIHRo
ZSBzdGF0aWMvaW1tb3J0YWwgYml0IGludG8gdGhlIGJvdHRvbQorICAgICAgICBiaXQgb2YgdGhl
IHJlZmNvdW50LiBOb3csIGFsbCBsaWZldGltZSBpbmZvcm1hdGlvbiBsaXZlcyBpbiB0aGUgcmVm
Y291bnQKKyAgICAgICAgZmllbGQuIE1vdmVkIHRoZSBvdGhlciBiaXRzIGludG8gdGhlIGhhc2gg
Y29kZSBmaWVsZC4KKwogMjAxMS0xMC0yMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29t
PgogCiAgICAgICAgIERGRyBpbmxpbmluZyBzb21ldGltZXMgZmFpbHMgdG8gcmVzZXQgY29uc3Rh
bnQgcmVmZXJlbmNlcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3Rh
YmxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90YWJs
ZQkocmV2aXNpb24gOTgxNzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hf
dGFibGUJKHdvcmtpbmcgY29weSkKQEAgLTE3OSw3ICsxNzksNiBAQCBzdWIgY2FsY0NvbXBhY3RI
YXNoU2l6ZSgpCiAKICMgUGF1bCBIc2llaCdzIFN1cGVyRmFzdEhhc2gKICMgaHR0cDovL3d3dy5h
emlsbGlvbm1vbmtleXMuY29tL3FlZC9oYXNoLmh0bWwKLSMgUG9ydGVkIGZyb20gVVN0cmluZy4u
CiBzdWIgaGFzaFZhbHVlKCQpIHsKICAgbXkgQGNoYXJzID0gc3BsaXQoLyAqLywgJF9bMF0pOwog
CkBAIC0yMDcsNyArMjA2LDcgQEAgc3ViIGhhc2hWYWx1ZSgkKSB7CiAgIH0KIAogICAjIEhhbmRs
ZSBlbmQgY2FzZQotICBpZiAoJHJlbSAhPTApIHsKKyAgaWYgKCRyZW0gIT0gMCkgewogICAgICRo
YXNoICs9IG9yZCgkY2hhcnNbJHNdKTsKICAgICAkaGFzaCBePSAobGVmdFNoaWZ0KCRoYXNoLCAx
MSklICRFWFAyXzMyKTsKICAgICAkaGFzaCArPSAkaGFzaCA+PiAxNzsKQEAgLTIyMSwxMSArMjIw
LDE1IEBAIHN1YiBoYXNoVmFsdWUoJCkgewogICAkaGFzaCArPSAoJGhhc2ggPj4gMTUpOwogICAk
aGFzaCA9ICRoYXNoJSAkRVhQMl8zMjsKICAgJGhhc2ggXj0gKGxlZnRTaGlmdCgkaGFzaCwgMTAp
JSAkRVhQMl8zMik7Ci0gIAotICAjIHRoaXMgYXZvaWRzIGV2ZXIgcmV0dXJuaW5nIGEgaGFzaCBj
b2RlIG9mIDAsIHNpbmNlIHRoYXQgaXMgdXNlZCB0bwotICAjIHNpZ25hbCAiaGFzaCBub3QgY29t
cHV0ZWQgeWV0IiwgdXNpbmcgYSB2YWx1ZSB0aGF0IGlzIGxpa2VseSB0byBiZQotICAjIGVmZmVj
dGl2ZWx5IHRoZSBzYW1lIGFzIDAgd2hlbiB0aGUgbG93IGJpdHMgYXJlIG1hc2tlZAotICAkaGFz
aCA9IDB4ODAwMDAwMDAgIGlmICgkaGFzaCA9PSAwKTsKKworICAjIFNhdmUgNiBiaXRzIGZvciBT
dHJpbmdJbXBsIHRvIHVzZSBhcyBmbGFncy4KKyAgJGhhc2ggPSAoJGhhc2ggPj4gNik7CisKKyAg
IyBUaGlzIGF2b2lkcyBldmVyIHJldHVybmluZyBhIGhhc2ggY29kZSBvZiAwLCBzaW5jZSB0aGF0
IGlzIHVzZWQgdG8KKyAgIyBzaWduYWwgImhhc2ggbm90IGNvbXB1dGVkIHlldCIuIFNldHRpbmcg
dGhlIGhpZ2ggYml0IG1haW50YWlucworICAjIHJlYXNvbmFibGUgZmlkZWxpdHkgdG8gYSBoYXNo
IGNvZGUgb2YgMCBiZWNhdXNlIGl0IGlzIGxpa2VseSB0byB5aWVsZAorICAjIGV4YWN0bHkgMCB3
aGVuIGhhc2ggbG9va3VwIG1hc2tzIG91dCB0aGUgaGlnaCBiaXRzLgorICAkaGFzaCA9ICgweDgw
MDAwMDAwID4+IDYpIGlmICgkaGFzaCA9PSAwKTsKIAogICByZXR1cm4gJGhhc2g7CiB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1N0cmluZ0hhc2hlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvU3RyaW5nSGFzaGVyLmgJKHJldmlzaW9uIDk4MTc3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9TdHJpbmdIYXNoZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMzEsOCArMzEsMTMgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHN0cmluZ0hhc2hp
bmdTdGFydAogLy8gUGF1bCBIc2llaCdzIFN1cGVyRmFzdEhhc2gKIC8vIGh0dHA6Ly93d3cuYXpp
bGxpb25tb25rZXlzLmNvbS9xZWQvaGFzaC5odG1sCiAvLyBjaGFyKiBkYXRhIGlzIGludGVycHJl
dGVkIGFzIGxhdGluLWVuY29kZWQgKHplcm8gZXh0ZW5kZWQgdG8gMTYgYml0cykuCisKKy8vIE5P
VEU6IFRoaXMgY2xhc3MgbXVzdCBzdGF5IGluIHN5bmMgd2l0aCB0aGUgY3JlYXRlX2hhc2hfdGFi
bGUgc2NyaXB0IGluCisvLyBKYXZhU2NyaXB0Q29yZSBhbmQgdGhlIENvZGVHZW5lcmF0b3JKUy5w
bSBzY3JpcHQgaW4gV2ViQ29yZS4KIGNsYXNzIFN0cmluZ0hhc2hlciB7CiBwdWJsaWM6CisgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIGZsYWdDb3VudCA9IDY7IC8vIFNhdmUgNiBiaXRzIGZvciBT
dHJpbmdJbXBsIHRvIHVzZSBhcyBmbGFncy4KKwogICAgIGlubGluZSBTdHJpbmdIYXNoZXIoKQog
ICAgICAgICA6IG1faGFzaChzdHJpbmdIYXNoaW5nU3RhcnRWYWx1ZSkKICAgICAgICAgLCBtX2hh
c1BlbmRpbmdDaGFyYWN0ZXIoZmFsc2UpCkBAIC03NiwxNCArODEsMTYgQEAgcHVibGljOgogICAg
ICAgICByZXN1bHQgKz0gcmVzdWx0ID4+IDE1OwogICAgICAgICByZXN1bHQgXj0gcmVzdWx0IDw8
IDEwOwogCi0gICAgICAgIC8vIEZpcnN0IGJpdCBpcyB1c2VkIGluIFVTdHJpbmdJbXBsIGZvciBt
X2lzSWRlbnRpZmllci4KLSAgICAgICAgcmVzdWx0ICY9IDB4N2ZmZmZmZmY7CisgICAgICAgIC8v
IFJlc2VydmluZyB0aGUgaGlnaCBiaXRzIGZvciBmbGFncyBwZXJzZXJ2ZXMgbW9zdCBvZiB0aGUg
aGFzaCdzIHZhbHVlLAorICAgICAgICAvLyBzaW5jZSBoYXNoIGxvb2t1cCB0eXBpY2FsbHkgbWFz
a3Mgb3V0IHRoZSBoaWdoIGJpdHMgYW55d2F5LgorICAgICAgICByZXN1bHQgPj49IGZsYWdDb3Vu
dDsKIAogICAgICAgICAvLyBUaGlzIGF2b2lkcyBldmVyIHJldHVybmluZyBhIGhhc2ggY29kZSBv
ZiAwLCBzaW5jZSB0aGF0IGlzIHVzZWQgdG8KLSAgICAgICAgLy8gc2lnbmFsICJoYXNoIG5vdCBj
b21wdXRlZCB5ZXQiLCB1c2luZyBhIHZhbHVlIHRoYXQgaXMgbGlrZWx5IHRvIGJlCi0gICAgICAg
IC8vIGVmZmVjdGl2ZWx5IHRoZSBzYW1lIGFzIDAgd2hlbiB0aGUgbG93IGJpdHMgYXJlIG1hc2tl
ZC4KKyAgICAgICAgLy8gc2lnbmFsICJoYXNoIG5vdCBjb21wdXRlZCB5ZXQiLiBTZXR0aW5nIHRo
ZSBoaWdoIGJpdCBtYWludGFpbnMKKyAgICAgICAgLy8gcmVhc29uYWJsZSBmaWRlbGl0eSB0byBh
IGhhc2ggY29kZSBvZiAwIGJlY2F1c2UgaXQgaXMgbGlrZWx5IHRvIHlpZWxkCisgICAgICAgIC8v
IGV4YWN0bHkgMCB3aGVuIGhhc2ggbG9va3VwIG1hc2tzIG91dCB0aGUgaGlnaCBiaXRzLgogICAg
ICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiAweDQwMDAwMDAwOworICAgICAg
ICAgICAgcmVzdWx0ID0gMHg4MDAwMDAwMCA+PiBmbGFnQ291bnQ7CiAKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3Ry
aW5nSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0
L1N0cmluZ0ltcGwuY3BwCShyZXZpc2lvbiA5ODE3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY4LDcgKzE2OCw3
IEBAIFNoYXJlZFVDaGFyKiBTdHJpbmdJbXBsOjpzaGFyZWRCdWZmZXIoKQogICAgIGlmIChvd25l
cnNoaXAgPT0gQnVmZmVyT3duZWQpIHsKICAgICAgICAgQVNTRVJUKCFtX3NoYXJlZEJ1ZmZlcik7
CiAgICAgICAgIG1fc2hhcmVkQnVmZmVyID0gU2hhcmVkVUNoYXI6OmNyZWF0ZShuZXcgU2hhcmFi
bGVVQ2hhcihtX2RhdGEpKS5sZWFrUmVmKCk7Ci0gICAgICAgIG1fcmVmQ291bnRBbmRGbGFncyA9
IChtX3JlZkNvdW50QW5kRmxhZ3MgJiB+c19yZWZDb3VudE1hc2tCdWZmZXJPd25lcnNoaXApIHwg
QnVmZmVyU2hhcmVkOworICAgICAgICBtX2hhc2hBbmRGbGFncyA9IChtX2hhc2hBbmRGbGFncyAm
IH5zX2hhc2hNYXNrQnVmZmVyT3duZXJzaGlwKSB8IEJ1ZmZlclNoYXJlZDsKICAgICB9CiAKICAg
ICBBU1NFUlQoYnVmZmVyT3duZXJzaGlwKCkgPT0gQnVmZmVyU2hhcmVkKTsKQEAgLTExNTYsOCAr
MTE1Niw3IEBAIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXQKICAgICBt
ZW1jcHkoZGF0YSwgc3RyaW5nLm1fZGF0YSwgbGVuZ3RoICogc2l6ZW9mKFVDaGFyKSk7CiAgICAg
ZGF0YVtsZW5ndGhdID0gMDsKICAgICB0ZXJtaW5hdGVkU3RyaW5nLT5tX2xlbmd0aC0tOwotICAg
IHRlcm1pbmF0ZWRTdHJpbmctPm1faGFzaCA9IHN0cmluZy5tX2hhc2g7Ci0gICAgdGVybWluYXRl
ZFN0cmluZy0+bV9yZWZDb3VudEFuZEZsYWdzIHw9IHNfcmVmQ291bnRGbGFnSGFzVGVybWluYXRp
bmdOdWxsQ2hhcmFjdGVyOworICAgIHRlcm1pbmF0ZWRTdHJpbmctPm1faGFzaEFuZEZsYWdzID0g
KHN0cmluZy5tX2hhc2hBbmRGbGFncyAmIH5zX2ZsYWdNYXNrKSB8IHNfaGFzaEZsYWdIYXNUZXJt
aW5hdGluZ051bGxDaGFyYWN0ZXI7CiAgICAgcmV0dXJuIHRlcm1pbmF0ZWRTdHJpbmcucmVsZWFz
ZSgpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1w
bC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJ
bXBsLmgJKHJldmlzaW9uIDk4MTc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0
L1N0cmluZ0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtODMsMTMgKzgzLDEzIEBAIHByaXZhdGU6
CiAgICAgLy8gVXNlZCB0byBjb25zdHJ1Y3Qgc3RhdGljIHN0cmluZ3MsIHdoaWNoIGhhdmUgYW4g
c3BlY2lhbCByZWZDb3VudCB0aGF0IGNhbiBuZXZlciBoaXQgemVyby4KICAgICAvLyBUaGlzIG1l
YW5zIHRoYXQgdGhlIHN0YXRpYyBzdHJpbmcgd2lsbCBuZXZlciBiZSBkZXN0cm95ZWQsIHdoaWNo
IGlzIGltcG9ydGFudCBiZWNhdXNlCiAgICAgLy8gc3RhdGljIHN0cmluZ3Mgd2lsbCBiZSBzaGFy
ZWQgYWNyb3NzIHRocmVhZHMgJiByZWYtY291bnRlZCBpbiBhIG5vbi10aHJlYWRzYWZlIG1hbm5l
ci4KLSAgICBlbnVtIFN0YXRpY1N0cmluZ0NvbnN0cnVjdFR5cGUgeyBDb25zdHJ1Y3RTdGF0aWNT
dHJpbmcgfTsKLSAgICBTdHJpbmdJbXBsKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25l
ZCBsZW5ndGgsIFN0YXRpY1N0cmluZ0NvbnN0cnVjdFR5cGUpCi0gICAgICAgIDogbV9yZWZDb3Vu
dEFuZEZsYWdzKHNfcmVmQ291bnRGbGFnU3RhdGljIHwgc19yZWZDb3VudEZsYWdJc0lkZW50aWZp
ZXIgfCBCdWZmZXJPd25lZCkKKyAgICBlbnVtIENvbnN0cnVjdFN0YXRpY1N0cmluZ1RhZyB7IENv
bnN0cnVjdFN0YXRpY1N0cmluZyB9OworICAgIFN0cmluZ0ltcGwoY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgQ29uc3RydWN0U3RhdGljU3RyaW5nVGFnKQorICAgICAg
ICA6IG1fcmVmQ291bnQoc19yZWZDb3VudEZsYWdJc1N0YXRpY1N0cmluZykKICAgICAgICAgLCBt
X2xlbmd0aChsZW5ndGgpCiAgICAgICAgICwgbV9kYXRhKGNoYXJhY3RlcnMpCiAgICAgICAgICwg
bV9idWZmZXIoMCkKLSAgICAgICAgLCBtX2hhc2goMCkKKyAgICAgICAgLCBtX2hhc2hBbmRGbGFn
cyhzX2hhc2hGbGFnSXNJZGVudGlmaWVyIHwgQnVmZmVyT3duZWQpCiAgICAgewogICAgICAgICAv
LyBFbnN1cmUgdGhhdCB0aGUgaGFzaCBpcyBjb21wdXRlZCBzbyB0aGF0IEF0b21pY1N0cmluZ0hh
c2ggY2FuIGNhbGwgZXhpc3RpbmdIYXNoKCkKICAgICAgICAgLy8gd2l0aCBpbXB1bml0eS4gVGhl
IGVtcHR5IHN0cmluZyBpcyBzcGVjaWFsIGJlY2F1c2UgaXQgaXMgbmV2ZXIgZW50ZXJlZCBpbnRv
CkBAIC05OSwxMSArOTksMTEgQEAgcHJpdmF0ZToKIAogICAgIC8vIENyZWF0ZSBhIG5vcm1hbCBz
dHJpbmcgd2l0aCBpbnRlcm5hbCBzdG9yYWdlIChCdWZmZXJJbnRlcm5hbCkKICAgICBTdHJpbmdJ
bXBsKHVuc2lnbmVkIGxlbmd0aCkKLSAgICAgICAgOiBtX3JlZkNvdW50QW5kRmxhZ3Moc19yZWZD
b3VudEluY3JlbWVudCB8IHNfcmVmQ291bnRGbGFnU2hvdWxkUmVwb3J0ZWRDb3N0IHwgQnVmZmVy
SW50ZXJuYWwpCisgICAgICAgIDogbV9yZWZDb3VudChzX3JlZkNvdW50SW5jcmVtZW50KQogICAg
ICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKICAgICAgICAgLCBtX2RhdGEocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBVQ2hhcio+KHRoaXMgKyAxKSkKICAgICAgICAgLCBtX2J1ZmZlcigwKQotICAgICAg
ICAsIG1faGFzaCgwKQorICAgICAgICAsIG1faGFzaEFuZEZsYWdzKEJ1ZmZlckludGVybmFsKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKG1fZGF0YSk7CiAgICAgICAgIEFTU0VSVChtX2xlbmd0aCk7
CkBAIC0xMTEsMTEgKzExMSwxMSBAQCBwcml2YXRlOgogCiAgICAgLy8gQ3JlYXRlIGEgU3RyaW5n
SW1wbCBhZG9wdGluZyBvd25lcnNoaXAgb2YgdGhlIHByb3ZpZGVkIGJ1ZmZlciAoQnVmZmVyT3du
ZWQpCiAgICAgU3RyaW5nSW1wbChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVu
Z3RoKQotICAgICAgICA6IG1fcmVmQ291bnRBbmRGbGFncyhzX3JlZkNvdW50SW5jcmVtZW50IHwg
c19yZWZDb3VudEZsYWdTaG91bGRSZXBvcnRlZENvc3QgfCBCdWZmZXJPd25lZCkKKyAgICAgICAg
OiBtX3JlZkNvdW50KHNfcmVmQ291bnRJbmNyZW1lbnQpCiAgICAgICAgICwgbV9sZW5ndGgobGVu
Z3RoKQogICAgICAgICAsIG1fZGF0YShjaGFyYWN0ZXJzKQogICAgICAgICAsIG1fYnVmZmVyKDAp
Ci0gICAgICAgICwgbV9oYXNoKDApCisgICAgICAgICwgbV9oYXNoQW5kRmxhZ3MoQnVmZmVyT3du
ZWQpCiAgICAgewogICAgICAgICBBU1NFUlQobV9kYXRhKTsKICAgICAgICAgQVNTRVJUKG1fbGVu
Z3RoKTsKQEAgLTEyMywxMSArMTIzLDExIEBAIHByaXZhdGU6CiAKICAgICAvLyBVc2VkIHRvIGNy
ZWF0ZSBuZXcgc3RyaW5ncyB0aGF0IGFyZSBhIHN1YnN0cmluZyBvZiBhbiBleGlzdGluZyBTdHJp
bmdJbXBsIChCdWZmZXJTdWJzdHJpbmcpCiAgICAgU3RyaW5nSW1wbChjb25zdCBVQ2hhciogY2hh
cmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGJhc2UpCi0g
ICAgICAgIDogbV9yZWZDb3VudEFuZEZsYWdzKHNfcmVmQ291bnRJbmNyZW1lbnQgfCBzX3JlZkNv
dW50RmxhZ1Nob3VsZFJlcG9ydGVkQ29zdCB8IEJ1ZmZlclN1YnN0cmluZykKKyAgICAgICAgOiBt
X3JlZkNvdW50KHNfcmVmQ291bnRJbmNyZW1lbnQpCiAgICAgICAgICwgbV9sZW5ndGgobGVuZ3Ro
KQogICAgICAgICAsIG1fZGF0YShjaGFyYWN0ZXJzKQogICAgICAgICAsIG1fc3Vic3RyaW5nQnVm
ZmVyKGJhc2UubGVha1JlZigpKQotICAgICAgICAsIG1faGFzaCgwKQorICAgICAgICAsIG1faGFz
aEFuZEZsYWdzKEJ1ZmZlclN1YnN0cmluZykKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2RhdGEp
OwogICAgICAgICBBU1NFUlQobV9sZW5ndGgpOwpAQCAtMTM2LDI1ICsxMzYsMTYgQEAgcHJpdmF0
ZToKIAogICAgIC8vIFVzZWQgdG8gY29uc3RydWN0IG5ldyBzdHJpbmdzIHNoYXJpbmcgYW4gZXhp
c3RpbmcgU2hhcmVkVUNoYXIgKEJ1ZmZlclNoYXJlZCkKICAgICBTdHJpbmdJbXBsKGNvbnN0IFVD
aGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFBhc3NSZWZQdHI8U2hhcmVkVUNoYXI+
IHNoYXJlZEJ1ZmZlcikKLSAgICAgICAgOiBtX3JlZkNvdW50QW5kRmxhZ3Moc19yZWZDb3VudElu
Y3JlbWVudCB8IHNfcmVmQ291bnRGbGFnU2hvdWxkUmVwb3J0ZWRDb3N0IHwgQnVmZmVyU2hhcmVk
KQorICAgICAgICA6IG1fcmVmQ291bnQoc19yZWZDb3VudEluY3JlbWVudCkKICAgICAgICAgLCBt
X2xlbmd0aChsZW5ndGgpCiAgICAgICAgICwgbV9kYXRhKGNoYXJhY3RlcnMpCiAgICAgICAgICwg
bV9zaGFyZWRCdWZmZXIoc2hhcmVkQnVmZmVyLmxlYWtSZWYoKSkKLSAgICAgICAgLCBtX2hhc2go
MCkKKyAgICAgICAgLCBtX2hhc2hBbmRGbGFncyhCdWZmZXJTaGFyZWQpCiAgICAgewogICAgICAg
ICBBU1NFUlQobV9kYXRhKTsKICAgICAgICAgQVNTRVJUKG1fbGVuZ3RoKTsKICAgICB9CiAKLSAg
ICAvLyBGb3IgdXNlIG9ubHkgYnkgQXRvbWljU3RyaW5nJ3MgWFhYVHJhbnNsYXRvciBoZWxwZXJz
LgotICAgIHZvaWQgc2V0SGFzaCh1bnNpZ25lZCBoYXNoKQotICAgIHsKLSAgICAgICAgQVNTRVJU
KCFpc1N0YXRpYygpKTsKLSAgICAgICAgQVNTRVJUKCFtX2hhc2gpOwotICAgICAgICBBU1NFUlQo
aGFzaCA9PSBTdHJpbmdIYXNoZXI6OmNvbXB1dGVIYXNoKG1fZGF0YSwgbV9sZW5ndGgpKTsKLSAg
ICAgICAgbV9oYXNoID0gaGFzaDsKLSAgICB9Ci0KIHB1YmxpYzoKICAgICB+U3RyaW5nSW1wbCgp
OwogCkBAIC0yMTcsNyArMjA4LDYgQEAgcHVibGljOgogICAgIH0KICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTdHJpbmdJbXBsPiBhZG9wdChTdHJpbmdCdWZmZXImKTsKIAotICAgIHZvaWQgcmVmKCkg
eyBtX3JlZkNvdW50QW5kRmxhZ3MgKz0gc19yZWZDb3VudEluY3JlbWVudDsgfQogICAgIHVuc2ln
bmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CiAgICAgU2hhcmVkVUNoYXIq
IHNoYXJlZEJ1ZmZlcigpOwogICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzKCkgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhOyB9CkBAIC0yMjgsNDEgKzIxOCw5NSBAQCBwdWJsaWM6CiAgICAgICAgIGlm
IChidWZmZXJPd25lcnNoaXAoKSA9PSBCdWZmZXJTdWJzdHJpbmcpCiAgICAgICAgICAgICByZXR1
cm4gbV9zdWJzdHJpbmdCdWZmZXItPmNvc3QoKTsKIAotICAgICAgICBpZiAobV9yZWZDb3VudEFu
ZEZsYWdzICYgc19yZWZDb3VudEZsYWdTaG91bGRSZXBvcnRlZENvc3QpIHsKLSAgICAgICAgICAg
IG1fcmVmQ291bnRBbmRGbGFncyAmPSB+c19yZWZDb3VudEZsYWdTaG91bGRSZXBvcnRlZENvc3Q7
Ci0gICAgICAgICAgICByZXR1cm4gbV9sZW5ndGg7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIGlmIChtX2hhc2hBbmRGbGFncyAmIHNfaGFzaEZsYWdEaWRSZXBvcnRDb3N0
KQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgbV9oYXNoQW5kRmxhZ3MgfD0gc19o
YXNoRmxhZ0RpZFJlcG9ydENvc3Q7CisgICAgICAgIHJldHVybiBtX2xlbmd0aDsKICAgICB9CiAK
LSAgICBib29sIGlzSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVmQ291bnRBbmRGbGFn
cyAmIHNfcmVmQ291bnRGbGFnSXNJZGVudGlmaWVyOyB9CisgICAgYm9vbCBpc0lkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2hhc2hBbmRGbGFncyAmIHNfaGFzaEZsYWdJc0lkZW50aWZpZXI7
IH0KICAgICB2b2lkIHNldElzSWRlbnRpZmllcihib29sIGlzSWRlbnRpZmllcikKICAgICB7CiAg
ICAgICAgIEFTU0VSVCghaXNTdGF0aWMoKSk7CiAgICAgICAgIGlmIChpc0lkZW50aWZpZXIpCi0g
ICAgICAgICAgICBtX3JlZkNvdW50QW5kRmxhZ3MgfD0gc19yZWZDb3VudEZsYWdJc0lkZW50aWZp
ZXI7CisgICAgICAgICAgICBtX2hhc2hBbmRGbGFncyB8PSBzX2hhc2hGbGFnSXNJZGVudGlmaWVy
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3JlZkNvdW50QW5kRmxhZ3MgJj0gfnNfcmVm
Q291bnRGbGFnSXNJZGVudGlmaWVyOworICAgICAgICAgICAgbV9oYXNoQW5kRmxhZ3MgJj0gfnNf
aGFzaEZsYWdJc0lkZW50aWZpZXI7CiAgICAgfQogCi0gICAgYm9vbCBoYXNUZXJtaW5hdGluZ051
bGxDaGFyYWN0ZXIoKSBjb25zdCB7IHJldHVybiBtX3JlZkNvdW50QW5kRmxhZ3MgJiBzX3JlZkNv
dW50RmxhZ0hhc1Rlcm1pbmF0aW5nTnVsbENoYXJhY3RlcjsgfQorICAgIGJvb2wgaGFzVGVybWlu
YXRpbmdOdWxsQ2hhcmFjdGVyKCkgY29uc3QgeyByZXR1cm4gbV9oYXNoQW5kRmxhZ3MgJiBzX2hh
c2hGbGFnSGFzVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyOyB9CiAKLSAgICBib29sIGlzQXRvbWlj
KCkgY29uc3QgeyByZXR1cm4gbV9yZWZDb3VudEFuZEZsYWdzICYgc19yZWZDb3VudEZsYWdJc0F0
b21pYzsgfQorICAgIGJvb2wgaXNBdG9taWMoKSBjb25zdCB7IHJldHVybiBtX2hhc2hBbmRGbGFn
cyAmIHNfaGFzaEZsYWdJc0F0b21pYzsgfQogICAgIHZvaWQgc2V0SXNBdG9taWMoYm9vbCBpc0lk
ZW50aWZpZXIpCiAgICAgewogICAgICAgICBBU1NFUlQoIWlzU3RhdGljKCkpOwogICAgICAgICBp
ZiAoaXNJZGVudGlmaWVyKQotICAgICAgICAgICAgbV9yZWZDb3VudEFuZEZsYWdzIHw9IHNfcmVm
Q291bnRGbGFnSXNBdG9taWM7CisgICAgICAgICAgICBtX2hhc2hBbmRGbGFncyB8PSBzX2hhc2hG
bGFnSXNBdG9taWM7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcmVmQ291bnRBbmRGbGFn
cyAmPSB+c19yZWZDb3VudEZsYWdJc0F0b21pYzsKKyAgICAgICAgICAgIG1faGFzaEFuZEZsYWdz
ICY9IH5zX2hhc2hGbGFnSXNBdG9taWM7CisgICAgfQorCitwcml2YXRlOgorICAgIC8vIFRoZSBo
aWdoIGJpdHMgb2YgJ2hhc2gnIGFyZSBhbHdheXMgZW1wdHksIGJ1dCB3ZSBwcmVmZXIgdG8gc3Rv
cmUgb3VyIGZsYWdzCisgICAgLy8gaW4gdGhlIGxvdyBiaXRzIGJlY2F1c2UgaXQgbWFrZXMgdGhl
bSBzbGlnaHRseSBtb3JlIGVmZmljaWVudCB0byBhY2Nlc3MuCisgICAgLy8gU28sIHdlIHNoaWZ0
IGxlZnQgYW5kIHJpZ2h0IHdoZW4gc2V0dGluZyBhbmQgZ2V0dGluZyBvdXIgaGFzaCBjb2RlLgor
ICAgIHZvaWQgc2V0SGFzaCh1bnNpZ25lZCBoYXNoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNT
RVJUKCFoYXNIYXNoKCkpOworICAgICAgICBBU1NFUlQoaGFzaCA9PSBTdHJpbmdIYXNoZXI6OmNv
bXB1dGVIYXNoKG1fZGF0YSwgbV9sZW5ndGgpKTsgLy8gTXVsdGlwbGUgY2xpZW50cyBhc3N1bWUg
dGhhdCBTdHJpbmdIYXNoZXIgaXMgdGhlIGNhbm9uaWNhbCBzdHJpbmcgaGFzaCBmdW5jdGlvbi4K
KyAgICAgICAgQVNTRVJUKCEoaGFzaCAmIChzX2ZsYWdNYXNrIDw8ICg4ICogc2l6ZW9mKGhhc2gp
IC0gc19mbGFnQ291bnQpKSkpOyAvLyBWZXJpZnkgdGhhdCBlbm91Z2ggaGlnaCBiaXRzIGFyZSBl
bXB0eS4KKyAgICAgICAgCisgICAgICAgIGhhc2ggPDw9IHNfZmxhZ0NvdW50OworICAgICAgICBB
U1NFUlQoIShoYXNoICYgbV9oYXNoQW5kRmxhZ3MpKTsgLy8gVmVyaWZ5IHRoYXQgZW5vdWdoIGxv
dyBiaXRzIGFyZSBlbXB0eSBhZnRlciBzaGlmdC4KKyAgICAgICAgQVNTRVJUKGhhc2gpOyAvLyBW
ZXJpZnkgdGhhdCAwIGlzIGEgdmFsaWQgc2VudGluZWwgaGFzaCB2YWx1ZS4KKworICAgICAgICBt
X2hhc2hBbmRGbGFncyB8PSBoYXNoOyAvLyBTdG9yZSBoYXNoIHdpdGggZmxhZ3MgaW4gbG93IGJp
dHMuCisgICAgfQorCisgICAgdW5zaWduZWQgcmF3SGFzaCgpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbV9oYXNoQW5kRmxhZ3MgPj4gc19mbGFnQ291bnQ7CisgICAgfQorCitwdWJsaWM6
CisgICAgYm9vbCBoYXNIYXNoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiByYXdIYXNo
KCkgIT0gMDsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgeyBpZiAoIW1faGFz
aCkgbV9oYXNoID0gU3RyaW5nSGFzaGVyOjpjb21wdXRlSGFzaChtX2RhdGEsIG1fbGVuZ3RoKTsg
cmV0dXJuIG1faGFzaDsgfQotICAgIHVuc2lnbmVkIGV4aXN0aW5nSGFzaCgpIGNvbnN0IHsgQVNT
RVJUKG1faGFzaCk7IHJldHVybiBtX2hhc2g7IH0KLSAgICBib29sIGhhc0hhc2goKSBjb25zdCB7
IHJldHVybiBtX2hhc2g7IH0KKyAgICB1bnNpZ25lZCBleGlzdGluZ0hhc2goKSBjb25zdAorICAg
IHsKKyAgICAgICAgQVNTRVJUKGhhc0hhc2goKSk7CisgICAgICAgIHJldHVybiByYXdIYXNoKCk7
CisgICAgfQogCi0gICAgQUxXQVlTX0lOTElORSB2b2lkIGRlcmVmKCkgeyBtX3JlZkNvdW50QW5k
RmxhZ3MgLT0gc19yZWZDb3VudEluY3JlbWVudDsgaWYgKCEobV9yZWZDb3VudEFuZEZsYWdzICYg
KHNfcmVmQ291bnRNYXNrIHwgc19yZWZDb3VudEZsYWdTdGF0aWMpKSkgZGVsZXRlIHRoaXM7IH0K
LSAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaGFzT25lUmVmKCkgY29uc3QgeyByZXR1cm4gKG1fcmVm
Q291bnRBbmRGbGFncyAmIChzX3JlZkNvdW50TWFzayB8IHNfcmVmQ291bnRGbGFnU3RhdGljKSkg
PT0gc19yZWZDb3VudEluY3JlbWVudDsgfQorICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdAorICAg
IHsKKyAgICAgICAgaWYgKCFoYXNIYXNoKCkpCisgICAgICAgICAgICBzZXRIYXNoKFN0cmluZ0hh
c2hlcjo6Y29tcHV0ZUhhc2gobV9kYXRhLCBtX2xlbmd0aCkpOworICAgICAgICByZXR1cm4gZXhp
c3RpbmdIYXNoKCk7CisgICAgfQorCisgICAgaW5saW5lIGJvb2wgaGFzT25lUmVmKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBtX3JlZkNvdW50ID09IHNfcmVmQ291bnRJbmNyZW1lbnQ7
CisgICAgfQorCisgICAgaW5saW5lIHZvaWQgcmVmKCkKKyAgICB7CisgICAgICAgIG1fcmVmQ291
bnQgKz0gc19yZWZDb3VudEluY3JlbWVudDsKKyAgICB9CisKKyAgICBpbmxpbmUgdm9pZCBkZXJl
ZigpCisgICAgeworICAgICAgICBpZiAobV9yZWZDb3VudCA9PSBzX3JlZkNvdW50SW5jcmVtZW50
KSB7CisgICAgICAgICAgICBkZWxldGUgdGhpczsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIG1fcmVmQ291bnQgLT0gc19yZWZDb3VudEluY3JlbWVudDsKKyAgICB9
CiAKICAgICBzdGF0aWMgU3RyaW5nSW1wbCogZW1wdHkoKTsKIApAQCAtMzUxLDI0ICszOTUsMjcg
QEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGNyZWF0ZVN0
cmlwcGluZ051bGxDaGFyYWN0ZXJzU2xvd0Nhc2UoY29uc3QgVUNoYXIqLCB1bnNpZ25lZCBsZW5n
dGgpOwogICAgIAotICAgIEJ1ZmZlck93bmVyc2hpcCBidWZmZXJPd25lcnNoaXAoKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxCdWZmZXJPd25lcnNoaXA+KG1fcmVmQ291bnRBbmRGbGFncyAm
IHNfcmVmQ291bnRNYXNrQnVmZmVyT3duZXJzaGlwKTsgfQotICAgIGJvb2wgaXNTdGF0aWMoKSBj
b25zdCB7IHJldHVybiBtX3JlZkNvdW50QW5kRmxhZ3MgJiBzX3JlZkNvdW50RmxhZ1N0YXRpYzsg
fQorICAgIEJ1ZmZlck93bmVyc2hpcCBidWZmZXJPd25lcnNoaXAoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxCdWZmZXJPd25lcnNoaXA+KG1faGFzaEFuZEZsYWdzICYgc19oYXNoTWFza0J1
ZmZlck93bmVyc2hpcCk7IH0KKyAgICBib29sIGlzU3RhdGljKCkgY29uc3QgeyByZXR1cm4gbV9y
ZWZDb3VudCAmIHNfcmVmQ291bnRGbGFnSXNTdGF0aWNTdHJpbmc7IH0KICAgICB0ZW1wbGF0ZSA8
Y2xhc3MgVUNoYXJQcmVkaWNhdGU+IFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gc3RyaXBNYXRjaGVk
Q2hhcmFjdGVycyhVQ2hhclByZWRpY2F0ZSk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFVDaGFyUHJl
ZGljYXRlPiBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IHNpbXBsaWZ5TWF0Y2hlZENoYXJhY3RlcnNU
b1NwYWNlKFVDaGFyUHJlZGljYXRlKTsKIAotICAgIC8vIFRoZSBib3R0b20gNyBiaXRzIGhvbGQg
ZmxhZ3MsIHRoZSB0b3AgMjUgYml0cyBob2xkIHRoZSByZWYgY291bnQuCi0gICAgLy8gV2hlbiBk
ZXJlZmVyZW5jaW5nIFN0cmluZ0ltcGxzIHdlIGNoZWNrIGZvciB0aGUgcmVmIGNvdW50IEFORCB0
aGUKLSAgICAvLyBzdGF0aWMgYml0IGJvdGggYmVpbmcgemVybyAtIHN0YXRpYyBzdHJpbmdzIGFy
ZSBuZXZlciBkZWxldGVkLgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX3JlZkNvdW50TWFz
ayA9IDB4RkZGRkZGODA7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfcmVmQ291bnRJbmNy
ZW1lbnQgPSAweDgwOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX3JlZkNvdW50RmxhZ1N0
YXRpYyA9IDB4NDA7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfcmVmQ291bnRGbGFnSGFz
VGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyID0gMHgyMDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgc19yZWZDb3VudEZsYWdJc0F0b21pYyA9IDB4MTA7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHNfcmVmQ291bnRGbGFnU2hvdWxkUmVwb3J0ZWRDb3N0ID0gMHg4OwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBzX3JlZkNvdW50RmxhZ0lzSWRlbnRpZmllciA9IDB4NDsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgc19yZWZDb3VudE1hc2tCdWZmZXJPd25lcnNoaXAgPSAweDM7Cisg
ICAgLy8gVGhlIGJvdHRvbSBiaXQgaW4gdGhlIHJlZiBjb3VudCBpbmRpY2F0ZXMgYSBzdGF0aWMg
KGltbW9ydGFsKSBzdHJpbmcuCisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfcmVmQ291bnRG
bGFnSXNTdGF0aWNTdHJpbmcgPSAweDE7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfcmVm
Q291bnRJbmNyZW1lbnQgPSAweDI7IC8vIFRoaXMgYWxsb3dzIHVzIHRvIHJlZiAvIGRlcmVmIHdp
dGhvdXQgZGlzdHVyYmluZyB0aGUgc3RhdGljIHN0cmluZyBmbGFnLgorCisgICAgLy8gVGhlIGJv
dHRvbSA2IGJpdHMgaW4gdGhlIGhhc2ggYXJlIGZsYWdzLgorICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBzX2ZsYWdDb3VudCA9IDY7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfZmxhZ01h
c2sgPSAoMXUgPDwgc19mbGFnQ291bnQpIC0gMTsKKyAgICBDT01QSUxFX0FTU0VSVChzX2ZsYWdD
b3VudCA9PSBTdHJpbmdIYXNoZXI6OmZsYWdDb3VudCwgU3RyaW5nSGFzaGVyX3Jlc2VydmVzX2Vu
b3VnaF9iaXRzX2Zvcl9TdHJpbmdJbXBsX2ZsYWdzKTsKKworICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBzX2hhc2hGbGFnSGFzVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyID0gMXUgPDwgNTsKKyAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19oYXNoRmxhZ0lzQXRvbWljID0gMXUgPDwgNDsKKyAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19oYXNoRmxhZ0RpZFJlcG9ydENvc3QgPSAxdSA8PCAz
OworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX2hhc2hGbGFnSXNJZGVudGlmaWVyID0gMXUg
PDwgMjsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19oYXNoTWFza0J1ZmZlck93bmVyc2hp
cCA9IDF1IHwgKDF1IDw8IDEpOwogCi0gICAgdW5zaWduZWQgbV9yZWZDb3VudEFuZEZsYWdzOwor
ICAgIHVuc2lnbmVkIG1fcmVmQ291bnQ7CiAgICAgdW5zaWduZWQgbV9sZW5ndGg7CiAgICAgY29u
c3QgVUNoYXIqIG1fZGF0YTsKICAgICB1bmlvbiB7CkBAIC0zNzYsNyArNDIzLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgU3RyaW5nSW1wbCogbV9zdWJzdHJpbmdCdWZmZXI7CiAgICAgICAgIFNoYXJl
ZFVDaGFyKiBtX3NoYXJlZEJ1ZmZlcjsKICAgICB9OwotICAgIG11dGFibGUgdW5zaWduZWQgbV9o
YXNoOworICAgIG11dGFibGUgdW5zaWduZWQgbV9oYXNoQW5kRmxhZ3M7CiB9OwogCiBib29sIGVx
dWFsKGNvbnN0IFN0cmluZ0ltcGwqLCBjb25zdCBTdHJpbmdJbXBsKik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA5ODE5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDExLTEwLTIyICBHZW9mZnJleSBHYXJlbiAgPGdnYXJl
bkBhcHBsZS5jb20+CisKKyAgICAgICAgU2VwYXJhdGVkIHN0cmluZyBsaWZldGltZSBiaXRzIGZy
b20gY2hhcmFjdGVyIGJ1ZmVyIHN0YXRlIGJpdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bToKKyAgICAgICAgKEdlbmVyYXRlSGFzaFZhbHVlKTogVXBkYXRlZCBmb3Igc3RyaW5nIGhhc2hp
bmcgY2hhbmdlcyBpbiBKYXZhU2NyaXB0Q29yZS4KKwogMjAxMS0xMC0yMSAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIENhcmV0IGlzIGRyYXduIGluIHRoZSB3cm9u
ZyBwbGFjZSBpbiBtdWx0aS1jb2x1bW4gYmxvY2tzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gOTgxNzcp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQko
d29ya2luZyBjb3B5KQpAQCAtMzAzOCw3ICszMDM4LDggQEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxl
CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJzdGF0aWMgSlNDX0NPTlNUX0hBU0hUQUJMRSBIYXNo
VGFibGUgJG5hbWUgPSB7ICRjb21wYWN0U2l6ZSwgJGNvbXBhY3RTaXplTWFzaywgJG5hbWVFbnRy
aWVzLCAwIH07XG4iKTsKIH0KIAotIyBJbnRlcm5hbCBoZWxwZXIKKyMgUGF1bCBIc2llaCdzIFN1
cGVyRmFzdEhhc2gKKyMgaHR0cDovL3d3dy5hemlsbGlvbm1vbmtleXMuY29tL3FlZC9oYXNoLmh0
bWwKIHN1YiBHZW5lcmF0ZUhhc2hWYWx1ZQogewogICAgIG15ICRvYmplY3QgPSBzaGlmdDsKQEAg
LTMwNDgsMTYgKzMwNDksMTYgQEAgc3ViIEdlbmVyYXRlSGFzaFZhbHVlCiAgICAgIyBUaGlzIGhh
c2ggaXMgZGVzaWduZWQgdG8gd29yayBvbiAxNi1iaXQgY2h1bmtzIGF0IGEgdGltZS4gQnV0IHNp
bmNlIHRoZSBub3JtYWwgY2FzZQogICAgICMgKGFib3ZlKSBpcyB0byBoYXNoIFVURi0xNiBjaGFy
YWN0ZXJzLCB3ZSBqdXN0IHRyZWF0IHRoZSA4LWJpdCBjaGFycyBhcyBpZiB0aGV5CiAgICAgIyB3
ZXJlIDE2LWJpdCBjaHVua3MsIHdoaWNoIHNob3VsZCBnaXZlIG1hdGNoaW5nIHJlc3VsdHMKLQor
ICAgIAogICAgIG15ICRFWFAyXzMyID0gNDI5NDk2NzI5NjsKLQorICAgIAogICAgIG15ICRoYXNo
ID0gMHg5ZTM3NzliOTsKICAgICBteSAkbCAgICA9IHNjYWxhciBAY2hhcnM7ICNJIHdpc2ggdGhp
cyB3YXMgaW4gUnVieSAtLS0gTWFrcwogICAgIG15ICRyZW0gID0gJGwgJiAxOwogICAgICRsID0g
JGwgPj4gMTsKLQorICAgIAogICAgIG15ICRzID0gMDsKLQorICAgIAogICAgICMgTWFpbiBsb29w
CiAgICAgZm9yICg7ICRsID4gMDsgJGwtLSkgewogICAgICAgICAkaGFzaCAgICs9IG9yZCgkY2hh
cnNbJHNdKTsKQEAgLTMwNjcsMTQgKzMwNjgsMTQgQEAgc3ViIEdlbmVyYXRlSGFzaFZhbHVlCiAg
ICAgICAgICRoYXNoICs9ICRoYXNoID4+IDExOwogICAgICAgICAkaGFzaCAlPSAkRVhQMl8zMjsK
ICAgICB9Ci0KKyAgICAKICAgICAjIEhhbmRsZSBlbmQgY2FzZQogICAgIGlmICgkcmVtICE9IDAp
IHsKICAgICAgICAgJGhhc2ggKz0gb3JkKCRjaGFyc1skc10pOwogICAgICAgICAkaGFzaCBePSAo
bGVmdFNoaWZ0KCRoYXNoLCAxMSklICRFWFAyXzMyKTsKICAgICAgICAgJGhhc2ggKz0gJGhhc2gg
Pj4gMTc7CiAgICAgfQotCisgICAgCiAgICAgIyBGb3JjZSAiYXZhbGFuY2hpbmciIG9mIGZpbmFs
IDEyNyBiaXRzCiAgICAgJGhhc2ggXj0gbGVmdFNoaWZ0KCRoYXNoLCAzKTsKICAgICAkaGFzaCAr
PSAoJGhhc2ggPj4gNSk7CkBAIC0zMDgzLDEyICszMDg0LDE2IEBAIHN1YiBHZW5lcmF0ZUhhc2hW
YWx1ZQogICAgICRoYXNoICs9ICgkaGFzaCA+PiAxNSk7CiAgICAgJGhhc2ggPSAkaGFzaCUgJEVY
UDJfMzI7CiAgICAgJGhhc2ggXj0gKGxlZnRTaGlmdCgkaGFzaCwgMTApJSAkRVhQMl8zMik7Ci0K
LSAgICAjIHRoaXMgYXZvaWRzIGV2ZXIgcmV0dXJuaW5nIGEgaGFzaCBjb2RlIG9mIDAsIHNpbmNl
IHRoYXQgaXMgdXNlZCB0bwotICAgICMgc2lnbmFsICJoYXNoIG5vdCBjb21wdXRlZCB5ZXQiLCB1
c2luZyBhIHZhbHVlIHRoYXQgaXMgbGlrZWx5IHRvIGJlCi0gICAgIyBlZmZlY3RpdmVseSB0aGUg
c2FtZSBhcyAwIHdoZW4gdGhlIGxvdyBiaXRzIGFyZSBtYXNrZWQKLSAgICAkaGFzaCA9IDB4ODAw
MDAwMDAgaWYgKCRoYXNoID09IDApOwotCisgICAgCisgICAgIyBTYXZlIDYgYml0cyBmb3IgU3Ry
aW5nSW1wbCB0byB1c2UgYXMgZmxhZ3MuCisgICAgJGhhc2ggPSAoJGhhc2ggPj4gNik7CisgICAg
CisgICAgIyBUaGlzIGF2b2lkcyBldmVyIHJldHVybmluZyBhIGhhc2ggY29kZSBvZiAwLCBzaW5j
ZSB0aGF0IGlzIHVzZWQgdG8KKyAgICAjIHNpZ25hbCAiaGFzaCBub3QgY29tcHV0ZWQgeWV0Ii4g
U2V0dGluZyB0aGUgaGlnaCBiaXQgbWFpbnRhaW5zCisgICAgIyByZWFzb25hYmxlIGZpZGVsaXR5
IHRvIGEgaGFzaCBjb2RlIG9mIDAgYmVjYXVzZSBpdCBpcyBsaWtlbHkgdG8geWllbGQKKyAgICAj
IGV4YWN0bHkgMCB3aGVuIGhhc2ggbG9va3VwIG1hc2tzIG91dCB0aGUgaGlnaCBiaXRzLgorICAg
ICRoYXNoID0gKDB4ODAwMDAwMDAgPj4gNikgaWYgKCRoYXNoID09IDApOworICAgIAogICAgIHJl
dHVybiAkaGFzaDsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gOTgxOTEpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxMS0xMC0yMSAg
R2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIFNlcGFyYXRlZCBz
dHJpbmcgbGlmZXRpbWUgYml0cyBmcm9tIGNoYXJhY3RlciBidWZlciBzdGF0ZSBiaXRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY3MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGhlc2Ug
dGVzdHMgZGVwZW5kZWQgb24gbm9uLWRldGVybWluaXN0aWMgZWZmZWN0cyBvZiBoYXNoIG9yZGVy
LCBzbyBJCisgICAgICAgIGhhZCB0byB1cGRhdGUgdGhlbToKKworICAgICAgICAqIGZhc3QvZG9t
L3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dDogVXBkYXRlZCBmb3Igc2xpZ2h0
bHkKKyAgICAgICAgZGlmZmVyZW50IG9yZGVyIG9mIGRpc2NvdmVyaW5nIHByb3BlcnRpZXMuCisK
KyAgICAgICAgKiBmYXN0L2pzL2RlbGV0ZS1zeW50YXgtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvanMvc2NyaXB0LXRlc3RzL2RlbGV0ZS1zeW50YXguanM6IFVwZGF0ZWQgbm90IHRvIGRl
cGVuZCBvbiBpdGVyYXRpb24KKyAgICAgICAgb3JkZXIsIHNpbmNlIHRoYXQncyBub3Qgd2hhdCB0
aGlzIHRlc3QgaXMgYWJvdXQuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdC5qczogVXBkYXRlZCBub3QgdG8gZGVwZW5kIG9uCisgICAgICAgIGdsb2JhbCBm
dW5jdGlvbiBpdGVyYXRpb24gb3JkZXIuIFRoaXMgdGVzdCBzZXR1cCBpcyBwcmV0dHkgc3BhZ2hl
dHRpLgorCiAyMDExLTEwLTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgREZHIGlubGluaW5nIHNvbWV0aW1lcyBmYWlscyB0byByZXNldCBjb25zdGFudCByZWZl
cmVuY2VzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
Mi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90
eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5ODE3NykKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMTY4LDI2ICsxNjgsMjYgQEAgUEFTUyBNZWRpYUxpc3RDb25zdHJ1Y3Rv
ciBmcm9tIGlubmVyLmRvYwogUEFTUyBNZWRpYUxpc3RQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1
bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuc3R5bGVTaGVldHMuMC5tZWRpYS5f
X3Byb3RvX18KIFBBU1MgTWVtb3J5SW5mbyBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RG
b3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5jb25zb2xlLm1lbW9yeQogUEFTUyBNZW1v
cnlJbmZvUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5vd25l
ckRvY3VtZW50LmRlZmF1bHRWaWV3LmNvbnNvbGUubWVtb3J5Ll9fcHJvdG9fXwotUEFTUyBNaW1l
VHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5k
ZWZhdWx0Vmlldy5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMuMAotUEFTUyBNaW1lVHlwZUFy
cmF5IGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRl
ZmF1bHRWaWV3LmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcwotUEFTUyBNaW1lVHlwZUFycmF5
Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9j
dW1lbnQuZGVmYXVsdFZpZXcuY2xpZW50SW5mb3JtYXRpb24ubWltZVR5cGVzLmNvbnN0cnVjdG9y
Ci1QQVNTIE1pbWVUeXBlQXJyYXlQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50
ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuY2xpZW50SW5mb3JtYXRpb24ubWlt
ZVR5cGVzLl9fcHJvdG9fXwotUEFTUyBNaW1lVHlwZUNvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9j
dW1lbnQuZm9ybXMudGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmNsaWVudElu
Zm9ybWF0aW9uLm1pbWVUeXBlcy4wLmNvbnN0cnVjdG9yCi1QQVNTIE1pbWVUeXBlUHJvdG90eXBl
IGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1
bHRWaWV3LmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy4wLl9fcHJvdG9fXworUEFTUyBNaW1l
VHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5k
ZWZhdWx0Vmlldy5uYXZpZ2F0b3IubWltZVR5cGVzLjAKK1BBU1MgTWltZVR5cGVBcnJheSBmcm9t
IGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmll
dy5uYXZpZ2F0b3IubWltZVR5cGVzCitQQVNTIE1pbWVUeXBlQXJyYXlDb25zdHJ1Y3RvciBmcm9t
IGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmll
dy5uYXZpZ2F0b3IubWltZVR5cGVzLmNvbnN0cnVjdG9yCitQQVNTIE1pbWVUeXBlQXJyYXlQcm90
b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQu
ZGVmYXVsdFZpZXcubmF2aWdhdG9yLm1pbWVUeXBlcy5fX3Byb3RvX18KK1BBU1MgTWltZVR5cGVD
b25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1
bWVudC5kZWZhdWx0Vmlldy5uYXZpZ2F0b3IubWltZVR5cGVzLjAuY29uc3RydWN0b3IKK1BBU1Mg
TWltZVR5cGVQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93
bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcubmF2aWdhdG9yLm1pbWVUeXBlcy4wLl9fcHJvdG9fXwog
UEFTUyBOYW1lZE5vZGVNYXAgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLnBh
cmVudE5vZGUuYXR0cmlidXRlcwotUEFTUyBOYXZpZ2F0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5m
b3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuY2xpZW50SW5mb3JtYXRp
b24KLVBBU1MgTmF2aWdhdG9yUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVz
dEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmNsaWVudEluZm9ybWF0aW9uLl9fcHJv
dG9fXworUEFTUyBOYXZpZ2F0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4w
Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcubmF2aWdhdG9yCitQQVNTIE5hdmlnYXRvclByb3Rv
dHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5k
ZWZhdWx0Vmlldy5uYXZpZ2F0b3IuX19wcm90b19fCiBQQVNTIE5vZGVMaXN0IGZyb20gaW5uZXIu
ZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0KIFBBU1MgTm9kZUxpc3RDb25zdHJ1Y3RvciBmcm9tIGlu
bmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLmNvbnN0cnVjdG9yCiBQQVNTIE5vZGVMaXN0UHJv
dG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uX19wcm90b19fCi1QQVNT
IE5vZGVQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLmF0dHJp
YnV0ZXMuMC5fX3Byb3RvX18uX19wcm90b19fCitQQVNTIE5vZGVQcm90b3R5cGUgZnJvbSBpbm5l
ci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuX19wcm90b19fLl9fcHJv
dG9fXy5fX3Byb3RvX18KIFBBU1MgT2JqZWN0IGZyb20gaW5uZXIuZG9jdW1lbnQubG9jYXRpb24u
X19wcm90b19fLl9fcHJvdG9fXwotUEFTUyBQbHVnaW4gZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jt
cy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuY2xpZW50SW5mb3JtYXRpb24u
bWltZVR5cGVzLjAuZW5hYmxlZFBsdWdpbgotUEFTUyBQbHVnaW5BcnJheSBmcm9tIGlubmVyLmRv
Y3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5jbGllbnRJ
bmZvcm1hdGlvbi5wbHVnaW5zCi1QQVNTIFBsdWdpbkFycmF5Q29uc3RydWN0b3IgZnJvbSBpbm5l
ci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuY2xp
ZW50SW5mb3JtYXRpb24ucGx1Z2lucy5jb25zdHJ1Y3RvcgotUEFTUyBQbHVnaW5BcnJheVByb3Rv
dHlwZSBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5k
ZWZhdWx0Vmlldy5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zLl9fcHJvdG9fXwotUEFTUyBQbHVn
aW5Db25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJE
b2N1bWVudC5kZWZhdWx0Vmlldy5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zLjAuY29uc3RydWN0
b3IKLVBBU1MgUGx1Z2luUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZv
cm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBl
cy4wLmVuYWJsZWRQbHVnaW4uX19wcm90b19fCitQQVNTIFBsdWdpbiBmcm9tIGlubmVyLmRvY3Vt
ZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5uYXZpZ2F0b3Iu
cGx1Z2lucy41CitQQVNTIFBsdWdpbkFycmF5IGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVz
dEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3Lm5hdmlnYXRvci5wbHVnaW5zCitQQVNT
IFBsdWdpbkFycmF5Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9y
bS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcubmF2aWdhdG9yLnBsdWdpbnMuY29uc3RydWN0
b3IKK1BBU1MgUGx1Z2luQXJyYXlQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50
ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcubmF2aWdhdG9yLnBsdWdpbnMuX19w
cm90b19fCitQQVNTIFBsdWdpbkNvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMu
dGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3Lm5hdmlnYXRvci5wbHVnaW5zLjAu
Y29uc3RydWN0b3IKK1BBU1MgUGx1Z2luUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9y
bXMudGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3Lm5hdmlnYXRvci5wbHVnaW5z
LjUuX19wcm90b19fCiBQQVNTIFJHQkNvbG9yIGZyb20gaW5uZXIuZ2V0Q29tcHV0ZWRTdHlsZShp
bm5lci5kb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGZpbGwpLnJnYkNvbG9yCiBQ
QVNTIFJHQkNvbG9yQ29uc3RydWN0b3IgZnJvbSBpbm5lci5nZXRDb21wdXRlZFN0eWxlKGlubmVy
LmRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5Q1NTVmFsdWUoZmlsbCkucmdiQ29sb3IuY29uc3Ry
dWN0b3IKIFBBU1MgUkdCQ29sb3JQcm90b3R5cGUgZnJvbSBpbm5lci5nZXRDb21wdXRlZFN0eWxl
KGlubmVyLmRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5Q1NTVmFsdWUoZmlsbCkucmdiQ29sb3Iu
X19wcm90b19fCkBAIC0yMTMsOSArMjEzLDkgQEAgUEFTUyBTdHlsZVNoZWV0UHJvdG90eXBlIGZy
b20gaW5uZXIuZG9jdQogUEFTUyBUZXh0IGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZv
cm0uMC5wYXJlbnROb2RlLmxhc3RFbGVtZW50Q2hpbGQucHJldmlvdXNFbGVtZW50U2libGluZy5m
aXJzdENoaWxkCiBQQVNTIFRleHRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1z
LnRlc3RGb3JtLjAuYXR0cmlidXRlcy4wLmxhc3RDaGlsZC5jb25zdHJ1Y3RvcgogUEFTUyBUZXh0
UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5hdHRyaWJ1dGVz
LjAubGFzdENoaWxkLl9fcHJvdG9fXwotUEFTUyBUaW1lUmFuZ2VzIGZyb20gaW5uZXIuZG9jdW1l
bnQuZm9ybXMudGVzdEZvcm0uMC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLnBsYXllZAotUEFTUyBU
aW1lUmFuZ2VzQ29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4w
LnByZXZpb3VzRWxlbWVudFNpYmxpbmcucGxheWVkLmNvbnN0cnVjdG9yCi1QQVNTIFRpbWVSYW5n
ZXNQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLnByZXZpb3Vz
RWxlbWVudFNpYmxpbmcucGxheWVkLl9fcHJvdG9fXworUEFTUyBUaW1lUmFuZ2VzIGZyb20gaW5u
ZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLnNlZWth
YmxlCitQQVNTIFRpbWVSYW5nZXNDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1z
LnRlc3RGb3JtLjAucHJldmlvdXNFbGVtZW50U2libGluZy5zZWVrYWJsZS5jb25zdHJ1Y3Rvcgor
UEFTUyBUaW1lUmFuZ2VzUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZv
cm0uMC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLnNlZWthYmxlLl9fcHJvdG9fXwogUEFTUyBWYWxp
ZGl0eVN0YXRlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC4wLnZhbGlkaXR5
CiBQQVNTIFZhbGlkaXR5U3RhdGVQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50
ZXN0Rm9ybS4wLjAudmFsaWRpdHkuX19wcm90b19fCiBQQVNTIFdlYktpdENTU0tleWZyYW1lUnVs
ZSBmcm9tIGlubmVyLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkdW1teVN0eWxlIikuc2hlZXQu
Y3NzUnVsZXMuNi4wCkBAIC0yMjUsNiArMjI1LDggQEAgUEFTUyBXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlIGZyb20gaW5uZXIuZAogUEFTUyBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ29uc3RydWN0b3Ig
ZnJvbSBpbm5lci5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHVtbXlTdHlsZSIpLnNoZWV0LmNz
c1J1bGVzLjYuY29uc3RydWN0b3IKIFBBU1MgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZVByb3RvdHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkdW1teVN0eWxlIikuc2hlZXQu
Y3NzUnVsZXMuNi5fX3Byb3RvX18KIE5ldmVyIGZvdW5kIEF1ZGlvCitOZXZlciBmb3VuZCBBdWRp
b0NvbnRleHQKK05ldmVyIGZvdW5kIEF1ZGlvUGFubmVyTm9kZQogTmV2ZXIgZm91bmQgQmxvYgog
TmV2ZXIgZm91bmQgQ0RBVEFTZWN0aW9uCiBOZXZlciBmb3VuZCBDU1NSdWxlCkBAIC00MzgsNiAr
NDQwLDcgQEAgTmV2ZXIgZm91bmQgU1ZHVmlld0VsZW1lbnQKIE5ldmVyIGZvdW5kIFNoYXJlZFdv
cmtlcgogTmV2ZXIgZm91bmQgU3R5bGVTaGVldAogTmV2ZXIgZm91bmQgVGV4dE1ldHJpY3MKK05l
dmVyIGZvdW5kIFdlYktpdENTU0ZpbHRlclZhbHVlCiBOZXZlciBmb3VuZCBXZWJLaXRDU1NNYXRy
aXgKIE5ldmVyIGZvdW5kIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlCiBOZXZlciBmb3VuZCBXZWJL
aXRQb2ludApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9kZWxldGUtc3ludGF4LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2RlbGV0ZS1zeW50YXgtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA5ODE3NykKKysrIExheW91dFRlc3RzL2Zhc3QvanMvZGVsZXRl
LXN5bnRheC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgUEFT
UyBNYXRoLnRhbiBpcyBudWxsCiBQQVNTIFJlZ0V4cC5wcm90b3R5cGUuY29tcGlsZSBpcyByZWdF
eHBQcm90b3R5cGVDb21waWxlCiBQQVNTIFJlZ0V4cC5wcm90b3R5cGUuZXhlYyBpcyB1bmRlZmlu
ZWQKIFBBU1MgUmVnRXhwLnByb3RvdHlwZS50ZXN0IGlzIG51bGwKLVBBU1MgU3RyaW5nKE9iamVj
dC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE9iamVjdC5wcm90b3R5cGUpKSBpcyAiY29uc3RydWN0b3Is
dmFsdWVPZixfX2xvb2t1cEdldHRlcl9fLHRvTG9jYWxlU3RyaW5nLF9fZGVmaW5lR2V0dGVyX18s
aGFzT3duUHJvcGVydHkscHJvcGVydHlJc0VudW1lcmFibGUsdG9TdHJpbmcsX19sb29rdXBTZXR0
ZXJfXyxpc1Byb3RvdHlwZU9mIgorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPYmpl
Y3QucHJvdG90eXBlKS5pbmRleE9mKCdfX2RlZmluZVNldHRlcl9fJykgaXMgLTEKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGVsZXRlLXN5bnRheC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZWxldGUtc3ludGF4LmpzCShyZXZpc2lv
biA5ODE3NykKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RlbGV0ZS1zeW50
YXguanMJKHdvcmtpbmcgY29weSkKQEAgLTcwLDcgKzcwLDcgQEAgc2hvdWxkQmUoIlJlZ0V4cC5w
cm90b3R5cGUudGVzdCIsICJudWxsIgogCiAvLyBDaGVjayB0aGF0IG9uY2UgYSBwcm9wZXJ0eSBp
cyBkZWxldGVkIGl0cyBuYW1lIGlzIHJlbW92ZWQgZnJvbSB0aGUgcHJvcGVydHkgbmFtZSBhcnJh
eS4KIGRlbGV0ZSBPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lU2V0dGVyX187Ci1zaG91bGRCZSgi
U3RyaW5nKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE9iamVjdC5wcm90b3R5cGUpKSIsICci
Y29uc3RydWN0b3IsdmFsdWVPZixfX2xvb2t1cEdldHRlcl9fLHRvTG9jYWxlU3RyaW5nLF9fZGVm
aW5lR2V0dGVyX18saGFzT3duUHJvcGVydHkscHJvcGVydHlJc0VudW1lcmFibGUsdG9TdHJpbmcs
X19sb29rdXBTZXR0ZXJfXyxpc1Byb3RvdHlwZU9mIicpOworc2hvdWxkQmUoIk9iamVjdC5nZXRP
d25Qcm9wZXJ0eU5hbWVzKE9iamVjdC5wcm90b3R5cGUpLmluZGV4T2YoJ19fZGVmaW5lU2V0dGVy
X18nKSIsICItMSIpOwogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIApJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3Qu
anMJKHJldmlzaW9uIDk4MTc3KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTQzOCw5ICs0MzgsOSBAQCBmdW5j
dGlvbiBydW5UZXN0KGVuYWJsZVdhdGNoRG9nV2hpbGVEZWJ1CiAgICAgICAgIH0KICAgICB9CiAK
LSAgICB2YXIgaW5pdGlhbGl6YXRpb25GdW5jdGlvbnMgPSBbXTsKKyAgICB2YXIgaW5pdGlhbGl6
YXRpb25GdW5jdGlvbnMgPSBbIFN0cmluZyhpbml0aWFsaXplX0luc3BlY3RvclRlc3QpIF07CiAg
ICAgZm9yICh2YXIgbmFtZSBpbiB3aW5kb3cpIHsKLSAgICAgICAgaWYgKG5hbWUuaW5kZXhPZigi
aW5pdGlhbGl6ZV8iKSA9PT0gMCAmJiB0eXBlb2Ygd2luZG93W25hbWVdID09PSAiZnVuY3Rpb24i
KQorICAgICAgICBpZiAobmFtZS5pbmRleE9mKCJpbml0aWFsaXplXyIpID09PSAwICYmIHR5cGVv
ZiB3aW5kb3dbbmFtZV0gPT09ICJmdW5jdGlvbiIgJiYgbmFtZSAhPT0gImluaXRpYWxpemVfSW5z
cGVjdG9yVGVzdCIpCiAgICAgICAgICAgICBpbml0aWFsaXphdGlvbkZ1bmN0aW9ucy5wdXNoKHdp
bmRvd1tuYW1lXS50b1N0cmluZygpKTsKICAgICB9CiAgICAgdmFyIHBhcmFtZXRlcnMgPSBbIlsi
ICsgaW5pdGlhbGl6YXRpb25GdW5jdGlvbnMgKyAiXSIsIHRlc3QsIGNvbXBsZXRlVGVzdENhbGxJ
ZF07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112091</attachid>
            <date>2011-10-22 11:14:42 -0700</date>
            <delta_ts>2011-10-22 14:02:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70673-20111022111440.patch</filename>
            <type>text/plain</type>
            <size>32406</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTgxOTEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTIgQEAK
KzIwMTEtMTAtMjEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBTZXBhcmF0ZWQgc3RyaW5nIGxpZmV0aW1lIGJpdHMgZnJvbSBjaGFyYWN0ZXIgYnVmZmVyIHN0
YXRlIGJpdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwNjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBNb3ZlZCB0aGUgc3RhdGljL2ltbW9ydGFsIGJpdCBpbnRvIHRoZSBib3R0b20gYml0
IG9mIHRoZSByZWZjb3VudCwgYW5kCisgICAgICAgIG1vdmVkIGFsbCBvdGhlciBiaXRzIGludG8g
dGhlIGhpZ2ggYml0cyBvZiB0aGUgaGFzaCBjb2RlLgorICAgICAgICAKKyAgICAgICAgVGhpcyBp
cyB0aGUgZmlyc3Qgc3RlcCB0b3dhcmQgYSBuZXcgQ2hhcmFjdGVycy9QYXNzU3RyaW5nIGNsYXNz
LCBhbmQgaXQKKyAgICAgICAgbWFrZXMgcmVmL2RlcmVmIHNsaWdodGx5IG1vcmUgZWZmaWNpZW50
LgorCisgICAgICAgICogY3JlYXRlX2hhc2hfdGFibGU6CisgICAgICAgICogd3RmL1N0cmluZ0hh
c2hlci5oOgorICAgICAgICAoV1RGOjpTdHJpbmdIYXNoZXI6Omhhc2gpOiBUd2Vha2VkIHRoZSBz
dHJpbmcgaGFzaGluZyBmdW5jdGlvbiB0byBsZWF2ZQorICAgICAgICB0aGUgdG9wIGJpdHMgY2xl
YXIsIHNvIHRoZXkgY2FuIGJlIHVzZWQgYXMgZmxhZ3MuCisgICAgICAgIAorICAgICAgICBGaXhl
ZCBzb21lIHNtYWxsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIFBFUkwgY29weSBvZiB0aGlzIGZ1
bmN0aW9uIGFuZAorICAgICAgICB0aGUgQysrIGNvcHkgb2YgdGhpcyBmdW5jdGlvbiwgd2hpY2gg
Y291bGQgaGF2ZSBpbiB0aGVvcnkgY2F1c2VkIHN1YnRsZQorICAgICAgICBjcmFzaGVzLgorCisg
ICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0lt
cGw6OnNoYXJlZEJ1ZmZlcik6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmNyZWF0ZVdpdGhU
ZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwu
aDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6U3RyaW5nSW1wbCk6CisgICAgICAgIChXVEY6
OlN0cmluZ0ltcGw6OmNvc3QpOiBSZW5hbWVkIHNfcmVmQ291bnRGbGFnU2hvdWxkUmVwb3J0ZWRD
b3N0IHRvCisgICAgICAgIHNfZGlkUmVwb3J0RXh0cmFDb3N0LCBzaW5jZSB0aGUgb3JpZ2luYWwg
bmFtZSB3YXMgYm90aCBzZWxmLWNvbnRyYWRpY3RvcnkKKyAgICAgICAgYW5kIHVzZWQgYXMgYSBk
b3VibGUtbmVnYXRpdmUuCisKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6aXNJZGVudGlmaWVy
KToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6c2V0SXNJZGVudGlmaWVyKToKKyAgICAgICAg
KFdURjo6U3RyaW5nSW1wbDo6aGFzVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyKToKKyAgICAgICAg
KFdURjo6U3RyaW5nSW1wbDo6aXNBdG9taWMpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpz
ZXRJc0F0b21pYyk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnNldEhhc2gpOgorICAgICAg
ICAoV1RGOjpTdHJpbmdJbXBsOjpyYXdIYXNoKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6
aGFzSGFzaCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmV4aXN0aW5nSGFzaCk6CisgICAg
ICAgIChXVEY6OlN0cmluZ0ltcGw6Omhhc2gpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpo
YXNPbmVSZWYpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpyZWYpOgorICAgICAgICAoV1RG
OjpTdHJpbmdJbXBsOjpkZXJlZik6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmJ1ZmZlck93
bmVyc2hpcCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmlzU3RhdGljKTogTW92ZWQgdGhl
IHN0YXRpYy9pbW1vcnRhbCBiaXQgaW50byB0aGUgYm90dG9tCisgICAgICAgIGJpdCBvZiB0aGUg
cmVmY291bnQuIE5vdywgYWxsIGxpZmV0aW1lIGluZm9ybWF0aW9uIGxpdmVzIGluIHRoZSByZWZj
b3VudAorICAgICAgICBmaWVsZC4gTW92ZWQgdGhlIG90aGVyIGJpdHMgaW50byB0aGUgaGFzaCBj
b2RlIGZpZWxkLgorCiAyMDExLTEwLTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+
CiAKICAgICAgICAgREZHIGlubGluaW5nIHNvbWV0aW1lcyBmYWlscyB0byByZXNldCBjb25zdGFu
dCByZWZlcmVuY2VzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFi
bGUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0ZV9oYXNoX3RhYmxl
CShyZXZpc2lvbiA5ODE3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90
YWJsZQkod29ya2luZyBjb3B5KQpAQCAtMTc5LDcgKzE3OSw2IEBAIHN1YiBjYWxjQ29tcGFjdEhh
c2hTaXplKCkKIAogIyBQYXVsIEhzaWVoJ3MgU3VwZXJGYXN0SGFzaAogIyBodHRwOi8vd3d3LmF6
aWxsaW9ubW9ua2V5cy5jb20vcWVkL2hhc2guaHRtbAotIyBQb3J0ZWQgZnJvbSBVU3RyaW5nLi4K
IHN1YiBoYXNoVmFsdWUoJCkgewogICBteSBAY2hhcnMgPSBzcGxpdCgvICovLCAkX1swXSk7CiAK
QEAgLTIwNyw3ICsyMDYsNyBAQCBzdWIgaGFzaFZhbHVlKCQpIHsKICAgfQogCiAgICMgSGFuZGxl
IGVuZCBjYXNlCi0gIGlmICgkcmVtICE9MCkgeworICBpZiAoJHJlbSAhPSAwKSB7CiAgICAgJGhh
c2ggKz0gb3JkKCRjaGFyc1skc10pOwogICAgICRoYXNoIF49IChsZWZ0U2hpZnQoJGhhc2gsIDEx
KSUgJEVYUDJfMzIpOwogICAgICRoYXNoICs9ICRoYXNoID4+IDE3OwpAQCAtMjIxLDExICsyMjAs
MTUgQEAgc3ViIGhhc2hWYWx1ZSgkKSB7CiAgICRoYXNoICs9ICgkaGFzaCA+PiAxNSk7CiAgICRo
YXNoID0gJGhhc2glICRFWFAyXzMyOwogICAkaGFzaCBePSAobGVmdFNoaWZ0KCRoYXNoLCAxMCkl
ICRFWFAyXzMyKTsKLSAgCi0gICMgdGhpcyBhdm9pZHMgZXZlciByZXR1cm5pbmcgYSBoYXNoIGNv
ZGUgb2YgMCwgc2luY2UgdGhhdCBpcyB1c2VkIHRvCi0gICMgc2lnbmFsICJoYXNoIG5vdCBjb21w
dXRlZCB5ZXQiLCB1c2luZyBhIHZhbHVlIHRoYXQgaXMgbGlrZWx5IHRvIGJlCi0gICMgZWZmZWN0
aXZlbHkgdGhlIHNhbWUgYXMgMCB3aGVuIHRoZSBsb3cgYml0cyBhcmUgbWFza2VkCi0gICRoYXNo
ID0gMHg4MDAwMDAwMCAgaWYgKCRoYXNoID09IDApOworCisgICMgU2F2ZSA2IGJpdHMgZm9yIFN0
cmluZ0ltcGwgdG8gdXNlIGFzIGZsYWdzLgorICAkaGFzaCA9ICgkaGFzaCA+PiA2KTsKKworICAj
IFRoaXMgYXZvaWRzIGV2ZXIgcmV0dXJuaW5nIGEgaGFzaCBjb2RlIG9mIDAsIHNpbmNlIHRoYXQg
aXMgdXNlZCB0bworICAjIHNpZ25hbCAiaGFzaCBub3QgY29tcHV0ZWQgeWV0Ii4gU2V0dGluZyB0
aGUgaGlnaCBiaXQgbWFpbnRhaW5zCisgICMgcmVhc29uYWJsZSBmaWRlbGl0eSB0byBhIGhhc2gg
Y29kZSBvZiAwIGJlY2F1c2UgaXQgaXMgbGlrZWx5IHRvIHlpZWxkCisgICMgZXhhY3RseSAwIHdo
ZW4gaGFzaCBsb29rdXAgbWFza3Mgb3V0IHRoZSBoaWdoIGJpdHMuCisgICRoYXNoID0gKDB4ODAw
MDAwMDAgPj4gNikgaWYgKCRoYXNoID09IDApOwogCiAgIHJldHVybiAkaGFzaDsKIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvU3RyaW5nSGFzaGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9TdHJpbmdIYXNoZXIuaAkocmV2aXNpb24gOTgxNzcp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1N0cmluZ0hhc2hlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw4ICszMSwxMyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgc3RyaW5nSGFzaGlu
Z1N0YXJ0CiAvLyBQYXVsIEhzaWVoJ3MgU3VwZXJGYXN0SGFzaAogLy8gaHR0cDovL3d3dy5hemls
bGlvbm1vbmtleXMuY29tL3FlZC9oYXNoLmh0bWwKIC8vIGNoYXIqIGRhdGEgaXMgaW50ZXJwcmV0
ZWQgYXMgbGF0aW4tZW5jb2RlZCAoemVybyBleHRlbmRlZCB0byAxNiBiaXRzKS4KKworLy8gTk9U
RTogVGhpcyBjbGFzcyBtdXN0IHN0YXkgaW4gc3luYyB3aXRoIHRoZSBjcmVhdGVfaGFzaF90YWJs
ZSBzY3JpcHQgaW4KKy8vIEphdmFTY3JpcHRDb3JlIGFuZCB0aGUgQ29kZUdlbmVyYXRvckpTLnBt
IHNjcmlwdCBpbiBXZWJDb3JlLgogY2xhc3MgU3RyaW5nSGFzaGVyIHsKIHB1YmxpYzoKKyAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgZmxhZ0NvdW50ID0gNjsgLy8gU2F2ZSA2IGJpdHMgZm9yIFN0
cmluZ0ltcGwgdG8gdXNlIGFzIGZsYWdzLgorCiAgICAgaW5saW5lIFN0cmluZ0hhc2hlcigpCiAg
ICAgICAgIDogbV9oYXNoKHN0cmluZ0hhc2hpbmdTdGFydFZhbHVlKQogICAgICAgICAsIG1faGFz
UGVuZGluZ0NoYXJhY3RlcihmYWxzZSkKQEAgLTc2LDE0ICs4MSwxNiBAQCBwdWJsaWM6CiAgICAg
ICAgIHJlc3VsdCArPSByZXN1bHQgPj4gMTU7CiAgICAgICAgIHJlc3VsdCBePSByZXN1bHQgPDwg
MTA7CiAKLSAgICAgICAgLy8gRmlyc3QgYml0IGlzIHVzZWQgaW4gVVN0cmluZ0ltcGwgZm9yIG1f
aXNJZGVudGlmaWVyLgotICAgICAgICByZXN1bHQgJj0gMHg3ZmZmZmZmZjsKKyAgICAgICAgLy8g
UmVzZXJ2aW5nIHRoZSBoaWdoIGJpdHMgZm9yIGZsYWdzIHBlcnNlcnZlcyBtb3N0IG9mIHRoZSBo
YXNoJ3MgdmFsdWUsCisgICAgICAgIC8vIHNpbmNlIGhhc2ggbG9va3VwIHR5cGljYWxseSBtYXNr
cyBvdXQgdGhlIGhpZ2ggYml0cyBhbnl3YXkuCisgICAgICAgIHJlc3VsdCA+Pj0gZmxhZ0NvdW50
OwogCiAgICAgICAgIC8vIFRoaXMgYXZvaWRzIGV2ZXIgcmV0dXJuaW5nIGEgaGFzaCBjb2RlIG9m
IDAsIHNpbmNlIHRoYXQgaXMgdXNlZCB0bwotICAgICAgICAvLyBzaWduYWwgImhhc2ggbm90IGNv
bXB1dGVkIHlldCIsIHVzaW5nIGEgdmFsdWUgdGhhdCBpcyBsaWtlbHkgdG8gYmUKLSAgICAgICAg
Ly8gZWZmZWN0aXZlbHkgdGhlIHNhbWUgYXMgMCB3aGVuIHRoZSBsb3cgYml0cyBhcmUgbWFza2Vk
LgorICAgICAgICAvLyBzaWduYWwgImhhc2ggbm90IGNvbXB1dGVkIHlldCIuIFNldHRpbmcgdGhl
IGhpZ2ggYml0IG1haW50YWlucworICAgICAgICAvLyByZWFzb25hYmxlIGZpZGVsaXR5IHRvIGEg
aGFzaCBjb2RlIG9mIDAgYmVjYXVzZSBpdCBpcyBsaWtlbHkgdG8geWllbGQKKyAgICAgICAgLy8g
ZXhhY3RseSAwIHdoZW4gaGFzaCBsb29rdXAgbWFza3Mgb3V0IHRoZSBoaWdoIGJpdHMuCiAgICAg
ICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIDB4NDAwMDAwMDA7CisgICAgICAg
ICAgICByZXN1bHQgPSAweDgwMDAwMDAwID4+IGZsYWdDb3VudDsKIAogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJp
bmdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQv
U3RyaW5nSW1wbC5jcHAJKHJldmlzaW9uIDk4MTc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjgsNyArMTY4LDcg
QEAgU2hhcmVkVUNoYXIqIFN0cmluZ0ltcGw6OnNoYXJlZEJ1ZmZlcigpCiAgICAgaWYgKG93bmVy
c2hpcCA9PSBCdWZmZXJPd25lZCkgewogICAgICAgICBBU1NFUlQoIW1fc2hhcmVkQnVmZmVyKTsK
ICAgICAgICAgbV9zaGFyZWRCdWZmZXIgPSBTaGFyZWRVQ2hhcjo6Y3JlYXRlKG5ldyBTaGFyYWJs
ZVVDaGFyKG1fZGF0YSkpLmxlYWtSZWYoKTsKLSAgICAgICAgbV9yZWZDb3VudEFuZEZsYWdzID0g
KG1fcmVmQ291bnRBbmRGbGFncyAmIH5zX3JlZkNvdW50TWFza0J1ZmZlck93bmVyc2hpcCkgfCBC
dWZmZXJTaGFyZWQ7CisgICAgICAgIG1faGFzaEFuZEZsYWdzID0gKG1faGFzaEFuZEZsYWdzICYg
fnNfaGFzaE1hc2tCdWZmZXJPd25lcnNoaXApIHwgQnVmZmVyU2hhcmVkOwogICAgIH0KIAogICAg
IEFTU0VSVChidWZmZXJPd25lcnNoaXAoKSA9PSBCdWZmZXJTaGFyZWQpOwpAQCAtMTE1Niw4ICsx
MTU2LDcgQEAgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdAogICAgIG1l
bWNweShkYXRhLCBzdHJpbmcubV9kYXRhLCBsZW5ndGggKiBzaXplb2YoVUNoYXIpKTsKICAgICBk
YXRhW2xlbmd0aF0gPSAwOwogICAgIHRlcm1pbmF0ZWRTdHJpbmctPm1fbGVuZ3RoLS07Ci0gICAg
dGVybWluYXRlZFN0cmluZy0+bV9oYXNoID0gc3RyaW5nLm1faGFzaDsKLSAgICB0ZXJtaW5hdGVk
U3RyaW5nLT5tX3JlZkNvdW50QW5kRmxhZ3MgfD0gc19yZWZDb3VudEZsYWdIYXNUZXJtaW5hdGlu
Z051bGxDaGFyYWN0ZXI7CisgICAgdGVybWluYXRlZFN0cmluZy0+bV9oYXNoQW5kRmxhZ3MgPSAo
c3RyaW5nLm1faGFzaEFuZEZsYWdzICYgfnNfZmxhZ01hc2spIHwgc19oYXNoRmxhZ0hhc1Rlcm1p
bmF0aW5nTnVsbENoYXJhY3RlcjsKICAgICByZXR1cm4gdGVybWluYXRlZFN0cmluZy5yZWxlYXNl
KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBs
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0lt
cGwuaAkocmV2aXNpb24gOTgxNzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQv
U3RyaW5nSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MywxMyArODMsMTMgQEAgcHJpdmF0ZToK
ICAgICAvLyBVc2VkIHRvIGNvbnN0cnVjdCBzdGF0aWMgc3RyaW5ncywgd2hpY2ggaGF2ZSBhbiBz
cGVjaWFsIHJlZkNvdW50IHRoYXQgY2FuIG5ldmVyIGhpdCB6ZXJvLgogICAgIC8vIFRoaXMgbWVh
bnMgdGhhdCB0aGUgc3RhdGljIHN0cmluZyB3aWxsIG5ldmVyIGJlIGRlc3Ryb3llZCwgd2hpY2gg
aXMgaW1wb3J0YW50IGJlY2F1c2UKICAgICAvLyBzdGF0aWMgc3RyaW5ncyB3aWxsIGJlIHNoYXJl
ZCBhY3Jvc3MgdGhyZWFkcyAmIHJlZi1jb3VudGVkIGluIGEgbm9uLXRocmVhZHNhZmUgbWFubmVy
LgotICAgIGVudW0gU3RhdGljU3RyaW5nQ29uc3RydWN0VHlwZSB7IENvbnN0cnVjdFN0YXRpY1N0
cmluZyB9OwotICAgIFN0cmluZ0ltcGwoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVk
IGxlbmd0aCwgU3RhdGljU3RyaW5nQ29uc3RydWN0VHlwZSkKLSAgICAgICAgOiBtX3JlZkNvdW50
QW5kRmxhZ3Moc19yZWZDb3VudEZsYWdTdGF0aWMgfCBzX3JlZkNvdW50RmxhZ0lzSWRlbnRpZmll
ciB8IEJ1ZmZlck93bmVkKQorICAgIGVudW0gQ29uc3RydWN0U3RhdGljU3RyaW5nVGFnIHsgQ29u
c3RydWN0U3RhdGljU3RyaW5nIH07CisgICAgU3RyaW5nSW1wbChjb25zdCBVQ2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoLCBDb25zdHJ1Y3RTdGF0aWNTdHJpbmdUYWcpCisgICAgICAg
IDogbV9yZWZDb3VudChzX3JlZkNvdW50RmxhZ0lzU3RhdGljU3RyaW5nKQogICAgICAgICAsIG1f
bGVuZ3RoKGxlbmd0aCkKICAgICAgICAgLCBtX2RhdGEoY2hhcmFjdGVycykKICAgICAgICAgLCBt
X2J1ZmZlcigwKQotICAgICAgICAsIG1faGFzaCgwKQorICAgICAgICAsIG1faGFzaEFuZEZsYWdz
KHNfaGFzaEZsYWdJc0lkZW50aWZpZXIgfCBCdWZmZXJPd25lZCkKICAgICB7CiAgICAgICAgIC8v
IEVuc3VyZSB0aGF0IHRoZSBoYXNoIGlzIGNvbXB1dGVkIHNvIHRoYXQgQXRvbWljU3RyaW5nSGFz
aCBjYW4gY2FsbCBleGlzdGluZ0hhc2goKQogICAgICAgICAvLyB3aXRoIGltcHVuaXR5LiBUaGUg
ZW1wdHkgc3RyaW5nIGlzIHNwZWNpYWwgYmVjYXVzZSBpdCBpcyBuZXZlciBlbnRlcmVkIGludG8K
QEAgLTk5LDExICs5OSwxMSBAQCBwcml2YXRlOgogCiAgICAgLy8gQ3JlYXRlIGEgbm9ybWFsIHN0
cmluZyB3aXRoIGludGVybmFsIHN0b3JhZ2UgKEJ1ZmZlckludGVybmFsKQogICAgIFN0cmluZ0lt
cGwodW5zaWduZWQgbGVuZ3RoKQotICAgICAgICA6IG1fcmVmQ291bnRBbmRGbGFncyhzX3JlZkNv
dW50SW5jcmVtZW50IHwgc19yZWZDb3VudEZsYWdTaG91bGRSZXBvcnRlZENvc3QgfCBCdWZmZXJJ
bnRlcm5hbCkKKyAgICAgICAgOiBtX3JlZkNvdW50KHNfcmVmQ291bnRJbmNyZW1lbnQpCiAgICAg
ICAgICwgbV9sZW5ndGgobGVuZ3RoKQogICAgICAgICAsIG1fZGF0YShyZWludGVycHJldF9jYXN0
PGNvbnN0IFVDaGFyKj4odGhpcyArIDEpKQogICAgICAgICAsIG1fYnVmZmVyKDApCi0gICAgICAg
ICwgbV9oYXNoKDApCisgICAgICAgICwgbV9oYXNoQW5kRmxhZ3MoQnVmZmVySW50ZXJuYWwpCiAg
ICAgewogICAgICAgICBBU1NFUlQobV9kYXRhKTsKICAgICAgICAgQVNTRVJUKG1fbGVuZ3RoKTsK
QEAgLTExMSwxMSArMTExLDExIEBAIHByaXZhdGU6CiAKICAgICAvLyBDcmVhdGUgYSBTdHJpbmdJ
bXBsIGFkb3B0aW5nIG93bmVyc2hpcCBvZiB0aGUgcHJvdmlkZWQgYnVmZmVyIChCdWZmZXJPd25l
ZCkKICAgICBTdHJpbmdJbXBsKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5n
dGgpCi0gICAgICAgIDogbV9yZWZDb3VudEFuZEZsYWdzKHNfcmVmQ291bnRJbmNyZW1lbnQgfCBz
X3JlZkNvdW50RmxhZ1Nob3VsZFJlcG9ydGVkQ29zdCB8IEJ1ZmZlck93bmVkKQorICAgICAgICA6
IG1fcmVmQ291bnQoc19yZWZDb3VudEluY3JlbWVudCkKICAgICAgICAgLCBtX2xlbmd0aChsZW5n
dGgpCiAgICAgICAgICwgbV9kYXRhKGNoYXJhY3RlcnMpCiAgICAgICAgICwgbV9idWZmZXIoMCkK
LSAgICAgICAgLCBtX2hhc2goMCkKKyAgICAgICAgLCBtX2hhc2hBbmRGbGFncyhCdWZmZXJPd25l
ZCkKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2RhdGEpOwogICAgICAgICBBU1NFUlQobV9sZW5n
dGgpOwpAQCAtMTIzLDExICsxMjMsMTEgQEAgcHJpdmF0ZToKIAogICAgIC8vIFVzZWQgdG8gY3Jl
YXRlIG5ldyBzdHJpbmdzIHRoYXQgYXJlIGEgc3Vic3RyaW5nIG9mIGFuIGV4aXN0aW5nIFN0cmlu
Z0ltcGwgKEJ1ZmZlclN1YnN0cmluZykKICAgICBTdHJpbmdJbXBsKGNvbnN0IFVDaGFyKiBjaGFy
YWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gYmFzZSkKLSAg
ICAgICAgOiBtX3JlZkNvdW50QW5kRmxhZ3Moc19yZWZDb3VudEluY3JlbWVudCB8IHNfcmVmQ291
bnRGbGFnU2hvdWxkUmVwb3J0ZWRDb3N0IHwgQnVmZmVyU3Vic3RyaW5nKQorICAgICAgICA6IG1f
cmVmQ291bnQoc19yZWZDb3VudEluY3JlbWVudCkKICAgICAgICAgLCBtX2xlbmd0aChsZW5ndGgp
CiAgICAgICAgICwgbV9kYXRhKGNoYXJhY3RlcnMpCiAgICAgICAgICwgbV9zdWJzdHJpbmdCdWZm
ZXIoYmFzZS5sZWFrUmVmKCkpCi0gICAgICAgICwgbV9oYXNoKDApCisgICAgICAgICwgbV9oYXNo
QW5kRmxhZ3MoQnVmZmVyU3Vic3RyaW5nKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fZGF0YSk7
CiAgICAgICAgIEFTU0VSVChtX2xlbmd0aCk7CkBAIC0xMzYsMjUgKzEzNiwxNiBAQCBwcml2YXRl
OgogCiAgICAgLy8gVXNlZCB0byBjb25zdHJ1Y3QgbmV3IHN0cmluZ3Mgc2hhcmluZyBhbiBleGlz
dGluZyBTaGFyZWRVQ2hhciAoQnVmZmVyU2hhcmVkKQogICAgIFN0cmluZ0ltcGwoY29uc3QgVUNo
YXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgUGFzc1JlZlB0cjxTaGFyZWRVQ2hhcj4g
c2hhcmVkQnVmZmVyKQotICAgICAgICA6IG1fcmVmQ291bnRBbmRGbGFncyhzX3JlZkNvdW50SW5j
cmVtZW50IHwgc19yZWZDb3VudEZsYWdTaG91bGRSZXBvcnRlZENvc3QgfCBCdWZmZXJTaGFyZWQp
CisgICAgICAgIDogbV9yZWZDb3VudChzX3JlZkNvdW50SW5jcmVtZW50KQogICAgICAgICAsIG1f
bGVuZ3RoKGxlbmd0aCkKICAgICAgICAgLCBtX2RhdGEoY2hhcmFjdGVycykKICAgICAgICAgLCBt
X3NoYXJlZEJ1ZmZlcihzaGFyZWRCdWZmZXIubGVha1JlZigpKQotICAgICAgICAsIG1faGFzaCgw
KQorICAgICAgICAsIG1faGFzaEFuZEZsYWdzKEJ1ZmZlclNoYXJlZCkKICAgICB7CiAgICAgICAg
IEFTU0VSVChtX2RhdGEpOwogICAgICAgICBBU1NFUlQobV9sZW5ndGgpOwogICAgIH0KIAotICAg
IC8vIEZvciB1c2Ugb25seSBieSBBdG9taWNTdHJpbmcncyBYWFhUcmFuc2xhdG9yIGhlbHBlcnMu
Ci0gICAgdm9pZCBzZXRIYXNoKHVuc2lnbmVkIGhhc2gpCi0gICAgewotICAgICAgICBBU1NFUlQo
IWlzU3RhdGljKCkpOwotICAgICAgICBBU1NFUlQoIW1faGFzaCk7Ci0gICAgICAgIEFTU0VSVCho
YXNoID09IFN0cmluZ0hhc2hlcjo6Y29tcHV0ZUhhc2gobV9kYXRhLCBtX2xlbmd0aCkpOwotICAg
ICAgICBtX2hhc2ggPSBoYXNoOwotICAgIH0KLQogcHVibGljOgogICAgIH5TdHJpbmdJbXBsKCk7
CiAKQEAgLTIxNyw3ICsyMDgsNiBAQCBwdWJsaWM6CiAgICAgfQogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cmluZ0ltcGw+IGFkb3B0KFN0cmluZ0J1ZmZlciYpOwogCi0gICAgdm9pZCByZWYoKSB7
IG1fcmVmQ291bnRBbmRGbGFncyArPSBzX3JlZkNvdW50SW5jcmVtZW50OyB9CiAgICAgdW5zaWdu
ZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KICAgICBTaGFyZWRVQ2hhciog
c2hhcmVkQnVmZmVyKCk7CiAgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMoKSBjb25zdCB7IHJl
dHVybiBtX2RhdGE7IH0KQEAgLTIyOCw0MSArMjE4LDk1IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGJ1ZmZlck93bmVyc2hpcCgpID09IEJ1ZmZlclN1YnN0cmluZykKICAgICAgICAgICAgIHJldHVy
biBtX3N1YnN0cmluZ0J1ZmZlci0+Y29zdCgpOwogCi0gICAgICAgIGlmIChtX3JlZkNvdW50QW5k
RmxhZ3MgJiBzX3JlZkNvdW50RmxhZ1Nob3VsZFJlcG9ydGVkQ29zdCkgewotICAgICAgICAgICAg
bV9yZWZDb3VudEFuZEZsYWdzICY9IH5zX3JlZkNvdW50RmxhZ1Nob3VsZFJlcG9ydGVkQ29zdDsK
LSAgICAgICAgICAgIHJldHVybiBtX2xlbmd0aDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgaWYgKG1faGFzaEFuZEZsYWdzICYgc19oYXNoRmxhZ0RpZFJlcG9ydENvc3Qp
CisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBtX2hhc2hBbmRGbGFncyB8PSBzX2hh
c2hGbGFnRGlkUmVwb3J0Q29zdDsKKyAgICAgICAgcmV0dXJuIG1fbGVuZ3RoOwogICAgIH0KIAot
ICAgIGJvb2wgaXNJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZWZDb3VudEFuZEZsYWdz
ICYgc19yZWZDb3VudEZsYWdJc0lkZW50aWZpZXI7IH0KKyAgICBib29sIGlzSWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faGFzaEFuZEZsYWdzICYgc19oYXNoRmxhZ0lzSWRlbnRpZmllcjsg
fQogICAgIHZvaWQgc2V0SXNJZGVudGlmaWVyKGJvb2wgaXNJZGVudGlmaWVyKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKCFpc1N0YXRpYygpKTsKICAgICAgICAgaWYgKGlzSWRlbnRpZmllcikKLSAg
ICAgICAgICAgIG1fcmVmQ291bnRBbmRGbGFncyB8PSBzX3JlZkNvdW50RmxhZ0lzSWRlbnRpZmll
cjsKKyAgICAgICAgICAgIG1faGFzaEFuZEZsYWdzIHw9IHNfaGFzaEZsYWdJc0lkZW50aWZpZXI7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcmVmQ291bnRBbmRGbGFncyAmPSB+c19yZWZD
b3VudEZsYWdJc0lkZW50aWZpZXI7CisgICAgICAgICAgICBtX2hhc2hBbmRGbGFncyAmPSB+c19o
YXNoRmxhZ0lzSWRlbnRpZmllcjsKICAgICB9CiAKLSAgICBib29sIGhhc1Rlcm1pbmF0aW5nTnVs
bENoYXJhY3RlcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVmQ291bnRBbmRGbGFncyAmIHNfcmVmQ291
bnRGbGFnSGFzVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyOyB9CisgICAgYm9vbCBoYXNUZXJtaW5h
dGluZ051bGxDaGFyYWN0ZXIoKSBjb25zdCB7IHJldHVybiBtX2hhc2hBbmRGbGFncyAmIHNfaGFz
aEZsYWdIYXNUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXI7IH0KIAotICAgIGJvb2wgaXNBdG9taWMo
KSBjb25zdCB7IHJldHVybiBtX3JlZkNvdW50QW5kRmxhZ3MgJiBzX3JlZkNvdW50RmxhZ0lzQXRv
bWljOyB9CisgICAgYm9vbCBpc0F0b21pYygpIGNvbnN0IHsgcmV0dXJuIG1faGFzaEFuZEZsYWdz
ICYgc19oYXNoRmxhZ0lzQXRvbWljOyB9CiAgICAgdm9pZCBzZXRJc0F0b21pYyhib29sIGlzSWRl
bnRpZmllcikKICAgICB7CiAgICAgICAgIEFTU0VSVCghaXNTdGF0aWMoKSk7CiAgICAgICAgIGlm
IChpc0lkZW50aWZpZXIpCi0gICAgICAgICAgICBtX3JlZkNvdW50QW5kRmxhZ3MgfD0gc19yZWZD
b3VudEZsYWdJc0F0b21pYzsKKyAgICAgICAgICAgIG1faGFzaEFuZEZsYWdzIHw9IHNfaGFzaEZs
YWdJc0F0b21pYzsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9yZWZDb3VudEFuZEZsYWdz
ICY9IH5zX3JlZkNvdW50RmxhZ0lzQXRvbWljOworICAgICAgICAgICAgbV9oYXNoQW5kRmxhZ3Mg
Jj0gfnNfaGFzaEZsYWdJc0F0b21pYzsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8gVGhlIGhp
Z2ggYml0cyBvZiAnaGFzaCcgYXJlIGFsd2F5cyBlbXB0eSwgYnV0IHdlIHByZWZlciB0byBzdG9y
ZSBvdXIgZmxhZ3MKKyAgICAvLyBpbiB0aGUgbG93IGJpdHMgYmVjYXVzZSBpdCBtYWtlcyB0aGVt
IHNsaWdodGx5IG1vcmUgZWZmaWNpZW50IHRvIGFjY2Vzcy4KKyAgICAvLyBTbywgd2Ugc2hpZnQg
bGVmdCBhbmQgcmlnaHQgd2hlbiBzZXR0aW5nIGFuZCBnZXR0aW5nIG91ciBoYXNoIGNvZGUuCisg
ICAgdm9pZCBzZXRIYXNoKHVuc2lnbmVkIGhhc2gpIGNvbnN0CisgICAgeworICAgICAgICBBU1NF
UlQoIWhhc0hhc2goKSk7CisgICAgICAgIEFTU0VSVChoYXNoID09IFN0cmluZ0hhc2hlcjo6Y29t
cHV0ZUhhc2gobV9kYXRhLCBtX2xlbmd0aCkpOyAvLyBNdWx0aXBsZSBjbGllbnRzIGFzc3VtZSB0
aGF0IFN0cmluZ0hhc2hlciBpcyB0aGUgY2Fub25pY2FsIHN0cmluZyBoYXNoIGZ1bmN0aW9uLgor
ICAgICAgICBBU1NFUlQoIShoYXNoICYgKHNfZmxhZ01hc2sgPDwgKDggKiBzaXplb2YoaGFzaCkg
LSBzX2ZsYWdDb3VudCkpKSk7IC8vIFZlcmlmeSB0aGF0IGVub3VnaCBoaWdoIGJpdHMgYXJlIGVt
cHR5LgorICAgICAgICAKKyAgICAgICAgaGFzaCA8PD0gc19mbGFnQ291bnQ7CisgICAgICAgIEFT
U0VSVCghKGhhc2ggJiBtX2hhc2hBbmRGbGFncykpOyAvLyBWZXJpZnkgdGhhdCBlbm91Z2ggbG93
IGJpdHMgYXJlIGVtcHR5IGFmdGVyIHNoaWZ0LgorICAgICAgICBBU1NFUlQoaGFzaCk7IC8vIFZl
cmlmeSB0aGF0IDAgaXMgYSB2YWxpZCBzZW50aW5lbCBoYXNoIHZhbHVlLgorCisgICAgICAgIG1f
aGFzaEFuZEZsYWdzIHw9IGhhc2g7IC8vIFN0b3JlIGhhc2ggd2l0aCBmbGFncyBpbiBsb3cgYml0
cy4KKyAgICB9CisKKyAgICB1bnNpZ25lZCByYXdIYXNoKCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBtX2hhc2hBbmRGbGFncyA+PiBzX2ZsYWdDb3VudDsKKyAgICB9CisKK3B1YmxpYzoK
KyAgICBib29sIGhhc0hhc2goKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHJhd0hhc2go
KSAhPSAwOwogICAgIH0KIAotICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCB7IGlmICghbV9oYXNo
KSBtX2hhc2ggPSBTdHJpbmdIYXNoZXI6OmNvbXB1dGVIYXNoKG1fZGF0YSwgbV9sZW5ndGgpOyBy
ZXR1cm4gbV9oYXNoOyB9Ci0gICAgdW5zaWduZWQgZXhpc3RpbmdIYXNoKCkgY29uc3QgeyBBU1NF
UlQobV9oYXNoKTsgcmV0dXJuIG1faGFzaDsgfQotICAgIGJvb2wgaGFzSGFzaCgpIGNvbnN0IHsg
cmV0dXJuIG1faGFzaDsgfQorICAgIHVuc2lnbmVkIGV4aXN0aW5nSGFzaCgpIGNvbnN0CisgICAg
eworICAgICAgICBBU1NFUlQoaGFzSGFzaCgpKTsKKyAgICAgICAgcmV0dXJuIHJhd0hhc2goKTsK
KyAgICB9CiAKLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgZGVyZWYoKSB7IG1fcmVmQ291bnRBbmRG
bGFncyAtPSBzX3JlZkNvdW50SW5jcmVtZW50OyBpZiAoIShtX3JlZkNvdW50QW5kRmxhZ3MgJiAo
c19yZWZDb3VudE1hc2sgfCBzX3JlZkNvdW50RmxhZ1N0YXRpYykpKSBkZWxldGUgdGhpczsgfQot
ICAgIEFMV0FZU19JTkxJTkUgYm9vbCBoYXNPbmVSZWYoKSBjb25zdCB7IHJldHVybiAobV9yZWZD
b3VudEFuZEZsYWdzICYgKHNfcmVmQ291bnRNYXNrIHwgc19yZWZDb3VudEZsYWdTdGF0aWMpKSA9
PSBzX3JlZkNvdW50SW5jcmVtZW50OyB9CisgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0CisgICAg
eworICAgICAgICBpZiAoIWhhc0hhc2goKSkKKyAgICAgICAgICAgIHNldEhhc2goU3RyaW5nSGFz
aGVyOjpjb21wdXRlSGFzaChtX2RhdGEsIG1fbGVuZ3RoKSk7CisgICAgICAgIHJldHVybiBleGlz
dGluZ0hhc2goKTsKKyAgICB9CisKKyAgICBpbmxpbmUgYm9vbCBoYXNPbmVSZWYoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1fcmVmQ291bnQgPT0gc19yZWZDb3VudEluY3JlbWVudDsK
KyAgICB9CisKKyAgICBpbmxpbmUgdm9pZCByZWYoKQorICAgIHsKKyAgICAgICAgbV9yZWZDb3Vu
dCArPSBzX3JlZkNvdW50SW5jcmVtZW50OworICAgIH0KKworICAgIGlubGluZSB2b2lkIGRlcmVm
KCkKKyAgICB7CisgICAgICAgIGlmIChtX3JlZkNvdW50ID09IHNfcmVmQ291bnRJbmNyZW1lbnQp
IHsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgbV9yZWZDb3VudCAtPSBzX3JlZkNvdW50SW5jcmVtZW50OworICAgIH0K
IAogICAgIHN0YXRpYyBTdHJpbmdJbXBsKiBlbXB0eSgpOwogCkBAIC0zNTEsMjQgKzM5NSwyNyBA
QCBwcml2YXRlOgogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gY3JlYXRlU3Ry
aXBwaW5nTnVsbENoYXJhY3RlcnNTbG93Q2FzZShjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0
aCk7CiAgICAgCi0gICAgQnVmZmVyT3duZXJzaGlwIGJ1ZmZlck93bmVyc2hpcCgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PEJ1ZmZlck93bmVyc2hpcD4obV9yZWZDb3VudEFuZEZsYWdzICYg
c19yZWZDb3VudE1hc2tCdWZmZXJPd25lcnNoaXApOyB9Ci0gICAgYm9vbCBpc1N0YXRpYygpIGNv
bnN0IHsgcmV0dXJuIG1fcmVmQ291bnRBbmRGbGFncyAmIHNfcmVmQ291bnRGbGFnU3RhdGljOyB9
CisgICAgQnVmZmVyT3duZXJzaGlwIGJ1ZmZlck93bmVyc2hpcCgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PEJ1ZmZlck93bmVyc2hpcD4obV9oYXNoQW5kRmxhZ3MgJiBzX2hhc2hNYXNrQnVm
ZmVyT3duZXJzaGlwKTsgfQorICAgIGJvb2wgaXNTdGF0aWMoKSBjb25zdCB7IHJldHVybiBtX3Jl
ZkNvdW50ICYgc19yZWZDb3VudEZsYWdJc1N0YXRpY1N0cmluZzsgfQogICAgIHRlbXBsYXRlIDxj
bGFzcyBVQ2hhclByZWRpY2F0ZT4gUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBzdHJpcE1hdGNoZWRD
aGFyYWN0ZXJzKFVDaGFyUHJlZGljYXRlKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVUNoYXJQcmVk
aWNhdGU+IFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gc2ltcGxpZnlNYXRjaGVkQ2hhcmFjdGVyc1Rv
U3BhY2UoVUNoYXJQcmVkaWNhdGUpOwogCi0gICAgLy8gVGhlIGJvdHRvbSA3IGJpdHMgaG9sZCBm
bGFncywgdGhlIHRvcCAyNSBiaXRzIGhvbGQgdGhlIHJlZiBjb3VudC4KLSAgICAvLyBXaGVuIGRl
cmVmZXJlbmNpbmcgU3RyaW5nSW1wbHMgd2UgY2hlY2sgZm9yIHRoZSByZWYgY291bnQgQU5EIHRo
ZQotICAgIC8vIHN0YXRpYyBiaXQgYm90aCBiZWluZyB6ZXJvIC0gc3RhdGljIHN0cmluZ3MgYXJl
IG5ldmVyIGRlbGV0ZWQuCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfcmVmQ291bnRNYXNr
ID0gMHhGRkZGRkY4MDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19yZWZDb3VudEluY3Jl
bWVudCA9IDB4ODA7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfcmVmQ291bnRGbGFnU3Rh
dGljID0gMHg0MDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19yZWZDb3VudEZsYWdIYXNU
ZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIgPSAweDIwOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBzX3JlZkNvdW50RmxhZ0lzQXRvbWljID0gMHgxMDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgc19yZWZDb3VudEZsYWdTaG91bGRSZXBvcnRlZENvc3QgPSAweDg7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHNfcmVmQ291bnRGbGFnSXNJZGVudGlmaWVyID0gMHg0OwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBzX3JlZkNvdW50TWFza0J1ZmZlck93bmVyc2hpcCA9IDB4MzsKKyAg
ICAvLyBUaGUgYm90dG9tIGJpdCBpbiB0aGUgcmVmIGNvdW50IGluZGljYXRlcyBhIHN0YXRpYyAo
aW1tb3J0YWwpIHN0cmluZy4KKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19yZWZDb3VudEZs
YWdJc1N0YXRpY1N0cmluZyA9IDB4MTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19yZWZD
b3VudEluY3JlbWVudCA9IDB4MjsgLy8gVGhpcyBhbGxvd3MgdXMgdG8gcmVmIC8gZGVyZWYgd2l0
aG91dCBkaXN0dXJiaW5nIHRoZSBzdGF0aWMgc3RyaW5nIGZsYWcuCisKKyAgICAvLyBUaGUgYm90
dG9tIDYgYml0cyBpbiB0aGUgaGFzaCBhcmUgZmxhZ3MuCisgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHNfZmxhZ0NvdW50ID0gNjsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19mbGFnTWFz
ayA9ICgxdSA8PCBzX2ZsYWdDb3VudCkgLSAxOworICAgIENPTVBJTEVfQVNTRVJUKHNfZmxhZ0Nv
dW50ID09IFN0cmluZ0hhc2hlcjo6ZmxhZ0NvdW50LCBTdHJpbmdIYXNoZXJfcmVzZXJ2ZXNfZW5v
dWdoX2JpdHNfZm9yX1N0cmluZ0ltcGxfZmxhZ3MpOworCisgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHNfaGFzaEZsYWdIYXNUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIgPSAxdSA8PCA1OworICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX2hhc2hGbGFnSXNBdG9taWMgPSAxdSA8PCA0OworICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX2hhc2hGbGFnRGlkUmVwb3J0Q29zdCA9IDF1IDw8IDM7
CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfaGFzaEZsYWdJc0lkZW50aWZpZXIgPSAxdSA8
PCAyOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX2hhc2hNYXNrQnVmZmVyT3duZXJzaGlw
ID0gMXUgfCAoMXUgPDwgMSk7CiAKLSAgICB1bnNpZ25lZCBtX3JlZkNvdW50QW5kRmxhZ3M7Cisg
ICAgdW5zaWduZWQgbV9yZWZDb3VudDsKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKICAgICBjb25z
dCBVQ2hhciogbV9kYXRhOwogICAgIHVuaW9uIHsKQEAgLTM3Niw3ICs0MjMsNyBAQCBwcml2YXRl
OgogICAgICAgICBTdHJpbmdJbXBsKiBtX3N1YnN0cmluZ0J1ZmZlcjsKICAgICAgICAgU2hhcmVk
VUNoYXIqIG1fc2hhcmVkQnVmZmVyOwogICAgIH07Ci0gICAgbXV0YWJsZSB1bnNpZ25lZCBtX2hh
c2g7CisgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2hhc2hBbmRGbGFnczsKIH07CiAKIGJvb2wgZXF1
YWwoY29uc3QgU3RyaW5nSW1wbCosIGNvbnN0IFN0cmluZ0ltcGwqKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDk4MTkxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMjIgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVu
QGFwcGxlLmNvbT4KKworICAgICAgICBTZXBhcmF0ZWQgc3RyaW5nIGxpZmV0aW1lIGJpdHMgZnJv
bSBjaGFyYWN0ZXIgYnVmZmVyIHN0YXRlIGJpdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bToKKyAgICAgICAgKEdlbmVyYXRlSGFzaFZhbHVlKTogVXBkYXRlZCBmb3Igc3RyaW5nIGhhc2hp
bmcgY2hhbmdlcyBpbiBKYXZhU2NyaXB0Q29yZS4KKwogMjAxMS0xMC0yMSAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIENhcmV0IGlzIGRyYXduIGluIHRoZSB3cm9u
ZyBwbGFjZSBpbiBtdWx0aS1jb2x1bW4gYmxvY2tzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gOTgxNzcp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQko
d29ya2luZyBjb3B5KQpAQCAtMzAzOCw3ICszMDM4LDggQEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxl
CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJzdGF0aWMgSlNDX0NPTlNUX0hBU0hUQUJMRSBIYXNo
VGFibGUgJG5hbWUgPSB7ICRjb21wYWN0U2l6ZSwgJGNvbXBhY3RTaXplTWFzaywgJG5hbWVFbnRy
aWVzLCAwIH07XG4iKTsKIH0KIAotIyBJbnRlcm5hbCBoZWxwZXIKKyMgUGF1bCBIc2llaCdzIFN1
cGVyRmFzdEhhc2gKKyMgaHR0cDovL3d3dy5hemlsbGlvbm1vbmtleXMuY29tL3FlZC9oYXNoLmh0
bWwKIHN1YiBHZW5lcmF0ZUhhc2hWYWx1ZQogewogICAgIG15ICRvYmplY3QgPSBzaGlmdDsKQEAg
LTMwNDgsMTYgKzMwNDksMTYgQEAgc3ViIEdlbmVyYXRlSGFzaFZhbHVlCiAgICAgIyBUaGlzIGhh
c2ggaXMgZGVzaWduZWQgdG8gd29yayBvbiAxNi1iaXQgY2h1bmtzIGF0IGEgdGltZS4gQnV0IHNp
bmNlIHRoZSBub3JtYWwgY2FzZQogICAgICMgKGFib3ZlKSBpcyB0byBoYXNoIFVURi0xNiBjaGFy
YWN0ZXJzLCB3ZSBqdXN0IHRyZWF0IHRoZSA4LWJpdCBjaGFycyBhcyBpZiB0aGV5CiAgICAgIyB3
ZXJlIDE2LWJpdCBjaHVua3MsIHdoaWNoIHNob3VsZCBnaXZlIG1hdGNoaW5nIHJlc3VsdHMKLQor
ICAgIAogICAgIG15ICRFWFAyXzMyID0gNDI5NDk2NzI5NjsKLQorICAgIAogICAgIG15ICRoYXNo
ID0gMHg5ZTM3NzliOTsKICAgICBteSAkbCAgICA9IHNjYWxhciBAY2hhcnM7ICNJIHdpc2ggdGhp
cyB3YXMgaW4gUnVieSAtLS0gTWFrcwogICAgIG15ICRyZW0gID0gJGwgJiAxOwogICAgICRsID0g
JGwgPj4gMTsKLQorICAgIAogICAgIG15ICRzID0gMDsKLQorICAgIAogICAgICMgTWFpbiBsb29w
CiAgICAgZm9yICg7ICRsID4gMDsgJGwtLSkgewogICAgICAgICAkaGFzaCAgICs9IG9yZCgkY2hh
cnNbJHNdKTsKQEAgLTMwNjcsMTQgKzMwNjgsMTQgQEAgc3ViIEdlbmVyYXRlSGFzaFZhbHVlCiAg
ICAgICAgICRoYXNoICs9ICRoYXNoID4+IDExOwogICAgICAgICAkaGFzaCAlPSAkRVhQMl8zMjsK
ICAgICB9Ci0KKyAgICAKICAgICAjIEhhbmRsZSBlbmQgY2FzZQogICAgIGlmICgkcmVtICE9IDAp
IHsKICAgICAgICAgJGhhc2ggKz0gb3JkKCRjaGFyc1skc10pOwogICAgICAgICAkaGFzaCBePSAo
bGVmdFNoaWZ0KCRoYXNoLCAxMSklICRFWFAyXzMyKTsKICAgICAgICAgJGhhc2ggKz0gJGhhc2gg
Pj4gMTc7CiAgICAgfQotCisgICAgCiAgICAgIyBGb3JjZSAiYXZhbGFuY2hpbmciIG9mIGZpbmFs
IDEyNyBiaXRzCiAgICAgJGhhc2ggXj0gbGVmdFNoaWZ0KCRoYXNoLCAzKTsKICAgICAkaGFzaCAr
PSAoJGhhc2ggPj4gNSk7CkBAIC0zMDgzLDEyICszMDg0LDE2IEBAIHN1YiBHZW5lcmF0ZUhhc2hW
YWx1ZQogICAgICRoYXNoICs9ICgkaGFzaCA+PiAxNSk7CiAgICAgJGhhc2ggPSAkaGFzaCUgJEVY
UDJfMzI7CiAgICAgJGhhc2ggXj0gKGxlZnRTaGlmdCgkaGFzaCwgMTApJSAkRVhQMl8zMik7Ci0K
LSAgICAjIHRoaXMgYXZvaWRzIGV2ZXIgcmV0dXJuaW5nIGEgaGFzaCBjb2RlIG9mIDAsIHNpbmNl
IHRoYXQgaXMgdXNlZCB0bwotICAgICMgc2lnbmFsICJoYXNoIG5vdCBjb21wdXRlZCB5ZXQiLCB1
c2luZyBhIHZhbHVlIHRoYXQgaXMgbGlrZWx5IHRvIGJlCi0gICAgIyBlZmZlY3RpdmVseSB0aGUg
c2FtZSBhcyAwIHdoZW4gdGhlIGxvdyBiaXRzIGFyZSBtYXNrZWQKLSAgICAkaGFzaCA9IDB4ODAw
MDAwMDAgaWYgKCRoYXNoID09IDApOwotCisgICAgCisgICAgIyBTYXZlIDYgYml0cyBmb3IgU3Ry
aW5nSW1wbCB0byB1c2UgYXMgZmxhZ3MuCisgICAgJGhhc2ggPSAoJGhhc2ggPj4gNik7CisgICAg
CisgICAgIyBUaGlzIGF2b2lkcyBldmVyIHJldHVybmluZyBhIGhhc2ggY29kZSBvZiAwLCBzaW5j
ZSB0aGF0IGlzIHVzZWQgdG8KKyAgICAjIHNpZ25hbCAiaGFzaCBub3QgY29tcHV0ZWQgeWV0Ii4g
U2V0dGluZyB0aGUgaGlnaCBiaXQgbWFpbnRhaW5zCisgICAgIyByZWFzb25hYmxlIGZpZGVsaXR5
IHRvIGEgaGFzaCBjb2RlIG9mIDAgYmVjYXVzZSBpdCBpcyBsaWtlbHkgdG8geWllbGQKKyAgICAj
IGV4YWN0bHkgMCB3aGVuIGhhc2ggbG9va3VwIG1hc2tzIG91dCB0aGUgaGlnaCBiaXRzLgorICAg
ICRoYXNoID0gKDB4ODAwMDAwMDAgPj4gNikgaWYgKCRoYXNoID09IDApOworICAgIAogICAgIHJl
dHVybiAkaGFzaDsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gOTgxOTMpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNyBAQAorMjAxMS0xMC0yMSAg
R2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIFNlcGFyYXRlZCBz
dHJpbmcgbGlmZXRpbWUgYml0cyBmcm9tIGNoYXJhY3RlciBidWZmZXIgc3RhdGUgYml0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoZXNl
IHRlc3RzIGRlcGVuZGVkIG9uIG5vbi1kZXRlcm1pbmlzdGljIGVmZmVjdHMgb2YgaGFzaCBvcmRl
ciwgc28gSQorICAgICAgICBoYWQgdG8gdXBkYXRlIHRoZW06CisKKyAgICAgICAgKiBmYXN0L2Rv
bS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZm9yIHNsaWdo
dGx5CisgICAgICAgIGRpZmZlcmVudCBvcmRlciBvZiBkaXNjb3ZlcmluZyBwcm9wZXJ0aWVzLgor
CisgICAgICAgICogZmFzdC9qcy9kZWxldGUtc3ludGF4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9kZWxldGUtc3ludGF4LmpzOiBVcGRhdGVkIG5vdCB0byBk
ZXBlbmQgb24gaXRlcmF0aW9uCisgICAgICAgIG9yZGVyLCBzaW5jZSB0aGF0J3Mgbm90IHdoYXQg
dGhpcyB0ZXN0IGlzIGFib3V0LgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanM6IFVwZGF0ZWQgbm90IHRvIGRlcGVuZCBvbgorICAgICAgICBnbG9iYWwg
ZnVuY3Rpb24gaXRlcmF0aW9uIG9yZGVyLiBUaGlzIHRlc3Qgc2V0dXAgaXMgcHJldHR5IHNwYWdo
ZXR0aS4KKyAgICAgICAgSSB0aGluayBJIGF2b2lkZWQgbWFraW5nIGl0IGV2ZW4gbW9yZSBzcGFn
aGV0dGkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3RvcmFnZS1wYW5lbC1kb20tc3RvcmFnZS1l
eHBlY3RlZC50eHQ6IFVwZGF0ZWQgZm9yIGNoYW5nZWQKKyAgICAgICAgaXRlcmF0aW9uIG9yZGVy
LgorCiAyMDExLTEwLTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgREZHIGlubGluaW5nIHNvbWV0aW1lcyBmYWlscyB0byByZXNldCBjb25zdGFudCByZWZlcmVu
Y2VzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBl
LWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5ODE3NykKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMTY4LDI2ICsxNjgsMjYgQEAgUEFTUyBNZWRpYUxpc3RDb25zdHJ1Y3RvciBm
cm9tIGlubmVyLmRvYwogUEFTUyBNZWRpYUxpc3RQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVu
dC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuc3R5bGVTaGVldHMuMC5tZWRpYS5fX3By
b3RvX18KIFBBU1MgTWVtb3J5SW5mbyBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3Jt
LjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5jb25zb2xlLm1lbW9yeQogUEFTUyBNZW1vcnlJ
bmZvUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5vd25lckRv
Y3VtZW50LmRlZmF1bHRWaWV3LmNvbnNvbGUubWVtb3J5Ll9fcHJvdG9fXwotUEFTUyBNaW1lVHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZh
dWx0Vmlldy5jbGllbnRJbmZvcm1hdGlvbi5taW1lVHlwZXMuMAotUEFTUyBNaW1lVHlwZUFycmF5
IGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1
bHRWaWV3LmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcwotUEFTUyBNaW1lVHlwZUFycmF5Q29u
c3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1l
bnQuZGVmYXVsdFZpZXcuY2xpZW50SW5mb3JtYXRpb24ubWltZVR5cGVzLmNvbnN0cnVjdG9yCi1Q
QVNTIE1pbWVUeXBlQXJyYXlQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0
Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuY2xpZW50SW5mb3JtYXRpb24ubWltZVR5
cGVzLl9fcHJvdG9fXwotUEFTUyBNaW1lVHlwZUNvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1l
bnQuZm9ybXMudGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmNsaWVudEluZm9y
bWF0aW9uLm1pbWVUeXBlcy4wLmNvbnN0cnVjdG9yCi1QQVNTIE1pbWVUeXBlUHJvdG90eXBlIGZy
b20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRW
aWV3LmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy4wLl9fcHJvdG9fXworUEFTUyBNaW1lVHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZh
dWx0Vmlldy5uYXZpZ2F0b3IubWltZVR5cGVzLjAKK1BBU1MgTWltZVR5cGVBcnJheSBmcm9tIGlu
bmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5u
YXZpZ2F0b3IubWltZVR5cGVzCitQQVNTIE1pbWVUeXBlQXJyYXlDb25zdHJ1Y3RvciBmcm9tIGlu
bmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5u
YXZpZ2F0b3IubWltZVR5cGVzLmNvbnN0cnVjdG9yCitQQVNTIE1pbWVUeXBlQXJyYXlQcm90b3R5
cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVm
YXVsdFZpZXcubmF2aWdhdG9yLm1pbWVUeXBlcy5fX3Byb3RvX18KK1BBU1MgTWltZVR5cGVDb25z
dHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVu
dC5kZWZhdWx0Vmlldy5uYXZpZ2F0b3IubWltZVR5cGVzLjAuY29uc3RydWN0b3IKK1BBU1MgTWlt
ZVR5cGVQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVy
RG9jdW1lbnQuZGVmYXVsdFZpZXcubmF2aWdhdG9yLm1pbWVUeXBlcy4wLl9fcHJvdG9fXwogUEFT
UyBOYW1lZE5vZGVNYXAgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLnBhcmVu
dE5vZGUuYXR0cmlidXRlcwotUEFTUyBOYXZpZ2F0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jt
cy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuY2xpZW50SW5mb3JtYXRpb24K
LVBBU1MgTmF2aWdhdG9yUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZv
cm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmNsaWVudEluZm9ybWF0aW9uLl9fcHJvdG9f
XworUEFTUyBOYXZpZ2F0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93
bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcubmF2aWdhdG9yCitQQVNTIE5hdmlnYXRvclByb3RvdHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZh
dWx0Vmlldy5uYXZpZ2F0b3IuX19wcm90b19fCiBQQVNTIE5vZGVMaXN0IGZyb20gaW5uZXIuZG9j
dW1lbnQuZm9ybXMudGVzdEZvcm0KIFBBU1MgTm9kZUxpc3RDb25zdHJ1Y3RvciBmcm9tIGlubmVy
LmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLmNvbnN0cnVjdG9yCiBQQVNTIE5vZGVMaXN0UHJvdG90
eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uX19wcm90b19fCi1QQVNTIE5v
ZGVQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLmF0dHJpYnV0
ZXMuMC5fX3Byb3RvX18uX19wcm90b19fCitQQVNTIE5vZGVQcm90b3R5cGUgZnJvbSBpbm5lci5k
b2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuX19wcm90b19fLl9fcHJvdG9f
Xy5fX3Byb3RvX18KIFBBU1MgT2JqZWN0IGZyb20gaW5uZXIuZG9jdW1lbnQubG9jYXRpb24uX19w
cm90b19fLl9fcHJvdG9fXwotUEFTUyBQbHVnaW4gZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50
ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuY2xpZW50SW5mb3JtYXRpb24ubWlt
ZVR5cGVzLjAuZW5hYmxlZFBsdWdpbgotUEFTUyBQbHVnaW5BcnJheSBmcm9tIGlubmVyLmRvY3Vt
ZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5jbGllbnRJbmZv
cm1hdGlvbi5wbHVnaW5zCi1QQVNTIFBsdWdpbkFycmF5Q29uc3RydWN0b3IgZnJvbSBpbm5lci5k
b2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuY2xpZW50
SW5mb3JtYXRpb24ucGx1Z2lucy5jb25zdHJ1Y3RvcgotUEFTUyBQbHVnaW5BcnJheVByb3RvdHlw
ZSBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZh
dWx0Vmlldy5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zLl9fcHJvdG9fXwotUEFTUyBQbHVnaW5D
b25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1
bWVudC5kZWZhdWx0Vmlldy5jbGllbnRJbmZvcm1hdGlvbi5wbHVnaW5zLjAuY29uc3RydWN0b3IK
LVBBU1MgUGx1Z2luUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0u
MC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmNsaWVudEluZm9ybWF0aW9uLm1pbWVUeXBlcy4w
LmVuYWJsZWRQbHVnaW4uX19wcm90b19fCitQQVNTIFBsdWdpbiBmcm9tIGlubmVyLmRvY3VtZW50
LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5uYXZpZ2F0b3IucGx1
Z2lucy41CitQQVNTIFBsdWdpbkFycmF5IGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZv
cm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3Lm5hdmlnYXRvci5wbHVnaW5zCitQQVNTIFBs
dWdpbkFycmF5Q29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4w
Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcubmF2aWdhdG9yLnBsdWdpbnMuY29uc3RydWN0b3IK
K1BBU1MgUGx1Z2luQXJyYXlQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0
Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcubmF2aWdhdG9yLnBsdWdpbnMuX19wcm90
b19fCitQQVNTIFBsdWdpbkNvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVz
dEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3Lm5hdmlnYXRvci5wbHVnaW5zLjAuY29u
c3RydWN0b3IKK1BBU1MgUGx1Z2luUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMu
dGVzdEZvcm0uMC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3Lm5hdmlnYXRvci5wbHVnaW5zLjUu
X19wcm90b19fCiBQQVNTIFJHQkNvbG9yIGZyb20gaW5uZXIuZ2V0Q29tcHV0ZWRTdHlsZShpbm5l
ci5kb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKGZpbGwpLnJnYkNvbG9yCiBQQVNT
IFJHQkNvbG9yQ29uc3RydWN0b3IgZnJvbSBpbm5lci5nZXRDb21wdXRlZFN0eWxlKGlubmVyLmRv
Y3VtZW50LmJvZHkpLmdldFByb3BlcnR5Q1NTVmFsdWUoZmlsbCkucmdiQ29sb3IuY29uc3RydWN0
b3IKIFBBU1MgUkdCQ29sb3JQcm90b3R5cGUgZnJvbSBpbm5lci5nZXRDb21wdXRlZFN0eWxlKGlu
bmVyLmRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5Q1NTVmFsdWUoZmlsbCkucmdiQ29sb3IuX19w
cm90b19fCkBAIC0yMTMsOSArMjEzLDkgQEAgUEFTUyBTdHlsZVNoZWV0UHJvdG90eXBlIGZyb20g
aW5uZXIuZG9jdQogUEFTUyBUZXh0IGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0u
MC5wYXJlbnROb2RlLmxhc3RFbGVtZW50Q2hpbGQucHJldmlvdXNFbGVtZW50U2libGluZy5maXJz
dENoaWxkCiBQQVNTIFRleHRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRl
c3RGb3JtLjAuYXR0cmlidXRlcy4wLmxhc3RDaGlsZC5jb25zdHJ1Y3RvcgogUEFTUyBUZXh0UHJv
dG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5hdHRyaWJ1dGVzLjAu
bGFzdENoaWxkLl9fcHJvdG9fXwotUEFTUyBUaW1lUmFuZ2VzIGZyb20gaW5uZXIuZG9jdW1lbnQu
Zm9ybXMudGVzdEZvcm0uMC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLnBsYXllZAotUEFTUyBUaW1l
UmFuZ2VzQ29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLnBy
ZXZpb3VzRWxlbWVudFNpYmxpbmcucGxheWVkLmNvbnN0cnVjdG9yCi1QQVNTIFRpbWVSYW5nZXNQ
cm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4wLnByZXZpb3VzRWxl
bWVudFNpYmxpbmcucGxheWVkLl9fcHJvdG9fXworUEFTUyBUaW1lUmFuZ2VzIGZyb20gaW5uZXIu
ZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLnNlZWthYmxl
CitQQVNTIFRpbWVSYW5nZXNDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRl
c3RGb3JtLjAucHJldmlvdXNFbGVtZW50U2libGluZy5zZWVrYWJsZS5jb25zdHJ1Y3RvcgorUEFT
UyBUaW1lUmFuZ2VzUHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0u
MC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLnNlZWthYmxlLl9fcHJvdG9fXwogUEFTUyBWYWxpZGl0
eVN0YXRlIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC4wLnZhbGlkaXR5CiBQ
QVNTIFZhbGlkaXR5U3RhdGVQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0
Rm9ybS4wLjAudmFsaWRpdHkuX19wcm90b19fCiBQQVNTIFdlYktpdENTU0tleWZyYW1lUnVsZSBm
cm9tIGlubmVyLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkdW1teVN0eWxlIikuc2hlZXQuY3Nz
UnVsZXMuNi4wCkBAIC0yMjUsNiArMjI1LDggQEAgUEFTUyBXZWJLaXRDU1NLZXlmcmFtZXNSdWxl
IGZyb20gaW5uZXIuZAogUEFTUyBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ29uc3RydWN0b3IgZnJv
bSBpbm5lci5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHVtbXlTdHlsZSIpLnNoZWV0LmNzc1J1
bGVzLjYuY29uc3RydWN0b3IKIFBBU1MgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZVByb3RvdHlwZSBm
cm9tIGlubmVyLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkdW1teVN0eWxlIikuc2hlZXQuY3Nz
UnVsZXMuNi5fX3Byb3RvX18KIE5ldmVyIGZvdW5kIEF1ZGlvCitOZXZlciBmb3VuZCBBdWRpb0Nv
bnRleHQKK05ldmVyIGZvdW5kIEF1ZGlvUGFubmVyTm9kZQogTmV2ZXIgZm91bmQgQmxvYgogTmV2
ZXIgZm91bmQgQ0RBVEFTZWN0aW9uCiBOZXZlciBmb3VuZCBDU1NSdWxlCkBAIC00MzgsNiArNDQw
LDcgQEAgTmV2ZXIgZm91bmQgU1ZHVmlld0VsZW1lbnQKIE5ldmVyIGZvdW5kIFNoYXJlZFdvcmtl
cgogTmV2ZXIgZm91bmQgU3R5bGVTaGVldAogTmV2ZXIgZm91bmQgVGV4dE1ldHJpY3MKK05ldmVy
IGZvdW5kIFdlYktpdENTU0ZpbHRlclZhbHVlCiBOZXZlciBmb3VuZCBXZWJLaXRDU1NNYXRyaXgK
IE5ldmVyIGZvdW5kIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlCiBOZXZlciBmb3VuZCBXZWJLaXRQ
b2ludApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9kZWxldGUtc3ludGF4LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2RlbGV0ZS1zeW50YXgtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiA5ODE3NykKKysrIExheW91dFRlc3RzL2Zhc3QvanMvZGVsZXRlLXN5
bnRheC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgUEFTUyBN
YXRoLnRhbiBpcyBudWxsCiBQQVNTIFJlZ0V4cC5wcm90b3R5cGUuY29tcGlsZSBpcyByZWdFeHBQ
cm90b3R5cGVDb21waWxlCiBQQVNTIFJlZ0V4cC5wcm90b3R5cGUuZXhlYyBpcyB1bmRlZmluZWQK
IFBBU1MgUmVnRXhwLnByb3RvdHlwZS50ZXN0IGlzIG51bGwKLVBBU1MgU3RyaW5nKE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eU5hbWVzKE9iamVjdC5wcm90b3R5cGUpKSBpcyAiY29uc3RydWN0b3IsdmFs
dWVPZixfX2xvb2t1cEdldHRlcl9fLHRvTG9jYWxlU3RyaW5nLF9fZGVmaW5lR2V0dGVyX18saGFz
T3duUHJvcGVydHkscHJvcGVydHlJc0VudW1lcmFibGUsdG9TdHJpbmcsX19sb29rdXBTZXR0ZXJf
Xyxpc1Byb3RvdHlwZU9mIgorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPYmplY3Qu
cHJvdG90eXBlKS5pbmRleE9mKCdfX2RlZmluZVNldHRlcl9fJykgaXMgLTEKIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGVsZXRlLXN5bnRheC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZWxldGUtc3ludGF4LmpzCShyZXZpc2lvbiA5
ODE3NykKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2RlbGV0ZS1zeW50YXgu
anMJKHdvcmtpbmcgY29weSkKQEAgLTcwLDcgKzcwLDcgQEAgc2hvdWxkQmUoIlJlZ0V4cC5wcm90
b3R5cGUudGVzdCIsICJudWxsIgogCiAvLyBDaGVjayB0aGF0IG9uY2UgYSBwcm9wZXJ0eSBpcyBk
ZWxldGVkIGl0cyBuYW1lIGlzIHJlbW92ZWQgZnJvbSB0aGUgcHJvcGVydHkgbmFtZSBhcnJheS4K
IGRlbGV0ZSBPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lU2V0dGVyX187Ci1zaG91bGRCZSgiU3Ry
aW5nKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE9iamVjdC5wcm90b3R5cGUpKSIsICciY29u
c3RydWN0b3IsdmFsdWVPZixfX2xvb2t1cEdldHRlcl9fLHRvTG9jYWxlU3RyaW5nLF9fZGVmaW5l
R2V0dGVyX18saGFzT3duUHJvcGVydHkscHJvcGVydHlJc0VudW1lcmFibGUsdG9TdHJpbmcsX19s
b29rdXBTZXR0ZXJfXyxpc1Byb3RvdHlwZU9mIicpOworc2hvdWxkQmUoIk9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKE9iamVjdC5wcm90b3R5cGUpLmluZGV4T2YoJ19fZGVmaW5lU2V0dGVyX18n
KSIsICItMSIpOwogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIApJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMJ
KHJldmlzaW9uIDk4MTc3KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTQzOCw5ICs0MzgsOSBAQCBmdW5jdGlv
biBydW5UZXN0KGVuYWJsZVdhdGNoRG9nV2hpbGVEZWJ1CiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICB2YXIgaW5pdGlhbGl6YXRpb25GdW5jdGlvbnMgPSBbXTsKKyAgICB2YXIgaW5pdGlhbGl6YXRp
b25GdW5jdGlvbnMgPSBbIFN0cmluZyhpbml0aWFsaXplX0luc3BlY3RvclRlc3QpIF07CiAgICAg
Zm9yICh2YXIgbmFtZSBpbiB3aW5kb3cpIHsKLSAgICAgICAgaWYgKG5hbWUuaW5kZXhPZigiaW5p
dGlhbGl6ZV8iKSA9PT0gMCAmJiB0eXBlb2Ygd2luZG93W25hbWVdID09PSAiZnVuY3Rpb24iKQor
ICAgICAgICBpZiAobmFtZS5pbmRleE9mKCJpbml0aWFsaXplXyIpID09PSAwICYmIHR5cGVvZiB3
aW5kb3dbbmFtZV0gPT09ICJmdW5jdGlvbiIgJiYgbmFtZSAhPT0gImluaXRpYWxpemVfSW5zcGVj
dG9yVGVzdCIpCiAgICAgICAgICAgICBpbml0aWFsaXphdGlvbkZ1bmN0aW9ucy5wdXNoKHdpbmRv
d1tuYW1lXS50b1N0cmluZygpKTsKICAgICB9CiAgICAgdmFyIHBhcmFtZXRlcnMgPSBbIlsiICsg
aW5pdGlhbGl6YXRpb25GdW5jdGlvbnMgKyAiXSIsIHRlc3QsIGNvbXBsZXRlVGVzdENhbGxJZF07
CkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3RvcmFnZS1wYW5lbC1kb20tc3RvcmFnZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0b3JhZ2Ut
cGFuZWwtZG9tLXN0b3JhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5ODE3NykKKysrIExheW91
dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlLXBhbmVsLWRvbS1zdG9yYWdlLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtNCw4ICs0LDggQEAgUG9wdWxhdGVkIGxvY2FsIGFuZCBzZXNzaW9u
IHN0b3JhZ2UKIERpZCBzaG93OiBMb2NhbCBzdG9yYWdlCiBEaWQgc2hvdzogU2Vzc2lvbiBzdG9y
YWdlCiBMb2NhbCBzdG9yYWdlIGNvbnRlbnQ6IAotS2V5VmFsdWVhMD12YWx1ZTAsIGE2PXZhbHVl
NiwgYTg9dmFsdWU4LCBhND12YWx1ZTQsIGEyPXZhbHVlMiwgYTE9dmFsdWUxLCByZXNvdXJjZS1o
aXN0b3J5e31hOT12YWx1ZTksIGEzPXZhbHVlMywgYTc9dmFsdWU3LCBhNT12YWx1ZTUsIAorS2V5
VmFsdWVyZXNvdXJjZS1oaXN0b3J5e31hND12YWx1ZTQsIGEwPXZhbHVlMCwgYTI9dmFsdWUyLCBh
Nz12YWx1ZTcsIGE5PXZhbHVlOSwgYTU9dmFsdWU1LCBhOD12YWx1ZTgsIGExPXZhbHVlMSwgYTM9
dmFsdWUzLCBhNj12YWx1ZTYsIAogU2Vzc2lvbiBzdG9yYWdlIGNvbnRlbnQ6IAotS2V5VmFsdWVi
NT12YWx1ZTE1LCBiND12YWx1ZTE0LCBiMz12YWx1ZTEzLCBiNj12YWx1ZTE2LCBiNz12YWx1ZTE3
LCBiMD12YWx1ZTEwLCBiOT12YWx1ZTE5LCBiOD12YWx1ZTE4LCBiMj12YWx1ZTEyLCBiMT12YWx1
ZTExLCAKK0tleVZhbHVlYjQ9dmFsdWUxNCwgYjM9dmFsdWUxMywgYjA9dmFsdWUxMCwgYjk9dmFs
dWUxOSwgYjU9dmFsdWUxNSwgYjY9dmFsdWUxNiwgYjc9dmFsdWUxNywgYjg9dmFsdWUxOCwgYjE9
dmFsdWUxMSwgYjI9dmFsdWUxMiwgCiBET05FCiAK
</data>
<flag name="review"
          id="110089"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>