<?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>45221</bug_id>
          
          <creation_ts>2010-09-03 18:20:46 -0700</creation_ts>
          <short_desc>Adding support to pass multitouch events from Android browser to webkit</short_desc>
          <delta_ts>2010-09-28 02:26:49 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Android</rep_platform>
          <op_sys>Android</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="Harry Wu">mediadependent</reporter>
          <assigned_to name="Harry Wu">mediadependent</assigned_to>
          <cc>benm</cc>
    
    <cc>commit-queue</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>274317</commentid>
    <comment_count>0</comment_count>
    <who name="Harry Wu">mediadependent</who>
    <bug_when>2010-09-03 18:20:46 -0700</bug_when>
    <thetext>Now that multitouch zoom is being supported by the android browser, it would be nice to be able to access multitouch events from javascript. When multiple touch points are interacting with the display then ontouchstart, ontouchmove, and ontouchend should be fired appropriately and the &apos;touches&apos; property of the event (an array) should contain one item for each touch point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284215</commentid>
    <comment_count>1</comment_count>
      <attachid>68646</attachid>
    <who name="Harry Wu">mediadependent</who>
    <bug_when>2010-09-23 22:09:58 -0700</bug_when>
    <thetext>Created attachment 68646
The patch for supporting multi-touch in Android</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284217</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-23 22:12:57 -0700</bug_when>
    <thetext>Attachment 68646 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/ChangeLog:5:  Line contains tab character.  [whitespace/tab] [5]
WebCore/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [5]
WebCore/ChangeLog:8:  Line contains tab character.  [whitespace/tab] [5]
WebCore/ChangeLog:9:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:7:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:8:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:9:  Line contains tab character.  [whitespace/tab] [5]
LayoutTests/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 9 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>284252</commentid>
    <comment_count>3</comment_count>
      <attachid>68654</attachid>
    <who name="Harry Wu">mediadependent</who>
    <bug_when>2010-09-23 23:29:12 -0700</bug_when>
    <thetext>Created attachment 68654
Almost same patch but removed the style errors in Changlogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284312</commentid>
    <comment_count>4</comment_count>
      <attachid>68654</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-24 03:57:13 -0700</bug_when>
    <thetext>Comment on attachment 68654
Almost same patch but removed the style errors in Changlogs

View in context: https://bugs.webkit.org/attachment.cgi?id=68654&amp;action=review

&gt; LayoutTests/ChangeLog:6
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=45221

Blank line after bug URL

&gt; LayoutTests/ChangeLog:9
&gt; +        Current Android system can provide this to browser, hence these tests are

&apos;can not provide&apos;

&gt; LayoutTests/ChangeLog:13
&gt; +        * fast/events/touch/script-tests/basic-multi-touch-events-android.js: Added.

It seems like these tests aren&apos;t specific to Android - they just avoid the situation where one touch point is released while another is maintained. If you expect them to pass on all platform, you should probably rename them to remove &apos;Android&apos; and make clear the difference from the existing tests. If not, you should add them to the Skipped lists for all other platforms that enable touch events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284747</commentid>
    <comment_count>5</comment_count>
      <attachid>68764</attachid>
    <who name="Harry Wu">mediadependent</who>
    <bug_when>2010-09-24 15:07:22 -0700</bug_when>
    <thetext>Created attachment 68764
Updated patch per Steve&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285406</commentid>
    <comment_count>6</comment_count>
      <attachid>68764</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-27 05:03:12 -0700</bug_when>
    <thetext>Comment on attachment 68764
Updated patch per Steve&apos;s comments

View in context: https://bugs.webkit.org/attachment.cgi?id=68764&amp;action=review

Are you a committer? If not, and you&apos;d like a patch to be committed on your behalf, be sure to set the cq? flag.

&gt; LayoutTests/fast/events/touch/basic-multi-touch-events-limited.html:9
&gt; +  where one touch point is released while another is maintained.

It looks like you&apos;ve edited this from the output of WebKitTools/Scripts/make-script-test-wrappers? You shouldn&apos;t do this. Tests that use the &apos;script-tests + TEMPLATE.html&apos; approach should be written entirely in the JS file. This sentence could be part of the description() text.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285557</commentid>
    <comment_count>7</comment_count>
      <attachid>68931</attachid>
    <who name="Harry Wu">mediadependent</who>
    <bug_when>2010-09-27 10:45:24 -0700</bug_when>
    <thetext>Created attachment 68931
Updated the tests&apos; JS description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285562</commentid>
    <comment_count>8</comment_count>
      <attachid>68931</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-27 10:47:00 -0700</bug_when>
    <thetext>Comment on attachment 68931
Updated the tests&apos; JS description.

View in context: https://bugs.webkit.org/attachment.cgi?id=68931&amp;action=review

&gt; LayoutTests/fast/events/touch/basic-multi-touch-events-limited-expected.txt:1
&gt; +This tests basic multi touch event support.

Looks like you need to update the expected results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285798</commentid>
    <comment_count>9</comment_count>
      <attachid>68972</attachid>
    <who name="Harry Wu">mediadependent</who>
    <bug_when>2010-09-27 15:24:56 -0700</bug_when>
    <thetext>Created attachment 68972
Updated the expected result files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286128</commentid>
    <comment_count>10</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-28 02:08:12 -0700</bug_when>
    <thetext>r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286132</commentid>
    <comment_count>11</comment_count>
      <attachid>68972</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-28 02:26:44 -0700</bug_when>
    <thetext>Comment on attachment 68972
Updated the expected result files.

Clearing flags on attachment: 68972

Committed r68499: &lt;http://trac.webkit.org/changeset/68499&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286133</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-28 02:26:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68646</attachid>
            <date>2010-09-23 22:09:58 -0700</date>
            <delta_ts>2010-09-23 23:29:12 -0700</delta_ts>
            <desc>The patch for supporting multi-touch in Android</desc>
            <filename>android-multi-touch.patch</filename>
            <type>text/plain</type>
            <size>21074</size>
            <attacher name="Harry Wu">mediadependent</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODIyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDktMjMgIEh1YWh1aSBXdSAgPG1lZGlhZGVwZW5kZW50QGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworCUFkZCBt
dWx0aS10b3VjaCBmb3IgQW5kcm9pZC4KKwlodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDUyMjEKKworCVRoZSBBbmRyb2lkIHRvdWNoIGV2ZW50IHVzZWQgdG8gdGFrZSBv
bmUgcG9pbnQgYXMgdGhlIHRvdWNoIHBvaW50LAorCWl0J3Mgbm93IGNoYW5nZWQgdG8gYSB2ZWN0
b3Igb2YgcG9pbnRzIHRvIHN1cHBvcnQgbXVsdGktdG91Y2guCisKKyAgICAgICAgVGVzdHM6IGZh
c3QvZXZlbnRzL3RvdWNoL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1hbmRyb2lkLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLXRhcmdldC1hbmRyb2lkLmh0bWwK
KworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oOgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtVG91Y2hQb2ludC5oOgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQv
UGxhdGZvcm1Ub3VjaEV2ZW50QW5kcm9pZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bVRvdWNoRXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vYW5k
cm9pZC9QbGF0Zm9ybVRvdWNoUG9pbnRBbmRyb2lkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtVG91Y2hQb2ludDo6UGxhdGZvcm1Ub3VjaFBvaW50KToKKwogMjAxMC0wOS0yMyAgS2lu
dWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGF2aWQgTGV2aW4uCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmgJKHJl
dmlzaW9uIDY4MjA5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoRXZlbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oUVQp
CiAgICAgUGxhdGZvcm1Ub3VjaEV2ZW50KFFUb3VjaEV2ZW50Kik7CiAjZWxpZiBQTEFURk9STShB
TkRST0lEKQotICAgIFBsYXRmb3JtVG91Y2hFdmVudChjb25zdCBJbnRQb2ludCYgd2luZG93UG9z
LCBUb3VjaEV2ZW50VHlwZSwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0ZSwgaW50IG1ldGFTdGF0
ZSk7CisgICAgUGxhdGZvcm1Ub3VjaEV2ZW50KGNvbnN0IFZlY3RvcjxJbnRQb2ludD4mLCBUb3Vj
aEV2ZW50VHlwZSwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0ZSwgaW50IG1ldGFTdGF0ZSk7CiAj
ZWxpZiBQTEFURk9STShCUkVXTVApCiAgICAgUGxhdGZvcm1Ub3VjaEV2ZW50KEFFRUV2ZW50LCB1
aW50MTYgd1BhcmFtLCB1aW50MzIgZHdQYXJhbSk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVRvdWNoUG9pbnQuaAkocmV2aXNpb24gNjgyMDkpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtVG91Y2hQb2ludC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBA
IHB1YmxpYzoKICAgICBQbGF0Zm9ybVRvdWNoUG9pbnQoY29uc3QgUVRvdWNoRXZlbnQ6OlRvdWNo
UG9pbnQmKTsKICAgICBQbGF0Zm9ybVRvdWNoUG9pbnQoKSB7fTsKICNlbGlmIFBMQVRGT1JNKEFO
RFJPSUQpCi0gICAgUGxhdGZvcm1Ub3VjaFBvaW50KGNvbnN0IEludFBvaW50JiB3aW5kb3dQb3Ms
IFN0YXRlKTsKKyAgICBQbGF0Zm9ybVRvdWNoUG9pbnQodW5zaWduZWQgaWQsIGNvbnN0IEludFBv
aW50JiB3aW5kb3dQb3MsIFN0YXRlKTsKICNlbGlmIFBMQVRGT1JNKEJSRVdNUCkKICAgICBQbGF0
Zm9ybVRvdWNoUG9pbnQoaW50IGlkLCBjb25zdCBJbnRQb2ludCYgd2luZG93UG9zLCBTdGF0ZSk7
CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9QbGF0Zm9ybVRvdWNoRXZl
bnRBbmRyb2lkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvUGxh
dGZvcm1Ub3VjaEV2ZW50QW5kcm9pZC5jcHAJKHJldmlzaW9uIDY4MjA5KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hFdmVudEFuZHJvaWQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNywxMSArMzcsMTMgQEAgZW51bSBBbmRyb2lkTWV0YUtleVN0YXRlIHsKICAgICBN
RVRBX1NZTV9PTiA9IDB4MDQKIH07CiAKLVBsYXRmb3JtVG91Y2hFdmVudDo6UGxhdGZvcm1Ub3Vj
aEV2ZW50KGNvbnN0IEludFBvaW50JiB3aW5kb3dQb3MsIFRvdWNoRXZlbnRUeXBlIHR5cGUsIFBs
YXRmb3JtVG91Y2hQb2ludDo6U3RhdGUgc3RhdGUsIGludCBtZXRhU3RhdGUpCitQbGF0Zm9ybVRv
dWNoRXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVudChjb25zdCBWZWN0b3I8SW50UG9pbnQ+JiB3aW5k
b3dQb2ludHMsIFRvdWNoRXZlbnRUeXBlIHR5cGUsIFBsYXRmb3JtVG91Y2hQb2ludDo6U3RhdGUg
c3RhdGUsIGludCBtZXRhU3RhdGUpCiAgICAgOiBtX3R5cGUodHlwZSkKICAgICAsIG1fbWV0YUtl
eShmYWxzZSkKIHsKLSAgICBtX3RvdWNoUG9pbnRzLmFwcGVuZChQbGF0Zm9ybVRvdWNoUG9pbnQo
d2luZG93UG9zLCBzdGF0ZSkpOworICAgIG1fdG91Y2hQb2ludHMucmVzZXJ2ZUNhcGFjaXR5KHdp
bmRvd1BvaW50cy5zaXplKCkpOworICAgIGZvciAodW5zaWduZWQgYyA9IDA7IGMgPCB3aW5kb3dQ
b2ludHMuc2l6ZSgpOyBjKyspCisgICAgICAgIG1fdG91Y2hQb2ludHMuYXBwZW5kKFBsYXRmb3Jt
VG91Y2hQb2ludCh3aW5kb3dQb3MsIHN0YXRlKSk7CiAKICAgICBtX2FsdEtleSA9IG1ldGFTdGF0
ZSAmIE1FVEFfQUxUX09OOwogICAgIG1fc2hpZnRLZXkgPSBtZXRhU3RhdGUgJiBNRVRBX1NISUZU
X09OOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hQb2ludEFu
ZHJvaWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9QbGF0Zm9y
bVRvdWNoUG9pbnRBbmRyb2lkLmNwcAkocmV2aXNpb24gNjgyMDkpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaFBvaW50QW5kcm9pZC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDggKzMwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QbGF0Zm9ybVRvdWNo
UG9pbnQ6OlBsYXRmb3JtVG91Y2hQb2ludChjb25zdCBJbnRQb2ludCYgd2luZG93UG9zLCBTdGF0
ZSBzdGF0ZSkKLSAgICA6IG1faWQoMCkKK1BsYXRmb3JtVG91Y2hQb2ludDo6UGxhdGZvcm1Ub3Vj
aFBvaW50KHVuc2lnbmVkIGlkLCBjb25zdCBJbnRQb2ludCYgd2luZG93UG9zLCBTdGF0ZSBzdGF0
ZSkKKyAgICA6IG1faWQoaWQpCiAgICAgLCBtX3N0YXRlKHN0YXRlKQogICAgICwgbV9zY3JlZW5Q
b3Mod2luZG93UG9zKQogICAgICwgbV9wb3Mod2luZG93UG9zKSB7IH0KSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDY4MjI0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjcgQEAKKzIwMTAtMDktMjMgIEh1YWh1aSBXdSAgPG1lZGlhZGVwZW5kZW50QGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgbXVsdGktdG91Y2ggZm9yIEFuZHJvaWQuCisJaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ1MjIxCisJVGhlIG9yaWdpbmFsIHRlc3RzICh0b3VjaC10YXJnZXQuaHRt
bCBhbmQgYmFzaWMtbXVsdGktdG91Y2gtZXZlbnRzLmh0bWwpCisJcmVxdWlyZXMgdGhlIHN5c3Rl
bSBiZWluZyBhYmxlIHRvIHJlbGVhc2Ugb25lIHBvaW50IHdoaWxlIHN1c3RhaW4gYW5vdGhlciBw
b2ludC4KKwlDdXJyZW50IEFuZHJvaWQgc3lzdGVtIGNhbiBwcm92aWRlIHRoaXMgdG8gYnJvd3Nl
ciwgaGVuY2UgdGhlc2UgdGVzdHMgYXJlCisJc2xpZ2h0bHkgbW9kaWZpZWQgZm9yIEFuZHJvaWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvYmFzaWMtbXVsdGktdG91Y2gtZXZlbnRzLWFu
ZHJvaWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9i
YXNpYy1tdWx0aS10b3VjaC1ldmVudHMtYW5kcm9pZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvYmFzaWMtbXVsdGktdG91Y2gtZXZlbnRzLWFu
ZHJvaWQuanM6IEFkZGVkLgorICAgICAgICAodG91Y2hFdmVudENhbGxiYWNrKToKKyAgICAgICAg
KHZlcmlmeVRvdWNoRXZlbnQpOgorICAgICAgICAodmVyaWZ5VG91Y2hQb2ludCk6CisgICAgICAg
ICh2ZXJpZnlUb3VjaCk6CisgICAgICAgIChtdWx0aVRvdWNoU2VxdWVuY2UpOgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy90b3VjaC10YXJnZXQtYW5kcm9pZC5qczog
QWRkZWQuCisgICAgICAgICh0b3VjaFN0YXJ0SGFuZGxlcik6CisgICAgICAgICh0b3VjaE1vdmVI
YW5kbGVyKToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQtYW5kcm9p
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL3RvdWNo
LXRhcmdldC1hbmRyb2lkLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA5LTIzICBUb255IENoYW5nICA8
dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gIEZpeCBhIHRlc3QgZXhw
ZWNhdGF0aW9uIGZvciBuby1jYXJldC1yZXBhaW50LWluLW5vbi1jb250ZW50LWVkaXRhYmxlLWVs
ZW1lbnQuaHRtbCAoc2hvdWxkIGJlIFRFWFQgbm90IFRFWFQrSU1BR0UpLgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvYmFzaWMtbXVsdGktdG91Y2gtZXZlbnRzLWFuZHJvaWQt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1hbmRyb2lkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2Jhc2ljLW11bHRpLXRvdWNoLWV2
ZW50cy1hbmRyb2lkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5NyBAQAor
VGhpcyB0ZXN0cyBiYXNpYyBtdWx0aSB0b3VjaCBldmVudCBzdXBwb3J0LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBsYXN0RXZlbnQudHlwZSBpcyAidG91Y2hzdGFydCIK
K1BBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDIKK1BBU1MgbGFzdEV2ZW50LmNoYW5n
ZWRUb3VjaGVzLmxlbmd0aCBpcyAyCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzLmxlbmd0
aCBpcyAyCitQQVNTIGxhc3RFdmVudC5wYWdlWCBpcyAwCitQQVNTIGxhc3RFdmVudC5wYWdlWSBp
cyAwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLnBhZ2VYIGlzIDEwCitQQVNTIGxhc3RFdmVu
dC50b3VjaGVzWzBdLnBhZ2VZIGlzIDEwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLmNsaWVu
dFggaXMgMTAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WSBpcyAxMAorUEFTUyBs
YXN0RXZlbnQudG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50LnRvdWNo
ZXNbMV0ucGFnZVggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0ucGFnZVkgaXMgMzAK
K1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0uY2xpZW50WCBpcyAyMAorUEFTUyBsYXN0RXZlbnQu
dG91Y2hlc1sxXS5jbGllbnRZIGlzIDMwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLmlkZW50
aWZpZXIgaXMgMQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVggaXMgMTAK
K1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZIGlzIDEwCitQQVNTIGxhc3RF
dmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYIGlzIDEwCitQQVNTIGxhc3RFdmVudC5jaGFu
Z2VkVG91Y2hlc1swXS5jbGllbnRZIGlzIDEwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hl
c1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzFdLnBh
Z2VYIGlzIDIwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5wYWdlWSBpcyAzMAor
UEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50WCBpcyAyMAorUEFTUyBsYXN0
RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50WSBpcyAzMAorUEFTUyBsYXN0RXZlbnQuY2hh
bmdlZFRvdWNoZXNbMV0uaWRlbnRpZmllciBpcyAxCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3Vj
aGVzWzBdLnBhZ2VYIGlzIDEwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLnBhZ2VZ
IGlzIDEwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFggaXMgMTAKK1BB
U1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WSBpcyAxMAorUEFTUyBsYXN0RXZl
bnQudGFyZ2V0VG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50LnRhcmdl
dFRvdWNoZXNbMV0ucGFnZVggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMV0u
cGFnZVkgaXMgMzAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMV0uY2xpZW50WCBpcyAy
MAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1sxXS5jbGllbnRZIGlzIDMwCitQQVNTIGxh
c3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLmlkZW50aWZpZXIgaXMgMQorUEFTUyBsYXN0RXZlbnQu
dHlwZSBpcyAidG91Y2htb3ZlIgorUEFTUyBsYXN0RXZlbnQudG91Y2hlcy5sZW5ndGggaXMgMgor
UEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXMubGVuZ3RoIGlzIDIKK1BBU1MgbGFzdEV2ZW50
LnRhcmdldFRvdWNoZXMubGVuZ3RoIGlzIDIKK1BBU1MgbGFzdEV2ZW50LnBhZ2VYIGlzIDAKK1BB
U1MgbGFzdEV2ZW50LnBhZ2VZIGlzIDAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0ucGFnZVgg
aXMgMTUKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0ucGFnZVkgaXMgMTUKK1BBU1MgbGFzdEV2
ZW50LnRvdWNoZXNbMF0uY2xpZW50WCBpcyAxNQorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5j
bGllbnRZIGlzIDE1CitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLmlkZW50aWZpZXIgaXMgMAor
UEFTUyBsYXN0RXZlbnQudG91Y2hlc1sxXS5wYWdlWCBpcyAyNQorUEFTUyBsYXN0RXZlbnQudG91
Y2hlc1sxXS5wYWdlWSBpcyAzNQorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1sxXS5jbGllbnRYIGlz
IDI1CitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLmNsaWVudFkgaXMgMzUKK1BBU1MgbGFzdEV2
ZW50LnRvdWNoZXNbMV0uaWRlbnRpZmllciBpcyAxCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91
Y2hlc1swXS5wYWdlWCBpcyAxNQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFn
ZVkgaXMgMTUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFggaXMgMTUK
K1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFkgaXMgMTUKK1BBU1MgbGFz
dEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXIgaXMgMAorUEFTUyBsYXN0RXZlbnQu
Y2hhbmdlZFRvdWNoZXNbMV0ucGFnZVggaXMgMjUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3Vj
aGVzWzFdLnBhZ2VZIGlzIDM1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5jbGll
bnRYIGlzIDI1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5jbGllbnRZIGlzIDM1
CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5pZGVudGlmaWVyIGlzIDEKK1BBU1Mg
bGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0ucGFnZVggaXMgMTUKK1BBU1MgbGFzdEV2ZW50LnRh
cmdldFRvdWNoZXNbMF0ucGFnZVkgaXMgMTUKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNb
MF0uY2xpZW50WCBpcyAxNQorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRZ
IGlzIDE1CitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLmlkZW50aWZpZXIgaXMgMAor
UEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1sxXS5wYWdlWCBpcyAyNQorUEFTUyBsYXN0RXZl
bnQudGFyZ2V0VG91Y2hlc1sxXS5wYWdlWSBpcyAzNQorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91
Y2hlc1sxXS5jbGllbnRYIGlzIDI1CitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLmNs
aWVudFkgaXMgMzUKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMV0uaWRlbnRpZmllciBp
cyAxCitQQVNTIGxhc3RFdmVudC50eXBlIGlzICJ0b3VjaGVuZCIKK1BBU1MgbGFzdEV2ZW50LnRv
dWNoZXMubGVuZ3RoIGlzIDAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBp
cyAyCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzLmxlbmd0aCBpcyAwCitQQVNTIGxhc3RF
dmVudC5wYWdlWCBpcyAwCitQQVNTIGxhc3RFdmVudC5wYWdlWSBpcyAwCitQQVNTIGxhc3RFdmVu
dC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWCBpcyAxNQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRv
dWNoZXNbMF0ucGFnZVkgaXMgMTUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNs
aWVudFggaXMgMTUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFkgaXMg
MTUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXIgaXMgMAorUEFT
UyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0ucGFnZVggaXMgMjUKK1BBU1MgbGFzdEV2ZW50
LmNoYW5nZWRUb3VjaGVzWzFdLnBhZ2VZIGlzIDM1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91
Y2hlc1sxXS5jbGllbnRYIGlzIDI1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5j
bGllbnRZIGlzIDM1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5pZGVudGlmaWVy
IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10b3VjaC1l
dmVudHMtYW5kcm9pZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1hbmRyb2lkLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10b3VjaC1ldmVu
dHMtYW5kcm9pZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1m
dW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8IS0tCisgIFRvdWNoIHRlc3RzIHRoYXQgaW52b2x2ZSB0
aGUgb250b3VjaHN0YXJ0LCBvbnRvdWNobW92ZSwgb250b3VjaGVuZCBvciBvbnRvdWNoY2FuY2Vs
IGNhbGxiYWNrcworICBzaG91bGQgYmUgd3JpdHRlbiBpbiBhbiBhc3luY2hyb25vdXMgZmFzaGlv
biBzbyB0aGV5IGNhbiBiZSBydW4gb24gbW9iaWxlIHBsYXRmb3JtcyBsaWtlIEFuZHJvaWQuCisg
IFRoaXMgdGVtcGxhdGUgd2lsbCBnZW5lcmF0ZSBhbiBhc3luY2hyb25vdXMgc3R5bGUgdGVzdCBi
eSB1c2luZyB0aGUganMtdGVzdC1wb3N0LWZ1bmN0aW9uIHNjcmlwdC4KKyAgWW91IHdpbGwgbmVl
ZCB0byBpbnZva2UgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKSBpbiB5b3VyIHRlc3Qgc2NyaXB0IHdo
ZW4gdGhlIHRlc3QgY29tcGxldGVzLgorLS0+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1hbmRyb2lkLmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3Rv
dWNoLXRhcmdldC1hbmRyb2lkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQtYW5kcm9pZC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQt
YW5kcm9pZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3Rz
IHRoYXQgdGhlIHRhcmdldCBvZiB0b3VjaGVzIG1hdGNoIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBl
dmVudCBvcmlnaW5hdGVkLCBub3Qgd2hlcmUgdGhlIHRvdWNoIGlzIGN1cnJlbnRseSBvY2N1cnJp
bmcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK1BBU1MgZXZlbnQudHlwZSBp
cyAidG91Y2hzdGFydCIKK1BBU1MgZXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQgaXMgInRhcmdl
dEEiCitQQVNTIGV2ZW50LnRvdWNoZXNbMV0udGFyZ2V0LmlkIGlzICJ0YXJnZXRCIgorUEFTUyBl
dmVudC50eXBlIGlzICJ0b3VjaG1vdmUiCitQQVNTIGV2ZW50LnRvdWNoZXNbMF0udGFyZ2V0Lmlk
IGlzICJ0YXJnZXRBIgorUEFTUyBldmVudC50b3VjaGVzWzFdLnRhcmdldC5pZCBpcyAidGFyZ2V0
QiIKK1BBU1MgZXZlbnQudHlwZSBpcyAidG91Y2htb3ZlIgorUEFTUyBldmVudC50b3VjaGVzWzBd
LnRhcmdldC5pZCBpcyAidGFyZ2V0QSIKK1BBU1MgZXZlbnQudG91Y2hlc1sxXS50YXJnZXQuaWQg
aXMgInRhcmdldEIiCitQQVNTIGV2ZW50LnR5cGUgaXMgInRvdWNoc3RhcnQiCitQQVNTIGV2ZW50
LnRvdWNoZXNbMF0udGFyZ2V0LmlkIGlzICJ0YXJnZXRCIgorUEFTUyBldmVudC50b3VjaGVzWzFd
LnRhcmdldC5pZCBpcyAidGFyZ2V0QSIKK1BBU1MgZXZlbnQudHlwZSBpcyAidG91Y2htb3ZlIgor
UEFTUyBldmVudC50b3VjaGVzWzBdLnRhcmdldC5pZCBpcyAidGFyZ2V0QiIKK1BBU1MgZXZlbnQu
dG91Y2hlc1sxXS50YXJnZXQuaWQgaXMgInRhcmdldEEiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvdG91Y2gtdGFyZ2V0LWFuZHJvaWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQtYW5kcm9pZC5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtdGFyZ2V0LWFuZHJv
aWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24u
anMiPjwvc2NyaXB0PgorPCEtLQorICBUb3VjaCB0ZXN0cyB0aGF0IGludm9sdmUgdGhlIG9udG91
Y2hzdGFydCwgb250b3VjaG1vdmUsIG9udG91Y2hlbmQgb3Igb250b3VjaGNhbmNlbCBjYWxsYmFj
a3MKKyAgc2hvdWxkIGJlIHdyaXR0ZW4gaW4gYW4gYXN5bmNocm9ub3VzIGZhc2hpb24gc28gdGhl
eSBjYW4gYmUgcnVuIG9uIG1vYmlsZSBwbGF0Zm9ybXMgbGlrZSBBbmRyb2lkLgorICBUaGlzIHRl
bXBsYXRlIHdpbGwgZ2VuZXJhdGUgYW4gYXN5bmNocm9ub3VzIHN0eWxlIHRlc3QgYnkgdXNpbmcg
dGhlIGpzLXRlc3QtcG9zdC1mdW5jdGlvbiBzY3JpcHQuCisgIFlvdSB3aWxsIG5lZWQgdG8gaW52
b2tlIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCkgaW4geW91ciB0ZXN0IHNjcmlwdCB3aGVuIHRoZSB0
ZXN0IGNvbXBsZXRlcy4KKy0tPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy90b3VjaC10YXJnZXQtYW5kcm9pZC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvYmFzaWMtbXVs
dGktdG91Y2gtZXZlbnRzLWFuZHJvaWQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3RzL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1hbmRy
b2lkLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2Ny
aXB0LXRlc3RzL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1hbmRyb2lkLmpzCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDEwOCBAQAordmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOworZGl2LmlkID0gInRvdWNodGFyZ2V0IjsKK2Rpdi5zdHlsZS53aWR0aCA9ICIxMDBweCI7
CitkaXYuc3R5bGUuaGVpZ2h0ID0gIjEwMHB4IjsKK2Rpdi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3Ig
PSAiYmx1ZSI7CisKK3ZhciBsYXN0RXZlbnQgPSBudWxsOwordmFyIHRvdWNoRXZlbnRzUmVjZWl2
ZWQgPSAwOwordmFyIEVYUEVDVEVEX1RPVUNIX0VWRU5UU19UT1RBTCA9IDM7CisKK2Z1bmN0aW9u
IHRvdWNoRXZlbnRDYWxsYmFjaygpIHsKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Cisg
ICAgICAgIGxhc3RFdmVudCA9IGV2ZW50OworICAgICAgICB2ZXJpZnlUb3VjaCh0b3VjaEV2ZW50
c1JlY2VpdmVkKyspOworICAgIH0gZWxzZSB7CisgICAgICAgIGRlYnVnKGV2ZW50LnR5cGUpOwor
ICAgIH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgdG91Y2hFdmVu
dHNSZWNlaXZlZCA9PSBFWFBFQ1RFRF9UT1VDSF9FVkVOVFNfVE9UQUwpIHsKKyAgICAgICAgLy8g
SWYgd2UndmUgZ290IGhlcmUsIHdlIGNhbiBzYWZlbHkgc2F5IHdlIHdlcmUgc3VjY2Vzc2Z1bGx5
IHBhcnNlZCA6KSBXZSBuZWVkIHRvCisgICAgICAgIC8vIGNhbGwgdGhlIGlzU3VjY2Nlc3NmdWxs
eVBhcnNlZCBmdW5jdGlvbiB0byBvdXRwdXQgdGhlIGNvcnJlY3QgVEVTVCBDT01QTEVURQorICAg
ICAgICAvLyBmb290ZXIgbWVzc2FnZS4KKyAgICAgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKKyAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KKworZGl2LmFkZEV2ZW50TGlzdGVuZXIo
InRvdWNoc3RhcnQiLCB0b3VjaEV2ZW50Q2FsbGJhY2ssIGZhbHNlKTsKK2Rpdi5hZGRFdmVudExp
c3RlbmVyKCJ0b3VjaG1vdmUiLCB0b3VjaEV2ZW50Q2FsbGJhY2ssIGZhbHNlKTsKK2Rpdi5hZGRF
dmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsIHRvdWNoRXZlbnRDYWxsYmFjaywgZmFsc2UpOworZG9j
dW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZGl2LCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpOwor
CitmdW5jdGlvbiB2ZXJpZnlUb3VjaEV2ZW50KHR5cGUsIHRvdGFsVG91Y2hDb3VudCwgY2hhbmdl
ZFRvdWNoQ291bnQsIHRhcmdldFRvdWNoQ291bnQpCit7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJsYXN0RXZlbnQudHlwZSIsIHR5cGUpOworICAgIHNob3VsZEJlKCJsYXN0RXZlbnQudG91
Y2hlcy5sZW5ndGgiLCB0b3RhbFRvdWNoQ291bnQudG9TdHJpbmcoKSk7CisgICAgc2hvdWxkQmUo
Imxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGgiLCBjaGFuZ2VkVG91Y2hDb3VudC50b1N0
cmluZygpKTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50LnRhcmdldFRvdWNoZXMubGVuZ3RoIiwg
dGFyZ2V0VG91Y2hDb3VudC50b1N0cmluZygpKTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50LnBh
Z2VYIiwgIjAiKTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50LnBhZ2VZIiwgIjAiKTsKK30KKwor
ZnVuY3Rpb24gdmVyaWZ5VG91Y2hQb2ludChsaXN0LCBwb2ludCwgeCwgeSwgaWQpCit7CisgICAg
c2hvdWxkQmUoImxhc3RFdmVudC4iICsgbGlzdCArICJbIiArIHBvaW50ICsgIl0ucGFnZVgiLCB4
LnRvU3RyaW5nKCkpOworICAgIHNob3VsZEJlKCJsYXN0RXZlbnQuIiArIGxpc3QgKyAiWyIgKyBw
b2ludCArICJdLnBhZ2VZIiwgeS50b1N0cmluZygpKTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50
LiIgKyBsaXN0ICsgIlsiICsgcG9pbnQgKyAiXS5jbGllbnRYIiwgeC50b1N0cmluZygpKTsKKyAg
ICBzaG91bGRCZSgibGFzdEV2ZW50LiIgKyBsaXN0ICsgIlsiICsgcG9pbnQgKyAiXS5jbGllbnRZ
IiwgeS50b1N0cmluZygpKTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50LiIgKyBsaXN0ICsgIlsi
ICsgcG9pbnQgKyAiXS5pZGVudGlmaWVyIiwgaWQudG9TdHJpbmcoKSk7Cit9CisKK2Z1bmN0aW9u
IHZlcmlmeVRvdWNoKHdoaWNoKSB7CisgICAgc3dpdGNoICh3aGljaCkgeworICAgICAgICBjYXNl
IDA6CisgICAgICAgICAgICB2ZXJpZnlUb3VjaEV2ZW50KCJ0b3VjaHN0YXJ0IiwgMiwgMiwgMik7
CisgICAgICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0b3VjaGVzIiwgMCwgMTAsIDEwLCAwKTsK
KyAgICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoInRvdWNoZXMiLCAxLCAyMCwgMzAsIDEpOwor
ICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMiLCAwLCAxMCwgMTAs
IDApOworICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMiLCAxLCAy
MCwgMzAsIDEpOworICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgidGFyZ2V0VG91Y2hlcyIs
IDAsIDEwLCAxMCwgMCk7CisgICAgICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0YXJnZXRUb3Vj
aGVzIiwgMSwgMjAsIDMwLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAg
ICAgICAgICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNobW92ZSIsIDIsIDIsIDIpOworICAgICAg
ICAgICAgdmVyaWZ5VG91Y2hQb2ludCgidG91Y2hlcyIsIDAsIDE1LCAxNSwgMCk7CisgICAgICAg
ICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0b3VjaGVzIiwgMSwgMjUsIDM1LCAxKTsKKyAgICAgICAg
ICAgIHZlcmlmeVRvdWNoUG9pbnQoImNoYW5nZWRUb3VjaGVzIiwgMCwgMTUsIDE1LCAwKTsKKyAg
ICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoImNoYW5nZWRUb3VjaGVzIiwgMSwgMjUsIDM1LCAx
KTsKKyAgICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoInRhcmdldFRvdWNoZXMiLCAwLCAxNSwg
MTUsIDApOworICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgidGFyZ2V0VG91Y2hlcyIsIDEs
IDI1LCAzNSwgMSk7CisgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICB2ZXJpZnlUb3VjaEV2ZW50KCJ0b3VjaGVuZCIsIDAsIDIsIDApOworICAgICAgICAgICAgdmVy
aWZ5VG91Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMiLCAwLCAxNSwgMTUsIDApOworICAgICAgICAg
ICAgdmVyaWZ5VG91Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMiLCAxLCAyNSwgMzUsIDEpOworICAg
ICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OiB0ZXN0RmFpbGVkKCJXcm9uZyBudW1iZXIg
b2YgdG91Y2ggZXZlbnRzISAoIiArIHdoaWNoICsgIikiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IG11bHRpVG91Y2hTZXF1ZW5jZSgpCit7CisgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludCgx
MCwgMTApOworICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoMjAsIDMwKTsKKyAgICBldmVu
dFNlbmRlci50b3VjaFN0YXJ0KCk7CisKKyAgICBldmVudFNlbmRlci51cGRhdGVUb3VjaFBvaW50
KDAsIDE1LCAxNSk7CisgICAgZXZlbnRTZW5kZXIudXBkYXRlVG91Y2hQb2ludCgxLCAyNSwgMzUp
OworICAgIGV2ZW50U2VuZGVyLnRvdWNoTW92ZSgpOworCisgICAgZXZlbnRTZW5kZXIucmVsZWFz
ZVRvdWNoUG9pbnQoMCk7CisgICAgZXZlbnRTZW5kZXIucmVsZWFzZVRvdWNoUG9pbnQoMSk7Cisg
ICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKK30KKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
eworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGJhc2ljIG11bHRpIHRvdWNoIGV2ZW50IHN1
cHBvcnQuIik7CisKKyAgICBsYXN0RXZlbnQgPSBudWxsOworICAgIGV2ZW50U2VuZGVyLmNsZWFy
VG91Y2hQb2ludHMoKTsKKyAgICBtdWx0aVRvdWNoU2VxdWVuY2UoKTsKK30gZWxzZSB7CisgICAg
ZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBEdW1wUmVuZGVyVHJlZS4gIFRhcCBvbiB0aGUgYmx1
ZSByZWN0IHRvIGxvZy4iKQorfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy90b3VjaC10YXJn
ZXQtYW5kcm9pZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9zY3JpcHQtdGVzdHMvdG91Y2gtdGFyZ2V0LWFuZHJvaWQuanMJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvdG91Y2gtdGFyZ2V0LWFu
ZHJvaWQuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAzIEBACit2YXIgdGFyZ2V0c0RpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwordGFyZ2V0c0Rpdi5pZCA9ICJ0YXJnZXRz
RGl2IjsKKwordmFyIGRpdjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RpdjEu
aWQgPSAidGFyZ2V0QSI7CitkaXYxLnN0eWxlLndpZHRoID0gIjEwMHB4IjsKK2RpdjEuc3R5bGUu
aGVpZ2h0ID0gIjEwMHB4IjsKK2RpdjEuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gImJsdWUiOwor
Cit2YXIgZGl2MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZGl2Mi5pZCA9ICJ0
YXJnZXRCIjsKK2RpdjIuc3R5bGUud2lkdGggPSAiMTAwcHgiOworZGl2Mi5zdHlsZS5oZWlnaHQg
PSAiMTAwcHgiOworZGl2Mi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAiZ3JlZW4iOworCit2YXIg
dG91Y2hTdGFydENvdW50ID0gMDsKK3ZhciB0b3VjaE1vdmVDb3VudCA9IDA7CisKK2RvY3VtZW50
LmJvZHkuaW5zZXJ0QmVmb3JlKHRhcmdldHNEaXYsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b25zb2xlJykpOwordGFyZ2V0c0Rpdi5hcHBlbmRDaGlsZChkaXYxKTsKK3RhcmdldHNEaXYuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnInKSk7Cit0YXJnZXRzRGl2LmFwcGVu
ZENoaWxkKGRpdjIpOworCitmdW5jdGlvbiB0b3VjaFN0YXJ0SGFuZGxlcigpCit7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC50eXBlJywgJ3RvdWNoc3RhcnQnKTsKKyAgICBzd2l0
Y2ggKHRvdWNoU3RhcnRDb3VudCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LnRvdWNoZXNbMF0udGFyZ2V0LmlkJywgZGl2MS5pZCk7
CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LnRvdWNoZXNbMV0udGFy
Z2V0LmlkJywgZGl2Mi5pZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgor
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC50b3VjaGVzWzBdLnRhcmdl
dC5pZCcsIGRpdjIuaWQpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVu
dC50b3VjaGVzWzFdLnRhcmdldC5pZCcsIGRpdjEuaWQpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgdG91Y2hTdGFydENvdW50Kys7Cit9CisKK2Z1bmN0aW9uIHRvdWNoTW92ZUhh
bmRsZXIoKQoreworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudHlwZScsICd0b3Vj
aG1vdmUnKTsKKyAgICBzd2l0Y2ggKHRvdWNoTW92ZUNvdW50KSB7CisgICAgICAgIGNhc2UgMDoK
KyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVu
dC50b3VjaGVzWzBdLnRhcmdldC5pZCcsIGRpdjEuaWQpOworICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdldmVudC50b3VjaGVzWzFdLnRhcmdldC5pZCcsIGRpdjIuaWQpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnZXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQnLCBkaXYyLmlkKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudG91Y2hlc1sxXS50YXJnZXQuaWQn
LCBkaXYxLmlkKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmICgrK3RvdWNo
TW92ZUNvdW50ID09IDMpCisgICAgeworICAgICAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlz
U3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgfQorfQorCitkaXYxLmFkZEV2ZW50TGlzdGVuZXIo
InRvdWNoc3RhcnQiLCB0b3VjaFN0YXJ0SGFuZGxlciwgZmFsc2UpOworZGl2MS5hZGRFdmVudExp
c3RlbmVyKCJ0b3VjaG1vdmUiLCB0b3VjaE1vdmVIYW5kbGVyLCBmYWxzZSk7CisKK2RpdjIuYWRk
RXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsIHRvdWNoU3RhcnRIYW5kbGVyLCBmYWxzZSk7Citk
aXYyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIHRvdWNoTW92ZUhhbmRsZXIsIGZhbHNl
KTsKKworZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhlIHRhcmdldCBvZiB0b3VjaGVzIG1hdGNo
IHRoZSBlbGVtZW50IHdoZXJlIHRoZSBldmVudCBvcmlnaW5hdGVkLCBub3Qgd2hlcmUgdGhlIHRv
dWNoIGlzIGN1cnJlbnRseSBvY2N1cnJpbmcuIik7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9
CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBldmVudFNlbmRlci5jbGVhclRvdWNo
UG9pbnRzKCk7CisgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludCg1MCwgMTUwKTsKKyAgICBl
dmVudFNlbmRlci5hZGRUb3VjaFBvaW50KDUwLCAyNTApOworICAgIGV2ZW50U2VuZGVyLnRvdWNo
U3RhcnQoKTsKKworICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMCwgNTAsIDI1MCk7
CisgICAgZXZlbnRTZW5kZXIudXBkYXRlVG91Y2hQb2ludCgxLCA1MCwgMTUwKTsKKyAgICBldmVu
dFNlbmRlci50b3VjaE1vdmUoKTsKKworICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQo
MCwgMTAwMCwgMTAwMCk7CisgICAgZXZlbnRTZW5kZXIudXBkYXRlVG91Y2hQb2ludCgxLCAxMDAw
LCAxMDAwKTsKKyAgICBldmVudFNlbmRlci50b3VjaE1vdmUoKTsKKworICAgIGV2ZW50U2VuZGVy
LnJlbGVhc2VUb3VjaFBvaW50KDApOworICAgIGV2ZW50U2VuZGVyLnJlbGVhc2VUb3VjaFBvaW50
KDEpOworICAgIGV2ZW50U2VuZGVyLnRvdWNoRW5kKCk7CisKKyAgICBldmVudFNlbmRlci5hZGRU
b3VjaFBvaW50KDUwLCAyNTApOworICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoNTAsIDE1
MCk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hTdGFydCgpOworCisgICAgZXZlbnRTZW5kZXIudXBk
YXRlVG91Y2hQb2ludCgwLCA1MDAsIDUwMCk7CisgICAgZXZlbnRTZW5kZXIudXBkYXRlVG91Y2hQ
b2ludCgxLCA1MDAsIDUwMCk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hNb3ZlKCk7Cit9IGVsc2UK
KyAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJlcXVpcmVzIERSVC4nKTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68654</attachid>
            <date>2010-09-23 23:29:12 -0700</date>
            <delta_ts>2010-09-24 15:07:22 -0700</delta_ts>
            <desc>Almost same patch but removed the style errors in Changlogs</desc>
            <filename>android-multi-touch.patch2</filename>
            <type>text/plain</type>
            <size>21137</size>
            <attacher name="Harry Wu">mediadependent</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODIyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDktMjMgIEh1YWh1aSBXdSAgPG1lZGlhZGVwZW5kZW50QGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgbXVsdGktdG91Y2ggZm9yIEFuZHJvaWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTIyMQorCisgICAgICAgIFRoZSBBbmRyb2lkIHRvdWNo
IGV2ZW50IHVzZWQgdG8gdGFrZSBvbmUgcG9pbnQgYXMgdGhlIHRvdWNoIHBvaW50LAorICAgICAg
ICBpdCdzIG5vdyBjaGFuZ2VkIHRvIGEgdmVjdG9yIG9mIHBvaW50cyB0byBzdXBwb3J0IG11bHRp
LXRvdWNoLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10
b3VjaC1ldmVudHMtYW5kcm9pZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3Vj
aC90b3VjaC10YXJnZXQtYW5kcm9pZC5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9y
bVRvdWNoRXZlbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hFdmVudEFuZHJvaWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2ZW50OjpQbGF0Zm9ybVRvdWNoRXZl
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaFBvaW50QW5kcm9p
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoUG9pbnQ6OlBsYXRmb3JtVG91
Y2hQb2ludCk6CisKIDIwMTAtMDktMjMgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybVRvdWNoRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oCShyZXZpc2lvbiA2ODIwOSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcg
QEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFFUKQogICAgIFBsYXRmb3JtVG91Y2hFdmVudChRVG91
Y2hFdmVudCopOwogI2VsaWYgUExBVEZPUk0oQU5EUk9JRCkKLSAgICBQbGF0Zm9ybVRvdWNoRXZl
bnQoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvcywgVG91Y2hFdmVudFR5cGUsIFBsYXRmb3JtVG91
Y2hQb2ludDo6U3RhdGUsIGludCBtZXRhU3RhdGUpOworICAgIFBsYXRmb3JtVG91Y2hFdmVudChj
b25zdCBWZWN0b3I8SW50UG9pbnQ+JiwgVG91Y2hFdmVudFR5cGUsIFBsYXRmb3JtVG91Y2hQb2lu
dDo6U3RhdGUsIGludCBtZXRhU3RhdGUpOwogI2VsaWYgUExBVEZPUk0oQlJFV01QKQogICAgIFBs
YXRmb3JtVG91Y2hFdmVudChBRUVFdmVudCwgdWludDE2IHdQYXJhbSwgdWludDMyIGR3UGFyYW0p
OwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2ludC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50LmgJKHJldmlz
aW9uIDY4MjA5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1Ub3VjaFBv
aW50KGNvbnN0IFFUb3VjaEV2ZW50OjpUb3VjaFBvaW50Jik7CiAgICAgUGxhdGZvcm1Ub3VjaFBv
aW50KCkge307CiAjZWxpZiBQTEFURk9STShBTkRST0lEKQotICAgIFBsYXRmb3JtVG91Y2hQb2lu
dChjb25zdCBJbnRQb2ludCYgd2luZG93UG9zLCBTdGF0ZSk7CisgICAgUGxhdGZvcm1Ub3VjaFBv
aW50KHVuc2lnbmVkIGlkLCBjb25zdCBJbnRQb2ludCYgd2luZG93UG9zLCBTdGF0ZSk7CiAjZWxp
ZiBQTEFURk9STShCUkVXTVApCiAgICAgUGxhdGZvcm1Ub3VjaFBvaW50KGludCBpZCwgY29uc3Qg
SW50UG9pbnQmIHdpbmRvd1BvcywgU3RhdGUpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaEV2ZW50QW5kcm9pZC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hFdmVudEFuZHJvaWQuY3BwCShy
ZXZpc2lvbiA2ODIwOSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9QbGF0Zm9ybVRvdWNo
RXZlbnRBbmRyb2lkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTEgKzM3LDEzIEBAIGVudW0g
QW5kcm9pZE1ldGFLZXlTdGF0ZSB7CiAgICAgTUVUQV9TWU1fT04gPSAweDA0CiB9OwogCi1QbGF0
Zm9ybVRvdWNoRXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVudChjb25zdCBJbnRQb2ludCYgd2luZG93
UG9zLCBUb3VjaEV2ZW50VHlwZSB0eXBlLCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlN0YXRlIHN0YXRl
LCBpbnQgbWV0YVN0YXRlKQorUGxhdGZvcm1Ub3VjaEV2ZW50OjpQbGF0Zm9ybVRvdWNoRXZlbnQo
Y29uc3QgVmVjdG9yPEludFBvaW50PiYgd2luZG93UG9pbnRzLCBUb3VjaEV2ZW50VHlwZSB0eXBl
LCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlN0YXRlIHN0YXRlLCBpbnQgbWV0YVN0YXRlKQogICAgIDog
bV90eXBlKHR5cGUpCiAgICAgLCBtX21ldGFLZXkoZmFsc2UpCiB7Ci0gICAgbV90b3VjaFBvaW50
cy5hcHBlbmQoUGxhdGZvcm1Ub3VjaFBvaW50KHdpbmRvd1Bvcywgc3RhdGUpKTsKKyAgICBtX3Rv
dWNoUG9pbnRzLnJlc2VydmVDYXBhY2l0eSh3aW5kb3dQb2ludHMuc2l6ZSgpKTsKKyAgICBmb3Ig
KHVuc2lnbmVkIGMgPSAwOyBjIDwgd2luZG93UG9pbnRzLnNpemUoKTsgYysrKQorICAgICAgICBt
X3RvdWNoUG9pbnRzLmFwcGVuZChQbGF0Zm9ybVRvdWNoUG9pbnQod2luZG93UG9zLCBzdGF0ZSkp
OwogCiAgICAgbV9hbHRLZXkgPSBtZXRhU3RhdGUgJiBNRVRBX0FMVF9PTjsKICAgICBtX3NoaWZ0
S2V5ID0gbWV0YVN0YXRlICYgTUVUQV9TSElGVF9PTjsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
YW5kcm9pZC9QbGF0Zm9ybVRvdWNoUG9pbnRBbmRyb2lkLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaFBvaW50QW5kcm9pZC5jcHAJKHJldmlz
aW9uIDY4MjA5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hQb2lu
dEFuZHJvaWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4ICszMCw4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUGxhdGZvcm1Ub3VjaFBvaW50OjpQbGF0Zm9ybVRvdWNoUG9pbnQoY29u
c3QgSW50UG9pbnQmIHdpbmRvd1BvcywgU3RhdGUgc3RhdGUpCi0gICAgOiBtX2lkKDApCitQbGF0
Zm9ybVRvdWNoUG9pbnQ6OlBsYXRmb3JtVG91Y2hQb2ludCh1bnNpZ25lZCBpZCwgY29uc3QgSW50
UG9pbnQmIHdpbmRvd1BvcywgU3RhdGUgc3RhdGUpCisgICAgOiBtX2lkKGlkKQogICAgICwgbV9z
dGF0ZShzdGF0ZSkKICAgICAsIG1fc2NyZWVuUG9zKHdpbmRvd1BvcykKICAgICAsIG1fcG9zKHdp
bmRvd1BvcykgeyB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2ODIyNCkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEwLTA5LTIzICBIdWFo
dWkgV3UgIDxtZWRpYWRlcGVuZGVudEBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG11bHRpLXRvdWNoIGZvciBBbmRyb2lkLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUyMjEKKyAg
ICAgICAgVGhlIG9yaWdpbmFsIHRlc3RzICh0b3VjaC10YXJnZXQuaHRtbCBhbmQgYmFzaWMtbXVs
dGktdG91Y2gtZXZlbnRzLmh0bWwpCisgICAgICAgIHJlcXVpcmVzIHRoZSBzeXN0ZW0gYmVpbmcg
YWJsZSB0byByZWxlYXNlIG9uZSBwb2ludCB3aGlsZSBzdXN0YWluIGFub3RoZXIgcG9pbnQuCisg
ICAgICAgIEN1cnJlbnQgQW5kcm9pZCBzeXN0ZW0gY2FuIHByb3ZpZGUgdGhpcyB0byBicm93c2Vy
LCBoZW5jZSB0aGVzZSB0ZXN0cyBhcmUKKyAgICAgICAgc2xpZ2h0bHkgbW9kaWZpZWQgZm9yIEFu
ZHJvaWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvYmFzaWMtbXVsdGktdG91Y2gtZXZl
bnRzLWFuZHJvaWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90
b3VjaC9iYXNpYy1tdWx0aS10b3VjaC1ldmVudHMtYW5kcm9pZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvYmFzaWMtbXVsdGktdG91Y2gtZXZl
bnRzLWFuZHJvaWQuanM6IEFkZGVkLgorICAgICAgICAodG91Y2hFdmVudENhbGxiYWNrKToKKyAg
ICAgICAgKHZlcmlmeVRvdWNoRXZlbnQpOgorICAgICAgICAodmVyaWZ5VG91Y2hQb2ludCk6Cisg
ICAgICAgICh2ZXJpZnlUb3VjaCk6CisgICAgICAgIChtdWx0aVRvdWNoU2VxdWVuY2UpOgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy90b3VjaC10YXJnZXQtYW5kcm9p
ZC5qczogQWRkZWQuCisgICAgICAgICh0b3VjaFN0YXJ0SGFuZGxlcik6CisgICAgICAgICh0b3Vj
aE1vdmVIYW5kbGVyKToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQt
YW5kcm9pZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNo
L3RvdWNoLXRhcmdldC1hbmRyb2lkLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA5LTIzICBUb255IENo
YW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gIEZpeCBhIHRl
c3QgZXhwZWNhdGF0aW9uIGZvciBuby1jYXJldC1yZXBhaW50LWluLW5vbi1jb250ZW50LWVkaXRh
YmxlLWVsZW1lbnQuaHRtbCAoc2hvdWxkIGJlIFRFWFQgbm90IFRFWFQrSU1BR0UpLgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvYmFzaWMtbXVsdGktdG91Y2gtZXZlbnRzLWFu
ZHJvaWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1hbmRyb2lkLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2Jhc2ljLW11bHRpLXRv
dWNoLWV2ZW50cy1hbmRyb2lkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5
NyBAQAorVGhpcyB0ZXN0cyBiYXNpYyBtdWx0aSB0b3VjaCBldmVudCBzdXBwb3J0LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBsYXN0RXZlbnQudHlwZSBpcyAidG91Y2hz
dGFydCIKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDIKK1BBU1MgbGFzdEV2ZW50
LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAyCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVz
Lmxlbmd0aCBpcyAyCitQQVNTIGxhc3RFdmVudC5wYWdlWCBpcyAwCitQQVNTIGxhc3RFdmVudC5w
YWdlWSBpcyAwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLnBhZ2VYIGlzIDEwCitQQVNTIGxh
c3RFdmVudC50b3VjaGVzWzBdLnBhZ2VZIGlzIDEwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBd
LmNsaWVudFggaXMgMTAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WSBpcyAxMAor
UEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50
LnRvdWNoZXNbMV0ucGFnZVggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0ucGFnZVkg
aXMgMzAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0uY2xpZW50WCBpcyAyMAorUEFTUyBsYXN0
RXZlbnQudG91Y2hlc1sxXS5jbGllbnRZIGlzIDMwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFd
LmlkZW50aWZpZXIgaXMgMQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVgg
aXMgMTAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZIGlzIDEwCitQQVNT
IGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYIGlzIDEwCitQQVNTIGxhc3RFdmVu
dC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZIGlzIDEwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2Vk
VG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVz
WzFdLnBhZ2VYIGlzIDIwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5wYWdlWSBp
cyAzMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50WCBpcyAyMAorUEFT
UyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50WSBpcyAzMAorUEFTUyBsYXN0RXZl
bnQuY2hhbmdlZFRvdWNoZXNbMV0uaWRlbnRpZmllciBpcyAxCitQQVNTIGxhc3RFdmVudC50YXJn
ZXRUb3VjaGVzWzBdLnBhZ2VYIGlzIDEwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBd
LnBhZ2VZIGlzIDEwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFggaXMg
MTAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WSBpcyAxMAorUEFTUyBs
YXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50
LnRhcmdldFRvdWNoZXNbMV0ucGFnZVggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNo
ZXNbMV0ucGFnZVkgaXMgMzAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMV0uY2xpZW50
WCBpcyAyMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1sxXS5jbGllbnRZIGlzIDMwCitQ
QVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLmlkZW50aWZpZXIgaXMgMQorUEFTUyBsYXN0
RXZlbnQudHlwZSBpcyAidG91Y2htb3ZlIgorUEFTUyBsYXN0RXZlbnQudG91Y2hlcy5sZW5ndGgg
aXMgMgorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXMubGVuZ3RoIGlzIDIKK1BBU1MgbGFz
dEV2ZW50LnRhcmdldFRvdWNoZXMubGVuZ3RoIGlzIDIKK1BBU1MgbGFzdEV2ZW50LnBhZ2VYIGlz
IDAKK1BBU1MgbGFzdEV2ZW50LnBhZ2VZIGlzIDAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0u
cGFnZVggaXMgMTUKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0ucGFnZVkgaXMgMTUKK1BBU1Mg
bGFzdEV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCBpcyAxNQorUEFTUyBsYXN0RXZlbnQudG91Y2hl
c1swXS5jbGllbnRZIGlzIDE1CitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLmlkZW50aWZpZXIg
aXMgMAorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1sxXS5wYWdlWCBpcyAyNQorUEFTUyBsYXN0RXZl
bnQudG91Y2hlc1sxXS5wYWdlWSBpcyAzNQorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1sxXS5jbGll
bnRYIGlzIDI1CitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLmNsaWVudFkgaXMgMzUKK1BBU1Mg
bGFzdEV2ZW50LnRvdWNoZXNbMV0uaWRlbnRpZmllciBpcyAxCitQQVNTIGxhc3RFdmVudC5jaGFu
Z2VkVG91Y2hlc1swXS5wYWdlWCBpcyAxNQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNb
MF0ucGFnZVkgaXMgMTUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFgg
aXMgMTUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFkgaXMgMTUKK1BB
U1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXIgaXMgMAorUEFTUyBsYXN0
RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0ucGFnZVggaXMgMjUKK1BBU1MgbGFzdEV2ZW50LmNoYW5n
ZWRUb3VjaGVzWzFdLnBhZ2VZIGlzIDM1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sx
XS5jbGllbnRYIGlzIDI1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5jbGllbnRZ
IGlzIDM1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5pZGVudGlmaWVyIGlzIDEK
K1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0ucGFnZVggaXMgMTUKK1BBU1MgbGFzdEV2
ZW50LnRhcmdldFRvdWNoZXNbMF0ucGFnZVkgaXMgMTUKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRv
dWNoZXNbMF0uY2xpZW50WCBpcyAxNQorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5j
bGllbnRZIGlzIDE1CitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLmlkZW50aWZpZXIg
aXMgMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1sxXS5wYWdlWCBpcyAyNQorUEFTUyBs
YXN0RXZlbnQudGFyZ2V0VG91Y2hlc1sxXS5wYWdlWSBpcyAzNQorUEFTUyBsYXN0RXZlbnQudGFy
Z2V0VG91Y2hlc1sxXS5jbGllbnRYIGlzIDI1CitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVz
WzFdLmNsaWVudFkgaXMgMzUKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMV0uaWRlbnRp
ZmllciBpcyAxCitQQVNTIGxhc3RFdmVudC50eXBlIGlzICJ0b3VjaGVuZCIKK1BBU1MgbGFzdEV2
ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxl
bmd0aCBpcyAyCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzLmxlbmd0aCBpcyAwCitQQVNT
IGxhc3RFdmVudC5wYWdlWCBpcyAwCitQQVNTIGxhc3RFdmVudC5wYWdlWSBpcyAwCitQQVNTIGxh
c3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWCBpcyAxNQorUEFTUyBsYXN0RXZlbnQuY2hh
bmdlZFRvdWNoZXNbMF0ucGFnZVkgaXMgMTUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVz
WzBdLmNsaWVudFggaXMgMTUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVu
dFkgaXMgMTUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXIgaXMg
MAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0ucGFnZVggaXMgMjUKK1BBU1MgbGFz
dEV2ZW50LmNoYW5nZWRUb3VjaGVzWzFdLnBhZ2VZIGlzIDM1CitQQVNTIGxhc3RFdmVudC5jaGFu
Z2VkVG91Y2hlc1sxXS5jbGllbnRYIGlzIDI1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hl
c1sxXS5jbGllbnRZIGlzIDM1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5pZGVu
dGlmaWVyIGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10
b3VjaC1ldmVudHMtYW5kcm9pZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1hbmRyb2lkLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10b3Vj
aC1ldmVudHMtYW5kcm9pZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8IS0tCisgIFRvdWNoIHRlc3RzIHRoYXQgaW52
b2x2ZSB0aGUgb250b3VjaHN0YXJ0LCBvbnRvdWNobW92ZSwgb250b3VjaGVuZCBvciBvbnRvdWNo
Y2FuY2VsIGNhbGxiYWNrcworICBzaG91bGQgYmUgd3JpdHRlbiBpbiBhbiBhc3luY2hyb25vdXMg
ZmFzaGlvbiBzbyB0aGV5IGNhbiBiZSBydW4gb24gbW9iaWxlIHBsYXRmb3JtcyBsaWtlIEFuZHJv
aWQuCisgIFRoaXMgdGVtcGxhdGUgd2lsbCBnZW5lcmF0ZSBhbiBhc3luY2hyb25vdXMgc3R5bGUg
dGVzdCBieSB1c2luZyB0aGUganMtdGVzdC1wb3N0LWZ1bmN0aW9uIHNjcmlwdC4KKyAgWW91IHdp
bGwgbmVlZCB0byBpbnZva2UgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKSBpbiB5b3VyIHRlc3Qgc2Ny
aXB0IHdoZW4gdGhlIHRlc3QgY29tcGxldGVzLgorLS0+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1hbmRyb2lkLmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL3RvdWNoLXRhcmdldC1hbmRyb2lkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQtYW5kcm9pZC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC10
YXJnZXQtYW5kcm9pZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjUgQEAK
K1Rlc3RzIHRoYXQgdGhlIHRhcmdldCBvZiB0b3VjaGVzIG1hdGNoIHRoZSBlbGVtZW50IHdoZXJl
IHRoZSBldmVudCBvcmlnaW5hdGVkLCBub3Qgd2hlcmUgdGhlIHRvdWNoIGlzIGN1cnJlbnRseSBv
Y2N1cnJpbmcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK1BBU1MgZXZlbnQu
dHlwZSBpcyAidG91Y2hzdGFydCIKK1BBU1MgZXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQgaXMg
InRhcmdldEEiCitQQVNTIGV2ZW50LnRvdWNoZXNbMV0udGFyZ2V0LmlkIGlzICJ0YXJnZXRCIgor
UEFTUyBldmVudC50eXBlIGlzICJ0b3VjaG1vdmUiCitQQVNTIGV2ZW50LnRvdWNoZXNbMF0udGFy
Z2V0LmlkIGlzICJ0YXJnZXRBIgorUEFTUyBldmVudC50b3VjaGVzWzFdLnRhcmdldC5pZCBpcyAi
dGFyZ2V0QiIKK1BBU1MgZXZlbnQudHlwZSBpcyAidG91Y2htb3ZlIgorUEFTUyBldmVudC50b3Vj
aGVzWzBdLnRhcmdldC5pZCBpcyAidGFyZ2V0QSIKK1BBU1MgZXZlbnQudG91Y2hlc1sxXS50YXJn
ZXQuaWQgaXMgInRhcmdldEIiCitQQVNTIGV2ZW50LnR5cGUgaXMgInRvdWNoc3RhcnQiCitQQVNT
IGV2ZW50LnRvdWNoZXNbMF0udGFyZ2V0LmlkIGlzICJ0YXJnZXRCIgorUEFTUyBldmVudC50b3Vj
aGVzWzFdLnRhcmdldC5pZCBpcyAidGFyZ2V0QSIKK1BBU1MgZXZlbnQudHlwZSBpcyAidG91Y2ht
b3ZlIgorUEFTUyBldmVudC50b3VjaGVzWzBdLnRhcmdldC5pZCBpcyAidGFyZ2V0QiIKK1BBU1Mg
ZXZlbnQudG91Y2hlc1sxXS50YXJnZXQuaWQgaXMgInRhcmdldEEiCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvdG91Y2gtdGFyZ2V0LWFuZHJvaWQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQtYW5kcm9pZC5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtdGFyZ2V0
LWFuZHJvaWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVu
Y3Rpb24uanMiPjwvc2NyaXB0PgorPCEtLQorICBUb3VjaCB0ZXN0cyB0aGF0IGludm9sdmUgdGhl
IG9udG91Y2hzdGFydCwgb250b3VjaG1vdmUsIG9udG91Y2hlbmQgb3Igb250b3VjaGNhbmNlbCBj
YWxsYmFja3MKKyAgc2hvdWxkIGJlIHdyaXR0ZW4gaW4gYW4gYXN5bmNocm9ub3VzIGZhc2hpb24g
c28gdGhleSBjYW4gYmUgcnVuIG9uIG1vYmlsZSBwbGF0Zm9ybXMgbGlrZSBBbmRyb2lkLgorICBU
aGlzIHRlbXBsYXRlIHdpbGwgZ2VuZXJhdGUgYW4gYXN5bmNocm9ub3VzIHN0eWxlIHRlc3QgYnkg
dXNpbmcgdGhlIGpzLXRlc3QtcG9zdC1mdW5jdGlvbiBzY3JpcHQuCisgIFlvdSB3aWxsIG5lZWQg
dG8gaW52b2tlIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCkgaW4geW91ciB0ZXN0IHNjcmlwdCB3aGVu
IHRoZSB0ZXN0IGNvbXBsZXRlcy4KKy0tPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy90b3VjaC10YXJnZXQtYW5kcm9pZC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvYmFz
aWMtbXVsdGktdG91Y2gtZXZlbnRzLWFuZHJvaWQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3RzL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50
cy1hbmRyb2lkLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvc2NyaXB0LXRlc3RzL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1hbmRyb2lkLmpzCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEwOCBAQAordmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOworZGl2LmlkID0gInRvdWNodGFyZ2V0IjsKK2Rpdi5zdHlsZS53aWR0aCA9ICIx
MDBweCI7CitkaXYuc3R5bGUuaGVpZ2h0ID0gIjEwMHB4IjsKK2Rpdi5zdHlsZS5iYWNrZ3JvdW5k
Q29sb3IgPSAiYmx1ZSI7CisKK3ZhciBsYXN0RXZlbnQgPSBudWxsOwordmFyIHRvdWNoRXZlbnRz
UmVjZWl2ZWQgPSAwOwordmFyIEVYUEVDVEVEX1RPVUNIX0VWRU5UU19UT1RBTCA9IDM7CisKK2Z1
bmN0aW9uIHRvdWNoRXZlbnRDYWxsYmFjaygpIHsKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVy
KSB7CisgICAgICAgIGxhc3RFdmVudCA9IGV2ZW50OworICAgICAgICB2ZXJpZnlUb3VjaCh0b3Vj
aEV2ZW50c1JlY2VpdmVkKyspOworICAgIH0gZWxzZSB7CisgICAgICAgIGRlYnVnKGV2ZW50LnR5
cGUpOworICAgIH0KKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgdG91
Y2hFdmVudHNSZWNlaXZlZCA9PSBFWFBFQ1RFRF9UT1VDSF9FVkVOVFNfVE9UQUwpIHsKKyAgICAg
ICAgLy8gSWYgd2UndmUgZ290IGhlcmUsIHdlIGNhbiBzYWZlbHkgc2F5IHdlIHdlcmUgc3VjY2Vz
c2Z1bGx5IHBhcnNlZCA6KSBXZSBuZWVkIHRvCisgICAgICAgIC8vIGNhbGwgdGhlIGlzU3VjY2Nl
c3NmdWxseVBhcnNlZCBmdW5jdGlvbiB0byBvdXRwdXQgdGhlIGNvcnJlY3QgVEVTVCBDT01QTEVU
RQorICAgICAgICAvLyBmb290ZXIgbWVzc2FnZS4KKyAgICAgICAgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKyAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KKworZGl2LmFkZEV2ZW50TGlz
dGVuZXIoInRvdWNoc3RhcnQiLCB0b3VjaEV2ZW50Q2FsbGJhY2ssIGZhbHNlKTsKK2Rpdi5hZGRF
dmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLCB0b3VjaEV2ZW50Q2FsbGJhY2ssIGZhbHNlKTsKK2Rp
di5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsIHRvdWNoRXZlbnRDYWxsYmFjaywgZmFsc2Up
OworZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZGl2LCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hp
bGQpOworCitmdW5jdGlvbiB2ZXJpZnlUb3VjaEV2ZW50KHR5cGUsIHRvdGFsVG91Y2hDb3VudCwg
Y2hhbmdlZFRvdWNoQ291bnQsIHRhcmdldFRvdWNoQ291bnQpCit7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJsYXN0RXZlbnQudHlwZSIsIHR5cGUpOworICAgIHNob3VsZEJlKCJsYXN0RXZl
bnQudG91Y2hlcy5sZW5ndGgiLCB0b3RhbFRvdWNoQ291bnQudG9TdHJpbmcoKSk7CisgICAgc2hv
dWxkQmUoImxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGgiLCBjaGFuZ2VkVG91Y2hDb3Vu
dC50b1N0cmluZygpKTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50LnRhcmdldFRvdWNoZXMubGVu
Z3RoIiwgdGFyZ2V0VG91Y2hDb3VudC50b1N0cmluZygpKTsKKyAgICBzaG91bGRCZSgibGFzdEV2
ZW50LnBhZ2VYIiwgIjAiKTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50LnBhZ2VZIiwgIjAiKTsK
K30KKworZnVuY3Rpb24gdmVyaWZ5VG91Y2hQb2ludChsaXN0LCBwb2ludCwgeCwgeSwgaWQpCit7
CisgICAgc2hvdWxkQmUoImxhc3RFdmVudC4iICsgbGlzdCArICJbIiArIHBvaW50ICsgIl0ucGFn
ZVgiLCB4LnRvU3RyaW5nKCkpOworICAgIHNob3VsZEJlKCJsYXN0RXZlbnQuIiArIGxpc3QgKyAi
WyIgKyBwb2ludCArICJdLnBhZ2VZIiwgeS50b1N0cmluZygpKTsKKyAgICBzaG91bGRCZSgibGFz
dEV2ZW50LiIgKyBsaXN0ICsgIlsiICsgcG9pbnQgKyAiXS5jbGllbnRYIiwgeC50b1N0cmluZygp
KTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50LiIgKyBsaXN0ICsgIlsiICsgcG9pbnQgKyAiXS5j
bGllbnRZIiwgeS50b1N0cmluZygpKTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50LiIgKyBsaXN0
ICsgIlsiICsgcG9pbnQgKyAiXS5pZGVudGlmaWVyIiwgaWQudG9TdHJpbmcoKSk7Cit9CisKK2Z1
bmN0aW9uIHZlcmlmeVRvdWNoKHdoaWNoKSB7CisgICAgc3dpdGNoICh3aGljaCkgeworICAgICAg
ICBjYXNlIDA6CisgICAgICAgICAgICB2ZXJpZnlUb3VjaEV2ZW50KCJ0b3VjaHN0YXJ0IiwgMiwg
MiwgMik7CisgICAgICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0b3VjaGVzIiwgMCwgMTAsIDEw
LCAwKTsKKyAgICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoInRvdWNoZXMiLCAxLCAyMCwgMzAs
IDEpOworICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMiLCAwLCAx
MCwgMTAsIDApOworICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMi
LCAxLCAyMCwgMzAsIDEpOworICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgidGFyZ2V0VG91
Y2hlcyIsIDAsIDEwLCAxMCwgMCk7CisgICAgICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0YXJn
ZXRUb3VjaGVzIiwgMSwgMjAsIDMwLCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MToKKyAgICAgICAgICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNobW92ZSIsIDIsIDIsIDIpOwor
ICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgidG91Y2hlcyIsIDAsIDE1LCAxNSwgMCk7Cisg
ICAgICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0b3VjaGVzIiwgMSwgMjUsIDM1LCAxKTsKKyAg
ICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoImNoYW5nZWRUb3VjaGVzIiwgMCwgMTUsIDE1LCAw
KTsKKyAgICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoImNoYW5nZWRUb3VjaGVzIiwgMSwgMjUs
IDM1LCAxKTsKKyAgICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoInRhcmdldFRvdWNoZXMiLCAw
LCAxNSwgMTUsIDApOworICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgidGFyZ2V0VG91Y2hl
cyIsIDEsIDI1LCAzNSwgMSk7CisgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAg
ICAgICAgICB2ZXJpZnlUb3VjaEV2ZW50KCJ0b3VjaGVuZCIsIDAsIDIsIDApOworICAgICAgICAg
ICAgdmVyaWZ5VG91Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMiLCAwLCAxNSwgMTUsIDApOworICAg
ICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMiLCAxLCAyNSwgMzUsIDEp
OworICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OiB0ZXN0RmFpbGVkKCJXcm9uZyBu
dW1iZXIgb2YgdG91Y2ggZXZlbnRzISAoIiArIHdoaWNoICsgIikiKTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIG11bHRpVG91Y2hTZXF1ZW5jZSgpCit7CisgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQ
b2ludCgxMCwgMTApOworICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoMjAsIDMwKTsKKyAg
ICBldmVudFNlbmRlci50b3VjaFN0YXJ0KCk7CisKKyAgICBldmVudFNlbmRlci51cGRhdGVUb3Vj
aFBvaW50KDAsIDE1LCAxNSk7CisgICAgZXZlbnRTZW5kZXIudXBkYXRlVG91Y2hQb2ludCgxLCAy
NSwgMzUpOworICAgIGV2ZW50U2VuZGVyLnRvdWNoTW92ZSgpOworCisgICAgZXZlbnRTZW5kZXIu
cmVsZWFzZVRvdWNoUG9pbnQoMCk7CisgICAgZXZlbnRTZW5kZXIucmVsZWFzZVRvdWNoUG9pbnQo
MSk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKK30KKworaWYgKHdpbmRvdy5ldmVudFNl
bmRlcikgeworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGJhc2ljIG11bHRpIHRvdWNoIGV2
ZW50IHN1cHBvcnQuIik7CisKKyAgICBsYXN0RXZlbnQgPSBudWxsOworICAgIGV2ZW50U2VuZGVy
LmNsZWFyVG91Y2hQb2ludHMoKTsKKyAgICBtdWx0aVRvdWNoU2VxdWVuY2UoKTsKK30gZWxzZSB7
CisgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBEdW1wUmVuZGVyVHJlZS4gIFRhcCBvbiB0
aGUgYmx1ZSByZWN0IHRvIGxvZy4iKQorfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy90b3Vj
aC10YXJnZXQtYW5kcm9pZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9zY3JpcHQtdGVzdHMvdG91Y2gtdGFyZ2V0LWFuZHJvaWQuanMJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvdG91Y2gtdGFy
Z2V0LWFuZHJvaWQuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAzIEBACit2YXIgdGFyZ2V0
c0RpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwordGFyZ2V0c0Rpdi5pZCA9ICJ0
YXJnZXRzRGl2IjsKKwordmFyIGRpdjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
K2RpdjEuaWQgPSAidGFyZ2V0QSI7CitkaXYxLnN0eWxlLndpZHRoID0gIjEwMHB4IjsKK2RpdjEu
c3R5bGUuaGVpZ2h0ID0gIjEwMHB4IjsKK2RpdjEuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gImJs
dWUiOworCit2YXIgZGl2MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZGl2Mi5p
ZCA9ICJ0YXJnZXRCIjsKK2RpdjIuc3R5bGUud2lkdGggPSAiMTAwcHgiOworZGl2Mi5zdHlsZS5o
ZWlnaHQgPSAiMTAwcHgiOworZGl2Mi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAiZ3JlZW4iOwor
Cit2YXIgdG91Y2hTdGFydENvdW50ID0gMDsKK3ZhciB0b3VjaE1vdmVDb3VudCA9IDA7CisKK2Rv
Y3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHRhcmdldHNEaXYsIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykpOwordGFyZ2V0c0Rpdi5hcHBlbmRDaGlsZChkaXYxKTsKK3RhcmdldHNE
aXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnInKSk7Cit0YXJnZXRzRGl2
LmFwcGVuZENoaWxkKGRpdjIpOworCitmdW5jdGlvbiB0b3VjaFN0YXJ0SGFuZGxlcigpCit7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC50eXBlJywgJ3RvdWNoc3RhcnQnKTsKKyAg
ICBzd2l0Y2ggKHRvdWNoU3RhcnRDb3VudCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LnRvdWNoZXNbMF0udGFyZ2V0LmlkJywgZGl2
MS5pZCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LnRvdWNoZXNb
MV0udGFyZ2V0LmlkJywgZGl2Mi5pZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC50b3VjaGVzWzBd
LnRhcmdldC5pZCcsIGRpdjIuaWQpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdldmVudC50b3VjaGVzWzFdLnRhcmdldC5pZCcsIGRpdjEuaWQpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgfQorCisgICAgdG91Y2hTdGFydENvdW50Kys7Cit9CisKK2Z1bmN0aW9uIHRvdWNo
TW92ZUhhbmRsZXIoKQoreworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudHlwZScs
ICd0b3VjaG1vdmUnKTsKKyAgICBzd2l0Y2ggKHRvdWNoTW92ZUNvdW50KSB7CisgICAgICAgIGNh
c2UgMDoKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdldmVudC50b3VjaGVzWzBdLnRhcmdldC5pZCcsIGRpdjEuaWQpOworICAgICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC50b3VjaGVzWzFdLnRhcmdldC5pZCcsIGRpdjIuaWQp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQnLCBkaXYyLmlkKTsK
KyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudG91Y2hlc1sxXS50YXJn
ZXQuaWQnLCBkaXYxLmlkKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmICgr
K3RvdWNoTW92ZUNvdW50ID09IDMpCisgICAgeworICAgICAgICBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgfQorfQorCitkaXYxLmFkZEV2ZW50TGlz
dGVuZXIoInRvdWNoc3RhcnQiLCB0b3VjaFN0YXJ0SGFuZGxlciwgZmFsc2UpOworZGl2MS5hZGRF
dmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLCB0b3VjaE1vdmVIYW5kbGVyLCBmYWxzZSk7CisKK2Rp
djIuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsIHRvdWNoU3RhcnRIYW5kbGVyLCBmYWxz
ZSk7CitkaXYyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIHRvdWNoTW92ZUhhbmRsZXIs
IGZhbHNlKTsKKworZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhlIHRhcmdldCBvZiB0b3VjaGVz
IG1hdGNoIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBldmVudCBvcmlnaW5hdGVkLCBub3Qgd2hlcmUg
dGhlIHRvdWNoIGlzIGN1cnJlbnRseSBvY2N1cnJpbmcuIik7CisKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7Cit9CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBldmVudFNlbmRlci5jbGVh
clRvdWNoUG9pbnRzKCk7CisgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludCg1MCwgMTUwKTsK
KyAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KDUwLCAyNTApOworICAgIGV2ZW50U2VuZGVy
LnRvdWNoU3RhcnQoKTsKKworICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMCwgNTAs
IDI1MCk7CisgICAgZXZlbnRTZW5kZXIudXBkYXRlVG91Y2hQb2ludCgxLCA1MCwgMTUwKTsKKyAg
ICBldmVudFNlbmRlci50b3VjaE1vdmUoKTsKKworICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNo
UG9pbnQoMCwgMTAwMCwgMTAwMCk7CisgICAgZXZlbnRTZW5kZXIudXBkYXRlVG91Y2hQb2ludCgx
LCAxMDAwLCAxMDAwKTsKKyAgICBldmVudFNlbmRlci50b3VjaE1vdmUoKTsKKworICAgIGV2ZW50
U2VuZGVyLnJlbGVhc2VUb3VjaFBvaW50KDApOworICAgIGV2ZW50U2VuZGVyLnJlbGVhc2VUb3Vj
aFBvaW50KDEpOworICAgIGV2ZW50U2VuZGVyLnRvdWNoRW5kKCk7CisKKyAgICBldmVudFNlbmRl
ci5hZGRUb3VjaFBvaW50KDUwLCAyNTApOworICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQo
NTAsIDE1MCk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hTdGFydCgpOworCisgICAgZXZlbnRTZW5k
ZXIudXBkYXRlVG91Y2hQb2ludCgwLCA1MDAsIDUwMCk7CisgICAgZXZlbnRTZW5kZXIudXBkYXRl
VG91Y2hQb2ludCgxLCA1MDAsIDUwMCk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hNb3ZlKCk7Cit9
IGVsc2UKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJlcXVpcmVzIERSVC4nKTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68764</attachid>
            <date>2010-09-24 15:07:22 -0700</date>
            <delta_ts>2010-09-27 10:45:24 -0700</delta_ts>
            <desc>Updated patch per Steve&apos;s comments</desc>
            <filename>android-multi-touch.patch3</filename>
            <type>text/plain</type>
            <size>21541</size>
            <attacher name="Harry Wu">mediadependent</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODI5MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDktMjQgIEh1YWh1aSBXdSAgPG1lZGlhZGVwZW5kZW50QGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgbXVsdGktdG91Y2ggZm9yIEFuZHJvaWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTIyMQorCisgICAgICAgIFRoZSBBbmRyb2lkIHRvdWNo
IGV2ZW50IHVzZWQgdG8gdGFrZSBvbmUgcG9pbnQgYXMgdGhlIHRvdWNoIHBvaW50LAorICAgICAg
ICBpdCdzIG5vdyBjaGFuZ2VkIHRvIGEgdmVjdG9yIG9mIHBvaW50cyB0byBzdXBwb3J0IG11bHRp
LXRvdWNoLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10
b3VjaC1ldmVudHMtbGltaXRlZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3Vj
aC90b3VjaC10YXJnZXQtbGltaXRlZC5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9y
bVRvdWNoRXZlbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hFdmVudEFuZHJvaWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2ZW50OjpQbGF0Zm9ybVRvdWNoRXZl
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaFBvaW50QW5kcm9p
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoUG9pbnQ6OlBsYXRmb3JtVG91
Y2hQb2ludCk6CisKIDIwMTAtMDktMjQgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtVG91Y2hFdmVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1Ub3VjaEV2ZW50LmgJKHJldmlzaW9uIDY4MjA5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVRvdWNoRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsNyBAQCBwdWJs
aWM6CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgUGxhdGZvcm1Ub3VjaEV2ZW50KFFUb3VjaEV2ZW50
Kik7CiAjZWxpZiBQTEFURk9STShBTkRST0lEKQotICAgIFBsYXRmb3JtVG91Y2hFdmVudChjb25z
dCBJbnRQb2ludCYgd2luZG93UG9zLCBUb3VjaEV2ZW50VHlwZSwgUGxhdGZvcm1Ub3VjaFBvaW50
OjpTdGF0ZSwgaW50IG1ldGFTdGF0ZSk7CisgICAgUGxhdGZvcm1Ub3VjaEV2ZW50KGNvbnN0IFZl
Y3RvcjxJbnRQb2ludD4mLCBUb3VjaEV2ZW50VHlwZSwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0
ZSwgaW50IG1ldGFTdGF0ZSk7CiAjZWxpZiBQTEFURk9STShCUkVXTVApCiAgICAgUGxhdGZvcm1U
b3VjaEV2ZW50KEFFRUV2ZW50LCB1aW50MTYgd1BhcmFtLCB1aW50MzIgZHdQYXJhbSk7CiAjZW5k
aWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaAkocmV2aXNpb24gNjgy
MDkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2ludC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybVRvdWNoUG9pbnQoY29u
c3QgUVRvdWNoRXZlbnQ6OlRvdWNoUG9pbnQmKTsKICAgICBQbGF0Zm9ybVRvdWNoUG9pbnQoKSB7
fTsKICNlbGlmIFBMQVRGT1JNKEFORFJPSUQpCi0gICAgUGxhdGZvcm1Ub3VjaFBvaW50KGNvbnN0
IEludFBvaW50JiB3aW5kb3dQb3MsIFN0YXRlKTsKKyAgICBQbGF0Zm9ybVRvdWNoUG9pbnQodW5z
aWduZWQgaWQsIGNvbnN0IEludFBvaW50JiB3aW5kb3dQb3MsIFN0YXRlKTsKICNlbGlmIFBMQVRG
T1JNKEJSRVdNUCkKICAgICBQbGF0Zm9ybVRvdWNoUG9pbnQoaW50IGlkLCBjb25zdCBJbnRQb2lu
dCYgd2luZG93UG9zLCBTdGF0ZSk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vYW5k
cm9pZC9QbGF0Zm9ybVRvdWNoRXZlbnRBbmRyb2lkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaEV2ZW50QW5kcm9pZC5jcHAJKHJldmlzaW9u
IDY4MjA5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hFdmVudEFu
ZHJvaWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMSArMzcsMTMgQEAgZW51bSBBbmRyb2lk
TWV0YUtleVN0YXRlIHsKICAgICBNRVRBX1NZTV9PTiA9IDB4MDQKIH07CiAKLVBsYXRmb3JtVG91
Y2hFdmVudDo6UGxhdGZvcm1Ub3VjaEV2ZW50KGNvbnN0IEludFBvaW50JiB3aW5kb3dQb3MsIFRv
dWNoRXZlbnRUeXBlIHR5cGUsIFBsYXRmb3JtVG91Y2hQb2ludDo6U3RhdGUgc3RhdGUsIGludCBt
ZXRhU3RhdGUpCitQbGF0Zm9ybVRvdWNoRXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVudChjb25zdCBW
ZWN0b3I8SW50UG9pbnQ+JiB3aW5kb3dQb2ludHMsIFRvdWNoRXZlbnRUeXBlIHR5cGUsIFBsYXRm
b3JtVG91Y2hQb2ludDo6U3RhdGUgc3RhdGUsIGludCBtZXRhU3RhdGUpCiAgICAgOiBtX3R5cGUo
dHlwZSkKICAgICAsIG1fbWV0YUtleShmYWxzZSkKIHsKLSAgICBtX3RvdWNoUG9pbnRzLmFwcGVu
ZChQbGF0Zm9ybVRvdWNoUG9pbnQod2luZG93UG9zLCBzdGF0ZSkpOworICAgIG1fdG91Y2hQb2lu
dHMucmVzZXJ2ZUNhcGFjaXR5KHdpbmRvd1BvaW50cy5zaXplKCkpOworICAgIGZvciAodW5zaWdu
ZWQgYyA9IDA7IGMgPCB3aW5kb3dQb2ludHMuc2l6ZSgpOyBjKyspCisgICAgICAgIG1fdG91Y2hQ
b2ludHMuYXBwZW5kKFBsYXRmb3JtVG91Y2hQb2ludCh3aW5kb3dQb3MsIHN0YXRlKSk7CiAKICAg
ICBtX2FsdEtleSA9IG1ldGFTdGF0ZSAmIE1FVEFfQUxUX09OOwogICAgIG1fc2hpZnRLZXkgPSBt
ZXRhU3RhdGUgJiBNRVRBX1NISUZUX09OOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lk
L1BsYXRmb3JtVG91Y2hQb2ludEFuZHJvaWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vYW5kcm9pZC9QbGF0Zm9ybVRvdWNoUG9pbnRBbmRyb2lkLmNwcAkocmV2aXNpb24gNjgy
MDkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaFBvaW50QW5kcm9p
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1QbGF0Zm9ybVRvdWNoUG9pbnQ6OlBsYXRmb3JtVG91Y2hQb2ludChjb25zdCBJbnRQ
b2ludCYgd2luZG93UG9zLCBTdGF0ZSBzdGF0ZSkKLSAgICA6IG1faWQoMCkKK1BsYXRmb3JtVG91
Y2hQb2ludDo6UGxhdGZvcm1Ub3VjaFBvaW50KHVuc2lnbmVkIGlkLCBjb25zdCBJbnRQb2ludCYg
d2luZG93UG9zLCBTdGF0ZSBzdGF0ZSkKKyAgICA6IG1faWQoaWQpCiAgICAgLCBtX3N0YXRlKHN0
YXRlKQogICAgICwgbV9zY3JlZW5Qb3Mod2luZG93UG9zKQogICAgICwgbV9wb3Mod2luZG93UG9z
KSB7IH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4MjkxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMDktMjQgIEh1YWh1aSBXdSAg
PG1lZGlhZGVwZW5kZW50QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgdHdvIG11bHRpLXRvdWNoIHRlc3RzIGZvciBBbmRyb2lk
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUyMjEK
KworICAgICAgICBUaGUgb3JpZ2luYWwgdGVzdHMgKHRvdWNoLXRhcmdldC5odG1sIGFuZCBiYXNp
Yy1tdWx0aS10b3VjaC1ldmVudHMuaHRtbCkKKyAgICAgICAgcmVxdWlyZXMgdGhlIHN5c3RlbSBi
ZWluZyBhYmxlIHRvIHJlbGVhc2Ugb25lIHBvaW50IHdoaWxlIG1haW50YWluIGFub3RoZXIgcG9p
bnQuCisgICAgICAgIEN1cnJlbnQgQW5kcm9pZCBzeXN0ZW0gY2FuIG5vdCBwcm92aWRlIHRoaXMg
dG8gYnJvd3NlciwgaGVuY2UgdGhlc2UgdGVzdHMgYXJlCisgICAgICAgIHNsaWdodGx5IG1vZGlm
aWVkIGZvciBBbmRyb2lkLiBTaW5jZSB0aGVzZSBhcmUgbGltaXRlZCB2ZXJzaW9uIG9mIHRoZSBv
cmlnaW5hbCBvbmVzLAorICAgICAgICBvdGhlciBwbGF0Zm9ybXMgc2hvdWxkIHBhc3MgdGhlc2Ug
dGVzdHMgaWYgdGhleSBjYW4gcGFzcyB0aGUgb3JpZ2luYWwgb25lcy4KKworICAgICAgICAqIGZh
c3QvZXZlbnRzL3RvdWNoL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1saW1pdGVkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvYmFzaWMtbXVsdGktdG91
Y2gtZXZlbnRzLWxpbWl0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91
Y2gvc2NyaXB0LXRlc3RzL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1saW1pdGVkLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHRvdWNoRXZlbnRDYWxsYmFjayk6CisgICAgICAgICh2ZXJpZnlUb3VjaEV2
ZW50KToKKyAgICAgICAgKHZlcmlmeVRvdWNoUG9pbnQpOgorICAgICAgICAodmVyaWZ5VG91Y2gp
OgorICAgICAgICAobXVsdGlUb3VjaFNlcXVlbmNlKToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90
b3VjaC9zY3JpcHQtdGVzdHMvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQuanM6IEFkZGVkLgorICAgICAg
ICAodG91Y2hTdGFydEhhbmRsZXIpOgorICAgICAgICAodG91Y2hNb3ZlSGFuZGxlcik6CisgICAg
ICAgICogZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQtbGltaXRl
ZC5odG1sOiBBZGRlZC4KKwogMjAxMC0wOS0yNCAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNv
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkOyBuZXcgdGVzdCBiYXNlbGluZXMg
YW5kIHRlc3RfZXhwZWN0YXRpb25zIHVwZGF0ZS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1saW1pdGVkLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10
b3VjaC1ldmVudHMtbGltaXRlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10b3VjaC1ldmVudHMtbGltaXRlZC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTcgQEAKK1RoaXMgdGVzdHMgYmFz
aWMgbXVsdGkgdG91Y2ggZXZlbnQgc3VwcG9ydC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgbGFzdEV2ZW50LnR5cGUgaXMgInRvdWNoc3RhcnQiCitQQVNTIGxhc3RFdmVu
dC50b3VjaGVzLmxlbmd0aCBpcyAyCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5n
dGggaXMgMgorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlcy5sZW5ndGggaXMgMgorUEFTUyBs
YXN0RXZlbnQucGFnZVggaXMgMAorUEFTUyBsYXN0RXZlbnQucGFnZVkgaXMgMAorUEFTUyBsYXN0
RXZlbnQudG91Y2hlc1swXS5wYWdlWCBpcyAxMAorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5w
YWdlWSBpcyAxMAorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5jbGllbnRYIGlzIDEwCitQQVNT
IGxhc3RFdmVudC50b3VjaGVzWzBdLmNsaWVudFkgaXMgMTAKK1BBU1MgbGFzdEV2ZW50LnRvdWNo
ZXNbMF0uaWRlbnRpZmllciBpcyAwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLnBhZ2VYIGlz
IDIwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLnBhZ2VZIGlzIDMwCitQQVNTIGxhc3RFdmVu
dC50b3VjaGVzWzFdLmNsaWVudFggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0uY2xp
ZW50WSBpcyAzMAorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1sxXS5pZGVudGlmaWVyIGlzIDEKK1BB
U1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VYIGlzIDEwCitQQVNTIGxhc3RFdmVu
dC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWSBpcyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRv
dWNoZXNbMF0uY2xpZW50WCBpcyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0u
Y2xpZW50WSBpcyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uaWRlbnRpZmll
ciBpcyAwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5wYWdlWCBpcyAyMAorUEFT
UyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0ucGFnZVkgaXMgMzAKK1BBU1MgbGFzdEV2ZW50
LmNoYW5nZWRUb3VjaGVzWzFdLmNsaWVudFggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRU
b3VjaGVzWzFdLmNsaWVudFkgaXMgMzAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzFd
LmlkZW50aWZpZXIgaXMgMQorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5wYWdlWCBp
cyAxMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5wYWdlWSBpcyAxMAorUEFTUyBs
YXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRYIGlzIDEwCitQQVNTIGxhc3RFdmVudC50
YXJnZXRUb3VjaGVzWzBdLmNsaWVudFkgaXMgMTAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNo
ZXNbMF0uaWRlbnRpZmllciBpcyAwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLnBh
Z2VYIGlzIDIwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLnBhZ2VZIGlzIDMwCitQ
QVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLmNsaWVudFggaXMgMjAKK1BBU1MgbGFzdEV2
ZW50LnRhcmdldFRvdWNoZXNbMV0uY2xpZW50WSBpcyAzMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0
VG91Y2hlc1sxXS5pZGVudGlmaWVyIGlzIDEKK1BBU1MgbGFzdEV2ZW50LnR5cGUgaXMgInRvdWNo
bW92ZSIKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDIKK1BBU1MgbGFzdEV2ZW50
LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAyCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVz
Lmxlbmd0aCBpcyAyCitQQVNTIGxhc3RFdmVudC5wYWdlWCBpcyAwCitQQVNTIGxhc3RFdmVudC5w
YWdlWSBpcyAwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLnBhZ2VYIGlzIDE1CitQQVNTIGxh
c3RFdmVudC50b3VjaGVzWzBdLnBhZ2VZIGlzIDE1CitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBd
LmNsaWVudFggaXMgMTUKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WSBpcyAxNQor
UEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50
LnRvdWNoZXNbMV0ucGFnZVggaXMgMjUKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0ucGFnZVkg
aXMgMzUKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0uY2xpZW50WCBpcyAyNQorUEFTUyBsYXN0
RXZlbnQudG91Y2hlc1sxXS5jbGllbnRZIGlzIDM1CitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFd
LmlkZW50aWZpZXIgaXMgMQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVgg
aXMgMTUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZIGlzIDE1CitQQVNT
IGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYIGlzIDE1CitQQVNTIGxhc3RFdmVu
dC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZIGlzIDE1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2Vk
VG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVz
WzFdLnBhZ2VYIGlzIDI1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5wYWdlWSBp
cyAzNQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50WCBpcyAyNQorUEFT
UyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50WSBpcyAzNQorUEFTUyBsYXN0RXZl
bnQuY2hhbmdlZFRvdWNoZXNbMV0uaWRlbnRpZmllciBpcyAxCitQQVNTIGxhc3RFdmVudC50YXJn
ZXRUb3VjaGVzWzBdLnBhZ2VYIGlzIDE1CitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBd
LnBhZ2VZIGlzIDE1CitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFggaXMg
MTUKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WSBpcyAxNQorUEFTUyBs
YXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50
LnRhcmdldFRvdWNoZXNbMV0ucGFnZVggaXMgMjUKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNo
ZXNbMV0ucGFnZVkgaXMgMzUKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMV0uY2xpZW50
WCBpcyAyNQorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1sxXS5jbGllbnRZIGlzIDM1CitQ
QVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLmlkZW50aWZpZXIgaXMgMQorUEFTUyBsYXN0
RXZlbnQudHlwZSBpcyAidG91Y2hlbmQiCitQQVNTIGxhc3RFdmVudC50b3VjaGVzLmxlbmd0aCBp
cyAwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggaXMgMgorUEFTUyBsYXN0
RXZlbnQudGFyZ2V0VG91Y2hlcy5sZW5ndGggaXMgMAorUEFTUyBsYXN0RXZlbnQucGFnZVggaXMg
MAorUEFTUyBsYXN0RXZlbnQucGFnZVkgaXMgMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNo
ZXNbMF0ucGFnZVggaXMgMTUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZ
IGlzIDE1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYIGlzIDE1CitQ
QVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZIGlzIDE1CitQQVNTIGxhc3RF
dmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50LmNo
YW5nZWRUb3VjaGVzWzFdLnBhZ2VYIGlzIDI1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hl
c1sxXS5wYWdlWSBpcyAzNQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50
WCBpcyAyNQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50WSBpcyAzNQor
UEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uaWRlbnRpZmllciBpcyAxCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvYmFzaWMtbXVsdGktdG91Y2gtZXZlbnRzLWxpbWl0ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1t
dWx0aS10b3VjaC1ldmVudHMtbGltaXRlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvYmFzaWMtbXVsdGktdG91Y2gtZXZlbnRzLWxpbWl0ZWQuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwv
c2NyaXB0PgorPCEtLQorICBUaGlzIGlzIGEgbGltaXRlZCB2ZXJzaW9uIG9mIHRlc3QgYmFzaWMt
bXVsdGktdG91Y2gtZXZlbnRzLmh0bWwgdGhhdCBhdm9pZHMgdGhlIHNpdHVhdGlvbgorICB3aGVy
ZSBvbmUgdG91Y2ggcG9pbnQgaXMgcmVsZWFzZWQgd2hpbGUgYW5vdGhlciBpcyBtYWludGFpbmVk
LgorCisgIFRvdWNoIHRlc3RzIHRoYXQgaW52b2x2ZSB0aGUgb250b3VjaHN0YXJ0LCBvbnRvdWNo
bW92ZSwgb250b3VjaGVuZCBvciBvbnRvdWNoY2FuY2VsIGNhbGxiYWNrcworICBzaG91bGQgYmUg
d3JpdHRlbiBpbiBhbiBhc3luY2hyb25vdXMgZmFzaGlvbiBzbyB0aGV5IGNhbiBiZSBydW4gb24g
bW9iaWxlIHBsYXRmb3JtcyBsaWtlIEFuZHJvaWQuCisgIFRoaXMgdGVtcGxhdGUgd2lsbCBnZW5l
cmF0ZSBhbiBhc3luY2hyb25vdXMgc3R5bGUgdGVzdCBieSB1c2luZyB0aGUganMtdGVzdC1wb3N0
LWZ1bmN0aW9uIHNjcmlwdC4KKyAgWW91IHdpbGwgbmVlZCB0byBpbnZva2UgaXNTdWNjZXNzZnVs
bHlQYXJzZWQoKSBpbiB5b3VyIHRlc3Qgc2NyaXB0IHdoZW4gdGhlIHRlc3QgY29tcGxldGVzLgor
LS0+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Jhc2ljLW11bHRpLXRv
dWNoLWV2ZW50cy1saW1pdGVkLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLXRhcmdldC1saW1pdGVkLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3Vj
aC10YXJnZXQtbGltaXRlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQtbGltaXRlZC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3RzIHRoYXQgdGhlIHRhcmdldCBvZiB0b3Vj
aGVzIG1hdGNoIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBldmVudCBvcmlnaW5hdGVkLCBub3Qgd2hl
cmUgdGhlIHRvdWNoIGlzIGN1cnJlbnRseSBvY2N1cnJpbmcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCisKK1BBU1MgZXZlbnQudHlwZSBpcyAidG91Y2hzdGFydCIKK1BBU1MgZXZl
bnQudG91Y2hlc1swXS50YXJnZXQuaWQgaXMgInRhcmdldEEiCitQQVNTIGV2ZW50LnRvdWNoZXNb
MV0udGFyZ2V0LmlkIGlzICJ0YXJnZXRCIgorUEFTUyBldmVudC50eXBlIGlzICJ0b3VjaG1vdmUi
CitQQVNTIGV2ZW50LnRvdWNoZXNbMF0udGFyZ2V0LmlkIGlzICJ0YXJnZXRBIgorUEFTUyBldmVu
dC50b3VjaGVzWzFdLnRhcmdldC5pZCBpcyAidGFyZ2V0QiIKK1BBU1MgZXZlbnQudHlwZSBpcyAi
dG91Y2htb3ZlIgorUEFTUyBldmVudC50b3VjaGVzWzBdLnRhcmdldC5pZCBpcyAidGFyZ2V0QSIK
K1BBU1MgZXZlbnQudG91Y2hlc1sxXS50YXJnZXQuaWQgaXMgInRhcmdldEIiCitQQVNTIGV2ZW50
LnR5cGUgaXMgInRvdWNoc3RhcnQiCitQQVNTIGV2ZW50LnRvdWNoZXNbMF0udGFyZ2V0LmlkIGlz
ICJ0YXJnZXRCIgorUEFTUyBldmVudC50b3VjaGVzWzFdLnRhcmdldC5pZCBpcyAidGFyZ2V0QSIK
K1BBU1MgZXZlbnQudHlwZSBpcyAidG91Y2htb3ZlIgorUEFTUyBldmVudC50b3VjaGVzWzBdLnRh
cmdldC5pZCBpcyAidGFyZ2V0QiIKK1BBU1MgZXZlbnQudG91Y2hlc1sxXS50YXJnZXQuaWQgaXMg
InRhcmdldEEiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtdGFyZ2V0LWxp
bWl0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90
b3VjaC10YXJnZXQtbGltaXRlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPCEtLQorICBU
aGlzIGlzIGEgbGltaXRlZCB2ZXJzaW9uIG9mIHRlc3QgdG91Y2gtdGFyZ2V0Lmh0bWwgdGhhdCBh
dm9pZHMgdGhlIHNpdHVhdGlvbiB3aGVyZSBvbmUgdG91Y2gKKyAgcG9pbnQgaXMgcmVsZWFzZWQg
d2hpbGUgYW5vdGhlciBpcyBtYWludGFpbmVkLgorCisgIFRvdWNoIHRlc3RzIHRoYXQgaW52b2x2
ZSB0aGUgb250b3VjaHN0YXJ0LCBvbnRvdWNobW92ZSwgb250b3VjaGVuZCBvciBvbnRvdWNoY2Fu
Y2VsIGNhbGxiYWNrcworICBzaG91bGQgYmUgd3JpdHRlbiBpbiBhbiBhc3luY2hyb25vdXMgZmFz
aGlvbiBzbyB0aGV5IGNhbiBiZSBydW4gb24gbW9iaWxlIHBsYXRmb3JtcyBsaWtlIEFuZHJvaWQu
CisgIFRoaXMgdGVtcGxhdGUgd2lsbCBnZW5lcmF0ZSBhbiBhc3luY2hyb25vdXMgc3R5bGUgdGVz
dCBieSB1c2luZyB0aGUganMtdGVzdC1wb3N0LWZ1bmN0aW9uIHNjcmlwdC4KKyAgWW91IHdpbGwg
bmVlZCB0byBpbnZva2UgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKSBpbiB5b3VyIHRlc3Qgc2NyaXB0
IHdoZW4gdGhlIHRlc3QgY29tcGxldGVzLgorLS0+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL3RvdWNoLXRhcmdldC1saW1pdGVkLmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0
cy9iYXNpYy1tdWx0aS10b3VjaC1ldmVudHMtbGltaXRlZC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvYmFzaWMtbXVsdGktdG91Y2gt
ZXZlbnRzLWxpbWl0ZWQuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9zY3JpcHQtdGVzdHMvYmFzaWMtbXVsdGktdG91Y2gtZXZlbnRzLWxpbWl0ZWQuanMJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTA4IEBACit2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CitkaXYuaWQgPSAidG91Y2h0YXJnZXQiOworZGl2LnN0eWxlLndpZHRo
ID0gIjEwMHB4IjsKK2Rpdi5zdHlsZS5oZWlnaHQgPSAiMTAwcHgiOworZGl2LnN0eWxlLmJhY2tn
cm91bmRDb2xvciA9ICJibHVlIjsKKwordmFyIGxhc3RFdmVudCA9IG51bGw7Cit2YXIgdG91Y2hF
dmVudHNSZWNlaXZlZCA9IDA7Cit2YXIgRVhQRUNURURfVE9VQ0hfRVZFTlRTX1RPVEFMID0gMzsK
KworZnVuY3Rpb24gdG91Y2hFdmVudENhbGxiYWNrKCkgeworICAgIGlmICh3aW5kb3cuZXZlbnRT
ZW5kZXIpIHsKKyAgICAgICAgbGFzdEV2ZW50ID0gZXZlbnQ7CisgICAgICAgIHZlcmlmeVRvdWNo
KHRvdWNoRXZlbnRzUmVjZWl2ZWQrKyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVidWcoZXZl
bnQudHlwZSk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciAm
JiB0b3VjaEV2ZW50c1JlY2VpdmVkID09IEVYUEVDVEVEX1RPVUNIX0VWRU5UU19UT1RBTCkgewor
ICAgICAgICAvLyBJZiB3ZSd2ZSBnb3QgaGVyZSwgd2UgY2FuIHNhZmVseSBzYXkgd2Ugd2VyZSBz
dWNjZXNzZnVsbHkgcGFyc2VkIDopIFdlIG5lZWQgdG8KKyAgICAgICAgLy8gY2FsbCB0aGUgaXNT
dWNjY2Vzc2Z1bGx5UGFyc2VkIGZ1bmN0aW9uIHRvIG91dHB1dCB0aGUgY29ycmVjdCBURVNUIENP
TVBMRVRFCisgICAgICAgIC8vIGZvb3RlciBtZXNzYWdlLgorICAgICAgICBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworICAgICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorCitkaXYuYWRkRXZl
bnRMaXN0ZW5lcigidG91Y2hzdGFydCIsIHRvdWNoRXZlbnRDYWxsYmFjaywgZmFsc2UpOworZGl2
LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIHRvdWNoRXZlbnRDYWxsYmFjaywgZmFsc2Up
OworZGl2LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwgdG91Y2hFdmVudENhbGxiYWNrLCBm
YWxzZSk7Citkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShkaXYsIGRvY3VtZW50LmJvZHkuZmly
c3RDaGlsZCk7CisKK2Z1bmN0aW9uIHZlcmlmeVRvdWNoRXZlbnQodHlwZSwgdG90YWxUb3VjaENv
dW50LCBjaGFuZ2VkVG91Y2hDb3VudCwgdGFyZ2V0VG91Y2hDb3VudCkKK3sKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImxhc3RFdmVudC50eXBlIiwgdHlwZSk7CisgICAgc2hvdWxkQmUoImxh
c3RFdmVudC50b3VjaGVzLmxlbmd0aCIsIHRvdGFsVG91Y2hDb3VudC50b1N0cmluZygpKTsKKyAg
ICBzaG91bGRCZSgibGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCIsIGNoYW5nZWRUb3Vj
aENvdW50LnRvU3RyaW5nKCkpOworICAgIHNob3VsZEJlKCJsYXN0RXZlbnQudGFyZ2V0VG91Y2hl
cy5sZW5ndGgiLCB0YXJnZXRUb3VjaENvdW50LnRvU3RyaW5nKCkpOworICAgIHNob3VsZEJlKCJs
YXN0RXZlbnQucGFnZVgiLCAiMCIpOworICAgIHNob3VsZEJlKCJsYXN0RXZlbnQucGFnZVkiLCAi
MCIpOworfQorCitmdW5jdGlvbiB2ZXJpZnlUb3VjaFBvaW50KGxpc3QsIHBvaW50LCB4LCB5LCBp
ZCkKK3sKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50LiIgKyBsaXN0ICsgIlsiICsgcG9pbnQgKyAi
XS5wYWdlWCIsIHgudG9TdHJpbmcoKSk7CisgICAgc2hvdWxkQmUoImxhc3RFdmVudC4iICsgbGlz
dCArICJbIiArIHBvaW50ICsgIl0ucGFnZVkiLCB5LnRvU3RyaW5nKCkpOworICAgIHNob3VsZEJl
KCJsYXN0RXZlbnQuIiArIGxpc3QgKyAiWyIgKyBwb2ludCArICJdLmNsaWVudFgiLCB4LnRvU3Ry
aW5nKCkpOworICAgIHNob3VsZEJlKCJsYXN0RXZlbnQuIiArIGxpc3QgKyAiWyIgKyBwb2ludCAr
ICJdLmNsaWVudFkiLCB5LnRvU3RyaW5nKCkpOworICAgIHNob3VsZEJlKCJsYXN0RXZlbnQuIiAr
IGxpc3QgKyAiWyIgKyBwb2ludCArICJdLmlkZW50aWZpZXIiLCBpZC50b1N0cmluZygpKTsKK30K
KworZnVuY3Rpb24gdmVyaWZ5VG91Y2god2hpY2gpIHsKKyAgICBzd2l0Y2ggKHdoaWNoKSB7Cisg
ICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNoc3RhcnQi
LCAyLCAyLCAyKTsKKyAgICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoInRvdWNoZXMiLCAwLCAx
MCwgMTAsIDApOworICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgidG91Y2hlcyIsIDEsIDIw
LCAzMCwgMSk7CisgICAgICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJjaGFuZ2VkVG91Y2hlcyIs
IDAsIDEwLCAxMCwgMCk7CisgICAgICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJjaGFuZ2VkVG91
Y2hlcyIsIDEsIDIwLCAzMCwgMSk7CisgICAgICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0YXJn
ZXRUb3VjaGVzIiwgMCwgMTAsIDEwLCAwKTsKKyAgICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQo
InRhcmdldFRvdWNoZXMiLCAxLCAyMCwgMzAsIDEpOworICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgdmVyaWZ5VG91Y2hFdmVudCgidG91Y2htb3ZlIiwgMiwgMiwg
Mik7CisgICAgICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0b3VjaGVzIiwgMCwgMTUsIDE1LCAw
KTsKKyAgICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoInRvdWNoZXMiLCAxLCAyNSwgMzUsIDEp
OworICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMiLCAwLCAxNSwg
MTUsIDApOworICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgiY2hhbmdlZFRvdWNoZXMiLCAx
LCAyNSwgMzUsIDEpOworICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgidGFyZ2V0VG91Y2hl
cyIsIDAsIDE1LCAxNSwgMCk7CisgICAgICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0YXJnZXRU
b3VjaGVzIiwgMSwgMjUsIDM1LCAxKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIHZlcmlmeVRvdWNoRXZlbnQoInRvdWNoZW5kIiwgMCwgMiwgMCk7CisgICAg
ICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJjaGFuZ2VkVG91Y2hlcyIsIDAsIDE1LCAxNSwgMCk7
CisgICAgICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJjaGFuZ2VkVG91Y2hlcyIsIDEsIDI1LCAz
NSwgMSk7CisgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6IHRlc3RGYWlsZWQoIldy
b25nIG51bWJlciBvZiB0b3VjaCBldmVudHMhICgiICsgd2hpY2ggKyAiKSIpOworICAgIH0KK30K
KworZnVuY3Rpb24gbXVsdGlUb3VjaFNlcXVlbmNlKCkKK3sKKyAgICBldmVudFNlbmRlci5hZGRU
b3VjaFBvaW50KDEwLCAxMCk7CisgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludCgyMCwgMzAp
OworICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKworICAgIGV2ZW50U2VuZGVyLnVwZGF0
ZVRvdWNoUG9pbnQoMCwgMTUsIDE1KTsKKyAgICBldmVudFNlbmRlci51cGRhdGVUb3VjaFBvaW50
KDEsIDI1LCAzNSk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hNb3ZlKCk7CisKKyAgICBldmVudFNl
bmRlci5yZWxlYXNlVG91Y2hQb2ludCgwKTsKKyAgICBldmVudFNlbmRlci5yZWxlYXNlVG91Y2hQ
b2ludCgxKTsKKyAgICBldmVudFNlbmRlci50b3VjaEVuZCgpOworfQorCitpZiAod2luZG93LmV2
ZW50U2VuZGVyKSB7CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgYmFzaWMgbXVsdGkgdG91
Y2ggZXZlbnQgc3VwcG9ydC4iKTsKKworICAgIGxhc3RFdmVudCA9IG51bGw7CisgICAgZXZlbnRT
ZW5kZXIuY2xlYXJUb3VjaFBvaW50cygpOworICAgIG11bHRpVG91Y2hTZXF1ZW5jZSgpOworfSBl
bHNlIHsKKyAgICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIER1bXBSZW5kZXJUcmVlLiAgVGFw
IG9uIHRoZSBibHVlIHJlY3QgdG8gbG9nLiIpCit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3Rz
L3RvdWNoLXRhcmdldC1saW1pdGVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy90b3VjaC10YXJnZXQtbGltaXRlZC5qcwkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy90b3Vj
aC10YXJnZXQtbGltaXRlZC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDMgQEAKK3ZhciB0
YXJnZXRzRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0YXJnZXRzRGl2Lmlk
ID0gInRhcmdldHNEaXYiOworCit2YXIgZGl2MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOworZGl2MS5pZCA9ICJ0YXJnZXRBIjsKK2RpdjEuc3R5bGUud2lkdGggPSAiMTAwcHgiOwor
ZGl2MS5zdHlsZS5oZWlnaHQgPSAiMTAwcHgiOworZGl2MS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3Ig
PSAiYmx1ZSI7CisKK3ZhciBkaXYyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citk
aXYyLmlkID0gInRhcmdldEIiOworZGl2Mi5zdHlsZS53aWR0aCA9ICIxMDBweCI7CitkaXYyLnN0
eWxlLmhlaWdodCA9ICIxMDBweCI7CitkaXYyLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJncmVl
biI7CisKK3ZhciB0b3VjaFN0YXJ0Q291bnQgPSAwOwordmFyIHRvdWNoTW92ZUNvdW50ID0gMDsK
KworZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUodGFyZ2V0c0RpdiwgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKSk7Cit0YXJnZXRzRGl2LmFwcGVuZENoaWxkKGRpdjEpOwordGFy
Z2V0c0Rpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdicicpKTsKK3Rhcmdl
dHNEaXYuYXBwZW5kQ2hpbGQoZGl2Mik7CisKK2Z1bmN0aW9uIHRvdWNoU3RhcnRIYW5kbGVyKCkK
K3sKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LnR5cGUnLCAndG91Y2hzdGFydCcp
OworICAgIHN3aXRjaCAodG91Y2hTdGFydENvdW50KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQn
LCBkaXYxLmlkKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudG91
Y2hlc1sxXS50YXJnZXQuaWQnLCBkaXYyLmlkKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDE6CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LnRvdWNo
ZXNbMF0udGFyZ2V0LmlkJywgZGl2Mi5pZCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2V2ZW50LnRvdWNoZXNbMV0udGFyZ2V0LmlkJywgZGl2MS5pZCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICB9CisKKyAgICB0b3VjaFN0YXJ0Q291bnQrKzsKK30KKworZnVuY3Rpb24g
dG91Y2hNb3ZlSGFuZGxlcigpCit7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC50
eXBlJywgJ3RvdWNobW92ZScpOworICAgIHN3aXRjaCAodG91Y2hNb3ZlQ291bnQpIHsKKyAgICAg
ICAgY2FzZSAwOgorICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2V2ZW50LnRvdWNoZXNbMF0udGFyZ2V0LmlkJywgZGl2MS5pZCk7CisgICAgICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LnRvdWNoZXNbMV0udGFyZ2V0LmlkJywgZGl2
Mi5pZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC50b3VjaGVzWzBdLnRhcmdldC5pZCcsIGRpdjIu
aWQpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC50b3VjaGVzWzFd
LnRhcmdldC5pZCcsIGRpdjEuaWQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
aWYgKCsrdG91Y2hNb3ZlQ291bnQgPT0gMykKKyAgICB7CisgICAgICAgIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICB9Cit9CisKK2RpdjEuYWRkRXZl
bnRMaXN0ZW5lcigidG91Y2hzdGFydCIsIHRvdWNoU3RhcnRIYW5kbGVyLCBmYWxzZSk7CitkaXYx
LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIHRvdWNoTW92ZUhhbmRsZXIsIGZhbHNlKTsK
KworZGl2Mi5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgdG91Y2hTdGFydEhhbmRsZXIs
IGZhbHNlKTsKK2RpdjIuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIiwgdG91Y2hNb3ZlSGFu
ZGxlciwgZmFsc2UpOworCitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0aGUgdGFyZ2V0IG9mIHRv
dWNoZXMgbWF0Y2ggdGhlIGVsZW1lbnQgd2hlcmUgdGhlIGV2ZW50IG9yaWdpbmF0ZWQsIG5vdCB3
aGVyZSB0aGUgdG91Y2ggaXMgY3VycmVudGx5IG9jY3VycmluZy4iKTsKKworaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKK30KKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGV2ZW50U2VuZGVy
LmNsZWFyVG91Y2hQb2ludHMoKTsKKyAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KDUwLCAx
NTApOworICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoNTAsIDI1MCk7CisgICAgZXZlbnRT
ZW5kZXIudG91Y2hTdGFydCgpOworCisgICAgZXZlbnRTZW5kZXIudXBkYXRlVG91Y2hQb2ludCgw
LCA1MCwgMjUwKTsKKyAgICBldmVudFNlbmRlci51cGRhdGVUb3VjaFBvaW50KDEsIDUwLCAxNTAp
OworICAgIGV2ZW50U2VuZGVyLnRvdWNoTW92ZSgpOworCisgICAgZXZlbnRTZW5kZXIudXBkYXRl
VG91Y2hQb2ludCgwLCAxMDAwLCAxMDAwKTsKKyAgICBldmVudFNlbmRlci51cGRhdGVUb3VjaFBv
aW50KDEsIDEwMDAsIDEwMDApOworICAgIGV2ZW50U2VuZGVyLnRvdWNoTW92ZSgpOworCisgICAg
ZXZlbnRTZW5kZXIucmVsZWFzZVRvdWNoUG9pbnQoMCk7CisgICAgZXZlbnRTZW5kZXIucmVsZWFz
ZVRvdWNoUG9pbnQoMSk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKKworICAgIGV2ZW50
U2VuZGVyLmFkZFRvdWNoUG9pbnQoNTAsIDI1MCk7CisgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQ
b2ludCg1MCwgMTUwKTsKKyAgICBldmVudFNlbmRlci50b3VjaFN0YXJ0KCk7CisKKyAgICBldmVu
dFNlbmRlci51cGRhdGVUb3VjaFBvaW50KDAsIDUwMCwgNTAwKTsKKyAgICBldmVudFNlbmRlci51
cGRhdGVUb3VjaFBvaW50KDEsIDUwMCwgNTAwKTsKKyAgICBldmVudFNlbmRlci50b3VjaE1vdmUo
KTsKK30gZWxzZQorICAgIGRlYnVnKCdUaGlzIHRlc3QgcmVxdWlyZXMgRFJULicpOworCg==
</data>
<flag name="review"
          id="58329"
          type_id="1"
          status="+"
          setter="steveblock"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68931</attachid>
            <date>2010-09-27 10:45:24 -0700</date>
            <delta_ts>2010-09-27 15:24:56 -0700</delta_ts>
            <desc>Updated the tests&apos; JS description.</desc>
            <filename>android-multi-touch.patch4</filename>
            <type>text/plain</type>
            <size>21525</size>
            <attacher name="Harry Wu">mediadependent</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODI5MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDktMjQgIEh1YWh1aSBXdSAgPG1lZGlhZGVwZW5kZW50QGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgbXVsdGktdG91Y2ggZm9yIEFuZHJvaWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTIyMQorCisgICAgICAgIFRoZSBBbmRyb2lkIHRvdWNo
IGV2ZW50IHVzZWQgdG8gdGFrZSBvbmUgcG9pbnQgYXMgdGhlIHRvdWNoIHBvaW50LAorICAgICAg
ICBpdCdzIG5vdyBjaGFuZ2VkIHRvIGEgdmVjdG9yIG9mIHBvaW50cyB0byBzdXBwb3J0IG11bHRp
LXRvdWNoLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10
b3VjaC1ldmVudHMtbGltaXRlZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3Vj
aC90b3VjaC10YXJnZXQtbGltaXRlZC5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9y
bVRvdWNoRXZlbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hFdmVudEFuZHJvaWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2ZW50OjpQbGF0Zm9ybVRvdWNoRXZl
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaFBvaW50QW5kcm9p
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoUG9pbnQ6OlBsYXRmb3JtVG91
Y2hQb2ludCk6CisKIDIwMTAtMDktMjQgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtVG91Y2hFdmVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1Ub3VjaEV2ZW50LmgJKHJldmlzaW9uIDY4MjA5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVRvdWNoRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsNyBAQCBwdWJs
aWM6CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgUGxhdGZvcm1Ub3VjaEV2ZW50KFFUb3VjaEV2ZW50
Kik7CiAjZWxpZiBQTEFURk9STShBTkRST0lEKQotICAgIFBsYXRmb3JtVG91Y2hFdmVudChjb25z
dCBJbnRQb2ludCYgd2luZG93UG9zLCBUb3VjaEV2ZW50VHlwZSwgUGxhdGZvcm1Ub3VjaFBvaW50
OjpTdGF0ZSwgaW50IG1ldGFTdGF0ZSk7CisgICAgUGxhdGZvcm1Ub3VjaEV2ZW50KGNvbnN0IFZl
Y3RvcjxJbnRQb2ludD4mLCBUb3VjaEV2ZW50VHlwZSwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0
ZSwgaW50IG1ldGFTdGF0ZSk7CiAjZWxpZiBQTEFURk9STShCUkVXTVApCiAgICAgUGxhdGZvcm1U
b3VjaEV2ZW50KEFFRUV2ZW50LCB1aW50MTYgd1BhcmFtLCB1aW50MzIgZHdQYXJhbSk7CiAjZW5k
aWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaAkocmV2aXNpb24gNjgy
MDkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2ludC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybVRvdWNoUG9pbnQoY29u
c3QgUVRvdWNoRXZlbnQ6OlRvdWNoUG9pbnQmKTsKICAgICBQbGF0Zm9ybVRvdWNoUG9pbnQoKSB7
fTsKICNlbGlmIFBMQVRGT1JNKEFORFJPSUQpCi0gICAgUGxhdGZvcm1Ub3VjaFBvaW50KGNvbnN0
IEludFBvaW50JiB3aW5kb3dQb3MsIFN0YXRlKTsKKyAgICBQbGF0Zm9ybVRvdWNoUG9pbnQodW5z
aWduZWQgaWQsIGNvbnN0IEludFBvaW50JiB3aW5kb3dQb3MsIFN0YXRlKTsKICNlbGlmIFBMQVRG
T1JNKEJSRVdNUCkKICAgICBQbGF0Zm9ybVRvdWNoUG9pbnQoaW50IGlkLCBjb25zdCBJbnRQb2lu
dCYgd2luZG93UG9zLCBTdGF0ZSk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vYW5k
cm9pZC9QbGF0Zm9ybVRvdWNoRXZlbnRBbmRyb2lkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaEV2ZW50QW5kcm9pZC5jcHAJKHJldmlzaW9u
IDY4MjA5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hFdmVudEFu
ZHJvaWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMSArMzcsMTMgQEAgZW51bSBBbmRyb2lk
TWV0YUtleVN0YXRlIHsKICAgICBNRVRBX1NZTV9PTiA9IDB4MDQKIH07CiAKLVBsYXRmb3JtVG91
Y2hFdmVudDo6UGxhdGZvcm1Ub3VjaEV2ZW50KGNvbnN0IEludFBvaW50JiB3aW5kb3dQb3MsIFRv
dWNoRXZlbnRUeXBlIHR5cGUsIFBsYXRmb3JtVG91Y2hQb2ludDo6U3RhdGUgc3RhdGUsIGludCBt
ZXRhU3RhdGUpCitQbGF0Zm9ybVRvdWNoRXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVudChjb25zdCBW
ZWN0b3I8SW50UG9pbnQ+JiB3aW5kb3dQb2ludHMsIFRvdWNoRXZlbnRUeXBlIHR5cGUsIFBsYXRm
b3JtVG91Y2hQb2ludDo6U3RhdGUgc3RhdGUsIGludCBtZXRhU3RhdGUpCiAgICAgOiBtX3R5cGUo
dHlwZSkKICAgICAsIG1fbWV0YUtleShmYWxzZSkKIHsKLSAgICBtX3RvdWNoUG9pbnRzLmFwcGVu
ZChQbGF0Zm9ybVRvdWNoUG9pbnQod2luZG93UG9zLCBzdGF0ZSkpOworICAgIG1fdG91Y2hQb2lu
dHMucmVzZXJ2ZUNhcGFjaXR5KHdpbmRvd1BvaW50cy5zaXplKCkpOworICAgIGZvciAodW5zaWdu
ZWQgYyA9IDA7IGMgPCB3aW5kb3dQb2ludHMuc2l6ZSgpOyBjKyspCisgICAgICAgIG1fdG91Y2hQ
b2ludHMuYXBwZW5kKFBsYXRmb3JtVG91Y2hQb2ludCh3aW5kb3dQb3MsIHN0YXRlKSk7CiAKICAg
ICBtX2FsdEtleSA9IG1ldGFTdGF0ZSAmIE1FVEFfQUxUX09OOwogICAgIG1fc2hpZnRLZXkgPSBt
ZXRhU3RhdGUgJiBNRVRBX1NISUZUX09OOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lk
L1BsYXRmb3JtVG91Y2hQb2ludEFuZHJvaWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vYW5kcm9pZC9QbGF0Zm9ybVRvdWNoUG9pbnRBbmRyb2lkLmNwcAkocmV2aXNpb24gNjgy
MDkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaFBvaW50QW5kcm9p
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1QbGF0Zm9ybVRvdWNoUG9pbnQ6OlBsYXRmb3JtVG91Y2hQb2ludChjb25zdCBJbnRQ
b2ludCYgd2luZG93UG9zLCBTdGF0ZSBzdGF0ZSkKLSAgICA6IG1faWQoMCkKK1BsYXRmb3JtVG91
Y2hQb2ludDo6UGxhdGZvcm1Ub3VjaFBvaW50KHVuc2lnbmVkIGlkLCBjb25zdCBJbnRQb2ludCYg
d2luZG93UG9zLCBTdGF0ZSBzdGF0ZSkKKyAgICA6IG1faWQoaWQpCiAgICAgLCBtX3N0YXRlKHN0
YXRlKQogICAgICwgbV9zY3JlZW5Qb3Mod2luZG93UG9zKQogICAgICwgbV9wb3Mod2luZG93UG9z
KSB7IH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4MjkxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMDktMjQgIEh1YWh1aSBXdSAg
PG1lZGlhZGVwZW5kZW50QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgdHdvIG11bHRpLXRvdWNoIHRlc3RzIGZvciBBbmRyb2lk
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUyMjEK
KworICAgICAgICBUaGUgb3JpZ2luYWwgdGVzdHMgKHRvdWNoLXRhcmdldC5odG1sIGFuZCBiYXNp
Yy1tdWx0aS10b3VjaC1ldmVudHMuaHRtbCkKKyAgICAgICAgcmVxdWlyZXMgdGhlIHN5c3RlbSBi
ZWluZyBhYmxlIHRvIHJlbGVhc2Ugb25lIHBvaW50IHdoaWxlIG1haW50YWluIGFub3RoZXIgcG9p
bnQuCisgICAgICAgIEN1cnJlbnQgQW5kcm9pZCBzeXN0ZW0gY2FuIG5vdCBwcm92aWRlIHRoaXMg
dG8gYnJvd3NlciwgaGVuY2UgdGhlc2UgdGVzdHMgYXJlCisgICAgICAgIHNsaWdodGx5IG1vZGlm
aWVkIGZvciBBbmRyb2lkLiBTaW5jZSB0aGVzZSBhcmUgbGltaXRlZCB2ZXJzaW9uIG9mIHRoZSBv
cmlnaW5hbCBvbmVzLAorICAgICAgICBvdGhlciBwbGF0Zm9ybXMgc2hvdWxkIHBhc3MgdGhlc2Ug
dGVzdHMgaWYgdGhleSBjYW4gcGFzcyB0aGUgb3JpZ2luYWwgb25lcy4KKworICAgICAgICAqIGZh
c3QvZXZlbnRzL3RvdWNoL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1saW1pdGVkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvYmFzaWMtbXVsdGktdG91
Y2gtZXZlbnRzLWxpbWl0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91
Y2gvc2NyaXB0LXRlc3RzL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1saW1pdGVkLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHRvdWNoRXZlbnRDYWxsYmFjayk6CisgICAgICAgICh2ZXJpZnlUb3VjaEV2
ZW50KToKKyAgICAgICAgKHZlcmlmeVRvdWNoUG9pbnQpOgorICAgICAgICAodmVyaWZ5VG91Y2gp
OgorICAgICAgICAobXVsdGlUb3VjaFNlcXVlbmNlKToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90
b3VjaC9zY3JpcHQtdGVzdHMvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQuanM6IEFkZGVkLgorICAgICAg
ICAodG91Y2hTdGFydEhhbmRsZXIpOgorICAgICAgICAodG91Y2hNb3ZlSGFuZGxlcik6CisgICAg
ICAgICogZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQtbGltaXRl
ZC5odG1sOiBBZGRlZC4KKwogMjAxMC0wOS0yNCAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNv
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkOyBuZXcgdGVzdCBiYXNlbGluZXMg
YW5kIHRlc3RfZXhwZWN0YXRpb25zIHVwZGF0ZS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1saW1pdGVkLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10
b3VjaC1ldmVudHMtbGltaXRlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10b3VjaC1ldmVudHMtbGltaXRlZC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTcgQEAKK1RoaXMgdGVzdHMgYmFz
aWMgbXVsdGkgdG91Y2ggZXZlbnQgc3VwcG9ydC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgbGFzdEV2ZW50LnR5cGUgaXMgInRvdWNoc3RhcnQiCitQQVNTIGxhc3RFdmVu
dC50b3VjaGVzLmxlbmd0aCBpcyAyCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5n
dGggaXMgMgorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlcy5sZW5ndGggaXMgMgorUEFTUyBs
YXN0RXZlbnQucGFnZVggaXMgMAorUEFTUyBsYXN0RXZlbnQucGFnZVkgaXMgMAorUEFTUyBsYXN0
RXZlbnQudG91Y2hlc1swXS5wYWdlWCBpcyAxMAorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5w
YWdlWSBpcyAxMAorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5jbGllbnRYIGlzIDEwCitQQVNT
IGxhc3RFdmVudC50b3VjaGVzWzBdLmNsaWVudFkgaXMgMTAKK1BBU1MgbGFzdEV2ZW50LnRvdWNo
ZXNbMF0uaWRlbnRpZmllciBpcyAwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLnBhZ2VYIGlz
IDIwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLnBhZ2VZIGlzIDMwCitQQVNTIGxhc3RFdmVu
dC50b3VjaGVzWzFdLmNsaWVudFggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0uY2xp
ZW50WSBpcyAzMAorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1sxXS5pZGVudGlmaWVyIGlzIDEKK1BB
U1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VYIGlzIDEwCitQQVNTIGxhc3RFdmVu
dC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWSBpcyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRv
dWNoZXNbMF0uY2xpZW50WCBpcyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0u
Y2xpZW50WSBpcyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uaWRlbnRpZmll
ciBpcyAwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5wYWdlWCBpcyAyMAorUEFT
UyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0ucGFnZVkgaXMgMzAKK1BBU1MgbGFzdEV2ZW50
LmNoYW5nZWRUb3VjaGVzWzFdLmNsaWVudFggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRU
b3VjaGVzWzFdLmNsaWVudFkgaXMgMzAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzFd
LmlkZW50aWZpZXIgaXMgMQorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5wYWdlWCBp
cyAxMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5wYWdlWSBpcyAxMAorUEFTUyBs
YXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRYIGlzIDEwCitQQVNTIGxhc3RFdmVudC50
YXJnZXRUb3VjaGVzWzBdLmNsaWVudFkgaXMgMTAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNo
ZXNbMF0uaWRlbnRpZmllciBpcyAwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLnBh
Z2VYIGlzIDIwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLnBhZ2VZIGlzIDMwCitQ
QVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLmNsaWVudFggaXMgMjAKK1BBU1MgbGFzdEV2
ZW50LnRhcmdldFRvdWNoZXNbMV0uY2xpZW50WSBpcyAzMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0
VG91Y2hlc1sxXS5pZGVudGlmaWVyIGlzIDEKK1BBU1MgbGFzdEV2ZW50LnR5cGUgaXMgInRvdWNo
bW92ZSIKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDIKK1BBU1MgbGFzdEV2ZW50
LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCBpcyAyCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVz
Lmxlbmd0aCBpcyAyCitQQVNTIGxhc3RFdmVudC5wYWdlWCBpcyAwCitQQVNTIGxhc3RFdmVudC5w
YWdlWSBpcyAwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLnBhZ2VYIGlzIDE1CitQQVNTIGxh
c3RFdmVudC50b3VjaGVzWzBdLnBhZ2VZIGlzIDE1CitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBd
LmNsaWVudFggaXMgMTUKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WSBpcyAxNQor
UEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50
LnRvdWNoZXNbMV0ucGFnZVggaXMgMjUKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0ucGFnZVkg
aXMgMzUKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0uY2xpZW50WCBpcyAyNQorUEFTUyBsYXN0
RXZlbnQudG91Y2hlc1sxXS5jbGllbnRZIGlzIDM1CitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFd
LmlkZW50aWZpZXIgaXMgMQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVgg
aXMgMTUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZIGlzIDE1CitQQVNT
IGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYIGlzIDE1CitQQVNTIGxhc3RFdmVu
dC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZIGlzIDE1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2Vk
VG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVz
WzFdLnBhZ2VYIGlzIDI1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5wYWdlWSBp
cyAzNQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50WCBpcyAyNQorUEFT
UyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50WSBpcyAzNQorUEFTUyBsYXN0RXZl
bnQuY2hhbmdlZFRvdWNoZXNbMV0uaWRlbnRpZmllciBpcyAxCitQQVNTIGxhc3RFdmVudC50YXJn
ZXRUb3VjaGVzWzBdLnBhZ2VYIGlzIDE1CitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBd
LnBhZ2VZIGlzIDE1CitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFggaXMg
MTUKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WSBpcyAxNQorUEFTUyBs
YXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50
LnRhcmdldFRvdWNoZXNbMV0ucGFnZVggaXMgMjUKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNo
ZXNbMV0ucGFnZVkgaXMgMzUKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMV0uY2xpZW50
WCBpcyAyNQorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1sxXS5jbGllbnRZIGlzIDM1CitQ
QVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLmlkZW50aWZpZXIgaXMgMQorUEFTUyBsYXN0
RXZlbnQudHlwZSBpcyAidG91Y2hlbmQiCitQQVNTIGxhc3RFdmVudC50b3VjaGVzLmxlbmd0aCBp
cyAwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggaXMgMgorUEFTUyBsYXN0
RXZlbnQudGFyZ2V0VG91Y2hlcy5sZW5ndGggaXMgMAorUEFTUyBsYXN0RXZlbnQucGFnZVggaXMg
MAorUEFTUyBsYXN0RXZlbnQucGFnZVkgaXMgMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNo
ZXNbMF0ucGFnZVggaXMgMTUKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZ
IGlzIDE1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYIGlzIDE1CitQ
QVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZIGlzIDE1CitQQVNTIGxhc3RF
dmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50LmNo
YW5nZWRUb3VjaGVzWzFdLnBhZ2VYIGlzIDI1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hl
c1sxXS5wYWdlWSBpcyAzNQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50
WCBpcyAyNQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50WSBpcyAzNQor
UEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uaWRlbnRpZmllciBpcyAxCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvYmFzaWMtbXVsdGktdG91Y2gtZXZlbnRzLWxpbWl0ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1t
dWx0aS10b3VjaC1ldmVudHMtbGltaXRlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvYmFzaWMtbXVsdGktdG91Y2gtZXZlbnRzLWxpbWl0ZWQuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwv
c2NyaXB0PgorPCEtLQorICBUb3VjaCB0ZXN0cyB0aGF0IGludm9sdmUgdGhlIG9udG91Y2hzdGFy
dCwgb250b3VjaG1vdmUsIG9udG91Y2hlbmQgb3Igb250b3VjaGNhbmNlbCBjYWxsYmFja3MKKyAg
c2hvdWxkIGJlIHdyaXR0ZW4gaW4gYW4gYXN5bmNocm9ub3VzIGZhc2hpb24gc28gdGhleSBjYW4g
YmUgcnVuIG9uIG1vYmlsZSBwbGF0Zm9ybXMgbGlrZSBBbmRyb2lkLgorICBUaGlzIHRlbXBsYXRl
IHdpbGwgZ2VuZXJhdGUgYW4gYXN5bmNocm9ub3VzIHN0eWxlIHRlc3QgYnkgdXNpbmcgdGhlIGpz
LXRlc3QtcG9zdC1mdW5jdGlvbiBzY3JpcHQuCisgIFlvdSB3aWxsIG5lZWQgdG8gaW52b2tlIGlz
U3VjY2Vzc2Z1bGx5UGFyc2VkKCkgaW4geW91ciB0ZXN0IHNjcmlwdCB3aGVuIHRoZSB0ZXN0IGNv
bXBsZXRlcy4KKy0tPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9iYXNp
Yy1tdWx0aS10b3VjaC1ldmVudHMtbGltaXRlZC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQtbGlt
aXRlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI1IEBACitUZXN0cyB0aGF0IHRoZSB0YXJn
ZXQgb2YgdG91Y2hlcyBtYXRjaCB0aGUgZWxlbWVudCB3aGVyZSB0aGUgZXZlbnQgb3JpZ2luYXRl
ZCwgbm90IHdoZXJlIHRoZSB0b3VjaCBpcyBjdXJyZW50bHkgb2NjdXJyaW5nLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworCitQQVNTIGV2ZW50LnR5cGUgaXMgInRvdWNoc3RhcnQi
CitQQVNTIGV2ZW50LnRvdWNoZXNbMF0udGFyZ2V0LmlkIGlzICJ0YXJnZXRBIgorUEFTUyBldmVu
dC50b3VjaGVzWzFdLnRhcmdldC5pZCBpcyAidGFyZ2V0QiIKK1BBU1MgZXZlbnQudHlwZSBpcyAi
dG91Y2htb3ZlIgorUEFTUyBldmVudC50b3VjaGVzWzBdLnRhcmdldC5pZCBpcyAidGFyZ2V0QSIK
K1BBU1MgZXZlbnQudG91Y2hlc1sxXS50YXJnZXQuaWQgaXMgInRhcmdldEIiCitQQVNTIGV2ZW50
LnR5cGUgaXMgInRvdWNobW92ZSIKK1BBU1MgZXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQgaXMg
InRhcmdldEEiCitQQVNTIGV2ZW50LnRvdWNoZXNbMV0udGFyZ2V0LmlkIGlzICJ0YXJnZXRCIgor
UEFTUyBldmVudC50eXBlIGlzICJ0b3VjaHN0YXJ0IgorUEFTUyBldmVudC50b3VjaGVzWzBdLnRh
cmdldC5pZCBpcyAidGFyZ2V0QiIKK1BBU1MgZXZlbnQudG91Y2hlc1sxXS50YXJnZXQuaWQgaXMg
InRhcmdldEEiCitQQVNTIGV2ZW50LnR5cGUgaXMgInRvdWNobW92ZSIKK1BBU1MgZXZlbnQudG91
Y2hlc1swXS50YXJnZXQuaWQgaXMgInRhcmdldEIiCitQQVNTIGV2ZW50LnRvdWNoZXNbMV0udGFy
Z2V0LmlkIGlzICJ0YXJnZXRBIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3RvdWNo
LXRhcmdldC1saW1pdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLXRhcmdldC1saW1pdGVkLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4K
KzwhLS0KKyAgVG91Y2ggdGVzdHMgdGhhdCBpbnZvbHZlIHRoZSBvbnRvdWNoc3RhcnQsIG9udG91
Y2htb3ZlLCBvbnRvdWNoZW5kIG9yIG9udG91Y2hjYW5jZWwgY2FsbGJhY2tzCisgIHNob3VsZCBi
ZSB3cml0dGVuIGluIGFuIGFzeW5jaHJvbm91cyBmYXNoaW9uIHNvIHRoZXkgY2FuIGJlIHJ1biBv
biBtb2JpbGUgcGxhdGZvcm1zIGxpa2UgQW5kcm9pZC4KKyAgVGhpcyB0ZW1wbGF0ZSB3aWxsIGdl
bmVyYXRlIGFuIGFzeW5jaHJvbm91cyBzdHlsZSB0ZXN0IGJ5IHVzaW5nIHRoZSBqcy10ZXN0LXBv
c3QtZnVuY3Rpb24gc2NyaXB0LgorICBZb3Ugd2lsbCBuZWVkIHRvIGludm9rZSBpc1N1Y2Nlc3Nm
dWxseVBhcnNlZCgpIGluIHlvdXIgdGVzdCBzY3JpcHQgd2hlbiB0aGUgdGVzdCBjb21wbGV0ZXMu
CistLT4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvdG91Y2gtdGFyZ2V0
LWxpbWl0ZWQuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3RzL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50
cy1saW1pdGVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L3NjcmlwdC10ZXN0cy9iYXNpYy1tdWx0aS10b3VjaC1ldmVudHMtbGltaXRlZC5qcwkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy9iYXNp
Yy1tdWx0aS10b3VjaC1ldmVudHMtbGltaXRlZC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
MDggQEAKK3ZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2Rpdi5pZCA9
ICJ0b3VjaHRhcmdldCI7CitkaXYuc3R5bGUud2lkdGggPSAiMTAwcHgiOworZGl2LnN0eWxlLmhl
aWdodCA9ICIxMDBweCI7CitkaXYuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gImJsdWUiOworCit2
YXIgbGFzdEV2ZW50ID0gbnVsbDsKK3ZhciB0b3VjaEV2ZW50c1JlY2VpdmVkID0gMDsKK3ZhciBF
WFBFQ1RFRF9UT1VDSF9FVkVOVFNfVE9UQUwgPSAzOworCitmdW5jdGlvbiB0b3VjaEV2ZW50Q2Fs
bGJhY2soKSB7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBsYXN0RXZl
bnQgPSBldmVudDsKKyAgICAgICAgdmVyaWZ5VG91Y2godG91Y2hFdmVudHNSZWNlaXZlZCsrKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBkZWJ1ZyhldmVudC50eXBlKTsKKyAgICB9CisKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyICYmIHRvdWNoRXZlbnRzUmVjZWl2ZWQgPT0g
RVhQRUNURURfVE9VQ0hfRVZFTlRTX1RPVEFMKSB7CisgICAgICAgIC8vIElmIHdlJ3ZlIGdvdCBo
ZXJlLCB3ZSBjYW4gc2FmZWx5IHNheSB3ZSB3ZXJlIHN1Y2Nlc3NmdWxseSBwYXJzZWQgOikgV2Ug
bmVlZCB0bworICAgICAgICAvLyBjYWxsIHRoZSBpc1N1Y2NjZXNzZnVsbHlQYXJzZWQgZnVuY3Rp
b24gdG8gb3V0cHV0IHRoZSBjb3JyZWN0IFRFU1QgQ09NUExFVEUKKyAgICAgICAgLy8gZm9vdGVy
IG1lc3NhZ2UuCisgICAgICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgICAgIGlz
U3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICB9Cit9CisKK2Rpdi5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iiwg
dG91Y2hFdmVudENhbGxiYWNrLCBmYWxzZSk7CitkaXYuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2ht
b3ZlIiwgdG91Y2hFdmVudENhbGxiYWNrLCBmYWxzZSk7CitkaXYuYWRkRXZlbnRMaXN0ZW5lcigi
dG91Y2hlbmQiLCB0b3VjaEV2ZW50Q2FsbGJhY2ssIGZhbHNlKTsKK2RvY3VtZW50LmJvZHkuaW5z
ZXJ0QmVmb3JlKGRpdiwgZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKTsKKworZnVuY3Rpb24gdmVy
aWZ5VG91Y2hFdmVudCh0eXBlLCB0b3RhbFRvdWNoQ291bnQsIGNoYW5nZWRUb3VjaENvdW50LCB0
YXJnZXRUb3VjaENvdW50KQoreworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGFzdEV2ZW50
LnR5cGUiLCB0eXBlKTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50LnRvdWNoZXMubGVuZ3RoIiwg
dG90YWxUb3VjaENvdW50LnRvU3RyaW5nKCkpOworICAgIHNob3VsZEJlKCJsYXN0RXZlbnQuY2hh
bmdlZFRvdWNoZXMubGVuZ3RoIiwgY2hhbmdlZFRvdWNoQ291bnQudG9TdHJpbmcoKSk7CisgICAg
c2hvdWxkQmUoImxhc3RFdmVudC50YXJnZXRUb3VjaGVzLmxlbmd0aCIsIHRhcmdldFRvdWNoQ291
bnQudG9TdHJpbmcoKSk7CisgICAgc2hvdWxkQmUoImxhc3RFdmVudC5wYWdlWCIsICIwIik7Cisg
ICAgc2hvdWxkQmUoImxhc3RFdmVudC5wYWdlWSIsICIwIik7Cit9CisKK2Z1bmN0aW9uIHZlcmlm
eVRvdWNoUG9pbnQobGlzdCwgcG9pbnQsIHgsIHksIGlkKQoreworICAgIHNob3VsZEJlKCJsYXN0
RXZlbnQuIiArIGxpc3QgKyAiWyIgKyBwb2ludCArICJdLnBhZ2VYIiwgeC50b1N0cmluZygpKTsK
KyAgICBzaG91bGRCZSgibGFzdEV2ZW50LiIgKyBsaXN0ICsgIlsiICsgcG9pbnQgKyAiXS5wYWdl
WSIsIHkudG9TdHJpbmcoKSk7CisgICAgc2hvdWxkQmUoImxhc3RFdmVudC4iICsgbGlzdCArICJb
IiArIHBvaW50ICsgIl0uY2xpZW50WCIsIHgudG9TdHJpbmcoKSk7CisgICAgc2hvdWxkQmUoImxh
c3RFdmVudC4iICsgbGlzdCArICJbIiArIHBvaW50ICsgIl0uY2xpZW50WSIsIHkudG9TdHJpbmco
KSk7CisgICAgc2hvdWxkQmUoImxhc3RFdmVudC4iICsgbGlzdCArICJbIiArIHBvaW50ICsgIl0u
aWRlbnRpZmllciIsIGlkLnRvU3RyaW5nKCkpOworfQorCitmdW5jdGlvbiB2ZXJpZnlUb3VjaCh3
aGljaCkgeworICAgIHN3aXRjaCAod2hpY2gpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAg
ICAgdmVyaWZ5VG91Y2hFdmVudCgidG91Y2hzdGFydCIsIDIsIDIsIDIpOworICAgICAgICAgICAg
dmVyaWZ5VG91Y2hQb2ludCgidG91Y2hlcyIsIDAsIDEwLCAxMCwgMCk7CisgICAgICAgICAgICB2
ZXJpZnlUb3VjaFBvaW50KCJ0b3VjaGVzIiwgMSwgMjAsIDMwLCAxKTsKKyAgICAgICAgICAgIHZl
cmlmeVRvdWNoUG9pbnQoImNoYW5nZWRUb3VjaGVzIiwgMCwgMTAsIDEwLCAwKTsKKyAgICAgICAg
ICAgIHZlcmlmeVRvdWNoUG9pbnQoImNoYW5nZWRUb3VjaGVzIiwgMSwgMjAsIDMwLCAxKTsKKyAg
ICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoInRhcmdldFRvdWNoZXMiLCAwLCAxMCwgMTAsIDAp
OworICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgidGFyZ2V0VG91Y2hlcyIsIDEsIDIwLCAz
MCwgMSk7CisgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICB2ZXJp
ZnlUb3VjaEV2ZW50KCJ0b3VjaG1vdmUiLCAyLCAyLCAyKTsKKyAgICAgICAgICAgIHZlcmlmeVRv
dWNoUG9pbnQoInRvdWNoZXMiLCAwLCAxNSwgMTUsIDApOworICAgICAgICAgICAgdmVyaWZ5VG91
Y2hQb2ludCgidG91Y2hlcyIsIDEsIDI1LCAzNSwgMSk7CisgICAgICAgICAgICB2ZXJpZnlUb3Vj
aFBvaW50KCJjaGFuZ2VkVG91Y2hlcyIsIDAsIDE1LCAxNSwgMCk7CisgICAgICAgICAgICB2ZXJp
ZnlUb3VjaFBvaW50KCJjaGFuZ2VkVG91Y2hlcyIsIDEsIDI1LCAzNSwgMSk7CisgICAgICAgICAg
ICB2ZXJpZnlUb3VjaFBvaW50KCJ0YXJnZXRUb3VjaGVzIiwgMCwgMTUsIDE1LCAwKTsKKyAgICAg
ICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoInRhcmdldFRvdWNoZXMiLCAxLCAyNSwgMzUsIDEpOwor
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgdmVyaWZ5VG91Y2hF
dmVudCgidG91Y2hlbmQiLCAwLCAyLCAwKTsKKyAgICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQo
ImNoYW5nZWRUb3VjaGVzIiwgMCwgMTUsIDE1LCAwKTsKKyAgICAgICAgICAgIHZlcmlmeVRvdWNo
UG9pbnQoImNoYW5nZWRUb3VjaGVzIiwgMSwgMjUsIDM1LCAxKTsKKyAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgZGVmYXVsdDogdGVzdEZhaWxlZCgiV3JvbmcgbnVtYmVyIG9mIHRvdWNoIGV2ZW50
cyEgKCIgKyB3aGljaCArICIpIik7CisgICAgfQorfQorCitmdW5jdGlvbiBtdWx0aVRvdWNoU2Vx
dWVuY2UoKQoreworICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoMTAsIDEwKTsKKyAgICBl
dmVudFNlbmRlci5hZGRUb3VjaFBvaW50KDIwLCAzMCk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hT
dGFydCgpOworCisgICAgZXZlbnRTZW5kZXIudXBkYXRlVG91Y2hQb2ludCgwLCAxNSwgMTUpOwor
ICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMSwgMjUsIDM1KTsKKyAgICBldmVudFNl
bmRlci50b3VjaE1vdmUoKTsKKworICAgIGV2ZW50U2VuZGVyLnJlbGVhc2VUb3VjaFBvaW50KDAp
OworICAgIGV2ZW50U2VuZGVyLnJlbGVhc2VUb3VjaFBvaW50KDEpOworICAgIGV2ZW50U2VuZGVy
LnRvdWNoRW5kKCk7Cit9CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0cyBiYXNpYyBtdWx0aSB0b3VjaCBldmVudCBzdXBwb3J0LiBUaGlzIGlz
IGEgbGltaXRlZCB2ZXJzaW9uIG9mIHRlc3QgYmFzaWMtbXVsdGktdG91Y2gtZXZlbnRzLmh0bWwg
dGhhdCBhdm9pZHMgdGhlIHNpdHVhdGlvbiB3aGVyZSBvbmUgdG91Y2ggcG9pbnQgaXMgcmVsZWFz
ZWQgd2hpbGUgYW5vdGhlciBpcyBtYWludGFpbmVkLiIpOworCisgICAgbGFzdEV2ZW50ID0gbnVs
bDsKKyAgICBldmVudFNlbmRlci5jbGVhclRvdWNoUG9pbnRzKCk7CisgICAgbXVsdGlUb3VjaFNl
cXVlbmNlKCk7Cit9IGVsc2UgeworICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgRHVtcFJl
bmRlclRyZWUuICBUYXAgb24gdGhlIGJsdWUgcmVjdCB0byBsb2cuIikKK30KKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9zY3JpcHQtdGVzdHMvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3RzL3RvdWNoLXRhcmdldC1saW1p
dGVkLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2Ny
aXB0LXRlc3RzL3RvdWNoLXRhcmdldC1saW1pdGVkLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEwMyBAQAordmFyIHRhcmdldHNEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
K3RhcmdldHNEaXYuaWQgPSAidGFyZ2V0c0RpdiI7CisKK3ZhciBkaXYxID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7CitkaXYxLmlkID0gInRhcmdldEEiOworZGl2MS5zdHlsZS53aWR0
aCA9ICIxMDBweCI7CitkaXYxLnN0eWxlLmhlaWdodCA9ICIxMDBweCI7CitkaXYxLnN0eWxlLmJh
Y2tncm91bmRDb2xvciA9ICJibHVlIjsKKwordmFyIGRpdjIgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKK2RpdjIuaWQgPSAidGFyZ2V0QiI7CitkaXYyLnN0eWxlLndpZHRoID0gIjEw
MHB4IjsKK2RpdjIuc3R5bGUuaGVpZ2h0ID0gIjEwMHB4IjsKK2RpdjIuc3R5bGUuYmFja2dyb3Vu
ZENvbG9yID0gImdyZWVuIjsKKwordmFyIHRvdWNoU3RhcnRDb3VudCA9IDA7Cit2YXIgdG91Y2hN
b3ZlQ291bnQgPSAwOworCitkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZSh0YXJnZXRzRGl2LCBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpKTsKK3RhcmdldHNEaXYuYXBwZW5kQ2hp
bGQoZGl2MSk7Cit0YXJnZXRzRGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2JyJykpOwordGFyZ2V0c0Rpdi5hcHBlbmRDaGlsZChkaXYyKTsKKworZnVuY3Rpb24gdG91Y2hT
dGFydEhhbmRsZXIoKQoreworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudHlwZScs
ICd0b3VjaHN0YXJ0Jyk7CisgICAgc3dpdGNoICh0b3VjaFN0YXJ0Q291bnQpIHsKKyAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVudC50b3VjaGVz
WzBdLnRhcmdldC5pZCcsIGRpdjEuaWQpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdldmVudC50b3VjaGVzWzFdLnRhcmdldC5pZCcsIGRpdjIuaWQpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygnZXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQnLCBkaXYyLmlkKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudG91Y2hlc1sxXS50YXJnZXQuaWQnLCBkaXYxLmlk
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHRvdWNoU3RhcnRDb3VudCsrOwor
fQorCitmdW5jdGlvbiB0b3VjaE1vdmVIYW5kbGVyKCkKK3sKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2V2ZW50LnR5cGUnLCAndG91Y2htb3ZlJyk7CisgICAgc3dpdGNoICh0b3VjaE1vdmVD
b3VudCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQnLCBkaXYxLmlk
KTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudG91Y2hlc1sxXS50
YXJnZXQuaWQnLCBkaXYyLmlkKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6
CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LnRvdWNoZXNbMF0udGFy
Z2V0LmlkJywgZGl2Mi5pZCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2V2
ZW50LnRvdWNoZXNbMV0udGFyZ2V0LmlkJywgZGl2MS5pZCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICB9CisKKyAgICBpZiAoKyt0b3VjaE1vdmVDb3VudCA9PSAzKQorICAgIHsKKyAgICAgICAg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgIH0KK30K
KworZGl2MS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgdG91Y2hTdGFydEhhbmRsZXIs
IGZhbHNlKTsKK2RpdjEuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIiwgdG91Y2hNb3ZlSGFu
ZGxlciwgZmFsc2UpOworCitkaXYyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCB0b3Vj
aFN0YXJ0SGFuZGxlciwgZmFsc2UpOworZGl2Mi5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUi
LCB0b3VjaE1vdmVIYW5kbGVyLCBmYWxzZSk7CisKK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRo
ZSB0YXJnZXQgb2YgdG91Y2hlcyBtYXRjaCB0aGUgZWxlbWVudCB3aGVyZSB0aGUgZXZlbnQgb3Jp
Z2luYXRlZCwgbm90IHdoZXJlIHRoZSB0b3VjaCBpcyBjdXJyZW50bHkgb2NjdXJyaW5nLiBUaGlz
IGlzIGEgbGltaXRlZCB2ZXJzaW9uIG9mIHRlc3QgdG91Y2gtdGFyZ2V0Lmh0bWwgdGhhdCBhdm9p
ZHMgdGhlIHNpdHVhdGlvbiB3aGVyZSBvbmUgdG91Y2ggcG9pbnQgaXMgcmVsZWFzZWQgd2hpbGUg
YW5vdGhlciBpcyBtYWludGFpbmVkLiIpOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitp
ZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZXZlbnRTZW5kZXIuY2xlYXJUb3VjaFBvaW50
cygpOworICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoNTAsIDE1MCk7CisgICAgZXZlbnRT
ZW5kZXIuYWRkVG91Y2hQb2ludCg1MCwgMjUwKTsKKyAgICBldmVudFNlbmRlci50b3VjaFN0YXJ0
KCk7CisKKyAgICBldmVudFNlbmRlci51cGRhdGVUb3VjaFBvaW50KDAsIDUwLCAyNTApOworICAg
IGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMSwgNTAsIDE1MCk7CisgICAgZXZlbnRTZW5k
ZXIudG91Y2hNb3ZlKCk7CisKKyAgICBldmVudFNlbmRlci51cGRhdGVUb3VjaFBvaW50KDAsIDEw
MDAsIDEwMDApOworICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMSwgMTAwMCwgMTAw
MCk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hNb3ZlKCk7CisKKyAgICBldmVudFNlbmRlci5yZWxl
YXNlVG91Y2hQb2ludCgwKTsKKyAgICBldmVudFNlbmRlci5yZWxlYXNlVG91Y2hQb2ludCgxKTsK
KyAgICBldmVudFNlbmRlci50b3VjaEVuZCgpOworCisgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQ
b2ludCg1MCwgMjUwKTsKKyAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KDUwLCAxNTApOwor
ICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKworICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRv
dWNoUG9pbnQoMCwgNTAwLCA1MDApOworICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQo
MSwgNTAwLCA1MDApOworICAgIGV2ZW50U2VuZGVyLnRvdWNoTW92ZSgpOworfSBlbHNlCisgICAg
ZGVidWcoJ1RoaXMgdGVzdCByZXF1aXJlcyBEUlQuJyk7CisK
</data>
<flag name="review"
          id="58524"
          type_id="1"
          status="-"
          setter="steveblock"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68972</attachid>
            <date>2010-09-27 15:24:56 -0700</date>
            <delta_ts>2010-09-28 02:26:44 -0700</delta_ts>
            <desc>Updated the expected result files.</desc>
            <filename>android-multi-touch.patch5</filename>
            <type>text/plain</type>
            <size>21819</size>
            <attacher name="Harry Wu">mediadependent</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODI5MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDktMjQgIEh1YWh1aSBXdSAgPG1lZGlhZGVwZW5kZW50QGdt
YWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgbXVsdGktdG91Y2ggZm9yIEFuZHJvaWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTIyMQorCisgICAgICAgIFRoZSBBbmRyb2lkIHRvdWNo
IGV2ZW50IHVzZWQgdG8gdGFrZSBvbmUgcG9pbnQgYXMgdGhlIHRvdWNoIHBvaW50LAorICAgICAg
ICBpdCdzIG5vdyBjaGFuZ2VkIHRvIGEgdmVjdG9yIG9mIHBvaW50cyB0byBzdXBwb3J0IG11bHRp
LXRvdWNoLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10
b3VjaC1ldmVudHMtbGltaXRlZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy90b3Vj
aC90b3VjaC10YXJnZXQtbGltaXRlZC5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9y
bVRvdWNoRXZlbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hFdmVudEFuZHJvaWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Ub3VjaEV2ZW50OjpQbGF0Zm9ybVRvdWNoRXZl
bnQpOgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaFBvaW50QW5kcm9p
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoUG9pbnQ6OlBsYXRmb3JtVG91
Y2hQb2ludCk6CisKIDIwMTAtMDktMjQgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtVG91Y2hFdmVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1Ub3VjaEV2ZW50LmgJKHJldmlzaW9uIDY4MjA5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVRvdWNoRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsNyBAQCBwdWJs
aWM6CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgUGxhdGZvcm1Ub3VjaEV2ZW50KFFUb3VjaEV2ZW50
Kik7CiAjZWxpZiBQTEFURk9STShBTkRST0lEKQotICAgIFBsYXRmb3JtVG91Y2hFdmVudChjb25z
dCBJbnRQb2ludCYgd2luZG93UG9zLCBUb3VjaEV2ZW50VHlwZSwgUGxhdGZvcm1Ub3VjaFBvaW50
OjpTdGF0ZSwgaW50IG1ldGFTdGF0ZSk7CisgICAgUGxhdGZvcm1Ub3VjaEV2ZW50KGNvbnN0IFZl
Y3RvcjxJbnRQb2ludD4mLCBUb3VjaEV2ZW50VHlwZSwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0
ZSwgaW50IG1ldGFTdGF0ZSk7CiAjZWxpZiBQTEFURk9STShCUkVXTVApCiAgICAgUGxhdGZvcm1U
b3VjaEV2ZW50KEFFRUV2ZW50LCB1aW50MTYgd1BhcmFtLCB1aW50MzIgZHdQYXJhbSk7CiAjZW5k
aWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaAkocmV2aXNpb24gNjgy
MDkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hQb2ludC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybVRvdWNoUG9pbnQoY29u
c3QgUVRvdWNoRXZlbnQ6OlRvdWNoUG9pbnQmKTsKICAgICBQbGF0Zm9ybVRvdWNoUG9pbnQoKSB7
fTsKICNlbGlmIFBMQVRGT1JNKEFORFJPSUQpCi0gICAgUGxhdGZvcm1Ub3VjaFBvaW50KGNvbnN0
IEludFBvaW50JiB3aW5kb3dQb3MsIFN0YXRlKTsKKyAgICBQbGF0Zm9ybVRvdWNoUG9pbnQodW5z
aWduZWQgaWQsIGNvbnN0IEludFBvaW50JiB3aW5kb3dQb3MsIFN0YXRlKTsKICNlbGlmIFBMQVRG
T1JNKEJSRVdNUCkKICAgICBQbGF0Zm9ybVRvdWNoUG9pbnQoaW50IGlkLCBjb25zdCBJbnRQb2lu
dCYgd2luZG93UG9zLCBTdGF0ZSk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vYW5k
cm9pZC9QbGF0Zm9ybVRvdWNoRXZlbnRBbmRyb2lkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaEV2ZW50QW5kcm9pZC5jcHAJKHJldmlzaW9u
IDY4MjA5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hFdmVudEFu
ZHJvaWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMSArMzcsMTMgQEAgZW51bSBBbmRyb2lk
TWV0YUtleVN0YXRlIHsKICAgICBNRVRBX1NZTV9PTiA9IDB4MDQKIH07CiAKLVBsYXRmb3JtVG91
Y2hFdmVudDo6UGxhdGZvcm1Ub3VjaEV2ZW50KGNvbnN0IEludFBvaW50JiB3aW5kb3dQb3MsIFRv
dWNoRXZlbnRUeXBlIHR5cGUsIFBsYXRmb3JtVG91Y2hQb2ludDo6U3RhdGUgc3RhdGUsIGludCBt
ZXRhU3RhdGUpCitQbGF0Zm9ybVRvdWNoRXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVudChjb25zdCBW
ZWN0b3I8SW50UG9pbnQ+JiB3aW5kb3dQb2ludHMsIFRvdWNoRXZlbnRUeXBlIHR5cGUsIFBsYXRm
b3JtVG91Y2hQb2ludDo6U3RhdGUgc3RhdGUsIGludCBtZXRhU3RhdGUpCiAgICAgOiBtX3R5cGUo
dHlwZSkKICAgICAsIG1fbWV0YUtleShmYWxzZSkKIHsKLSAgICBtX3RvdWNoUG9pbnRzLmFwcGVu
ZChQbGF0Zm9ybVRvdWNoUG9pbnQod2luZG93UG9zLCBzdGF0ZSkpOworICAgIG1fdG91Y2hQb2lu
dHMucmVzZXJ2ZUNhcGFjaXR5KHdpbmRvd1BvaW50cy5zaXplKCkpOworICAgIGZvciAodW5zaWdu
ZWQgYyA9IDA7IGMgPCB3aW5kb3dQb2ludHMuc2l6ZSgpOyBjKyspCisgICAgICAgIG1fdG91Y2hQ
b2ludHMuYXBwZW5kKFBsYXRmb3JtVG91Y2hQb2ludCh3aW5kb3dQb3MsIHN0YXRlKSk7CiAKICAg
ICBtX2FsdEtleSA9IG1ldGFTdGF0ZSAmIE1FVEFfQUxUX09OOwogICAgIG1fc2hpZnRLZXkgPSBt
ZXRhU3RhdGUgJiBNRVRBX1NISUZUX09OOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lk
L1BsYXRmb3JtVG91Y2hQb2ludEFuZHJvaWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vYW5kcm9pZC9QbGF0Zm9ybVRvdWNoUG9pbnRBbmRyb2lkLmNwcAkocmV2aXNpb24gNjgy
MDkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaFBvaW50QW5kcm9p
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1QbGF0Zm9ybVRvdWNoUG9pbnQ6OlBsYXRmb3JtVG91Y2hQb2ludChjb25zdCBJbnRQ
b2ludCYgd2luZG93UG9zLCBTdGF0ZSBzdGF0ZSkKLSAgICA6IG1faWQoMCkKK1BsYXRmb3JtVG91
Y2hQb2ludDo6UGxhdGZvcm1Ub3VjaFBvaW50KHVuc2lnbmVkIGlkLCBjb25zdCBJbnRQb2ludCYg
d2luZG93UG9zLCBTdGF0ZSBzdGF0ZSkKKyAgICA6IG1faWQoaWQpCiAgICAgLCBtX3N0YXRlKHN0
YXRlKQogICAgICwgbV9zY3JlZW5Qb3Mod2luZG93UG9zKQogICAgICwgbV9wb3Mod2luZG93UG9z
KSB7IH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4MjkxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMDktMjQgIEh1YWh1aSBXdSAg
PG1lZGlhZGVwZW5kZW50QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgdHdvIG11bHRpLXRvdWNoIHRlc3RzIGZvciBBbmRyb2lk
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUyMjEK
KworICAgICAgICBUaGUgb3JpZ2luYWwgdGVzdHMgKHRvdWNoLXRhcmdldC5odG1sIGFuZCBiYXNp
Yy1tdWx0aS10b3VjaC1ldmVudHMuaHRtbCkKKyAgICAgICAgcmVxdWlyZXMgdGhlIHN5c3RlbSBi
ZWluZyBhYmxlIHRvIHJlbGVhc2Ugb25lIHBvaW50IHdoaWxlIG1haW50YWluIGFub3RoZXIgcG9p
bnQuCisgICAgICAgIEN1cnJlbnQgQW5kcm9pZCBzeXN0ZW0gY2FuIG5vdCBwcm92aWRlIHRoaXMg
dG8gYnJvd3NlciwgaGVuY2UgdGhlc2UgdGVzdHMgYXJlCisgICAgICAgIHNsaWdodGx5IG1vZGlm
aWVkIGZvciBBbmRyb2lkLiBTaW5jZSB0aGVzZSBhcmUgbGltaXRlZCB2ZXJzaW9uIG9mIHRoZSBv
cmlnaW5hbCBvbmVzLAorICAgICAgICBvdGhlciBwbGF0Zm9ybXMgc2hvdWxkIHBhc3MgdGhlc2Ug
dGVzdHMgaWYgdGhleSBjYW4gcGFzcyB0aGUgb3JpZ2luYWwgb25lcy4KKworICAgICAgICAqIGZh
c3QvZXZlbnRzL3RvdWNoL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1saW1pdGVkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvYmFzaWMtbXVsdGktdG91
Y2gtZXZlbnRzLWxpbWl0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91
Y2gvc2NyaXB0LXRlc3RzL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1saW1pdGVkLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHRvdWNoRXZlbnRDYWxsYmFjayk6CisgICAgICAgICh2ZXJpZnlUb3VjaEV2
ZW50KToKKyAgICAgICAgKHZlcmlmeVRvdWNoUG9pbnQpOgorICAgICAgICAodmVyaWZ5VG91Y2gp
OgorICAgICAgICAobXVsdGlUb3VjaFNlcXVlbmNlKToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90
b3VjaC9zY3JpcHQtdGVzdHMvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQuanM6IEFkZGVkLgorICAgICAg
ICAodG91Y2hTdGFydEhhbmRsZXIpOgorICAgICAgICAodG91Y2hNb3ZlSGFuZGxlcik6CisgICAg
ICAgICogZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQtbGltaXRl
ZC5odG1sOiBBZGRlZC4KKwogMjAxMC0wOS0yNCAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNv
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkOyBuZXcgdGVzdCBiYXNlbGluZXMg
YW5kIHRlc3RfZXhwZWN0YXRpb25zIHVwZGF0ZS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2Jhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy1saW1pdGVkLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10
b3VjaC1ldmVudHMtbGltaXRlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10b3VjaC1ldmVudHMtbGltaXRlZC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTcgQEAKK1RoaXMgdGVzdHMgYmFz
aWMgbXVsdGkgdG91Y2ggZXZlbnQgc3VwcG9ydC4gVGhpcyBpcyBhIGxpbWl0ZWQgdmVyc2lvbiBv
ZiB0ZXN0IGJhc2ljLW11bHRpLXRvdWNoLWV2ZW50cy5odG1sIHRoYXQgYXZvaWRzIHRoZSBzaXR1
YXRpb24gd2hlcmUgb25lIHRvdWNoIHBvaW50IGlzIHJlbGVhc2VkIHdoaWxlIGFub3RoZXIgaXMg
bWFpbnRhaW5lZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbGFzdEV2
ZW50LnR5cGUgaXMgInRvdWNoc3RhcnQiCitQQVNTIGxhc3RFdmVudC50b3VjaGVzLmxlbmd0aCBp
cyAyCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggaXMgMgorUEFTUyBsYXN0
RXZlbnQudGFyZ2V0VG91Y2hlcy5sZW5ndGggaXMgMgorUEFTUyBsYXN0RXZlbnQucGFnZVggaXMg
MAorUEFTUyBsYXN0RXZlbnQucGFnZVkgaXMgMAorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5w
YWdlWCBpcyAxMAorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1swXS5wYWdlWSBpcyAxMAorUEFTUyBs
YXN0RXZlbnQudG91Y2hlc1swXS5jbGllbnRYIGlzIDEwCitQQVNTIGxhc3RFdmVudC50b3VjaGVz
WzBdLmNsaWVudFkgaXMgMTAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0uaWRlbnRpZmllciBp
cyAwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLnBhZ2VYIGlzIDIwCitQQVNTIGxhc3RFdmVu
dC50b3VjaGVzWzFdLnBhZ2VZIGlzIDMwCitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLmNsaWVu
dFggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0uY2xpZW50WSBpcyAzMAorUEFTUyBs
YXN0RXZlbnQudG91Y2hlc1sxXS5pZGVudGlmaWVyIGlzIDEKK1BBU1MgbGFzdEV2ZW50LmNoYW5n
ZWRUb3VjaGVzWzBdLnBhZ2VYIGlzIDEwCitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sw
XS5wYWdlWSBpcyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCBp
cyAxMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSBpcyAxMAorUEFT
UyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uaWRlbnRpZmllciBpcyAwCitQQVNTIGxhc3RF
dmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5wYWdlWCBpcyAyMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdl
ZFRvdWNoZXNbMV0ucGFnZVkgaXMgMzAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzFd
LmNsaWVudFggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzFdLmNsaWVudFkg
aXMgMzAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzFdLmlkZW50aWZpZXIgaXMgMQor
UEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1swXS5wYWdlWCBpcyAxMAorUEFTUyBsYXN0RXZl
bnQudGFyZ2V0VG91Y2hlc1swXS5wYWdlWSBpcyAxMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91
Y2hlc1swXS5jbGllbnRYIGlzIDEwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLmNs
aWVudFkgaXMgMTAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMF0uaWRlbnRpZmllciBp
cyAwCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLnBhZ2VYIGlzIDIwCitQQVNTIGxh
c3RFdmVudC50YXJnZXRUb3VjaGVzWzFdLnBhZ2VZIGlzIDMwCitQQVNTIGxhc3RFdmVudC50YXJn
ZXRUb3VjaGVzWzFdLmNsaWVudFggaXMgMjAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNb
MV0uY2xpZW50WSBpcyAzMAorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hlc1sxXS5pZGVudGlm
aWVyIGlzIDEKK1BBU1MgbGFzdEV2ZW50LnR5cGUgaXMgInRvdWNobW92ZSIKK1BBU1MgbGFzdEV2
ZW50LnRvdWNoZXMubGVuZ3RoIGlzIDIKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxl
bmd0aCBpcyAyCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzLmxlbmd0aCBpcyAyCitQQVNT
IGxhc3RFdmVudC5wYWdlWCBpcyAwCitQQVNTIGxhc3RFdmVudC5wYWdlWSBpcyAwCitQQVNTIGxh
c3RFdmVudC50b3VjaGVzWzBdLnBhZ2VYIGlzIDE1CitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBd
LnBhZ2VZIGlzIDE1CitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzBdLmNsaWVudFggaXMgMTUKK1BB
U1MgbGFzdEV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WSBpcyAxNQorUEFTUyBsYXN0RXZlbnQudG91
Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0ucGFnZVgg
aXMgMjUKK1BBU1MgbGFzdEV2ZW50LnRvdWNoZXNbMV0ucGFnZVkgaXMgMzUKK1BBU1MgbGFzdEV2
ZW50LnRvdWNoZXNbMV0uY2xpZW50WCBpcyAyNQorUEFTUyBsYXN0RXZlbnQudG91Y2hlc1sxXS5j
bGllbnRZIGlzIDM1CitQQVNTIGxhc3RFdmVudC50b3VjaGVzWzFdLmlkZW50aWZpZXIgaXMgMQor
UEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVggaXMgMTUKK1BBU1MgbGFzdEV2
ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZIGlzIDE1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2Vk
VG91Y2hlc1swXS5jbGllbnRYIGlzIDE1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sw
XS5jbGllbnRZIGlzIDE1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlm
aWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzFdLnBhZ2VYIGlzIDI1CitQ
QVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5wYWdlWSBpcyAzNQorUEFTUyBsYXN0RXZl
bnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50WCBpcyAyNQorUEFTUyBsYXN0RXZlbnQuY2hhbmdl
ZFRvdWNoZXNbMV0uY2xpZW50WSBpcyAzNQorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNb
MV0uaWRlbnRpZmllciBpcyAxCitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLnBhZ2VY
IGlzIDE1CitQQVNTIGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLnBhZ2VZIGlzIDE1CitQQVNT
IGxhc3RFdmVudC50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFggaXMgMTUKK1BBU1MgbGFzdEV2ZW50
LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WSBpcyAxNQorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91
Y2hlc1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMV0u
cGFnZVggaXMgMjUKK1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMV0ucGFnZVkgaXMgMzUK
K1BBU1MgbGFzdEV2ZW50LnRhcmdldFRvdWNoZXNbMV0uY2xpZW50WCBpcyAyNQorUEFTUyBsYXN0
RXZlbnQudGFyZ2V0VG91Y2hlc1sxXS5jbGllbnRZIGlzIDM1CitQQVNTIGxhc3RFdmVudC50YXJn
ZXRUb3VjaGVzWzFdLmlkZW50aWZpZXIgaXMgMQorUEFTUyBsYXN0RXZlbnQudHlwZSBpcyAidG91
Y2hlbmQiCitQQVNTIGxhc3RFdmVudC50b3VjaGVzLmxlbmd0aCBpcyAwCitQQVNTIGxhc3RFdmVu
dC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggaXMgMgorUEFTUyBsYXN0RXZlbnQudGFyZ2V0VG91Y2hl
cy5sZW5ndGggaXMgMAorUEFTUyBsYXN0RXZlbnQucGFnZVggaXMgMAorUEFTUyBsYXN0RXZlbnQu
cGFnZVkgaXMgMAorUEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVggaXMgMTUK
K1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZIGlzIDE1CitQQVNTIGxhc3RF
dmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYIGlzIDE1CitQQVNTIGxhc3RFdmVudC5jaGFu
Z2VkVG91Y2hlc1swXS5jbGllbnRZIGlzIDE1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hl
c1swXS5pZGVudGlmaWVyIGlzIDAKK1BBU1MgbGFzdEV2ZW50LmNoYW5nZWRUb3VjaGVzWzFdLnBh
Z2VYIGlzIDI1CitQQVNTIGxhc3RFdmVudC5jaGFuZ2VkVG91Y2hlc1sxXS5wYWdlWSBpcyAzNQor
UEFTUyBsYXN0RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50WCBpcyAyNQorUEFTUyBsYXN0
RXZlbnQuY2hhbmdlZFRvdWNoZXNbMV0uY2xpZW50WSBpcyAzNQorUEFTUyBsYXN0RXZlbnQuY2hh
bmdlZFRvdWNoZXNbMV0uaWRlbnRpZmllciBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvYmFzaWMtbXVsdGktdG91Y2gtZXZlbnRzLWxpbWl0ZWQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1tdWx0aS10b3VjaC1ldmVudHMt
bGltaXRlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvYmFzaWMtbXVsdGktdG91Y2gtZXZlbnRzLWxpbWl0ZWQuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPCEtLQorICBU
b3VjaCB0ZXN0cyB0aGF0IGludm9sdmUgdGhlIG9udG91Y2hzdGFydCwgb250b3VjaG1vdmUsIG9u
dG91Y2hlbmQgb3Igb250b3VjaGNhbmNlbCBjYWxsYmFja3MKKyAgc2hvdWxkIGJlIHdyaXR0ZW4g
aW4gYW4gYXN5bmNocm9ub3VzIGZhc2hpb24gc28gdGhleSBjYW4gYmUgcnVuIG9uIG1vYmlsZSBw
bGF0Zm9ybXMgbGlrZSBBbmRyb2lkLgorICBUaGlzIHRlbXBsYXRlIHdpbGwgZ2VuZXJhdGUgYW4g
YXN5bmNocm9ub3VzIHN0eWxlIHRlc3QgYnkgdXNpbmcgdGhlIGpzLXRlc3QtcG9zdC1mdW5jdGlv
biBzY3JpcHQuCisgIFlvdSB3aWxsIG5lZWQgdG8gaW52b2tlIGlzU3VjY2Vzc2Z1bGx5UGFyc2Vk
KCkgaW4geW91ciB0ZXN0IHNjcmlwdCB3aGVuIHRoZSB0ZXN0IGNvbXBsZXRlcy4KKy0tPgorPC9o
ZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9iYXNpYy1tdWx0aS10b3VjaC1ldmVu
dHMtbGltaXRlZC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC90b3VjaC10YXJnZXQtbGltaXRlZC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtdGFyZ2V0
LWxpbWl0ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDI1IEBACitUZXN0cyB0aGF0IHRoZSB0YXJnZXQgb2YgdG91Y2hlcyBtYXRj
aCB0aGUgZWxlbWVudCB3aGVyZSB0aGUgZXZlbnQgb3JpZ2luYXRlZCwgbm90IHdoZXJlIHRoZSB0
b3VjaCBpcyBjdXJyZW50bHkgb2NjdXJyaW5nLiBUaGlzIGlzIGEgbGltaXRlZCB2ZXJzaW9uIG9m
IHRlc3QgdG91Y2gtdGFyZ2V0Lmh0bWwgdGhhdCBhdm9pZHMgdGhlIHNpdHVhdGlvbiB3aGVyZSBv
bmUgdG91Y2ggcG9pbnQgaXMgcmVsZWFzZWQgd2hpbGUgYW5vdGhlciBpcyBtYWludGFpbmVkLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitQQVNTIGV2ZW50LnR5cGUgaXMgInRv
dWNoc3RhcnQiCitQQVNTIGV2ZW50LnRvdWNoZXNbMF0udGFyZ2V0LmlkIGlzICJ0YXJnZXRBIgor
UEFTUyBldmVudC50b3VjaGVzWzFdLnRhcmdldC5pZCBpcyAidGFyZ2V0QiIKK1BBU1MgZXZlbnQu
dHlwZSBpcyAidG91Y2htb3ZlIgorUEFTUyBldmVudC50b3VjaGVzWzBdLnRhcmdldC5pZCBpcyAi
dGFyZ2V0QSIKK1BBU1MgZXZlbnQudG91Y2hlc1sxXS50YXJnZXQuaWQgaXMgInRhcmdldEIiCitQ
QVNTIGV2ZW50LnR5cGUgaXMgInRvdWNobW92ZSIKK1BBU1MgZXZlbnQudG91Y2hlc1swXS50YXJn
ZXQuaWQgaXMgInRhcmdldEEiCitQQVNTIGV2ZW50LnRvdWNoZXNbMV0udGFyZ2V0LmlkIGlzICJ0
YXJnZXRCIgorUEFTUyBldmVudC50eXBlIGlzICJ0b3VjaHN0YXJ0IgorUEFTUyBldmVudC50b3Vj
aGVzWzBdLnRhcmdldC5pZCBpcyAidGFyZ2V0QiIKK1BBU1MgZXZlbnQudG91Y2hlc1sxXS50YXJn
ZXQuaWQgaXMgInRhcmdldEEiCitQQVNTIGV2ZW50LnR5cGUgaXMgInRvdWNobW92ZSIKK1BBU1Mg
ZXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQgaXMgInRhcmdldEIiCitQQVNTIGV2ZW50LnRvdWNo
ZXNbMV0udGFyZ2V0LmlkIGlzICJ0YXJnZXRBIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL3RvdWNoLXRhcmdldC1saW1pdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLXRhcmdldC1saW1pdGVkLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48
L3NjcmlwdD4KKzwhLS0KKyAgVG91Y2ggdGVzdHMgdGhhdCBpbnZvbHZlIHRoZSBvbnRvdWNoc3Rh
cnQsIG9udG91Y2htb3ZlLCBvbnRvdWNoZW5kIG9yIG9udG91Y2hjYW5jZWwgY2FsbGJhY2tzCisg
IHNob3VsZCBiZSB3cml0dGVuIGluIGFuIGFzeW5jaHJvbm91cyBmYXNoaW9uIHNvIHRoZXkgY2Fu
IGJlIHJ1biBvbiBtb2JpbGUgcGxhdGZvcm1zIGxpa2UgQW5kcm9pZC4KKyAgVGhpcyB0ZW1wbGF0
ZSB3aWxsIGdlbmVyYXRlIGFuIGFzeW5jaHJvbm91cyBzdHlsZSB0ZXN0IGJ5IHVzaW5nIHRoZSBq
cy10ZXN0LXBvc3QtZnVuY3Rpb24gc2NyaXB0LgorICBZb3Ugd2lsbCBuZWVkIHRvIGludm9rZSBp
c1N1Y2Nlc3NmdWxseVBhcnNlZCgpIGluIHlvdXIgdGVzdCBzY3JpcHQgd2hlbiB0aGUgdGVzdCBj
b21wbGV0ZXMuCistLT4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvdG91
Y2gtdGFyZ2V0LWxpbWl0ZWQuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3RzL2Jhc2ljLW11bHRpLXRv
dWNoLWV2ZW50cy1saW1pdGVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL3NjcmlwdC10ZXN0cy9iYXNpYy1tdWx0aS10b3VjaC1ldmVudHMtbGltaXRlZC5q
cwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10
ZXN0cy9iYXNpYy1tdWx0aS10b3VjaC1ldmVudHMtbGltaXRlZC5qcwkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMDggQEAKK3ZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
K2Rpdi5pZCA9ICJ0b3VjaHRhcmdldCI7CitkaXYuc3R5bGUud2lkdGggPSAiMTAwcHgiOworZGl2
LnN0eWxlLmhlaWdodCA9ICIxMDBweCI7CitkaXYuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gImJs
dWUiOworCit2YXIgbGFzdEV2ZW50ID0gbnVsbDsKK3ZhciB0b3VjaEV2ZW50c1JlY2VpdmVkID0g
MDsKK3ZhciBFWFBFQ1RFRF9UT1VDSF9FVkVOVFNfVE9UQUwgPSAzOworCitmdW5jdGlvbiB0b3Vj
aEV2ZW50Q2FsbGJhY2soKSB7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAg
ICBsYXN0RXZlbnQgPSBldmVudDsKKyAgICAgICAgdmVyaWZ5VG91Y2godG91Y2hFdmVudHNSZWNl
aXZlZCsrKTsKKyAgICB9IGVsc2UgeworICAgICAgICBkZWJ1ZyhldmVudC50eXBlKTsKKyAgICB9
CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyICYmIHRvdWNoRXZlbnRzUmVj
ZWl2ZWQgPT0gRVhQRUNURURfVE9VQ0hfRVZFTlRTX1RPVEFMKSB7CisgICAgICAgIC8vIElmIHdl
J3ZlIGdvdCBoZXJlLCB3ZSBjYW4gc2FmZWx5IHNheSB3ZSB3ZXJlIHN1Y2Nlc3NmdWxseSBwYXJz
ZWQgOikgV2UgbmVlZCB0bworICAgICAgICAvLyBjYWxsIHRoZSBpc1N1Y2NjZXNzZnVsbHlQYXJz
ZWQgZnVuY3Rpb24gdG8gb3V0cHV0IHRoZSBjb3JyZWN0IFRFU1QgQ09NUExFVEUKKyAgICAgICAg
Ly8gZm9vdGVyIG1lc3NhZ2UuCisgICAgICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cisg
ICAgICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CisKK2Rpdi5hZGRFdmVudExpc3RlbmVyKCJ0b3Vj
aHN0YXJ0IiwgdG91Y2hFdmVudENhbGxiYWNrLCBmYWxzZSk7CitkaXYuYWRkRXZlbnRMaXN0ZW5l
cigidG91Y2htb3ZlIiwgdG91Y2hFdmVudENhbGxiYWNrLCBmYWxzZSk7CitkaXYuYWRkRXZlbnRM
aXN0ZW5lcigidG91Y2hlbmQiLCB0b3VjaEV2ZW50Q2FsbGJhY2ssIGZhbHNlKTsKK2RvY3VtZW50
LmJvZHkuaW5zZXJ0QmVmb3JlKGRpdiwgZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKTsKKworZnVu
Y3Rpb24gdmVyaWZ5VG91Y2hFdmVudCh0eXBlLCB0b3RhbFRvdWNoQ291bnQsIGNoYW5nZWRUb3Vj
aENvdW50LCB0YXJnZXRUb3VjaENvdW50KQoreworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
bGFzdEV2ZW50LnR5cGUiLCB0eXBlKTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50LnRvdWNoZXMu
bGVuZ3RoIiwgdG90YWxUb3VjaENvdW50LnRvU3RyaW5nKCkpOworICAgIHNob3VsZEJlKCJsYXN0
RXZlbnQuY2hhbmdlZFRvdWNoZXMubGVuZ3RoIiwgY2hhbmdlZFRvdWNoQ291bnQudG9TdHJpbmco
KSk7CisgICAgc2hvdWxkQmUoImxhc3RFdmVudC50YXJnZXRUb3VjaGVzLmxlbmd0aCIsIHRhcmdl
dFRvdWNoQ291bnQudG9TdHJpbmcoKSk7CisgICAgc2hvdWxkQmUoImxhc3RFdmVudC5wYWdlWCIs
ICIwIik7CisgICAgc2hvdWxkQmUoImxhc3RFdmVudC5wYWdlWSIsICIwIik7Cit9CisKK2Z1bmN0
aW9uIHZlcmlmeVRvdWNoUG9pbnQobGlzdCwgcG9pbnQsIHgsIHksIGlkKQoreworICAgIHNob3Vs
ZEJlKCJsYXN0RXZlbnQuIiArIGxpc3QgKyAiWyIgKyBwb2ludCArICJdLnBhZ2VYIiwgeC50b1N0
cmluZygpKTsKKyAgICBzaG91bGRCZSgibGFzdEV2ZW50LiIgKyBsaXN0ICsgIlsiICsgcG9pbnQg
KyAiXS5wYWdlWSIsIHkudG9TdHJpbmcoKSk7CisgICAgc2hvdWxkQmUoImxhc3RFdmVudC4iICsg
bGlzdCArICJbIiArIHBvaW50ICsgIl0uY2xpZW50WCIsIHgudG9TdHJpbmcoKSk7CisgICAgc2hv
dWxkQmUoImxhc3RFdmVudC4iICsgbGlzdCArICJbIiArIHBvaW50ICsgIl0uY2xpZW50WSIsIHku
dG9TdHJpbmcoKSk7CisgICAgc2hvdWxkQmUoImxhc3RFdmVudC4iICsgbGlzdCArICJbIiArIHBv
aW50ICsgIl0uaWRlbnRpZmllciIsIGlkLnRvU3RyaW5nKCkpOworfQorCitmdW5jdGlvbiB2ZXJp
ZnlUb3VjaCh3aGljaCkgeworICAgIHN3aXRjaCAod2hpY2gpIHsKKyAgICAgICAgY2FzZSAwOgor
ICAgICAgICAgICAgdmVyaWZ5VG91Y2hFdmVudCgidG91Y2hzdGFydCIsIDIsIDIsIDIpOworICAg
ICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgidG91Y2hlcyIsIDAsIDEwLCAxMCwgMCk7CisgICAg
ICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0b3VjaGVzIiwgMSwgMjAsIDMwLCAxKTsKKyAgICAg
ICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoImNoYW5nZWRUb3VjaGVzIiwgMCwgMTAsIDEwLCAwKTsK
KyAgICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoImNoYW5nZWRUb3VjaGVzIiwgMSwgMjAsIDMw
LCAxKTsKKyAgICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoInRhcmdldFRvdWNoZXMiLCAwLCAx
MCwgMTAsIDApOworICAgICAgICAgICAgdmVyaWZ5VG91Y2hQb2ludCgidGFyZ2V0VG91Y2hlcyIs
IDEsIDIwLCAzMCwgMSk7CisgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAg
ICAgICB2ZXJpZnlUb3VjaEV2ZW50KCJ0b3VjaG1vdmUiLCAyLCAyLCAyKTsKKyAgICAgICAgICAg
IHZlcmlmeVRvdWNoUG9pbnQoInRvdWNoZXMiLCAwLCAxNSwgMTUsIDApOworICAgICAgICAgICAg
dmVyaWZ5VG91Y2hQb2ludCgidG91Y2hlcyIsIDEsIDI1LCAzNSwgMSk7CisgICAgICAgICAgICB2
ZXJpZnlUb3VjaFBvaW50KCJjaGFuZ2VkVG91Y2hlcyIsIDAsIDE1LCAxNSwgMCk7CisgICAgICAg
ICAgICB2ZXJpZnlUb3VjaFBvaW50KCJjaGFuZ2VkVG91Y2hlcyIsIDEsIDI1LCAzNSwgMSk7Cisg
ICAgICAgICAgICB2ZXJpZnlUb3VjaFBvaW50KCJ0YXJnZXRUb3VjaGVzIiwgMCwgMTUsIDE1LCAw
KTsKKyAgICAgICAgICAgIHZlcmlmeVRvdWNoUG9pbnQoInRhcmdldFRvdWNoZXMiLCAxLCAyNSwg
MzUsIDEpOworICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgdmVy
aWZ5VG91Y2hFdmVudCgidG91Y2hlbmQiLCAwLCAyLCAwKTsKKyAgICAgICAgICAgIHZlcmlmeVRv
dWNoUG9pbnQoImNoYW5nZWRUb3VjaGVzIiwgMCwgMTUsIDE1LCAwKTsKKyAgICAgICAgICAgIHZl
cmlmeVRvdWNoUG9pbnQoImNoYW5nZWRUb3VjaGVzIiwgMSwgMjUsIDM1LCAxKTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDogdGVzdEZhaWxlZCgiV3JvbmcgbnVtYmVyIG9mIHRv
dWNoIGV2ZW50cyEgKCIgKyB3aGljaCArICIpIik7CisgICAgfQorfQorCitmdW5jdGlvbiBtdWx0
aVRvdWNoU2VxdWVuY2UoKQoreworICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoMTAsIDEw
KTsKKyAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KDIwLCAzMCk7CisgICAgZXZlbnRTZW5k
ZXIudG91Y2hTdGFydCgpOworCisgICAgZXZlbnRTZW5kZXIudXBkYXRlVG91Y2hQb2ludCgwLCAx
NSwgMTUpOworICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMSwgMjUsIDM1KTsKKyAg
ICBldmVudFNlbmRlci50b3VjaE1vdmUoKTsKKworICAgIGV2ZW50U2VuZGVyLnJlbGVhc2VUb3Vj
aFBvaW50KDApOworICAgIGV2ZW50U2VuZGVyLnJlbGVhc2VUb3VjaFBvaW50KDEpOworICAgIGV2
ZW50U2VuZGVyLnRvdWNoRW5kKCk7Cit9CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAg
ICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBiYXNpYyBtdWx0aSB0b3VjaCBldmVudCBzdXBwb3J0
LiBUaGlzIGlzIGEgbGltaXRlZCB2ZXJzaW9uIG9mIHRlc3QgYmFzaWMtbXVsdGktdG91Y2gtZXZl
bnRzLmh0bWwgdGhhdCBhdm9pZHMgdGhlIHNpdHVhdGlvbiB3aGVyZSBvbmUgdG91Y2ggcG9pbnQg
aXMgcmVsZWFzZWQgd2hpbGUgYW5vdGhlciBpcyBtYWludGFpbmVkLiIpOworCisgICAgbGFzdEV2
ZW50ID0gbnVsbDsKKyAgICBldmVudFNlbmRlci5jbGVhclRvdWNoUG9pbnRzKCk7CisgICAgbXVs
dGlUb3VjaFNlcXVlbmNlKCk7Cit9IGVsc2UgeworICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWly
ZXMgRHVtcFJlbmRlclRyZWUuICBUYXAgb24gdGhlIGJsdWUgcmVjdCB0byBsb2cuIikKK30KKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvdG91Y2gtdGFyZ2V0LWxpbWl0ZWQuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3RzL3RvdWNoLXRh
cmdldC1saW1pdGVkLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvc2NyaXB0LXRlc3RzL3RvdWNoLXRhcmdldC1saW1pdGVkLmpzCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEwMyBAQAordmFyIHRhcmdldHNEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKK3RhcmdldHNEaXYuaWQgPSAidGFyZ2V0c0RpdiI7CisKK3ZhciBkaXYxID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CitkaXYxLmlkID0gInRhcmdldEEiOworZGl2MS5z
dHlsZS53aWR0aCA9ICIxMDBweCI7CitkaXYxLnN0eWxlLmhlaWdodCA9ICIxMDBweCI7CitkaXYx
LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJibHVlIjsKKwordmFyIGRpdjIgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKK2RpdjIuaWQgPSAidGFyZ2V0QiI7CitkaXYyLnN0eWxlLndp
ZHRoID0gIjEwMHB4IjsKK2RpdjIuc3R5bGUuaGVpZ2h0ID0gIjEwMHB4IjsKK2RpdjIuc3R5bGUu
YmFja2dyb3VuZENvbG9yID0gImdyZWVuIjsKKwordmFyIHRvdWNoU3RhcnRDb3VudCA9IDA7Cit2
YXIgdG91Y2hNb3ZlQ291bnQgPSAwOworCitkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZSh0YXJn
ZXRzRGl2LCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpKTsKK3RhcmdldHNEaXYu
YXBwZW5kQ2hpbGQoZGl2MSk7Cit0YXJnZXRzRGl2LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2JyJykpOwordGFyZ2V0c0Rpdi5hcHBlbmRDaGlsZChkaXYyKTsKKworZnVuY3Rp
b24gdG91Y2hTdGFydEhhbmRsZXIoKQoreworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXZl
bnQudHlwZScsICd0b3VjaHN0YXJ0Jyk7CisgICAgc3dpdGNoICh0b3VjaFN0YXJ0Q291bnQpIHsK
KyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdldmVu
dC50b3VjaGVzWzBdLnRhcmdldC5pZCcsIGRpdjEuaWQpOworICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdldmVudC50b3VjaGVzWzFdLnRhcmdldC5pZCcsIGRpdjIuaWQpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnZXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQnLCBkaXYyLmlkKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudG91Y2hlc1sxXS50YXJnZXQuaWQn
LCBkaXYxLmlkKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHRvdWNoU3RhcnRD
b3VudCsrOworfQorCitmdW5jdGlvbiB0b3VjaE1vdmVIYW5kbGVyKCkKK3sKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LnR5cGUnLCAndG91Y2htb3ZlJyk7CisgICAgc3dpdGNoICh0
b3VjaE1vdmVDb3VudCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgIGNhc2UgMToKKyAgICAg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudG91Y2hlc1swXS50YXJnZXQuaWQn
LCBkaXYxLmlkKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZXZlbnQudG91
Y2hlc1sxXS50YXJnZXQuaWQnLCBkaXYyLmlkKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDI6CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2V2ZW50LnRvdWNo
ZXNbMF0udGFyZ2V0LmlkJywgZGl2Mi5pZCk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2V2ZW50LnRvdWNoZXNbMV0udGFyZ2V0LmlkJywgZGl2MS5pZCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICB9CisKKyAgICBpZiAoKyt0b3VjaE1vdmVDb3VudCA9PSAzKQorICAgIHsK
KyAgICAgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwor
ICAgIH0KK30KKworZGl2MS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgdG91Y2hTdGFy
dEhhbmRsZXIsIGZhbHNlKTsKK2RpdjEuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIiwgdG91
Y2hNb3ZlSGFuZGxlciwgZmFsc2UpOworCitkaXYyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3Rh
cnQiLCB0b3VjaFN0YXJ0SGFuZGxlciwgZmFsc2UpOworZGl2Mi5hZGRFdmVudExpc3RlbmVyKCJ0
b3VjaG1vdmUiLCB0b3VjaE1vdmVIYW5kbGVyLCBmYWxzZSk7CisKK2Rlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IHRoZSB0YXJnZXQgb2YgdG91Y2hlcyBtYXRjaCB0aGUgZWxlbWVudCB3aGVyZSB0aGUg
ZXZlbnQgb3JpZ2luYXRlZCwgbm90IHdoZXJlIHRoZSB0b3VjaCBpcyBjdXJyZW50bHkgb2NjdXJy
aW5nLiBUaGlzIGlzIGEgbGltaXRlZCB2ZXJzaW9uIG9mIHRlc3QgdG91Y2gtdGFyZ2V0Lmh0bWwg
dGhhdCBhdm9pZHMgdGhlIHNpdHVhdGlvbiB3aGVyZSBvbmUgdG91Y2ggcG9pbnQgaXMgcmVsZWFz
ZWQgd2hpbGUgYW5vdGhlciBpcyBtYWludGFpbmVkLiIpOworCitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworfQorCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZXZlbnRTZW5kZXIuY2xlYXJU
b3VjaFBvaW50cygpOworICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQoNTAsIDE1MCk7Cisg
ICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludCg1MCwgMjUwKTsKKyAgICBldmVudFNlbmRlci50
b3VjaFN0YXJ0KCk7CisKKyAgICBldmVudFNlbmRlci51cGRhdGVUb3VjaFBvaW50KDAsIDUwLCAy
NTApOworICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMSwgNTAsIDE1MCk7CisgICAg
ZXZlbnRTZW5kZXIudG91Y2hNb3ZlKCk7CisKKyAgICBldmVudFNlbmRlci51cGRhdGVUb3VjaFBv
aW50KDAsIDEwMDAsIDEwMDApOworICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMSwg
MTAwMCwgMTAwMCk7CisgICAgZXZlbnRTZW5kZXIudG91Y2hNb3ZlKCk7CisKKyAgICBldmVudFNl
bmRlci5yZWxlYXNlVG91Y2hQb2ludCgwKTsKKyAgICBldmVudFNlbmRlci5yZWxlYXNlVG91Y2hQ
b2ludCgxKTsKKyAgICBldmVudFNlbmRlci50b3VjaEVuZCgpOworCisgICAgZXZlbnRTZW5kZXIu
YWRkVG91Y2hQb2ludCg1MCwgMjUwKTsKKyAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KDUw
LCAxNTApOworICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKworICAgIGV2ZW50U2VuZGVy
LnVwZGF0ZVRvdWNoUG9pbnQoMCwgNTAwLCA1MDApOworICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRv
dWNoUG9pbnQoMSwgNTAwLCA1MDApOworICAgIGV2ZW50U2VuZGVyLnRvdWNoTW92ZSgpOworfSBl
bHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCByZXF1aXJlcyBEUlQuJyk7CisK
</data>

          </attachment>
      

    </bug>

</bugzilla>