<?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>138493</bug_id>
          
          <creation_ts>2014-11-06 21:05:58 -0800</creation_ts>
          <short_desc>[iOS] Update optimized fullscreen media controls</short_desc>
          <delta_ts>2015-05-04 11:13:01 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1047021</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-11-06 21:05:58 -0800</bug_when>
    <thetext>Update the artwork and logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047022</commentid>
    <comment_count>1</comment_count>
      <attachid>241161</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-11-06 21:26:13 -0800</bug_when>
    <thetext>Created attachment 241161
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047023</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-06 21:28:40 -0800</bug_when>
    <thetext>Attachment 241161 did not pass style-queue:


ERROR: Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:302:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
ERROR: Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:323:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WebCore/WebCore.exp.in:0:  Source/WebCore/WebCore.exp.in should be sorted, use Tools/Scripts/sort-export-file script  [list/order] [5]
Total errors found: 3 in 14 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>1047083</commentid>
    <comment_count>3</comment_count>
      <attachid>241184</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-11-07 08:17:28 -0800</bug_when>
    <thetext>Created attachment 241184
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047084</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-07 08:18:51 -0800</bug_when>
    <thetext>Attachment 241184 did not pass style-queue:


ERROR: Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:318:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WebCore/WebCore.exp.in:0:  Source/WebCore/WebCore.exp.in should be sorted, use Tools/Scripts/sort-export-file script  [list/order] [5]
Total errors found: 2 in 14 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>1047086</commentid>
    <comment_count>5</comment_count>
      <attachid>241185</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-11-07 08:49:36 -0800</bug_when>
    <thetext>Created attachment 241185
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047087</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-07 08:52:19 -0800</bug_when>
    <thetext>Attachment 241185 did not pass style-queue:


ERROR: Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:318:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/WebCore/WebCore.exp.in:0:  Source/WebCore/WebCore.exp.in should be sorted, use Tools/Scripts/sort-export-file script  [list/order] [5]
Total errors found: 2 in 14 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>1047091</commentid>
    <comment_count>7</comment_count>
      <attachid>241185</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-11-07 09:01:50 -0800</bug_when>
    <thetext>Comment on attachment 241185
Updated patch

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

Looks good. I had a question about the &apos;shouldHaveStartPlaybackButton&apos; function, and I wanted to double-check you intended to drop opacity from 0.9 to 0.4.

&gt; Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:315
&gt; +String MediaControlsHost::mediaUIImageData(String partID) const

Couldn&apos;t partID be a const reference?

&gt; Source/WebCore/Modules/mediacontrols/mediaControlsiOS.css:250
&gt; +    opacity: 0.4;

I&apos;m sure this was intentional, but it wasn&apos;t mentioned in the ChangeLog. So we now have a more transparent fullscreen button (i.e., 0.4 versus 0.9)?

&gt; Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js:81
&gt; +        if (!this.doingSetup &amp;&amp; !this.host.userGestureRequired &amp;&amp; allowsInline)

I&apos;m not sure I understand this change. We only want to show the start playback button when we ARE doingSetup?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047092</commentid>
    <comment_count>8</comment_count>
      <attachid>241185</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-11-07 09:19:22 -0800</bug_when>
    <thetext>Comment on attachment 241185
Updated patch

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

&gt;&gt; Source/WebCore/Modules/mediacontrols/mediaControlsiOS.css:250
&gt;&gt; +    opacity: 0.4;
&gt; 
&gt; I&apos;m sure this was intentional, but it wasn&apos;t mentioned in the ChangeLog. So we now have a more transparent fullscreen button (i.e., 0.4 versus 0.9)?

Yes, it is more transparent to make the new artwork look correct.

&gt;&gt; Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js:81
&gt;&gt; +        if (!this.doingSetup &amp;&amp; !this.host.userGestureRequired &amp;&amp; allowsInline)
&gt; 
&gt; I&apos;m not sure I understand this change. We only want to show the start playback button when we ARE doingSetup?

We only want to show the big overlay play button until the user initiates playback and &quot;allowsInline&quot; will be true when a &lt;video&gt; element is created in a script that is triggered by a user gesture, so we DON&apos;T want to draw the inline controls during setup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047093</commentid>
    <comment_count>9</comment_count>
      <attachid>241186</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-11-07 09:26:06 -0800</bug_when>
    <thetext>Created attachment 241186
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047095</commentid>
    <comment_count>10</comment_count>
      <attachid>241187</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-11-07 09:28:19 -0800</bug_when>
    <thetext>Created attachment 241187
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047104</commentid>
    <comment_count>11</comment_count>
      <attachid>241187</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-07 10:10:49 -0800</bug_when>
    <thetext>Comment on attachment 241187
Patch for landing.

Clearing flags on attachment: 241187

Committed r175750: &lt;http://trac.webkit.org/changeset/175750&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241161</attachid>
            <date>2014-11-06 21:26:13 -0800</date>
            <delta_ts>2014-11-07 08:17:28 -0800</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>controller_patch_5.txt</filename>
            <type>text/plain</type>
            <size>20964</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE0LTExLTA2ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFVwZGF0ZSBv
cHRpbWl6ZWQgZnVsbHNjcmVlbiBtZWRpYSBjb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFD
b250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZ1
bGxzY3JlZW5Nb2RlKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6
Om1lZGlhVUlJbWFnZURhdGEpOiBOZXcuCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L01lZGlhQ29udHJvbHNIb3N0Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01l
ZGlhQ29udHJvbHNIb3N0LmlkbDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9t
ZWRpYUNvbnRyb2xzaU9TLmNzczoKKyAgICAgICAgUmVuYW1lZCAtd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXdpcmVsZXNzLXBsYXliYWNrLXN0YXR1cyB0byAtd2Via2l0LW1lZGlhLWNvbnRyb2xzLWlu
bGluZS1wbGF5YmFjay1wbGFjZWhvbGRlcgorICAgICAgICAgICAgYmVjYXVzZSBpdCBpcyBub3cg
dXNlZCBmb3Igb3RoZXIgaW5saW5lIHBsYXliYWNrIHN0YXR1cyBkaXNwbGF5LiBBZGQgei1pbmRl
eDowIHNvIHRoZSBwbGFjZWhvbGRlcgorICAgICAgICAgICAgcmVuZGVycyBhYm92ZSBjYXB0aW9u
cy4gUmVtb3ZlIHRoZSBiYWNrZ3JvdW5kLWltYWdlLCBpdCBpcyBub3cgc2V0IGZyb20gc2NyaXB0
LgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtaW5saW5lLXBsYXliYWNr
LXBsYWNlaG9sZGVyKTogCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1p
bmxpbmUtcGxheWJhY2stcGxhY2Vob2xkZXIuaGlkZGVuKToKKyAgICAgICAgKHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLW9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbik6CisgICAgICAg
IChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVzcy1wbGF5YmFjay1zdGF0dXMp
OiBEZWxldGVkLgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtd2lyZWxl
c3MtcGxheWJhY2stc3RhdHVzLmhpZGRlbik6IERlbGV0ZWQuCisgICAgICAgICh2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1vcHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b246YWN0aXZlKTog
RGVsZXRlZC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xz
aU9TLmpzOgorICAgICAgICAoQ29udHJvbGxlcklPUyk6IFNldCBkb2luZ1NldHVwIHRvIHRydWUg
YXJvdW5kIHNldHVwIHNvIHdlIGRvbid0IGRyYXcgdGhlIGlubGluZSBjb250cm9scworICAgICAg
ICAgICAgYnJpZWZseSB3aGVuIGFuIGVsZW1lbnQgaXMgY3JlYXRlZCBhcyBhIHJlc3VsdCBvZiBh
IHVzZXIgZ2VzdHVyZS4KKyAgICAgICAgKENvbnRyb2xsZXJJT1MucHJvdG90eXBlLnNob3VsZEhh
dmVTdGFydFBsYXliYWNrQnV0dG9uKTogRG9uJ3QgYWxsb3cgaW5saW5lIGNvbnRyb2xzIHdoZW4g
ZG9pbmdTZXR1cCBpcyB0cnVlLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUudXBk
YXRlV2lyZWxlc3NQbGF5YmFja1N0YXR1cyk6IHdpcmVsZXNzUGxheWJhY2tTdGF0dXMgLT4gaW5s
aW5lUGxheWJhY2tQbGFjZWhvbGRlci4KKyAgICAgICAgKENvbnRyb2xsZXJJT1MucHJvdG90eXBl
LmNyZWF0ZUNvbnRyb2xzKTogRGl0dG8uIEFkZCBzdHlsZSBydWxlcyBmb3Igb3B0aW1pemVkIGZ1
bGxzY3JlZW4gYnV0dG9uLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUuY29uZmln
dXJlSW5saW5lQ29udHJvbHMpOiBBZGQgdGhlIGlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIgYXMg
YSBwZWVyIG9mCisgICAgICAgICAgICB0aGUgaW5saW5lIGNvbnRyb2xzIGNvbXBvc2l0aW5nIGNo
aWxkIGluc3RlYWQgb2YgYXMgYSBjaGlsZCBzbyBpdCByZW5kZXJzIGNvcnJlY3RseS4KKyAgICAg
ICAgKENvbnRyb2xsZXJJT1MucHJvdG90eXBlLmFkZENvbnRyb2xzKToKKyAgICAgICAgKENvbnRy
b2xsZXJJT1MucHJvdG90eXBlLnVwZGF0ZUNvbnRyb2xzKTogd2lyZWxlc3NQbGF5YmFja1N0YXR1
cyAtPiBpbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLgorICAgICAgICAoQ29udHJvbGxlcklPUy5w
cm90b3R5cGUuaGFuZGxlV3JhcHBlclRvdWNoU3RhcnQpOgorICAgICAgICAoQ29udHJvbGxlcklP
Uy5wcm90b3R5cGUuZ2V0IHBhZ2VTY2FsZUZhY3Rvcik6IENsZWFudXAuCisgICAgICAgIChDb250
cm9sbGVySU9TLnByb3RvdHlwZS5zZXQgcGFnZVNjYWxlRmFjdG9yKTogRGl0dG8uCisgICAgICAg
IChDb250cm9sbGVySU9TLnByb3RvdHlwZS5oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlKTogU2hvdyB0
aGUgcGxhY2Vob2xkZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogRXhwb3J0IF93a0dl
dE1lZGlhVUlJbWFnZURhdGEuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmZ1bGxzY3JlZW5Nb2RlKTogRXhw
b3NlIGZ1bGxzY3JlZW4gbW9kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlSU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2VJT1MubW06CisKIDIwMTQtMTEtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgUHV0IG5hbWVzIG9uIGEgY291cGxlIG9mIHZpZGVvLXJl
bGF0ZWQgQ0FMYXllcnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNzU2NDEp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMjg0
MCw2ICsyODQwLDcgQEAgX3drRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JBZnRlcklPU1ZlcnNpbwog
X3drR2V0QXZhaWxhYmxlU2NyZWVuU2l6ZQogX3drR2V0RGV2aWNlQ2xhc3MKIF93a0dldERldmlj
ZU5hbWUKK193a0dldE1lZGlhVUlJbWFnZURhdGEKIF93a0dldE9TTmFtZUZvclVzZXJBZ2VudAog
X3drR2V0UGxhdGZvcm1OYW1lRm9yTmF2aWdhdG9yCiBfd2tHZXRTY3JlZW5TY2FsZUZhY3RvcgpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCShyZXZpc2lvbiAxNzU3NDEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yODYsNiArMjg2LDUxIEBAIHZvaWQgTWVkaWFDb250cm9sc0hvc3Q6OnNldENv
bnRyb2xzRGVwZW4KICAgICBtX21lZGlhRWxlbWVudC0+c2V0TWVkaWFDb250cm9sc0RlcGVuZE9u
UGFnZVNjYWxlRmFjdG9yKHZhbHVlKTsKIH0KIAorU3RyaW5nIE1lZGlhQ29udHJvbHNIb3N0Ojpm
dWxsc2NyZWVuTW9kZSgpIGNvbnN0Cit7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgbm9uZSwgKEFTQ0lJTGl0ZXJhbCgibm9uZSIpKSk7CisgICAgU3RyaW5nIG1v
ZGUgPSBub25lOworCisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
c3RhbmRhcmQsIChBU0NJSUxpdGVyYWwoInN0YW5kYXJkIikpKTsKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgb3B0aW1pemVkLCAo
QVNDSUlMaXRlcmFsKCJvcHRpbWl6ZWQiKSkpOworI2VuZGlmCisKKyAgICBlbnVtIFZpZGVvRnVs
bHNjcmVlbk1vZGUgeyBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSwgVmlkZW9GdWxsc2NyZWVuTW9k
ZVN0YW5kYXJkLCBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkIH07CisKKyAgICBzd2l0Y2gg
KG1fbWVkaWFFbGVtZW50LT5mdWxsc2NyZWVuTW9kZSgpKSB7CisgICAgICAgIGNhc2UgSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmU6CisgICAgICAgICAgICBtb2RlID0g
bm9uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEhUTUxNZWRpYUVsZW1lbnQ6
OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZDoKKyAgICAgICAgICAgIG1vZGUgPSBzdGFuZGFy
ZDsKKyAgICAgICAgICAgIGJyZWFrOworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgY2FzZSBI
VE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkOgorICAgICAgICAg
ICAgbW9kZSA9IG9wdGltaXplZDsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgfQor
ICAgIAorICAgIExPRyhNZWRpYSwgIk1lZGlhQ29udHJvbHNIb3N0OjpmdWxsc2NyZWVuTW9kZSAt
IHJldHVybmluZyBcIiVzXCIiLCBtb2RlLnV0ZjgoKS5kYXRhKCkpOworCisgICAgcmV0dXJuIG1v
ZGU7Cit9CisKK1N0cmluZyBNZWRpYUNvbnRyb2xzSG9zdDo6bWVkaWFVSUltYWdlRGF0YShTdHJp
bmcgcGFydElEKSBjb25zdAoreworI2lmIFBMQVRGT1JNKElPUykKKyAgICBpZiAocGFydElEID09
ICJvcHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b24iKQorICAgICAgICByZXR1cm4gd2tHZXRNZWRp
YVVJSW1hZ2VEYXRhKHdrTWVkaWFVSVBhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuQnV0dG9uKTsKKyAg
ICBlbHNlIGlmIChwYXJ0SUQgPT0gIm9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbi1oaWxpdGVk
IikKKyAgICAgICAgcmV0dXJuIHdrR2V0TWVkaWFVSUltYWdlRGF0YSh3a01lZGlhVUlQYXJ0T3B0
aW1pemVkRnVsbHNjcmVlbkJ1dHRvbkhpbGl0ZWQpOworICAgIGVsc2UgaWYgKHBhcnRJRCA9PSAi
b3B0aW1pemVkLWZ1bGxzY3JlZW4tcGxhY2Vob2xkZXIiKQorICAgICAgICByZXR1cm4gd2tHZXRN
ZWRpYVVJSW1hZ2VEYXRhKHdrTWVkaWFVSVBhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuUGxhY2Vob2xk
ZXIpOworI2VuZGlmCisKKyAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKK30KKwogfQogCiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRy
b2xzSG9zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250
cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCShyZXZpc2lvbiAxNzU3NDEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtNzIsNiArNzIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBleGl0ZWRGdWxsc2NyZWVu
KCk7CiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQoKTsKICAgICBib29sIG9wdGlt
aXplZEZ1bGxzY3JlZW5TdXBwb3J0ZWQoKTsKKyAgICBTdHJpbmcgZnVsbHNjcmVlbk1vZGUoKSBj
b25zdDsKKyAgICBTdHJpbmcgbWVkaWFVSUltYWdlRGF0YShTdHJpbmcpIGNvbnN0OwogCiAgICAg
U3RyaW5nIGV4dGVybmFsRGV2aWNlRGlzcGxheU5hbWUoKSBjb25zdDsKICAgICBTdHJpbmcgZXh0
ZXJuYWxEZXZpY2VUeXBlKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5pZGwJKHJldmlz
aW9uIDE3NTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDE4IEBAIGVudW0g
RGV2aWNlVHlwZSB7CiAgICAgInR2b3V0IgogfTsKIAorZW51bSBGdWxsc2NyZWVuTW9kZSB7Cisg
ICAgIm5vbmUiLAorICAgICJzdGFuZGFyZCIsCisgICAgIm9wdGltaXplZCIKK307CisKK2VudW0g
TWVkaWFVSVBhcnRJRCB7CisgICAgIm9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbiIsCisgICAg
Im9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbi1oaWxpdGVkIiwKKyAgICAib3B0aW1pemVkLWZ1
bGxzY3JlZW4tcGxhY2Vob2xkZXIiCit9OworCiBbCiAgICAgTm9JbnRlcmZhY2VPYmplY3QsCiAg
ICAgQ29uZGl0aW9uYWw9TUVESUFfQ09OVFJPTFNfU0NSSVBULApAQCAtNTcsNCArNjksNiBAQCBl
bnVtIERldmljZVR5cGUgewogICAgIHZvaWQgZXhpdGVkRnVsbHNjcmVlbigpOwogICAgIHZvaWQg
ZW50ZXJGdWxsc2NyZWVuT3B0aW1pemVkKCk7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gb3B0aW1pemVkRnVsbHNjcmVlblN1cHBvcnRlZDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
RnVsbHNjcmVlbk1vZGUgZnVsbHNjcmVlbk1vZGU7CisgICAgRE9NU3RyaW5nIG1lZGlhVUlJbWFn
ZURhdGEoTWVkaWFVSVBhcnRJRCBwYXJ0SUQpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzaU9TLmNzcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc2lPUy5jc3MJ
KHJldmlzaW9uIDE3NTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9s
cy9tZWRpYUNvbnRyb2xzaU9TLmNzcwkod29ya2luZyBjb3B5KQpAQCAtNjYsOSArNjYsMTAgQEAg
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgYnV0dAogICAgIC13ZWJraXQtYXBw
ZWFyYW5jZTogbm9uZTsKIH0KIAotdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtd2lyZWxl
c3MtcGxheWJhY2stc3RhdHVzLAotYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtd2lyZWxl
c3MtcGxheWJhY2stc3RhdHVzIHsKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWlubGlu
ZS1wbGF5YmFjay1wbGFjZWhvbGRlciwKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWlu
bGluZS1wbGF5YmFjay1wbGFjZWhvbGRlciB7CiAgICAgZGlzcGxheTogYmxvY2s7CisgICAgei1p
bmRleDogMDsKICAgICB3aWR0aDogMTAwJTsKICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgYmFja2dy
b3VuZC1jb2xvcjogYmxhY2s7CkBAIC03Nyw4ICs3OCw4IEBAIGF1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXdpcmVsZXNzLXAKICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgNTAlOwogfQog
Ci12aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVzcy1wbGF5YmFjay1zdGF0dXMu
aGlkZGVuLAotYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtd2lyZWxlc3MtcGxheWJhY2st
c3RhdHVzLmhpZGRlbiB7Cit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1pbmxpbmUtcGxh
eWJhY2stcGxhY2Vob2xkZXIuaGlkZGVuLAorYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
aW5saW5lLXBsYXliYWNrLXBsYWNlaG9sZGVyLmhpZGRlbiB7CiAgICAgZGlzcGxheTogbm9uZTsK
IH0KIApAQCAtMjQ2LDkgKzI0Nyw3IEBAIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1
bGxzY3JlZW4KIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW9wdGltaXplZC1mdWxsc2Ny
ZWVuLWJ1dHRvbiB7CiAgICAgd2lkdGg6IDM1cHg7CiAgICAgaGVpZ2h0OiA0NHB4OwotICAgIGJh
Y2tncm91bmQtc2l6ZTogMzVweCA0NHB4OwotICAgIG9wYWNpdHk6IDAuOTsKLSAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM1IDQ0Ij48ZyBzdHJva2U9InJnYmEoMCwg
MCwgMCwgMC40KSIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTSAxMCwxNSBoIDE0IHYgMTQgaCAtMTQg
diAtMTQiLz48L2c+PC9zdmc+Jyk7CisgICAgb3BhY2l0eTogMC40OwogfQogCiB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiB7CkBAIC0yNzEsMTAgKzI3MCw2IEBAIHZp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4KICAgICBiYWNrZ3JvdW5kLWlt
YWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM1IDQ0Ij48ZyBzdHJva2U9IndoaXRlIiBmaWxsPSJu
b25lIj48cGF0aCBkPSJNIDEwLDIwIHYgLTUgaCA1IE0gMTAsMTUgbCA1LDUiLz48cGF0aCBkPSJN
IDI0LDI0IHYgNSBoIC01IE0gMjQsMjkgbCAtNSwtNSIvPjwvZz48L3N2Zz4nKTsKIH0KIAotdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uOmFj
dGl2ZSB7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsPHN2
ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNSA0NCI+
PGcgc3Ryb2tlPSJ3aGl0ZSIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTSAxMCwxNSBoIDE0IHYgMTQg
aCAtMTQgdiAtMTQiLz48L2c+PC9zdmc+Jyk7Ci19Ci0KIHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXRpbWVsaW5lLAogYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUg
ewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzaU9TLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzaU9TLmpzCShy
ZXZpc2lvbiAxNzU3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMv
bWVkaWFDb250cm9sc2lPUy5qcwkod29ya2luZyBjb3B5KQpAQCAtNSw2ICs1LDcgQEAgZnVuY3Rp
b24gY3JlYXRlQ29udHJvbHMocm9vdCwgdmlkZW8sIGhvcwogCiBmdW5jdGlvbiBDb250cm9sbGVy
SU9TKHJvb3QsIHZpZGVvLCBob3N0KQogeworICAgIHRoaXMuZG9pbmdTZXR1cCA9IHRydWU7CiAg
ICAgdGhpcy5oYXNXaXJlbGVzc1BsYXliYWNrVGFyZ2V0cyA9IGZhbHNlOwogICAgIHRoaXMuX3Bh
Z2VTY2FsZUZhY3RvciA9IDE7CiAgICAgdGhpcy5pc0xpc3RlbmluZ0ZvclBsYXliYWNrVGFyZ2V0
QXZhaWxhYmlsaXR5RXZlbnQgPSBmYWxzZTsKQEAgLTE1LDYgKzE2LDcgQEAgZnVuY3Rpb24gQ29u
dHJvbGxlcklPUyhyb290LCB2aWRlbywgaG9zdAogICAgIHRoaXMuc2V0TmVlZHNUaW1lbGluZU1l
dHJpY3NVcGRhdGUoKTsKIAogICAgIGhvc3QuY29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3Rv
ciA9IHRydWU7CisgICAgdGhpcy5kb2luZ1NldHVwID0gZmFsc2U7CiB9OwogCiAvKiBFbnVtcyAq
LwpAQCAtNzYsNyArNzgsNyBAQCBDb250cm9sbGVySU9TLnByb3RvdHlwZSA9IHsKICAgICAgICAg
aWYgKHRoaXMudmlkZW8uY3VycmVudFNyYyAmJiB0aGlzLnZpZGVvLmVycm9yKQogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKLSAgICAgICAgaWYgKCF0aGlzLmhvc3QudXNlckdlc3R1cmVSZXF1
aXJlZCAmJiBhbGxvd3NJbmxpbmUpCisgICAgICAgIGlmICghdGhpcy5kb2luZ1NldHVwICYmICF0
aGlzLmhvc3QudXNlckdlc3R1cmVSZXF1aXJlZCAmJiBhbGxvd3NJbmxpbmUpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xMTUsMTMgKzExNywx
MyBAQCBDb250cm9sbGVySU9TLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGJhY2tncm91bmRJ
bWFnZVNWRyA9IGJhY2tncm91bmRJbWFnZVNWRy5yZXBsYWNlKCcjI0RFVklDRV9UWVBFIyMnLCBk
ZXZpY2VUeXBlKTsKICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZVNWRyA9IGJhY2tncm91bmRJ
bWFnZVNWRy5yZXBsYWNlKCcjI0RFVklDRV9OQU1FIyMnLCBkZXZpY2VOYW1lKTsKIAotICAgICAg
ICAgICAgdGhpcy5jb250cm9scy53aXJlbGVzc1BsYXliYWNrU3RhdHVzLnN0eWxlLmJhY2tncm91
bmRJbWFnZSA9IGJhY2tncm91bmRJbWFnZVNWRzsKLSAgICAgICAgICAgIHRoaXMuY29udHJvbHMu
d2lyZWxlc3NQbGF5YmFja1N0YXR1cy5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCBkZXZpY2VU
eXBlICsgIiwgIiArIGRldmljZU5hbWUpOworICAgICAgICAgICAgdGhpcy5jb250cm9scy5pbmxp
bmVQbGF5YmFja1BsYWNlaG9sZGVyLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9IGJhY2tncm91bmRJ
bWFnZVNWRzsKKyAgICAgICAgICAgIHRoaXMuY29udHJvbHMuaW5saW5lUGxheWJhY2tQbGFjZWhv
bGRlci5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCBkZXZpY2VUeXBlICsgIiwgIiArIGRldmlj
ZU5hbWUpOwogCi0gICAgICAgICAgICB0aGlzLmNvbnRyb2xzLndpcmVsZXNzUGxheWJhY2tTdGF0
dXMuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNsYXNzTmFtZXMuaGlkZGVuKTsKKyAgICAgICAgICAg
IHRoaXMuY29udHJvbHMuaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5jbGFzc0xpc3QucmVtb3Zl
KHRoaXMuQ2xhc3NOYW1lcy5oaWRkZW4pOwogICAgICAgICAgICAgdGhpcy5jb250cm9scy53aXJl
bGVzc1RhcmdldFBpY2tlci5jbGFzc0xpc3QuYWRkKHRoaXMuQ2xhc3NOYW1lcy5hY3RpdmUpOwog
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGhpcy5jb250cm9scy53aXJlbGVzc1BsYXli
YWNrU3RhdHVzLmNsYXNzTGlzdC5hZGQodGhpcy5DbGFzc05hbWVzLmhpZGRlbik7CisgICAgICAg
ICAgICB0aGlzLmNvbnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIuY2xhc3NMaXN0LmFk
ZCh0aGlzLkNsYXNzTmFtZXMuaGlkZGVuKTsKICAgICAgICAgICAgIHRoaXMuY29udHJvbHMud2ly
ZWxlc3NUYXJnZXRQaWNrZXIuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNsYXNzTmFtZXMuYWN0aXZl
KTsKICAgICAgICAgfQogICAgIH0sCkBAIC0xMzksMTAgKzE0MSwxNiBAQCBDb250cm9sbGVySU9T
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHBhbmVsQ29tcG9zaXRlZFBhcmVudCA9IHRoaXMu
Y29udHJvbHMucGFuZWxDb21wb3NpdGVkUGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CiAgICAgICAgIHBhbmVsQ29tcG9zaXRlZFBhcmVudC5zZXRBdHRyaWJ1dGUoJ3BzZXVk
bycsICctd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLWNvbXBvc2l0ZWQtcGFyZW50Jyk7CiAK
KyAgICAgICAgdmFyIGlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIgPSB0aGlzLmNvbnRyb2xzLmlu
bGluZVBsYXliYWNrUGxhY2Vob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICAgICAgaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5zZXRBdHRyaWJ1dGUoJ3BzZXVkbycs
ICctd2Via2l0LW1lZGlhLWNvbnRyb2xzLWlubGluZS1wbGF5YmFjay1wbGFjZWhvbGRlcicpOwor
ICAgICAgICBpbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLmNsYXNzTGlzdC5hZGQodGhpcy5DbGFz
c05hbWVzLmhpZGRlbik7CisgICAgICAgIGlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIuc2V0QXR0
cmlidXRlKCdhcmlhLWxhYmVsJywgdGhpcy5VSVN0cmluZygnRGlzcGxheSBPcHRpbWl6ZWQgRnVs
bCBTY3JlZW4nKSk7CiAKLSAgICAgICAgdmFyIHdpcmVsZXNzUGxheWJhY2tTdGF0dXMgPSB0aGlz
LmNvbnRyb2xzLndpcmVsZXNzUGxheWJhY2tTdGF0dXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKLSAgICAgICAgd2lyZWxlc3NQbGF5YmFja1N0YXR1cy5zZXRBdHRyaWJ1dGUoJ3Bz
ZXVkbycsICctd2Via2l0LW1lZGlhLWNvbnRyb2xzLXdpcmVsZXNzLXBsYXliYWNrLXN0YXR1cycp
OwotICAgICAgICB3aXJlbGVzc1BsYXliYWNrU3RhdHVzLmNsYXNzTGlzdC5hZGQodGhpcy5DbGFz
c05hbWVzLmhpZGRlbik7CisgICAgICAgIHZhciBidXR0b25JbWFnZVNWRyA9ICJiYWNrZ3JvdW5k
LWltYWdlOiB1cmwoJyIgKyB0aGlzLmhvc3QubWVkaWFVSUltYWdlRGF0YSgib3B0aW1pemVkLWZ1
bGxzY3JlZW4tYnV0dG9uIikgKyAiJykiOworICAgICAgICBkb2N1bWVudC5zdHlsZVNoZWV0c1sw
XS5pbnNlcnRSdWxlKCd2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vcHRpbWl6ZWQtZnVs
bHNjcmVlbi1idXR0b24geyAnICsgYnV0dG9uSW1hZ2VTVkcgKyAnOyB9JywgMCk7CisKKyAgICAg
ICAgYnV0dG9uSW1hZ2VTVkcgPSAiYmFja2dyb3VuZC1pbWFnZTogdXJsKCciICsgdGhpcy5ob3N0
Lm1lZGlhVUlJbWFnZURhdGEoIm9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbi1oaWxpdGVkIikg
KyAiJykiOworICAgICAgICBkb2N1bWVudC5zdHlsZVNoZWV0c1swXS5pbnNlcnRSdWxlKCd2aWRl
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vcHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b246YWN0
aXZlIHsgJyArIGJ1dHRvbkltYWdlU1ZHICsgJzsgfScsIDApOwogCiAgICAgICAgIHZhciB3aXJl
bGVzc1RhcmdldFBpY2tlciA9IHRoaXMuY29udHJvbHMud2lyZWxlc3NUYXJnZXRQaWNrZXIgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKICAgICAgICAgd2lyZWxlc3NUYXJnZXRQ
aWNrZXIuc2V0QXR0cmlidXRlKCdwc2V1ZG8nLCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJl
bGVzcy1wbGF5YmFjay1waWNrZXItYnV0dG9uJyk7CkBAIC0xOTYsOCArMjA0LDYgQEAgQ29udHJv
bGxlcklPUy5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIGNvbmZpZ3VyZUlubGluZUNvbnRy
b2xzOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdGhpcy5iYXNlLmFwcGVuZENoaWxkKHRoaXMuY29u
dHJvbHMud2lyZWxlc3NQbGF5YmFja1N0YXR1cyk7Ci0KICAgICAgICAgdGhpcy5jb250cm9scy5w
YW5lbC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLnBsYXlCdXR0b24pOwogICAgICAgICB0aGlz
LmNvbnRyb2xzLnBhbmVsLmFwcGVuZENoaWxkKHRoaXMuY29udHJvbHMuc3RhdHVzRGlzcGxheSk7
CiAgICAgICAgIHRoaXMuY29udHJvbHMucGFuZWwuYXBwZW5kQ2hpbGQodGhpcy5jb250cm9scy50
aW1lbGluZUJveCk7CkBAIC0yMjksNiArMjM1LDcgQEAgQ29udHJvbGxlcklPUy5wcm90b3R5cGUg
PSB7CiAgICAgfSwKIAogICAgIGFkZENvbnRyb2xzOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhp
cy5iYXNlLmFwcGVuZENoaWxkKHRoaXMuY29udHJvbHMuaW5saW5lUGxheWJhY2tQbGFjZWhvbGRl
cik7CiAgICAgICAgIHRoaXMuYmFzZS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLnBhbmVsQ29t
cG9zaXRlZFBhcmVudCk7CiAgICAgICAgIHRoaXMuY29udHJvbHMucGFuZWxDb21wb3NpdGVkUGFy
ZW50LmFwcGVuZENoaWxkKHRoaXMuY29udHJvbHMucGFuZWwpOwogICAgICAgICB0aGlzLnNldE5l
ZWRzVGltZWxpbmVNZXRyaWNzVXBkYXRlKCk7CkBAIC0yMzcsNyArMjQ0LDcgQEAgQ29udHJvbGxl
cklPUy5wcm90b3R5cGUgPSB7CiAgICAgdXBkYXRlQ29udHJvbHM6IGZ1bmN0aW9uKCkgewogICAg
ICAgICBpZiAodGhpcy5zaG91bGRIYXZlU3RhcnRQbGF5YmFja0J1dHRvbigpKQogICAgICAgICAg
ICAgdGhpcy5zZXRDb250cm9sc1R5cGUoQ29udHJvbGxlcklPUy5TdGFydFBsYXliYWNrQ29udHJv
bHMpOwotICAgICAgICBlbHNlIGlmICh0aGlzLmlzRnVsbFNjcmVlbigpKQorICAgICAgICBlbHNl
IGlmICh0aGlzLmlzRnVsbFNjcmVlbigpICYmIHRoaXMuaG9zdC5mdWxsc2NyZWVuTW9kZSAhPT0g
Im9wdGltaXplZCIpCiAgICAgICAgICAgICB0aGlzLnNldENvbnRyb2xzVHlwZShDb250cm9sbGVy
LkZ1bGxTY3JlZW5Db250cm9scyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuc2V0
Q29udHJvbHNUeXBlKENvbnRyb2xsZXIuSW5saW5lQ29udHJvbHMpOwpAQCAtMzU1LDcgKzM2Miw3
IEBAIENvbnRyb2xsZXJJT1MucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICBoYW5kbGVXcmFw
cGVyVG91Y2hTdGFydDogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgaWYgKGV2ZW50LnRhcmdl
dCAhPSB0aGlzLmJhc2UgJiYgZXZlbnQudGFyZ2V0ICE9IHRoaXMuY29udHJvbHMud2lyZWxlc3NQ
bGF5YmFja1N0YXR1cykKKyAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPSB0aGlzLmJhc2UgJiYg
ZXZlbnQudGFyZ2V0ICE9IHRoaXMuY29udHJvbHMuaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlcikK
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLm1vc3RSZWNlbnROdW1iZXJPZlRh
cmdldHRlZFRvdWNoZXMgPSBldmVudC50YXJnZXRUb3VjaGVzLmxlbmd0aDsKQEAgLTU1NSwxMSAr
NTYyLDEzIEBAIENvbnRyb2xsZXJJT1MucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwK
IAotICAgIGdldCBwYWdlU2NhbGVGYWN0b3IoKSB7CisgICAgZ2V0IHBhZ2VTY2FsZUZhY3Rvcigp
CisgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fcGFnZVNjYWxlRmFjdG9yOwogICAgIH0sCiAK
LSAgICBzZXQgcGFnZVNjYWxlRmFjdG9yKG5ld1NjYWxlRmFjdG9yKSB7CisgICAgc2V0IHBhZ2VT
Y2FsZUZhY3RvcihuZXdTY2FsZUZhY3RvcikKKyAgICB7CiAgICAgICAgIGlmICh0aGlzLl9wYWdl
U2NhbGVGYWN0b3IgPT09IG5ld1NjYWxlRmFjdG9yKQogICAgICAgICAgICAgcmV0dXJuOwogCkBA
IC01ODAsNyArNTg5LDI1IEBAIENvbnRyb2xsZXJJT1MucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgICAgIHRoaXMudXBkYXRlUHJvZ3Jlc3MoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQot
ICAgIH0KKyAgICB9LAorCisgICAgaGFuZGxlRnVsbHNjcmVlbkNoYW5nZTogZnVuY3Rpb24oZXZl
bnQpCisgICAgeworICAgICAgICBDb250cm9sbGVyLnByb3RvdHlwZS5oYW5kbGVGdWxsc2NyZWVu
Q2hhbmdlLmNhbGwodGhpcywgZXZlbnQpOworCisgICAgICAgIGlmICghdGhpcy5pc0Z1bGxTY3Jl
ZW4oKSkgeworICAgICAgICAgICAgdGhpcy5jb250cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9s
ZGVyLmNsYXNzTGlzdC5hZGQodGhpcy5DbGFzc05hbWVzLmhpZGRlbik7CisgICAgICAgIH0gZWxz
ZSBpZiAodGhpcy5ob3N0LmZ1bGxzY3JlZW5Nb2RlID09PSAib3B0aW1pemVkIikgeworICAgICAg
ICAgICAgdmFyIGJhY2tncm91bmRJbWFnZVNWRyA9ICJ1cmwoJyIgKyB0aGlzLmhvc3QubWVkaWFV
SUltYWdlRGF0YSgib3B0aW1pemVkLWZ1bGxzY3JlZW4tcGxhY2Vob2xkZXIiKSArICInKSI7Cisg
ICAgICAgICAgICB0aGlzLmNvbnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIuc3R5bGUu
YmFja2dyb3VuZEltYWdlID0gYmFja2dyb3VuZEltYWdlU1ZHOworICAgICAgICAgICAgdGhpcy5j
b250cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJl
bCcsICJ2aWRlbyBwbGF5YmFjayBwbGFjZWhvbGRlciIpOworCisgICAgICAgICAgICB0aGlzLmNv
bnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNs
YXNzTmFtZXMuaGlkZGVuKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMudXBkYXRlQ2FwdGlv
bkNvbnRhaW5lcigpOworICAgIH0sCisKIH07CiAKIE9iamVjdC5jcmVhdGUoQ29udHJvbGxlci5w
cm90b3R5cGUpLmV4dGVuZChDb250cm9sbGVySU9TLnByb3RvdHlwZSk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkocmV2aXNpb24gMTc1NjQxKQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5Miw2
ICszOTIsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBib29sIGlzRnVs
bHNjcmVlbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgdG9nZ2xlRnVsbHNjcmVlblN0YXRl
KCk7CiAgICAgZW51bSBWaWRlb0Z1bGxzY3JlZW5Nb2RlIHsgVmlkZW9GdWxsc2NyZWVuTW9kZU5v
bmUsIFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCwgVmlkZW9GdWxsc2NyZWVuTW9kZU9wdGlt
aXplZCB9OworICAgIFZpZGVvRnVsbHNjcmVlbk1vZGUgZnVsbHNjcmVlbk1vZGUoKSBjb25zdCB7
IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbk1vZGU7IH0KKwogICAgIHZvaWQgZW50ZXJGdWxsc2Ny
ZWVuKFZpZGVvRnVsbHNjcmVlbk1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3Jl
ZW4oKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV4aXRGdWxsc2NyZWVuKCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFj
ZUlPUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlSU9TLmgJKHJldmlzaW9uIDE3NTY0MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLmgJKHdvcmtpbmcgY29weSkK
QEAgLTc1LDQgKzc1LDEyIEBAIGV4dGVybiBDRlN0cmluZ1JlZiAoKndrR2V0VmVuZG9yTmFtZUZv
ck4KIAogZXh0ZXJuIGJvb2wgKCp3a0lzT3B0aW1pemVkRnVsbHNjcmVlblN1cHBvcnRlZCkodm9p
ZCk7CiAKK3R5cGVkZWYgZW51bSB7CisgICAgd2tNZWRpYVVJUGFydE9wdGltaXplZEZ1bGxzY3Jl
ZW5CdXR0b24gPSAwLAorICAgIHdrTWVkaWFVSVBhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuQnV0dG9u
SGlsaXRlZCwKKyAgICB3a01lZGlhVUlQYXJ0T3B0aW1pemVkRnVsbHNjcmVlblBsYWNlaG9sZGVy
Cit9IHdrTWVkaWFVSVBhcnQ7CitleHRlcm4gQ0ZTdHJpbmdSZWYgKCp3a0dldE1lZGlhVUlJbWFn
ZURhdGEpKGludCB3a01lZGlhVUlQYXJ0KTsKKworCiAjZW5kaWYgLy8gV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZUlPU19oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5
c3RlbUludGVyZmFjZUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5tbQkocmV2aXNpb24gMTc1NjQxKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW0J
KHdvcmtpbmcgY29weSkKQEAgLTEzMSw2ICsxMzEsNyBAQCBXRUJDT1JFX0VYUE9SVCBDRlN0cmlu
Z1JlZiAoKndrR2V0UGxhdGZvCiBXRUJDT1JFX0VYUE9SVCBDRlN0cmluZ1JlZiAoKndrR2V0VmVu
ZG9yTmFtZUZvck5hdmlnYXRvcikodm9pZCk7CiAKIFdFQkNPUkVfRVhQT1JUIGJvb2wgKCp3a0lz
T3B0aW1pemVkRnVsbHNjcmVlblN1cHBvcnRlZCkodm9pZCk7CitXRUJDT1JFX0VYUE9SVCBDRlN0
cmluZ1JlZiAoKndrR2V0TWVkaWFVSUltYWdlRGF0YSkoaW50KTsKIAogV0VCQ09SRV9FWFBPUlQg
aW50ICgqd2tFeGVybmFsRGV2aWNlVHlwZUZvclBsYXllcikoQVZQbGF5ZXIgKik7CiBXRUJDT1JF
X0VYUE9SVCBOU1N0cmluZyAqKCp3a0V4ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllciko
QVZQbGF5ZXIgKik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzU3NDEpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0x
MS0wNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBb
aU9TXSBVcGRhdGUgb3B0aW1pemVkIGZ1bGxzY3JlZW4gbWVkaWEgY29udHJvbHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODQ5MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UpOiBJbml0aWFsaXplIEdldE1lZGlhVUlJbWFnZURhdGEuCisKIDIw
MTQtMTEtMDYgIENvbnJhZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBDbGllbnRzIHNob3VsZCBiZSBhYmxlIHRvIGN1c3RvbWl6ZSB0aGUgdmlldyB1c2VkIGZv
ciBwYWdlIHByZXZpZXdzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1t
CShyZXZpc2lvbiAxNzU2NDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTIwOCw2
ICsyMDgsNyBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAg
IElOSVQoR2V0U2NyZWVuU2NhbGVGYWN0b3IpOwogICAgICAgICBJTklUKElzR0IxODAzMENvbXBs
aWFuY2VSZXF1aXJlZCk7CiAgICAgICAgIElOSVQoSXNPcHRpbWl6ZWRGdWxsc2NyZWVuU3VwcG9y
dGVkKTsKKyAgICAgICAgSU5JVChHZXRNZWRpYVVJSW1hZ2VEYXRhKTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKFBVQkxJQ19TVUZGSVhfTElTVCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDE3NTc0MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE0LTExLTA2ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFVwZGF0ZSBvcHRpbWl6ZWQgZnVsbHNjcmVlbiBt
ZWRpYSBjb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM4NDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJ
bml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6IEluaXRpYWxpemUgR2V0TWVkaWFVSUltYWdlRGF0
YS4KKwogMjAxNC0xMS0wNiAgRGFuaWVsIEphbGt1dCAgPGphbGt1dEByZWQtc3dlYXRlci5jb20+
CiAKICAgICAgICAgV3JhcCB0aGUgYnVsayBvZiAtW1dlYlZpZXcgZGVhbGxvY10gd2l0aCBhbiBh
dXRvcmVsZWFzZSBwb29sLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViU3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQkocmV2aXNpb24gMTc1NjQxKQorKysg
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDcgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUlu
dGVyZmFjZSh2b2lkKQogICAgIElOSVQoR2V0U2NyZWVuU2NhbGVGYWN0b3IpOwogICAgIElOSVQo
SXNHQjE4MDMwQ29tcGxpYW5jZVJlcXVpcmVkKTsKICAgICBJTklUKElzT3B0aW1pemVkRnVsbHNj
cmVlblN1cHBvcnRlZCk7CisgICAgSU5JVChHZXRNZWRpYVVJSW1hZ2VEYXRhKTsKICNlbmRpZgog
CiAgICAgSU5JVChDcmVhdGVDVExpbmVXaXRoVW5pQ2hhclByb3ZpZGVyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241184</attachid>
            <date>2014-11-07 08:17:28 -0800</date>
            <delta_ts>2014-11-07 08:49:36 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>controller_patch_6.txt</filename>
            <type>text/plain</type>
            <size>20905</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE0LTExLTA2ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFVwZGF0ZSBv
cHRpbWl6ZWQgZnVsbHNjcmVlbiBtZWRpYSBjb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFD
b250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZ1
bGxzY3JlZW5Nb2RlKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6
Om1lZGlhVUlJbWFnZURhdGEpOiBOZXcuCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L01lZGlhQ29udHJvbHNIb3N0Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01l
ZGlhQ29udHJvbHNIb3N0LmlkbDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9t
ZWRpYUNvbnRyb2xzaU9TLmNzczoKKyAgICAgICAgUmVuYW1lZCAtd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXdpcmVsZXNzLXBsYXliYWNrLXN0YXR1cyB0byAtd2Via2l0LW1lZGlhLWNvbnRyb2xzLWlu
bGluZS1wbGF5YmFjay1wbGFjZWhvbGRlcgorICAgICAgICAgICAgYmVjYXVzZSBpdCBpcyBub3cg
dXNlZCBmb3Igb3RoZXIgaW5saW5lIHBsYXliYWNrIHN0YXR1cyBkaXNwbGF5LiBBZGQgei1pbmRl
eDowIHNvIHRoZSBwbGFjZWhvbGRlcgorICAgICAgICAgICAgcmVuZGVycyBhYm92ZSBjYXB0aW9u
cy4gUmVtb3ZlIHRoZSBiYWNrZ3JvdW5kLWltYWdlLCBpdCBpcyBub3cgc2V0IGZyb20gc2NyaXB0
LgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtaW5saW5lLXBsYXliYWNr
LXBsYWNlaG9sZGVyKTogCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1p
bmxpbmUtcGxheWJhY2stcGxhY2Vob2xkZXIuaGlkZGVuKToKKyAgICAgICAgKHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLW9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbik6CisgICAgICAg
IChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVzcy1wbGF5YmFjay1zdGF0dXMp
OiBEZWxldGVkLgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtd2lyZWxl
c3MtcGxheWJhY2stc3RhdHVzLmhpZGRlbik6IERlbGV0ZWQuCisgICAgICAgICh2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1vcHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b246YWN0aXZlKTog
RGVsZXRlZC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xz
aU9TLmpzOgorICAgICAgICAoQ29udHJvbGxlcklPUyk6IFNldCBkb2luZ1NldHVwIHRvIHRydWUg
YXJvdW5kIHNldHVwIHNvIHdlIGRvbid0IGRyYXcgdGhlIGlubGluZSBjb250cm9scworICAgICAg
ICAgICAgYnJpZWZseSB3aGVuIGFuIGVsZW1lbnQgaXMgY3JlYXRlZCBhcyBhIHJlc3VsdCBvZiBh
IHVzZXIgZ2VzdHVyZS4KKyAgICAgICAgKENvbnRyb2xsZXJJT1MucHJvdG90eXBlLnNob3VsZEhh
dmVTdGFydFBsYXliYWNrQnV0dG9uKTogRG9uJ3QgYWxsb3cgaW5saW5lIGNvbnRyb2xzIHdoZW4g
ZG9pbmdTZXR1cCBpcyB0cnVlLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUudXBk
YXRlV2lyZWxlc3NQbGF5YmFja1N0YXR1cyk6IHdpcmVsZXNzUGxheWJhY2tTdGF0dXMgLT4gaW5s
aW5lUGxheWJhY2tQbGFjZWhvbGRlci4KKyAgICAgICAgKENvbnRyb2xsZXJJT1MucHJvdG90eXBl
LmNyZWF0ZUNvbnRyb2xzKTogRGl0dG8uIEFkZCBzdHlsZSBydWxlcyBmb3Igb3B0aW1pemVkIGZ1
bGxzY3JlZW4gYnV0dG9uLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUuY29uZmln
dXJlSW5saW5lQ29udHJvbHMpOiBBZGQgdGhlIGlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIgYXMg
YSBwZWVyIG9mCisgICAgICAgICAgICB0aGUgaW5saW5lIGNvbnRyb2xzIGNvbXBvc2l0aW5nIGNo
aWxkIGluc3RlYWQgb2YgYXMgYSBjaGlsZCBzbyBpdCByZW5kZXJzIGNvcnJlY3RseS4KKyAgICAg
ICAgKENvbnRyb2xsZXJJT1MucHJvdG90eXBlLmFkZENvbnRyb2xzKToKKyAgICAgICAgKENvbnRy
b2xsZXJJT1MucHJvdG90eXBlLnVwZGF0ZUNvbnRyb2xzKTogd2lyZWxlc3NQbGF5YmFja1N0YXR1
cyAtPiBpbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLgorICAgICAgICAoQ29udHJvbGxlcklPUy5w
cm90b3R5cGUuaGFuZGxlV3JhcHBlclRvdWNoU3RhcnQpOgorICAgICAgICAoQ29udHJvbGxlcklP
Uy5wcm90b3R5cGUuZ2V0IHBhZ2VTY2FsZUZhY3Rvcik6IENsZWFudXAuCisgICAgICAgIChDb250
cm9sbGVySU9TLnByb3RvdHlwZS5zZXQgcGFnZVNjYWxlRmFjdG9yKTogRGl0dG8uCisgICAgICAg
IChDb250cm9sbGVySU9TLnByb3RvdHlwZS5oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlKTogU2hvdyB0
aGUgcGxhY2Vob2xkZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogRXhwb3J0IF93a0dl
dE1lZGlhVUlJbWFnZURhdGEuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmZ1bGxzY3JlZW5Nb2RlKTogRXhw
b3NlIGZ1bGxzY3JlZW4gbW9kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlSU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2VJT1MubW06CisKIDIwMTQtMTEtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgUHV0IG5hbWVzIG9uIGEgY291cGxlIG9mIHZpZGVvLXJl
bGF0ZWQgQ0FMYXllcnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNzU2NDEp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMjg0
MCw2ICsyODQwLDcgQEAgX3drRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JBZnRlcklPU1ZlcnNpbwog
X3drR2V0QXZhaWxhYmxlU2NyZWVuU2l6ZQogX3drR2V0RGV2aWNlQ2xhc3MKIF93a0dldERldmlj
ZU5hbWUKK193a0dldE1lZGlhVUlJbWFnZURhdGEKIF93a0dldE9TTmFtZUZvclVzZXJBZ2VudAog
X3drR2V0UGxhdGZvcm1OYW1lRm9yTmF2aWdhdG9yCiBfd2tHZXRTY3JlZW5TY2FsZUZhY3RvcgpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCShyZXZpc2lvbiAxNzU3NDEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yODYsNiArMjg2LDQ4IEBAIHZvaWQgTWVkaWFDb250cm9sc0hvc3Q6OnNldENv
bnRyb2xzRGVwZW4KICAgICBtX21lZGlhRWxlbWVudC0+c2V0TWVkaWFDb250cm9sc0RlcGVuZE9u
UGFnZVNjYWxlRmFjdG9yKHZhbHVlKTsKIH0KIAorU3RyaW5nIE1lZGlhQ29udHJvbHNIb3N0Ojpm
dWxsc2NyZWVuTW9kZSgpIGNvbnN0Cit7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgbm9uZSwgKEFTQ0lJTGl0ZXJhbCgibm9uZSIpKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc3RhbmRhcmQsIChBU0NJSUxpdGVyYWwoInN0
YW5kYXJkIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBv
cHRpbWl6ZWQsIChBU0NJSUxpdGVyYWwoIm9wdGltaXplZCIpKSk7CisgICAgU3RyaW5nIG1vZGUg
PSBub25lOworCisgICAgZW51bSBWaWRlb0Z1bGxzY3JlZW5Nb2RlIHsgVmlkZW9GdWxsc2NyZWVu
TW9kZU5vbmUsIFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCwgVmlkZW9GdWxsc2NyZWVuTW9k
ZU9wdGltaXplZCB9OworCisgICAgc3dpdGNoIChtX21lZGlhRWxlbWVudC0+ZnVsbHNjcmVlbk1v
ZGUoKSkgeworICAgIGNhc2UgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU5v
bmU6CisgICAgICAgIG1vZGUgPSBub25lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEhUTUxN
ZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZDoKKyAgICAgICAgbW9kZSA9
IHN0YW5kYXJkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQ6CisgICAgICAgIG1vZGUgPSBvcHRpbWl6ZWQ7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICAKKyAgICBMT0coTWVkaWEsICJNZWRpYUNvbnRyb2xz
SG9zdDo6ZnVsbHNjcmVlbk1vZGUgLSByZXR1cm5pbmcgXCIlc1wiIiwgbW9kZS51dGY4KCkuZGF0
YSgpKTsKKworICAgIHJldHVybiBtb2RlOworfQorCitTdHJpbmcgTWVkaWFDb250cm9sc0hvc3Q6
Om1lZGlhVUlJbWFnZURhdGEoU3RyaW5nIHBhcnRJRCkgY29uc3QKK3sKKyNpZiBQTEFURk9STShJ
T1MpCisgICAgaWYgKHBhcnRJRCA9PSAib3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uIikKKyAg
ICAgICAgcmV0dXJuIHdrR2V0TWVkaWFVSUltYWdlRGF0YSh3a01lZGlhVUlQYXJ0T3B0aW1pemVk
RnVsbHNjcmVlbkJ1dHRvbik7CisgICAgZWxzZSBpZiAocGFydElEID09ICJvcHRpbWl6ZWQtZnVs
bHNjcmVlbi1idXR0b24taGlsaXRlZCIpCisgICAgICAgIHJldHVybiB3a0dldE1lZGlhVUlJbWFn
ZURhdGEod2tNZWRpYVVJUGFydE9wdGltaXplZEZ1bGxzY3JlZW5CdXR0b25IaWxpdGVkKTsKKyAg
ICBlbHNlIGlmIChwYXJ0SUQgPT0gIm9wdGltaXplZC1mdWxsc2NyZWVuLXBsYWNlaG9sZGVyIikK
KyAgICAgICAgcmV0dXJuIHdrR2V0TWVkaWFVSUltYWdlRGF0YSh3a01lZGlhVUlQYXJ0T3B0aW1p
emVkRnVsbHNjcmVlblBsYWNlaG9sZGVyKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhcnRJ
RCkKKyNlbmRpZgorCisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cit9CisKIH0KIAogI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9s
c0hvc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuaAkocmV2aXNpb24gMTc1NzQxKQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTcyLDYgKzcyLDggQEAgcHVibGljOgogICAgIHZvaWQgZXhpdGVkRnVsbHNjcmVlbigp
OwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuT3B0aW1pemVkKCk7CiAgICAgYm9vbCBvcHRpbWl6
ZWRGdWxsc2NyZWVuU3VwcG9ydGVkKCk7CisgICAgU3RyaW5nIGZ1bGxzY3JlZW5Nb2RlKCkgY29u
c3Q7CisgICAgU3RyaW5nIG1lZGlhVUlJbWFnZURhdGEoU3RyaW5nKSBjb25zdDsKIAogICAgIFN0
cmluZyBleHRlcm5hbERldmljZURpc3BsYXlOYW1lKCkgY29uc3Q7CiAgICAgU3RyaW5nIGV4dGVy
bmFsRGV2aWNlVHlwZSgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaWRsCShyZXZpc2lv
biAxNzU3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFD
b250cm9sc0hvc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSwxOCBAQCBlbnVtIERl
dmljZVR5cGUgewogICAgICJ0dm91dCIKIH07CiAKK2VudW0gRnVsbHNjcmVlbk1vZGUgeworICAg
ICJub25lIiwKKyAgICAic3RhbmRhcmQiLAorICAgICJvcHRpbWl6ZWQiCit9OworCitlbnVtIE1l
ZGlhVUlQYXJ0SUQgeworICAgICJvcHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b24iLAorICAgICJv
cHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b24taGlsaXRlZCIsCisgICAgIm9wdGltaXplZC1mdWxs
c2NyZWVuLXBsYWNlaG9sZGVyIgorfTsKKwogWwogICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAg
IENvbmRpdGlvbmFsPU1FRElBX0NPTlRST0xTX1NDUklQVCwKQEAgLTU3LDQgKzY5LDYgQEAgZW51
bSBEZXZpY2VUeXBlIHsKICAgICB2b2lkIGV4aXRlZEZ1bGxzY3JlZW4oKTsKICAgICB2b2lkIGVu
dGVyRnVsbHNjcmVlbk9wdGltaXplZCgpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
IG9wdGltaXplZEZ1bGxzY3JlZW5TdXBwb3J0ZWQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZ1
bGxzY3JlZW5Nb2RlIGZ1bGxzY3JlZW5Nb2RlOworICAgIERPTVN0cmluZyBtZWRpYVVJSW1hZ2VE
YXRhKE1lZGlhVUlQYXJ0SUQgcGFydElEKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc2lPUy5jc3MKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNpT1MuY3NzCShy
ZXZpc2lvbiAxNzU3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMv
bWVkaWFDb250cm9sc2lPUy5jc3MJKHdvcmtpbmcgY29weSkKQEAgLTY2LDkgKzY2LDEwIEBAIGF1
ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIGJ1dHQKICAgICAtd2Via2l0LWFwcGVh
cmFuY2U6IG5vbmU7CiB9CiAKLXZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXdpcmVsZXNz
LXBsYXliYWNrLXN0YXR1cywKLWF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXdpcmVsZXNz
LXBsYXliYWNrLXN0YXR1cyB7Cit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1pbmxpbmUt
cGxheWJhY2stcGxhY2Vob2xkZXIsCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1pbmxp
bmUtcGxheWJhY2stcGxhY2Vob2xkZXIgewogICAgIGRpc3BsYXk6IGJsb2NrOworICAgIHotaW5k
ZXg6IDA7CiAgICAgd2lkdGg6IDEwMCU7CiAgICAgaGVpZ2h0OiAxMDAlOwogICAgIGJhY2tncm91
bmQtY29sb3I6IGJsYWNrOwpAQCAtNzcsOCArNzgsOCBAQCBhdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy13aXJlbGVzcy1wCiAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDUwJTsKIH0KIAot
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtd2lyZWxlc3MtcGxheWJhY2stc3RhdHVzLmhp
ZGRlbiwKLWF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXdpcmVsZXNzLXBsYXliYWNrLXN0
YXR1cy5oaWRkZW4gewordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtaW5saW5lLXBsYXli
YWNrLXBsYWNlaG9sZGVyLmhpZGRlbiwKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWlu
bGluZS1wbGF5YmFjay1wbGFjZWhvbGRlci5oaWRkZW4gewogICAgIGRpc3BsYXk6IG5vbmU7CiB9
CiAKQEAgLTI0Niw5ICsyNDcsNyBAQCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxs
c2NyZWVuCiB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vcHRpbWl6ZWQtZnVsbHNjcmVl
bi1idXR0b24gewogICAgIHdpZHRoOiAzNXB4OwogICAgIGhlaWdodDogNDRweDsKLSAgICBiYWNr
Z3JvdW5kLXNpemU6IDM1cHggNDRweDsKLSAgICBvcGFjaXR5OiAwLjk7Ci0gICAgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNSA0NCI+PGcgc3Ryb2tlPSJyZ2JhKDAsIDAs
IDAsIDAuNCkiIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik0gMTAsMTUgaCAxNCB2IDE0IGggLTE0IHYg
LTE0Ii8+PC9nPjwvc3ZnPicpOworICAgIG9wYWNpdHk6IDAuNDsKIH0KIAogdmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24gewpAQCAtMjcxLDEwICsyNzAsNiBAQCB2aWRl
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuCiAgICAgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNSA0NCI+PGcgc3Ryb2tlPSJ3aGl0ZSIgZmlsbD0ibm9u
ZSI+PHBhdGggZD0iTSAxMCwyMCB2IC01IGggNSBNIDEwLDE1IGwgNSw1Ii8+PHBhdGggZD0iTSAy
NCwyNCB2IDUgaCAtNSBNIDI0LDI5IGwgLTUsLTUiLz48L2c+PC9zdmc+Jyk7CiB9CiAKLXZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbjphY3Rp
dmUgewotICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzUgNDQiPjxn
IHN0cm9rZT0id2hpdGUiIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik0gMTAsMTUgaCAxNCB2IDE0IGgg
LTE0IHYgLTE0Ii8+PC9nPjwvc3ZnPicpOwotfQotCiB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy10aW1lbGluZSwKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIHsK
ICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc2lPUy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc2lPUy5qcwkocmV2
aXNpb24gMTc1NzQxKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21l
ZGlhQ29udHJvbHNpT1MuanMJKHdvcmtpbmcgY29weSkKQEAgLTUsNiArNSw3IEBAIGZ1bmN0aW9u
IGNyZWF0ZUNvbnRyb2xzKHJvb3QsIHZpZGVvLCBob3MKIAogZnVuY3Rpb24gQ29udHJvbGxlcklP
Uyhyb290LCB2aWRlbywgaG9zdCkKIHsKKyAgICB0aGlzLmRvaW5nU2V0dXAgPSB0cnVlOwogICAg
IHRoaXMuaGFzV2lyZWxlc3NQbGF5YmFja1RhcmdldHMgPSBmYWxzZTsKICAgICB0aGlzLl9wYWdl
U2NhbGVGYWN0b3IgPSAxOwogICAgIHRoaXMuaXNMaXN0ZW5pbmdGb3JQbGF5YmFja1RhcmdldEF2
YWlsYWJpbGl0eUV2ZW50ID0gZmFsc2U7CkBAIC0xNSw2ICsxNiw3IEBAIGZ1bmN0aW9uIENvbnRy
b2xsZXJJT1Mocm9vdCwgdmlkZW8sIGhvc3QKICAgICB0aGlzLnNldE5lZWRzVGltZWxpbmVNZXRy
aWNzVXBkYXRlKCk7CiAKICAgICBob3N0LmNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3Ig
PSB0cnVlOworICAgIHRoaXMuZG9pbmdTZXR1cCA9IGZhbHNlOwogfTsKIAogLyogRW51bXMgKi8K
QEAgLTc2LDcgKzc4LDcgQEAgQ29udHJvbGxlcklPUy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlm
ICh0aGlzLnZpZGVvLmN1cnJlbnRTcmMgJiYgdGhpcy52aWRlby5lcnJvcikKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogCi0gICAgICAgIGlmICghdGhpcy5ob3N0LnVzZXJHZXN0dXJlUmVxdWly
ZWQgJiYgYWxsb3dzSW5saW5lKQorICAgICAgICBpZiAoIXRoaXMuZG9pbmdTZXR1cCAmJiAhdGhp
cy5ob3N0LnVzZXJHZXN0dXJlUmVxdWlyZWQgJiYgYWxsb3dzSW5saW5lKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTE1LDEzICsxMTcsMTMg
QEAgQ29udHJvbGxlcklPUy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBiYWNrZ3JvdW5kSW1h
Z2VTVkcgPSBiYWNrZ3JvdW5kSW1hZ2VTVkcucmVwbGFjZSgnIyNERVZJQ0VfVFlQRSMjJywgZGV2
aWNlVHlwZSk7CiAgICAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2VTVkcgPSBiYWNrZ3JvdW5kSW1h
Z2VTVkcucmVwbGFjZSgnIyNERVZJQ0VfTkFNRSMjJywgZGV2aWNlTmFtZSk7CiAKLSAgICAgICAg
ICAgIHRoaXMuY29udHJvbHMud2lyZWxlc3NQbGF5YmFja1N0YXR1cy5zdHlsZS5iYWNrZ3JvdW5k
SW1hZ2UgPSBiYWNrZ3JvdW5kSW1hZ2VTVkc7Ci0gICAgICAgICAgICB0aGlzLmNvbnRyb2xzLndp
cmVsZXNzUGxheWJhY2tTdGF0dXMuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgZGV2aWNlVHlw
ZSArICIsICIgKyBkZXZpY2VOYW1lKTsKKyAgICAgICAgICAgIHRoaXMuY29udHJvbHMuaW5saW5l
UGxheWJhY2tQbGFjZWhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBiYWNrZ3JvdW5kSW1h
Z2VTVkc7CisgICAgICAgICAgICB0aGlzLmNvbnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xk
ZXIuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgZGV2aWNlVHlwZSArICIsICIgKyBkZXZpY2VO
YW1lKTsKIAotICAgICAgICAgICAgdGhpcy5jb250cm9scy53aXJlbGVzc1BsYXliYWNrU3RhdHVz
LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5DbGFzc05hbWVzLmhpZGRlbik7CisgICAgICAgICAgICB0
aGlzLmNvbnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIuY2xhc3NMaXN0LnJlbW92ZSh0
aGlzLkNsYXNzTmFtZXMuaGlkZGVuKTsKICAgICAgICAgICAgIHRoaXMuY29udHJvbHMud2lyZWxl
c3NUYXJnZXRQaWNrZXIuY2xhc3NMaXN0LmFkZCh0aGlzLkNsYXNzTmFtZXMuYWN0aXZlKTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMuY29udHJvbHMud2lyZWxlc3NQbGF5YmFj
a1N0YXR1cy5jbGFzc0xpc3QuYWRkKHRoaXMuQ2xhc3NOYW1lcy5oaWRkZW4pOworICAgICAgICAg
ICAgdGhpcy5jb250cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLmNsYXNzTGlzdC5hZGQo
dGhpcy5DbGFzc05hbWVzLmhpZGRlbik7CiAgICAgICAgICAgICB0aGlzLmNvbnRyb2xzLndpcmVs
ZXNzVGFyZ2V0UGlja2VyLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5DbGFzc05hbWVzLmFjdGl2ZSk7
CiAgICAgICAgIH0KICAgICB9LApAQCAtMTM5LDEwICsxNDEsMTYgQEAgQ29udHJvbGxlcklPUy5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBwYW5lbENvbXBvc2l0ZWRQYXJlbnQgPSB0aGlzLmNv
bnRyb2xzLnBhbmVsQ29tcG9zaXRlZFBhcmVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOwogICAgICAgICBwYW5lbENvbXBvc2l0ZWRQYXJlbnQuc2V0QXR0cmlidXRlKCdwc2V1ZG8n
LCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbC1jb21wb3NpdGVkLXBhcmVudCcpOwogCisg
ICAgICAgIHZhciBpbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyID0gdGhpcy5jb250cm9scy5pbmxp
bmVQbGF5YmFja1BsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cisg
ICAgICAgIGlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIuc2V0QXR0cmlidXRlKCdwc2V1ZG8nLCAn
LXdlYmtpdC1tZWRpYS1jb250cm9scy1pbmxpbmUtcGxheWJhY2stcGxhY2Vob2xkZXInKTsKKyAg
ICAgICAgaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5jbGFzc0xpc3QuYWRkKHRoaXMuQ2xhc3NO
YW1lcy5oaWRkZW4pOworICAgICAgICBpbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLnNldEF0dHJp
YnV0ZSgnYXJpYS1sYWJlbCcsIHRoaXMuVUlTdHJpbmcoJ0Rpc3BsYXkgT3B0aW1pemVkIEZ1bGwg
U2NyZWVuJykpOwogCi0gICAgICAgIHZhciB3aXJlbGVzc1BsYXliYWNrU3RhdHVzID0gdGhpcy5j
b250cm9scy53aXJlbGVzc1BsYXliYWNrU3RhdHVzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7Ci0gICAgICAgIHdpcmVsZXNzUGxheWJhY2tTdGF0dXMuc2V0QXR0cmlidXRlKCdwc2V1
ZG8nLCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVzcy1wbGF5YmFjay1zdGF0dXMnKTsK
LSAgICAgICAgd2lyZWxlc3NQbGF5YmFja1N0YXR1cy5jbGFzc0xpc3QuYWRkKHRoaXMuQ2xhc3NO
YW1lcy5oaWRkZW4pOworICAgICAgICB2YXIgYnV0dG9uSW1hZ2VTVkcgPSAiYmFja2dyb3VuZC1p
bWFnZTogdXJsKCciICsgdGhpcy5ob3N0Lm1lZGlhVUlJbWFnZURhdGEoIm9wdGltaXplZC1mdWxs
c2NyZWVuLWJ1dHRvbiIpICsgIicpIjsKKyAgICAgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0u
aW5zZXJ0UnVsZSgndmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3B0aW1pemVkLWZ1bGxz
Y3JlZW4tYnV0dG9uIHsgJyArIGJ1dHRvbkltYWdlU1ZHICsgJzsgfScsIDApOworCisgICAgICAg
IGJ1dHRvbkltYWdlU1ZHID0gImJhY2tncm91bmQtaW1hZ2U6IHVybCgnIiArIHRoaXMuaG9zdC5t
ZWRpYVVJSW1hZ2VEYXRhKCJvcHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b24taGlsaXRlZCIpICsg
IicpIjsKKyAgICAgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5zZXJ0UnVsZSgndmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uOmFjdGl2
ZSB7ICcgKyBidXR0b25JbWFnZVNWRyArICc7IH0nLCAwKTsKIAogICAgICAgICB2YXIgd2lyZWxl
c3NUYXJnZXRQaWNrZXIgPSB0aGlzLmNvbnRyb2xzLndpcmVsZXNzVGFyZ2V0UGlja2VyID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICAgICAgIHdpcmVsZXNzVGFyZ2V0UGlj
a2VyLnNldEF0dHJpYnV0ZSgncHNldWRvJywgJy13ZWJraXQtbWVkaWEtY29udHJvbHMtd2lyZWxl
c3MtcGxheWJhY2stcGlja2VyLWJ1dHRvbicpOwpAQCAtMTk2LDggKzIwNCw2IEBAIENvbnRyb2xs
ZXJJT1MucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICBjb25maWd1cmVJbmxpbmVDb250cm9s
czogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRoaXMuYmFzZS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRy
b2xzLndpcmVsZXNzUGxheWJhY2tTdGF0dXMpOwotCiAgICAgICAgIHRoaXMuY29udHJvbHMucGFu
ZWwuYXBwZW5kQ2hpbGQodGhpcy5jb250cm9scy5wbGF5QnV0dG9uKTsKICAgICAgICAgdGhpcy5j
b250cm9scy5wYW5lbC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLnN0YXR1c0Rpc3BsYXkpOwog
ICAgICAgICB0aGlzLmNvbnRyb2xzLnBhbmVsLmFwcGVuZENoaWxkKHRoaXMuY29udHJvbHMudGlt
ZWxpbmVCb3gpOwpAQCAtMjI5LDYgKzIzNSw3IEBAIENvbnRyb2xsZXJJT1MucHJvdG90eXBlID0g
ewogICAgIH0sCiAKICAgICBhZGRDb250cm9sczogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMu
YmFzZS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIp
OwogICAgICAgICB0aGlzLmJhc2UuYXBwZW5kQ2hpbGQodGhpcy5jb250cm9scy5wYW5lbENvbXBv
c2l0ZWRQYXJlbnQpOwogICAgICAgICB0aGlzLmNvbnRyb2xzLnBhbmVsQ29tcG9zaXRlZFBhcmVu
dC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLnBhbmVsKTsKICAgICAgICAgdGhpcy5zZXROZWVk
c1RpbWVsaW5lTWV0cmljc1VwZGF0ZSgpOwpAQCAtMjM3LDcgKzI0NCw3IEBAIENvbnRyb2xsZXJJ
T1MucHJvdG90eXBlID0gewogICAgIHVwZGF0ZUNvbnRyb2xzOiBmdW5jdGlvbigpIHsKICAgICAg
ICAgaWYgKHRoaXMuc2hvdWxkSGF2ZVN0YXJ0UGxheWJhY2tCdXR0b24oKSkKICAgICAgICAgICAg
IHRoaXMuc2V0Q29udHJvbHNUeXBlKENvbnRyb2xsZXJJT1MuU3RhcnRQbGF5YmFja0NvbnRyb2xz
KTsKLSAgICAgICAgZWxzZSBpZiAodGhpcy5pc0Z1bGxTY3JlZW4oKSkKKyAgICAgICAgZWxzZSBp
ZiAodGhpcy5pc0Z1bGxTY3JlZW4oKSAmJiB0aGlzLmhvc3QuZnVsbHNjcmVlbk1vZGUgIT09ICJv
cHRpbWl6ZWQiKQogICAgICAgICAgICAgdGhpcy5zZXRDb250cm9sc1R5cGUoQ29udHJvbGxlci5G
dWxsU2NyZWVuQ29udHJvbHMpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aGlzLnNldENv
bnRyb2xzVHlwZShDb250cm9sbGVyLklubGluZUNvbnRyb2xzKTsKQEAgLTM1NSw3ICszNjIsNyBA
QCBDb250cm9sbGVySU9TLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgaGFuZGxlV3JhcHBl
clRvdWNoU3RhcnQ6IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIGlmIChldmVudC50YXJnZXQg
IT0gdGhpcy5iYXNlICYmIGV2ZW50LnRhcmdldCAhPSB0aGlzLmNvbnRyb2xzLndpcmVsZXNzUGxh
eWJhY2tTdGF0dXMpCisgICAgICAgIGlmIChldmVudC50YXJnZXQgIT0gdGhpcy5iYXNlICYmIGV2
ZW50LnRhcmdldCAhPSB0aGlzLmNvbnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIpCiAg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy5tb3N0UmVjZW50TnVtYmVyT2ZUYXJn
ZXR0ZWRUb3VjaGVzID0gZXZlbnQudGFyZ2V0VG91Y2hlcy5sZW5ndGg7CkBAIC01NTUsMTEgKzU2
MiwxMyBAQCBDb250cm9sbGVySU9TLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAK
LSAgICBnZXQgcGFnZVNjYWxlRmFjdG9yKCkgeworICAgIGdldCBwYWdlU2NhbGVGYWN0b3IoKQor
ICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3BhZ2VTY2FsZUZhY3RvcjsKICAgICB9LAogCi0g
ICAgc2V0IHBhZ2VTY2FsZUZhY3RvcihuZXdTY2FsZUZhY3RvcikgeworICAgIHNldCBwYWdlU2Nh
bGVGYWN0b3IobmV3U2NhbGVGYWN0b3IpCisgICAgewogICAgICAgICBpZiAodGhpcy5fcGFnZVNj
YWxlRmFjdG9yID09PSBuZXdTY2FsZUZhY3RvcikKICAgICAgICAgICAgIHJldHVybjsKIApAQCAt
NTgwLDcgKzU4OSwyNSBAQCBDb250cm9sbGVySU9TLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAg
ICB9CisgICAgfSwKKworICAgIGhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2U6IGZ1bmN0aW9uKGV2ZW50
KQorICAgIHsKKyAgICAgICAgQ29udHJvbGxlci5wcm90b3R5cGUuaGFuZGxlRnVsbHNjcmVlbkNo
YW5nZS5jYWxsKHRoaXMsIGV2ZW50KTsKKworICAgICAgICBpZiAoIXRoaXMuaXNGdWxsU2NyZWVu
KCkpIHsKKyAgICAgICAgICAgIHRoaXMuY29udHJvbHMuaW5saW5lUGxheWJhY2tQbGFjZWhvbGRl
ci5jbGFzc0xpc3QuYWRkKHRoaXMuQ2xhc3NOYW1lcy5oaWRkZW4pOworICAgICAgICB9IGVsc2Ug
aWYgKHRoaXMuaG9zdC5mdWxsc2NyZWVuTW9kZSA9PT0gIm9wdGltaXplZCIpIHsKKyAgICAgICAg
ICAgIHZhciBiYWNrZ3JvdW5kSW1hZ2VTVkcgPSAidXJsKCciICsgdGhpcy5ob3N0Lm1lZGlhVUlJ
bWFnZURhdGEoIm9wdGltaXplZC1mdWxsc2NyZWVuLXBsYWNlaG9sZGVyIikgKyAiJykiOworICAg
ICAgICAgICAgdGhpcy5jb250cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLnN0eWxlLmJh
Y2tncm91bmRJbWFnZSA9IGJhY2tncm91bmRJbWFnZVNWRzsKKyAgICAgICAgICAgIHRoaXMuY29u
dHJvbHMuaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwn
LCAidmlkZW8gcGxheWJhY2sgcGxhY2Vob2xkZXIiKTsKKworICAgICAgICAgICAgdGhpcy5jb250
cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5DbGFz
c05hbWVzLmhpZGRlbik7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnVwZGF0ZUNhcHRpb25D
b250YWluZXIoKTsKKyAgICB9LAorCiB9OwogCiBPYmplY3QuY3JlYXRlKENvbnRyb2xsZXIucHJv
dG90eXBlKS5leHRlbmQoQ29udHJvbGxlcklPUy5wcm90b3R5cGUpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHJldmlzaW9uIDE3NTY0MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOTIsNiAr
MzkyLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgYm9vbCBpc0Z1bGxz
Y3JlZW4oKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHRvZ2dsZUZ1bGxzY3JlZW5TdGF0ZSgp
OwogICAgIGVudW0gVmlkZW9GdWxsc2NyZWVuTW9kZSB7IFZpZGVvRnVsbHNjcmVlbk1vZGVOb25l
LCBWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQsIFZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6
ZWQgfTsKKyAgICBWaWRlb0Z1bGxzY3JlZW5Nb2RlIGZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5Nb2RlOyB9CisKICAgICB2b2lkIGVudGVyRnVsbHNjcmVl
bihWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVu
KCkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBleGl0RnVsbHNjcmVlbigpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJ
T1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5
c3RlbUludGVyZmFjZUlPUy5oCShyZXZpc2lvbiAxNzU2NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5oCSh3b3JraW5nIGNvcHkpCkBA
IC03NSw0ICs3NSwxMiBAQCBleHRlcm4gQ0ZTdHJpbmdSZWYgKCp3a0dldFZlbmRvck5hbWVGb3JO
CiAKIGV4dGVybiBib29sICgqd2tJc09wdGltaXplZEZ1bGxzY3JlZW5TdXBwb3J0ZWQpKHZvaWQp
OwogCit0eXBlZGVmIGVudW0geworICAgIHdrTWVkaWFVSVBhcnRPcHRpbWl6ZWRGdWxsc2NyZWVu
QnV0dG9uID0gMCwKKyAgICB3a01lZGlhVUlQYXJ0T3B0aW1pemVkRnVsbHNjcmVlbkJ1dHRvbkhp
bGl0ZWQsCisgICAgd2tNZWRpYVVJUGFydE9wdGltaXplZEZ1bGxzY3JlZW5QbGFjZWhvbGRlcgor
fSB3a01lZGlhVUlQYXJ0OworZXh0ZXJuIENGU3RyaW5nUmVmICgqd2tHZXRNZWRpYVVJSW1hZ2VE
YXRhKShpbnQgd2tNZWRpYVVJUGFydCk7CisKKwogI2VuZGlmIC8vIFdlYkNvcmVTeXN0ZW1JbnRl
cmZhY2VJT1NfaApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0
ZW1JbnRlcmZhY2VJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW0JKHJldmlzaW9uIDE3NTY0MSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzEsNiArMTMxLDcgQEAgV0VCQ09SRV9FWFBPUlQgQ0ZTdHJpbmdS
ZWYgKCp3a0dldFBsYXRmbwogV0VCQ09SRV9FWFBPUlQgQ0ZTdHJpbmdSZWYgKCp3a0dldFZlbmRv
ck5hbWVGb3JOYXZpZ2F0b3IpKHZvaWQpOwogCiBXRUJDT1JFX0VYUE9SVCBib29sICgqd2tJc09w
dGltaXplZEZ1bGxzY3JlZW5TdXBwb3J0ZWQpKHZvaWQpOworV0VCQ09SRV9FWFBPUlQgQ0ZTdHJp
bmdSZWYgKCp3a0dldE1lZGlhVUlJbWFnZURhdGEpKGludCk7CiAKIFdFQkNPUkVfRVhQT1JUIGlu
dCAoKndrRXhlcm5hbERldmljZVR5cGVGb3JQbGF5ZXIpKEFWUGxheWVyICopOwogV0VCQ09SRV9F
WFBPUlQgTlNTdHJpbmcgKigqd2tFeGVybmFsRGV2aWNlRGlzcGxheU5hbWVGb3JQbGF5ZXIpKEFW
UGxheWVyICopOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTc1NzQxKQorKysgU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMTEt
MDYgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lP
U10gVXBkYXRlIG9wdGltaXplZCBmdWxsc2NyZWVuIG1lZGlhIGNvbnRyb2xzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg0OTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlKTogSW5pdGlhbGl6ZSBHZXRNZWRpYVVJSW1hZ2VEYXRhLgorCiAyMDE0
LTExLTA2ICBDb25yYWQgU2h1bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ2xpZW50cyBzaG91bGQgYmUgYWJsZSB0byBjdXN0b21pemUgdGhlIHZpZXcgdXNlZCBmb3Ig
cGFnZSBwcmV2aWV3cwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQko
cmV2aXNpb24gMTc1NjQxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMDgsNiAr
MjA4LDcgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgICAgICBJ
TklUKEdldFNjcmVlblNjYWxlRmFjdG9yKTsKICAgICAgICAgSU5JVChJc0dCMTgwMzBDb21wbGlh
bmNlUmVxdWlyZWQpOwogICAgICAgICBJTklUKElzT3B0aW1pemVkRnVsbHNjcmVlblN1cHBvcnRl
ZCk7CisgICAgICAgIElOSVQoR2V0TWVkaWFVSUltYWdlRGF0YSk7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShQVUJMSUNfU1VGRklYX0xJU1QpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
NzU3NDEpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxMyBAQAorMjAxNC0xMS0wNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KKworICAgICAgICBbaU9TXSBVcGRhdGUgb3B0aW1pemVkIGZ1bGxzY3JlZW4gbWVk
aWEgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzODQ5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5p
dFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UpOiBJbml0aWFsaXplIEdldE1lZGlhVUlJbWFnZURhdGEu
CisKIDIwMTQtMTEtMDYgIERhbmllbCBKYWxrdXQgIDxqYWxrdXRAcmVkLXN3ZWF0ZXIuY29tPgog
CiAgICAgICAgIFdyYXAgdGhlIGJ1bGsgb2YgLVtXZWJWaWV3IGRlYWxsb2NdIHdpdGggYW4gYXV0
b3JlbGVhc2UgcG9vbC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlN5c3RlbUludGVyZmFjZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHJldmlzaW9uIDE3NTY0MSkKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiw3IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRl
cmZhY2Uodm9pZCkKICAgICBJTklUKEdldFNjcmVlblNjYWxlRmFjdG9yKTsKICAgICBJTklUKElz
R0IxODAzMENvbXBsaWFuY2VSZXF1aXJlZCk7CiAgICAgSU5JVChJc09wdGltaXplZEZ1bGxzY3Jl
ZW5TdXBwb3J0ZWQpOworICAgIElOSVQoR2V0TWVkaWFVSUltYWdlRGF0YSk7CiAjZW5kaWYKIAog
ICAgIElOSVQoQ3JlYXRlQ1RMaW5lV2l0aFVuaUNoYXJQcm92aWRlcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241185</attachid>
            <date>2014-11-07 08:49:36 -0800</date>
            <delta_ts>2014-11-07 09:01:50 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>controller_patch_6.txt</filename>
            <type>text/plain</type>
            <size>20906</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE0LTExLTA2ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFVwZGF0ZSBv
cHRpbWl6ZWQgZnVsbHNjcmVlbiBtZWRpYSBjb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFD
b250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmZ1
bGxzY3JlZW5Nb2RlKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6
Om1lZGlhVUlJbWFnZURhdGEpOiBOZXcuCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L01lZGlhQ29udHJvbHNIb3N0Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01l
ZGlhQ29udHJvbHNIb3N0LmlkbDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9t
ZWRpYUNvbnRyb2xzaU9TLmNzczoKKyAgICAgICAgUmVuYW1lZCAtd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXdpcmVsZXNzLXBsYXliYWNrLXN0YXR1cyB0byAtd2Via2l0LW1lZGlhLWNvbnRyb2xzLWlu
bGluZS1wbGF5YmFjay1wbGFjZWhvbGRlcgorICAgICAgICAgICAgYmVjYXVzZSBpdCBpcyBub3cg
dXNlZCBmb3Igb3RoZXIgaW5saW5lIHBsYXliYWNrIHN0YXR1cyBkaXNwbGF5LiBBZGQgei1pbmRl
eDowIHNvIHRoZSBwbGFjZWhvbGRlcgorICAgICAgICAgICAgcmVuZGVycyBhYm92ZSBjYXB0aW9u
cy4gUmVtb3ZlIHRoZSBiYWNrZ3JvdW5kLWltYWdlLCBpdCBpcyBub3cgc2V0IGZyb20gc2NyaXB0
LgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtaW5saW5lLXBsYXliYWNr
LXBsYWNlaG9sZGVyKTogCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1p
bmxpbmUtcGxheWJhY2stcGxhY2Vob2xkZXIuaGlkZGVuKToKKyAgICAgICAgKHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLW9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbik6CisgICAgICAg
IChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVzcy1wbGF5YmFjay1zdGF0dXMp
OiBEZWxldGVkLgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtd2lyZWxl
c3MtcGxheWJhY2stc3RhdHVzLmhpZGRlbik6IERlbGV0ZWQuCisgICAgICAgICh2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1vcHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b246YWN0aXZlKTog
RGVsZXRlZC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xz
aU9TLmpzOgorICAgICAgICAoQ29udHJvbGxlcklPUyk6IFNldCBkb2luZ1NldHVwIHRvIHRydWUg
YXJvdW5kIHNldHVwIHNvIHdlIGRvbid0IGRyYXcgdGhlIGlubGluZSBjb250cm9scworICAgICAg
ICAgICAgYnJpZWZseSB3aGVuIGFuIGVsZW1lbnQgaXMgY3JlYXRlZCBhcyBhIHJlc3VsdCBvZiBh
IHVzZXIgZ2VzdHVyZS4KKyAgICAgICAgKENvbnRyb2xsZXJJT1MucHJvdG90eXBlLnNob3VsZEhh
dmVTdGFydFBsYXliYWNrQnV0dG9uKTogRG9uJ3QgYWxsb3cgaW5saW5lIGNvbnRyb2xzIHdoZW4g
ZG9pbmdTZXR1cCBpcyB0cnVlLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUudXBk
YXRlV2lyZWxlc3NQbGF5YmFja1N0YXR1cyk6IHdpcmVsZXNzUGxheWJhY2tTdGF0dXMgLT4gaW5s
aW5lUGxheWJhY2tQbGFjZWhvbGRlci4KKyAgICAgICAgKENvbnRyb2xsZXJJT1MucHJvdG90eXBl
LmNyZWF0ZUNvbnRyb2xzKTogRGl0dG8uIEFkZCBzdHlsZSBydWxlcyBmb3Igb3B0aW1pemVkIGZ1
bGxzY3JlZW4gYnV0dG9uLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUuY29uZmln
dXJlSW5saW5lQ29udHJvbHMpOiBBZGQgdGhlIGlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIgYXMg
YSBwZWVyIG9mCisgICAgICAgICAgICB0aGUgaW5saW5lIGNvbnRyb2xzIGNvbXBvc2l0aW5nIGNo
aWxkIGluc3RlYWQgb2YgYXMgYSBjaGlsZCBzbyBpdCByZW5kZXJzIGNvcnJlY3RseS4KKyAgICAg
ICAgKENvbnRyb2xsZXJJT1MucHJvdG90eXBlLmFkZENvbnRyb2xzKToKKyAgICAgICAgKENvbnRy
b2xsZXJJT1MucHJvdG90eXBlLnVwZGF0ZUNvbnRyb2xzKTogd2lyZWxlc3NQbGF5YmFja1N0YXR1
cyAtPiBpbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLgorICAgICAgICAoQ29udHJvbGxlcklPUy5w
cm90b3R5cGUuaGFuZGxlV3JhcHBlclRvdWNoU3RhcnQpOgorICAgICAgICAoQ29udHJvbGxlcklP
Uy5wcm90b3R5cGUuZ2V0IHBhZ2VTY2FsZUZhY3Rvcik6IENsZWFudXAuCisgICAgICAgIChDb250
cm9sbGVySU9TLnByb3RvdHlwZS5zZXQgcGFnZVNjYWxlRmFjdG9yKTogRGl0dG8uCisgICAgICAg
IChDb250cm9sbGVySU9TLnByb3RvdHlwZS5oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlKTogU2hvdyB0
aGUgcGxhY2Vob2xkZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogRXhwb3J0IF93a0dl
dE1lZGlhVUlJbWFnZURhdGEuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmZ1bGxzY3JlZW5Nb2RlKTogRXhw
b3NlIGZ1bGxzY3JlZW4gbW9kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlSU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2VJT1MubW06CisKIDIwMTQtMTEtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgUHV0IG5hbWVzIG9uIGEgY291cGxlIG9mIHZpZGVvLXJl
bGF0ZWQgQ0FMYXllcnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNzU2NDEp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMjg0
MCw2ICsyODQwLDcgQEAgX3drRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JBZnRlcklPU1ZlcnNpbwog
X3drR2V0QXZhaWxhYmxlU2NyZWVuU2l6ZQogX3drR2V0RGV2aWNlQ2xhc3MKIF93a0dldERldmlj
ZU5hbWUKK193a0dldE1lZGlhVUlJbWFnZURhdGEKIF93a0dldE9TTmFtZUZvclVzZXJBZ2VudAog
X3drR2V0UGxhdGZvcm1OYW1lRm9yTmF2aWdhdG9yCiBfd2tHZXRTY3JlZW5TY2FsZUZhY3RvcgpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCShyZXZpc2lvbiAxNzU3NDEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yODYsNiArMjg2LDQ4IEBAIHZvaWQgTWVkaWFDb250cm9sc0hvc3Q6OnNldENv
bnRyb2xzRGVwZW4KICAgICBtX21lZGlhRWxlbWVudC0+c2V0TWVkaWFDb250cm9sc0RlcGVuZE9u
UGFnZVNjYWxlRmFjdG9yKHZhbHVlKTsKIH0KIAorU3RyaW5nIE1lZGlhQ29udHJvbHNIb3N0Ojpm
dWxsc2NyZWVuTW9kZSgpIGNvbnN0Cit7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgbm9uZSwgKEFTQ0lJTGl0ZXJhbCgibm9uZSIpKSk7CisgICAgREVQUkVDQVRF
RF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc3RhbmRhcmQsIChBU0NJSUxpdGVyYWwoInN0
YW5kYXJkIikpKTsKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBv
cHRpbWl6ZWQsIChBU0NJSUxpdGVyYWwoIm9wdGltaXplZCIpKSk7CisgICAgU3RyaW5nIG1vZGUg
PSBub25lOworCisgICAgZW51bSBWaWRlb0Z1bGxzY3JlZW5Nb2RlIHsgVmlkZW9GdWxsc2NyZWVu
TW9kZU5vbmUsIFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCwgVmlkZW9GdWxsc2NyZWVuTW9k
ZU9wdGltaXplZCB9OworCisgICAgc3dpdGNoIChtX21lZGlhRWxlbWVudC0+ZnVsbHNjcmVlbk1v
ZGUoKSkgeworICAgIGNhc2UgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU5v
bmU6CisgICAgICAgIG1vZGUgPSBub25lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEhUTUxN
ZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZDoKKyAgICAgICAgbW9kZSA9
IHN0YW5kYXJkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQ6CisgICAgICAgIG1vZGUgPSBvcHRpbWl6ZWQ7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICAKKyAgICBMT0coTWVkaWEsICJNZWRpYUNvbnRyb2xz
SG9zdDo6ZnVsbHNjcmVlbk1vZGUgLSByZXR1cm5pbmcgXCIlc1wiIiwgbW9kZS51dGY4KCkuZGF0
YSgpKTsKKworICAgIHJldHVybiBtb2RlOworfQorCitTdHJpbmcgTWVkaWFDb250cm9sc0hvc3Q6
Om1lZGlhVUlJbWFnZURhdGEoU3RyaW5nIHBhcnRJRCkgY29uc3QKK3sKKyNpZiBQTEFURk9STShJ
T1MpCisgICAgaWYgKHBhcnRJRCA9PSAib3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uIikKKyAg
ICAgICAgcmV0dXJuIHdrR2V0TWVkaWFVSUltYWdlRGF0YSh3a01lZGlhVUlQYXJ0T3B0aW1pemVk
RnVsbHNjcmVlbkJ1dHRvbik7CisgICAgZWxzZSBpZiAocGFydElEID09ICJvcHRpbWl6ZWQtZnVs
bHNjcmVlbi1idXR0b24taGlsaXRlZCIpCisgICAgICAgIHJldHVybiB3a0dldE1lZGlhVUlJbWFn
ZURhdGEod2tNZWRpYVVJUGFydE9wdGltaXplZEZ1bGxzY3JlZW5CdXR0b25IaWxpdGVkKTsKKyAg
ICBlbHNlIGlmIChwYXJ0SUQgPT0gIm9wdGltaXplZC1mdWxsc2NyZWVuLXBsYWNlaG9sZGVyIikK
KyAgICAgICAgcmV0dXJuIHdrR2V0TWVkaWFVSUltYWdlRGF0YSh3a01lZGlhVUlQYXJ0T3B0aW1p
emVkRnVsbHNjcmVlblBsYWNlaG9sZGVyKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhcnRJ
RCk7CisjZW5kaWYKKworICAgIHJldHVybiBlbXB0eVN0cmluZygpOworfQorCiB9CiAKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJv
bHNIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRy
b2xzL01lZGlhQ29udHJvbHNIb3N0LmgJKHJldmlzaW9uIDE3NTc0MSkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC03Miw2ICs3Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4aXRlZEZ1bGxzY3JlZW4o
KTsKICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbk9wdGltaXplZCgpOwogICAgIGJvb2wgb3B0aW1p
emVkRnVsbHNjcmVlblN1cHBvcnRlZCgpOworICAgIFN0cmluZyBmdWxsc2NyZWVuTW9kZSgpIGNv
bnN0OworICAgIFN0cmluZyBtZWRpYVVJSW1hZ2VEYXRhKFN0cmluZykgY29uc3Q7CiAKICAgICBT
dHJpbmcgZXh0ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZSgpIGNvbnN0OwogICAgIFN0cmluZyBleHRl
cm5hbERldmljZVR5cGUoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmlkbAkocmV2aXNp
b24gMTc1NzQxKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlh
Q29udHJvbHNIb3N0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksMTggQEAgZW51bSBE
ZXZpY2VUeXBlIHsKICAgICAidHZvdXQiCiB9OwogCitlbnVtIEZ1bGxzY3JlZW5Nb2RlIHsKKyAg
ICAibm9uZSIsCisgICAgInN0YW5kYXJkIiwKKyAgICAib3B0aW1pemVkIgorfTsKKworZW51bSBN
ZWRpYVVJUGFydElEIHsKKyAgICAib3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uIiwKKyAgICAi
b3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uLWhpbGl0ZWQiLAorICAgICJvcHRpbWl6ZWQtZnVs
bHNjcmVlbi1wbGFjZWhvbGRlciIKK307CisKIFsKICAgICBOb0ludGVyZmFjZU9iamVjdCwKICAg
ICBDb25kaXRpb25hbD1NRURJQV9DT05UUk9MU19TQ1JJUFQsCkBAIC01Nyw0ICs2OSw2IEBAIGVu
dW0gRGV2aWNlVHlwZSB7CiAgICAgdm9pZCBleGl0ZWRGdWxsc2NyZWVuKCk7CiAgICAgdm9pZCBl
bnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQoKTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVh
biBvcHRpbWl6ZWRGdWxsc2NyZWVuU3VwcG9ydGVkOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBG
dWxsc2NyZWVuTW9kZSBmdWxsc2NyZWVuTW9kZTsKKyAgICBET01TdHJpbmcgbWVkaWFVSUltYWdl
RGF0YShNZWRpYVVJUGFydElEIHBhcnRJRCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNpT1MuY3NzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzaU9TLmNzcwko
cmV2aXNpb24gMTc1NzQxKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L21lZGlhQ29udHJvbHNpT1MuY3NzCSh3b3JraW5nIGNvcHkpCkBAIC02Niw5ICs2NiwxMCBAQCBh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCBidXR0CiAgICAgLXdlYmtpdC1hcHBl
YXJhbmNlOiBub25lOwogfQogCi12aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVz
cy1wbGF5YmFjay1zdGF0dXMsCi1hdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVz
cy1wbGF5YmFjay1zdGF0dXMgewordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtaW5saW5l
LXBsYXliYWNrLXBsYWNlaG9sZGVyLAorYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtaW5s
aW5lLXBsYXliYWNrLXBsYWNlaG9sZGVyIHsKICAgICBkaXNwbGF5OiBibG9jazsKKyAgICB6LWlu
ZGV4OiAwOwogICAgIHdpZHRoOiAxMDAlOwogICAgIGhlaWdodDogMTAwJTsKICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBibGFjazsKQEAgLTc3LDggKzc4LDggQEAgYXVkaW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtd2lyZWxlc3MtcAogICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSA1MCU7CiB9CiAK
LXZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXdpcmVsZXNzLXBsYXliYWNrLXN0YXR1cy5o
aWRkZW4sCi1hdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVzcy1wbGF5YmFjay1z
dGF0dXMuaGlkZGVuIHsKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWlubGluZS1wbGF5
YmFjay1wbGFjZWhvbGRlci5oaWRkZW4sCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1p
bmxpbmUtcGxheWJhY2stcGxhY2Vob2xkZXIuaGlkZGVuIHsKICAgICBkaXNwbGF5OiBub25lOwog
fQogCkBAIC0yNDYsOSArMjQ3LDcgQEAgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVs
bHNjcmVlbgogdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3B0aW1pemVkLWZ1bGxzY3Jl
ZW4tYnV0dG9uIHsKICAgICB3aWR0aDogMzVweDsKICAgICBoZWlnaHQ6IDQ0cHg7Ci0gICAgYmFj
a2dyb3VuZC1zaXplOiAzNXB4IDQ0cHg7Ci0gICAgb3BhY2l0eTogMC45OwotICAgIGJhY2tncm91
bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzUgNDQiPjxnIHN0cm9rZT0icmdiYSgwLCAw
LCAwLCAwLjQpIiBmaWxsPSJub25lIj48cGF0aCBkPSJNIDEwLDE1IGggMTQgdiAxNCBoIC0xNCB2
IC0xNCIvPjwvZz48L3N2Zz4nKTsKKyAgICBvcGFjaXR5OiAwLjQ7CiB9CiAKIHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIHsKQEAgLTI3MSwxMCArMjcwLDYgQEAgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbgogICAgIGJhY2tncm91bmQtaW1h
Z2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzUgNDQiPjxnIHN0cm9rZT0id2hpdGUiIGZpbGw9Im5v
bmUiPjxwYXRoIGQ9Ik0gMTAsMjAgdiAtNSBoIDUgTSAxMCwxNSBsIDUsNSIvPjxwYXRoIGQ9Ik0g
MjQsMjQgdiA1IGggLTUgTSAyNCwyOSBsIC01LC01Ii8+PC9nPjwvc3ZnPicpOwogfQogCi12aWRl
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vcHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b246YWN0
aXZlIHsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3Zn
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM1IDQ0Ij48
ZyBzdHJva2U9IndoaXRlIiBmaWxsPSJub25lIj48cGF0aCBkPSJNIDEwLDE1IGggMTQgdiAxNCBo
IC0xNCB2IC0xNCIvPjwvZz48L3N2Zz4nKTsKLX0KLQogdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdGltZWxpbmUsCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSB7
CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNpT1MuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNpT1MuanMJKHJl
dmlzaW9uIDE3NTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9t
ZWRpYUNvbnRyb2xzaU9TLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01LDYgKzUsNyBAQCBmdW5jdGlv
biBjcmVhdGVDb250cm9scyhyb290LCB2aWRlbywgaG9zCiAKIGZ1bmN0aW9uIENvbnRyb2xsZXJJ
T1Mocm9vdCwgdmlkZW8sIGhvc3QpCiB7CisgICAgdGhpcy5kb2luZ1NldHVwID0gdHJ1ZTsKICAg
ICB0aGlzLmhhc1dpcmVsZXNzUGxheWJhY2tUYXJnZXRzID0gZmFsc2U7CiAgICAgdGhpcy5fcGFn
ZVNjYWxlRmFjdG9yID0gMTsKICAgICB0aGlzLmlzTGlzdGVuaW5nRm9yUGxheWJhY2tUYXJnZXRB
dmFpbGFiaWxpdHlFdmVudCA9IGZhbHNlOwpAQCAtMTUsNiArMTYsNyBAQCBmdW5jdGlvbiBDb250
cm9sbGVySU9TKHJvb3QsIHZpZGVvLCBob3N0CiAgICAgdGhpcy5zZXROZWVkc1RpbWVsaW5lTWV0
cmljc1VwZGF0ZSgpOwogCiAgICAgaG9zdC5jb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9y
ID0gdHJ1ZTsKKyAgICB0aGlzLmRvaW5nU2V0dXAgPSBmYWxzZTsKIH07CiAKIC8qIEVudW1zICov
CkBAIC03Niw3ICs3OCw3IEBAIENvbnRyb2xsZXJJT1MucHJvdG90eXBlID0gewogICAgICAgICBp
ZiAodGhpcy52aWRlby5jdXJyZW50U3JjICYmIHRoaXMudmlkZW8uZXJyb3IpCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAotICAgICAgICBpZiAoIXRoaXMuaG9zdC51c2VyR2VzdHVyZVJlcXVp
cmVkICYmIGFsbG93c0lubGluZSkKKyAgICAgICAgaWYgKCF0aGlzLmRvaW5nU2V0dXAgJiYgIXRo
aXMuaG9zdC51c2VyR2VzdHVyZVJlcXVpcmVkICYmIGFsbG93c0lubGluZSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExNSwxMyArMTE3LDEz
IEBAIENvbnRyb2xsZXJJT1MucHJvdG90eXBlID0gewogICAgICAgICAgICAgYmFja2dyb3VuZElt
YWdlU1ZHID0gYmFja2dyb3VuZEltYWdlU1ZHLnJlcGxhY2UoJyMjREVWSUNFX1RZUEUjIycsIGRl
dmljZVR5cGUpOwogICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlU1ZHID0gYmFja2dyb3VuZElt
YWdlU1ZHLnJlcGxhY2UoJyMjREVWSUNFX05BTUUjIycsIGRldmljZU5hbWUpOwogCi0gICAgICAg
ICAgICB0aGlzLmNvbnRyb2xzLndpcmVsZXNzUGxheWJhY2tTdGF0dXMuc3R5bGUuYmFja2dyb3Vu
ZEltYWdlID0gYmFja2dyb3VuZEltYWdlU1ZHOwotICAgICAgICAgICAgdGhpcy5jb250cm9scy53
aXJlbGVzc1BsYXliYWNrU3RhdHVzLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIGRldmljZVR5
cGUgKyAiLCAiICsgZGV2aWNlTmFtZSk7CisgICAgICAgICAgICB0aGlzLmNvbnRyb2xzLmlubGlu
ZVBsYXliYWNrUGxhY2Vob2xkZXIuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gYmFja2dyb3VuZElt
YWdlU1ZHOworICAgICAgICAgICAgdGhpcy5jb250cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9s
ZGVyLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIGRldmljZVR5cGUgKyAiLCAiICsgZGV2aWNl
TmFtZSk7CiAKLSAgICAgICAgICAgIHRoaXMuY29udHJvbHMud2lyZWxlc3NQbGF5YmFja1N0YXR1
cy5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ2xhc3NOYW1lcy5oaWRkZW4pOworICAgICAgICAgICAg
dGhpcy5jb250cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLmNsYXNzTGlzdC5yZW1vdmUo
dGhpcy5DbGFzc05hbWVzLmhpZGRlbik7CiAgICAgICAgICAgICB0aGlzLmNvbnRyb2xzLndpcmVs
ZXNzVGFyZ2V0UGlja2VyLmNsYXNzTGlzdC5hZGQodGhpcy5DbGFzc05hbWVzLmFjdGl2ZSk7CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aGlzLmNvbnRyb2xzLndpcmVsZXNzUGxheWJh
Y2tTdGF0dXMuY2xhc3NMaXN0LmFkZCh0aGlzLkNsYXNzTmFtZXMuaGlkZGVuKTsKKyAgICAgICAg
ICAgIHRoaXMuY29udHJvbHMuaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5jbGFzc0xpc3QuYWRk
KHRoaXMuQ2xhc3NOYW1lcy5oaWRkZW4pOwogICAgICAgICAgICAgdGhpcy5jb250cm9scy53aXJl
bGVzc1RhcmdldFBpY2tlci5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ2xhc3NOYW1lcy5hY3RpdmUp
OwogICAgICAgICB9CiAgICAgfSwKQEAgLTEzOSwxMCArMTQxLDE2IEBAIENvbnRyb2xsZXJJT1Mu
cHJvdG90eXBlID0gewogICAgICAgICB2YXIgcGFuZWxDb21wb3NpdGVkUGFyZW50ID0gdGhpcy5j
b250cm9scy5wYW5lbENvbXBvc2l0ZWRQYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKICAgICAgICAgcGFuZWxDb21wb3NpdGVkUGFyZW50LnNldEF0dHJpYnV0ZSgncHNldWRv
JywgJy13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwtY29tcG9zaXRlZC1wYXJlbnQnKTsKIAor
ICAgICAgICB2YXIgaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlciA9IHRoaXMuY29udHJvbHMuaW5s
aW5lUGxheWJhY2tQbGFjZWhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwor
ICAgICAgICBpbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLnNldEF0dHJpYnV0ZSgncHNldWRvJywg
Jy13ZWJraXQtbWVkaWEtY29udHJvbHMtaW5saW5lLXBsYXliYWNrLXBsYWNlaG9sZGVyJyk7Cisg
ICAgICAgIGlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIuY2xhc3NMaXN0LmFkZCh0aGlzLkNsYXNz
TmFtZXMuaGlkZGVuKTsKKyAgICAgICAgaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5zZXRBdHRy
aWJ1dGUoJ2FyaWEtbGFiZWwnLCB0aGlzLlVJU3RyaW5nKCdEaXNwbGF5IE9wdGltaXplZCBGdWxs
IFNjcmVlbicpKTsKIAotICAgICAgICB2YXIgd2lyZWxlc3NQbGF5YmFja1N0YXR1cyA9IHRoaXMu
Y29udHJvbHMud2lyZWxlc3NQbGF5YmFja1N0YXR1cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOwotICAgICAgICB3aXJlbGVzc1BsYXliYWNrU3RhdHVzLnNldEF0dHJpYnV0ZSgncHNl
dWRvJywgJy13ZWJraXQtbWVkaWEtY29udHJvbHMtd2lyZWxlc3MtcGxheWJhY2stc3RhdHVzJyk7
Ci0gICAgICAgIHdpcmVsZXNzUGxheWJhY2tTdGF0dXMuY2xhc3NMaXN0LmFkZCh0aGlzLkNsYXNz
TmFtZXMuaGlkZGVuKTsKKyAgICAgICAgdmFyIGJ1dHRvbkltYWdlU1ZHID0gImJhY2tncm91bmQt
aW1hZ2U6IHVybCgnIiArIHRoaXMuaG9zdC5tZWRpYVVJSW1hZ2VEYXRhKCJvcHRpbWl6ZWQtZnVs
bHNjcmVlbi1idXR0b24iKSArICInKSI7CisgICAgICAgIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBd
Lmluc2VydFJ1bGUoJ3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW9wdGltaXplZC1mdWxs
c2NyZWVuLWJ1dHRvbiB7ICcgKyBidXR0b25JbWFnZVNWRyArICc7IH0nLCAwKTsKKworICAgICAg
ICBidXR0b25JbWFnZVNWRyA9ICJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyIgKyB0aGlzLmhvc3Qu
bWVkaWFVSUltYWdlRGF0YSgib3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uLWhpbGl0ZWQiKSAr
ICInKSI7CisgICAgICAgIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmluc2VydFJ1bGUoJ3ZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbjphY3Rp
dmUgeyAnICsgYnV0dG9uSW1hZ2VTVkcgKyAnOyB9JywgMCk7CiAKICAgICAgICAgdmFyIHdpcmVs
ZXNzVGFyZ2V0UGlja2VyID0gdGhpcy5jb250cm9scy53aXJlbGVzc1RhcmdldFBpY2tlciA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogICAgICAgICB3aXJlbGVzc1RhcmdldFBp
Y2tlci5zZXRBdHRyaWJ1dGUoJ3BzZXVkbycsICctd2Via2l0LW1lZGlhLWNvbnRyb2xzLXdpcmVs
ZXNzLXBsYXliYWNrLXBpY2tlci1idXR0b24nKTsKQEAgLTE5Niw4ICsyMDQsNiBAQCBDb250cm9s
bGVySU9TLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgY29uZmlndXJlSW5saW5lQ29udHJv
bHM6IGZ1bmN0aW9uKCkgewotICAgICAgICB0aGlzLmJhc2UuYXBwZW5kQ2hpbGQodGhpcy5jb250
cm9scy53aXJlbGVzc1BsYXliYWNrU3RhdHVzKTsKLQogICAgICAgICB0aGlzLmNvbnRyb2xzLnBh
bmVsLmFwcGVuZENoaWxkKHRoaXMuY29udHJvbHMucGxheUJ1dHRvbik7CiAgICAgICAgIHRoaXMu
Y29udHJvbHMucGFuZWwuYXBwZW5kQ2hpbGQodGhpcy5jb250cm9scy5zdGF0dXNEaXNwbGF5KTsK
ICAgICAgICAgdGhpcy5jb250cm9scy5wYW5lbC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLnRp
bWVsaW5lQm94KTsKQEAgLTIyOSw2ICsyMzUsNyBAQCBDb250cm9sbGVySU9TLnByb3RvdHlwZSA9
IHsKICAgICB9LAogCiAgICAgYWRkQ29udHJvbHM6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlz
LmJhc2UuYXBwZW5kQ2hpbGQodGhpcy5jb250cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVy
KTsKICAgICAgICAgdGhpcy5iYXNlLmFwcGVuZENoaWxkKHRoaXMuY29udHJvbHMucGFuZWxDb21w
b3NpdGVkUGFyZW50KTsKICAgICAgICAgdGhpcy5jb250cm9scy5wYW5lbENvbXBvc2l0ZWRQYXJl
bnQuYXBwZW5kQ2hpbGQodGhpcy5jb250cm9scy5wYW5lbCk7CiAgICAgICAgIHRoaXMuc2V0TmVl
ZHNUaW1lbGluZU1ldHJpY3NVcGRhdGUoKTsKQEAgLTIzNyw3ICsyNDQsNyBAQCBDb250cm9sbGVy
SU9TLnByb3RvdHlwZSA9IHsKICAgICB1cGRhdGVDb250cm9sczogZnVuY3Rpb24oKSB7CiAgICAg
ICAgIGlmICh0aGlzLnNob3VsZEhhdmVTdGFydFBsYXliYWNrQnV0dG9uKCkpCiAgICAgICAgICAg
ICB0aGlzLnNldENvbnRyb2xzVHlwZShDb250cm9sbGVySU9TLlN0YXJ0UGxheWJhY2tDb250cm9s
cyk7Ci0gICAgICAgIGVsc2UgaWYgKHRoaXMuaXNGdWxsU2NyZWVuKCkpCisgICAgICAgIGVsc2Ug
aWYgKHRoaXMuaXNGdWxsU2NyZWVuKCkgJiYgdGhpcy5ob3N0LmZ1bGxzY3JlZW5Nb2RlICE9PSAi
b3B0aW1pemVkIikKICAgICAgICAgICAgIHRoaXMuc2V0Q29udHJvbHNUeXBlKENvbnRyb2xsZXIu
RnVsbFNjcmVlbkNvbnRyb2xzKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhpcy5zZXRD
b250cm9sc1R5cGUoQ29udHJvbGxlci5JbmxpbmVDb250cm9scyk7CkBAIC0zNTUsNyArMzYyLDcg
QEAgQ29udHJvbGxlcklPUy5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIGhhbmRsZVdyYXBw
ZXJUb3VjaFN0YXJ0OiBmdW5jdGlvbihldmVudCkgewotICAgICAgICBpZiAoZXZlbnQudGFyZ2V0
ICE9IHRoaXMuYmFzZSAmJiBldmVudC50YXJnZXQgIT0gdGhpcy5jb250cm9scy53aXJlbGVzc1Bs
YXliYWNrU3RhdHVzKQorICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9IHRoaXMuYmFzZSAmJiBl
dmVudC50YXJnZXQgIT0gdGhpcy5jb250cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyKQog
ICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMubW9zdFJlY2VudE51bWJlck9mVGFy
Z2V0dGVkVG91Y2hlcyA9IGV2ZW50LnRhcmdldFRvdWNoZXMubGVuZ3RoOwpAQCAtNTU1LDExICs1
NjIsMTMgQEAgQ29udHJvbGxlcklPUy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAog
Ci0gICAgZ2V0IHBhZ2VTY2FsZUZhY3RvcigpIHsKKyAgICBnZXQgcGFnZVNjYWxlRmFjdG9yKCkK
KyAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9wYWdlU2NhbGVGYWN0b3I7CiAgICAgfSwKIAot
ICAgIHNldCBwYWdlU2NhbGVGYWN0b3IobmV3U2NhbGVGYWN0b3IpIHsKKyAgICBzZXQgcGFnZVNj
YWxlRmFjdG9yKG5ld1NjYWxlRmFjdG9yKQorICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3BhZ2VT
Y2FsZUZhY3RvciA9PT0gbmV3U2NhbGVGYWN0b3IpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAg
LTU4MCw3ICs1ODksMjUgQEAgQ29udHJvbGxlcklPUy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgdGhpcy51cGRhdGVQcm9ncmVzcygpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0g
ICAgfQorICAgIH0sCisKKyAgICBoYW5kbGVGdWxsc2NyZWVuQ2hhbmdlOiBmdW5jdGlvbihldmVu
dCkKKyAgICB7CisgICAgICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmhhbmRsZUZ1bGxzY3JlZW5D
aGFuZ2UuY2FsbCh0aGlzLCBldmVudCk7CisKKyAgICAgICAgaWYgKCF0aGlzLmlzRnVsbFNjcmVl
bigpKSB7CisgICAgICAgICAgICB0aGlzLmNvbnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xk
ZXIuY2xhc3NMaXN0LmFkZCh0aGlzLkNsYXNzTmFtZXMuaGlkZGVuKTsKKyAgICAgICAgfSBlbHNl
IGlmICh0aGlzLmhvc3QuZnVsbHNjcmVlbk1vZGUgPT09ICJvcHRpbWl6ZWQiKSB7CisgICAgICAg
ICAgICB2YXIgYmFja2dyb3VuZEltYWdlU1ZHID0gInVybCgnIiArIHRoaXMuaG9zdC5tZWRpYVVJ
SW1hZ2VEYXRhKCJvcHRpbWl6ZWQtZnVsbHNjcmVlbi1wbGFjZWhvbGRlciIpICsgIicpIjsKKyAg
ICAgICAgICAgIHRoaXMuY29udHJvbHMuaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5zdHlsZS5i
YWNrZ3JvdW5kSW1hZ2UgPSBiYWNrZ3JvdW5kSW1hZ2VTVkc7CisgICAgICAgICAgICB0aGlzLmNv
bnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVs
JywgInZpZGVvIHBsYXliYWNrIHBsYWNlaG9sZGVyIik7CisKKyAgICAgICAgICAgIHRoaXMuY29u
dHJvbHMuaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ2xh
c3NOYW1lcy5oaWRkZW4pOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy51cGRhdGVDYXB0aW9u
Q29udGFpbmVyKCk7CisgICAgfSwKKwogfTsKIAogT2JqZWN0LmNyZWF0ZShDb250cm9sbGVyLnBy
b3RvdHlwZSkuZXh0ZW5kKENvbnRyb2xsZXJJT1MucHJvdG90eXBlKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCShyZXZpc2lvbiAxNzU2NDEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzkyLDYg
KzM5Miw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaXNGdWxs
c2NyZWVuKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB0b2dnbGVGdWxsc2NyZWVuU3RhdGUo
KTsKICAgICBlbnVtIFZpZGVvRnVsbHNjcmVlbk1vZGUgeyBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9u
ZSwgVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkLCBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1p
emVkIH07CisgICAgVmlkZW9GdWxsc2NyZWVuTW9kZSBmdWxsc2NyZWVuTW9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTW9kZTsgfQorCiAgICAgdm9pZCBlbnRlckZ1bGxzY3Jl
ZW4oVmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVl
bigpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXhpdEZ1bGxzY3JlZW4oKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNl
SU9TLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVT
eXN0ZW1JbnRlcmZhY2VJT1MuaAkocmV2aXNpb24gMTc1NjQxKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MuaAkod29ya2luZyBjb3B5KQpA
QCAtNzUsNCArNzUsMTIgQEAgZXh0ZXJuIENGU3RyaW5nUmVmICgqd2tHZXRWZW5kb3JOYW1lRm9y
TgogCiBleHRlcm4gYm9vbCAoKndrSXNPcHRpbWl6ZWRGdWxsc2NyZWVuU3VwcG9ydGVkKSh2b2lk
KTsKIAordHlwZWRlZiBlbnVtIHsKKyAgICB3a01lZGlhVUlQYXJ0T3B0aW1pemVkRnVsbHNjcmVl
bkJ1dHRvbiA9IDAsCisgICAgd2tNZWRpYVVJUGFydE9wdGltaXplZEZ1bGxzY3JlZW5CdXR0b25I
aWxpdGVkLAorICAgIHdrTWVkaWFVSVBhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuUGxhY2Vob2xkZXIK
K30gd2tNZWRpYVVJUGFydDsKK2V4dGVybiBDRlN0cmluZ1JlZiAoKndrR2V0TWVkaWFVSUltYWdl
RGF0YSkoaW50IHdrTWVkaWFVSVBhcnQpOworCisKICNlbmRpZiAvLyBXZWJDb3JlU3lzdGVtSW50
ZXJmYWNlSU9TX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tCShyZXZpc2lvbiAxNzU2NDEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTMxLDYgKzEzMSw3IEBAIFdFQkNPUkVfRVhQT1JUIENGU3RyaW5n
UmVmICgqd2tHZXRQbGF0Zm8KIFdFQkNPUkVfRVhQT1JUIENGU3RyaW5nUmVmICgqd2tHZXRWZW5k
b3JOYW1lRm9yTmF2aWdhdG9yKSh2b2lkKTsKIAogV0VCQ09SRV9FWFBPUlQgYm9vbCAoKndrSXNP
cHRpbWl6ZWRGdWxsc2NyZWVuU3VwcG9ydGVkKSh2b2lkKTsKK1dFQkNPUkVfRVhQT1JUIENGU3Ry
aW5nUmVmICgqd2tHZXRNZWRpYVVJSW1hZ2VEYXRhKShpbnQpOwogCiBXRUJDT1JFX0VYUE9SVCBp
bnQgKCp3a0V4ZXJuYWxEZXZpY2VUeXBlRm9yUGxheWVyKShBVlBsYXllciAqKTsKIFdFQkNPUkVf
RVhQT1JUIE5TU3RyaW5nICooKndrRXhlcm5hbERldmljZURpc3BsYXlOYW1lRm9yUGxheWVyKShB
VlBsYXllciAqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NTc0MSkKKysrIFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE0LTEx
LTA2ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtp
T1NdIFVwZGF0ZSBvcHRpbWl6ZWQgZnVsbHNjcmVlbiBtZWRpYSBjb250cm9scworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NDkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29y
ZVN5c3RlbUludGVyZmFjZSk6IEluaXRpYWxpemUgR2V0TWVkaWFVSUltYWdlRGF0YS4KKwogMjAx
NC0xMS0wNiAgQ29ucmFkIFNodWx0eiAgPGNvbnJhZF9zaHVsdHpAYXBwbGUuY29tPgogCiAgICAg
ICAgIENsaWVudHMgc2hvdWxkIGJlIGFibGUgdG8gY3VzdG9taXplIHRoZSB2aWV3IHVzZWQgZm9y
IHBhZ2UgcHJldmlld3MKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0J
KHJldmlzaW9uIDE3NTY0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjA4LDYg
KzIwOCw3IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICAgICAgICAg
SU5JVChHZXRTY3JlZW5TY2FsZUZhY3Rvcik7CiAgICAgICAgIElOSVQoSXNHQjE4MDMwQ29tcGxp
YW5jZVJlcXVpcmVkKTsKICAgICAgICAgSU5JVChJc09wdGltaXplZEZ1bGxzY3JlZW5TdXBwb3J0
ZWQpOworICAgICAgICBJTklUKEdldE1lZGlhVUlJbWFnZURhdGEpOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoUFVCTElDX1NVRkZJWF9MSVNUKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24g
MTc1NzQxKQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTQtMTEtMDYgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gVXBkYXRlIG9wdGltaXplZCBmdWxsc2NyZWVuIG1l
ZGlhIGNvbnRyb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzg0OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKElu
aXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKTogSW5pdGlhbGl6ZSBHZXRNZWRpYVVJSW1hZ2VEYXRh
LgorCiAyMDE0LTExLTA2ICBEYW5pZWwgSmFsa3V0ICA8amFsa3V0QHJlZC1zd2VhdGVyLmNvbT4K
IAogICAgICAgICBXcmFwIHRoZSBidWxrIG9mIC1bV2ViVmlldyBkZWFsbG9jXSB3aXRoIGFuIGF1
dG9yZWxlYXNlIHBvb2wuCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiAxNzU2NDEpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHdv
cmtpbmcgY29weSkKQEAgLTEzMiw2ICsxMzIsNyBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50
ZXJmYWNlKHZvaWQpCiAgICAgSU5JVChHZXRTY3JlZW5TY2FsZUZhY3Rvcik7CiAgICAgSU5JVChJ
c0dCMTgwMzBDb21wbGlhbmNlUmVxdWlyZWQpOwogICAgIElOSVQoSXNPcHRpbWl6ZWRGdWxsc2Ny
ZWVuU3VwcG9ydGVkKTsKKyAgICBJTklUKEdldE1lZGlhVUlJbWFnZURhdGEpOwogI2VuZGlmCiAK
ICAgICBJTklUKENyZWF0ZUNUTGluZVdpdGhVbmlDaGFyUHJvdmlkZXIpOwo=
</data>
<flag name="review"
          id="266008"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241186</attachid>
            <date>2014-11-07 09:26:06 -0800</date>
            <delta_ts>2014-11-07 09:28:19 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>controller_patch_7.txt</filename>
            <type>text/plain</type>
            <size>21057</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDE0LTExLTA2ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFVwZGF0ZSBv
cHRpbWl6ZWQgZnVsbHNjcmVlbiBtZWRpYSBjb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzSG9zdDo6ZnVs
bHNjcmVlbk1vZGUpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzSG9zdDo6
bWVkaWFVSUltYWdlRGF0YSk6IE5ldy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMv
TWVkaWFDb250cm9sc0hvc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVk
aWFDb250cm9sc0hvc3QuaWRsOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21l
ZGlhQ29udHJvbHNpT1MuY3NzOgorICAgICAgICBSZW5hbWVkIC13ZWJraXQtbWVkaWEtY29udHJv
bHMtd2lyZWxlc3MtcGxheWJhY2stc3RhdHVzIHRvIC13ZWJraXQtbWVkaWEtY29udHJvbHMtaW5s
aW5lLXBsYXliYWNrLXBsYWNlaG9sZGVyCisgICAgICAgICAgICBiZWNhdXNlIGl0IGlzIG5vdyB1
c2VkIGZvciBvdGhlciBpbmxpbmUgcGxheWJhY2sgc3RhdHVzIGRpc3BsYXkuIEFkZCB6LWluZGV4
OjAgc28gdGhlIHBsYWNlaG9sZGVyCisgICAgICAgICAgICByZW5kZXJzIGFib3ZlIGNhcHRpb25z
LiBSZW1vdmUgdGhlIGJhY2tncm91bmQtaW1hZ2UsIGl0IGlzIG5vdyBzZXQgZnJvbSBzY3JpcHQu
CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1pbmxpbmUtcGxheWJhY2st
cGxhY2Vob2xkZXIpOiAKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWlu
bGluZS1wbGF5YmFjay1wbGFjZWhvbGRlci5oaWRkZW4pOgorICAgICAgICAodmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtb3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uKToKKyAgICAgICAg
KGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXdpcmVsZXNzLXBsYXliYWNrLXN0YXR1cyk6
IERlbGV0ZWQuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVz
cy1wbGF5YmFjay1zdGF0dXMuaGlkZGVuKTogRGVsZXRlZC4KKyAgICAgICAgKHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLW9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbjphY3RpdmUpOiBE
ZWxldGVkLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNp
T1MuanM6CisgICAgICAgIChDb250cm9sbGVySU9TKTogU2V0IGRvaW5nU2V0dXAgdG8gdHJ1ZSBh
cm91bmQgc2V0dXAgc28gd2UgZG9uJ3QgZHJhdyB0aGUgaW5saW5lIGNvbnRyb2xzCisgICAgICAg
ICAgICBicmllZmx5IHdoZW4gYW4gZWxlbWVudCBpcyBjcmVhdGVkIGFzIGEgcmVzdWx0IG9mIGEg
dXNlciBnZXN0dXJlLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUuc2hvdWxkSGF2
ZVN0YXJ0UGxheWJhY2tCdXR0b24pOiBEb24ndCBhbGxvdyBpbmxpbmUgY29udHJvbHMgZHVyaW5n
IAorICAgICAgICAgICAgaW5pdGlhbCBzZXR1cCB0byBwcmV2ZW50IGlubGluZSBjb250cm9scyBm
cm9tIGJlZ2luIGRyYXduIGJyaWVmbHkgd2hlbiBhIG1lZGlhIGVsZW1lbnQKKyAgICAgICAgICAg
IGlzIGNyZWF0ZWQgYW5kIGluc2VydGVkIGJ5IGEgc2NyaXB0IGNhbGxlZCBmcm9tIGEgdXNlciBn
ZXN0dXJlLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUudXBkYXRlV2lyZWxlc3NQ
bGF5YmFja1N0YXR1cyk6IHdpcmVsZXNzUGxheWJhY2tTdGF0dXMgLT4gaW5saW5lUGxheWJhY2tQ
bGFjZWhvbGRlci4KKyAgICAgICAgKENvbnRyb2xsZXJJT1MucHJvdG90eXBlLmNyZWF0ZUNvbnRy
b2xzKTogRGl0dG8uIEFkZCBzdHlsZSBydWxlcyBmb3Igb3B0aW1pemVkIGZ1bGxzY3JlZW4gYnV0
dG9uLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUuY29uZmlndXJlSW5saW5lQ29u
dHJvbHMpOiBBZGQgdGhlIGlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIgYXMgYSBwZWVyIG9mCisg
ICAgICAgICAgICB0aGUgaW5saW5lIGNvbnRyb2xzIGNvbXBvc2l0aW5nIGNoaWxkIGluc3RlYWQg
b2YgYXMgYSBjaGlsZCBzbyBpdCByZW5kZXJzIGNvcnJlY3RseS4KKyAgICAgICAgKENvbnRyb2xs
ZXJJT1MucHJvdG90eXBlLmFkZENvbnRyb2xzKToKKyAgICAgICAgKENvbnRyb2xsZXJJT1MucHJv
dG90eXBlLnVwZGF0ZUNvbnRyb2xzKTogd2lyZWxlc3NQbGF5YmFja1N0YXR1cyAtPiBpbmxpbmVQ
bGF5YmFja1BsYWNlaG9sZGVyLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUuaGFu
ZGxlV3JhcHBlclRvdWNoU3RhcnQpOgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUu
Z2V0IHBhZ2VTY2FsZUZhY3Rvcik6IENsZWFudXAuCisgICAgICAgIChDb250cm9sbGVySU9TLnBy
b3RvdHlwZS5zZXQgcGFnZVNjYWxlRmFjdG9yKTogRGl0dG8uCisgICAgICAgIChDb250cm9sbGVy
SU9TLnByb3RvdHlwZS5oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlKTogU2hvdyB0aGUgcGxhY2Vob2xk
ZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogRXhwb3J0IF93a0dldE1lZGlhVUlJbWFn
ZURhdGEuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmZ1bGxzY3JlZW5Nb2RlKTogRXhwb3NlIGZ1bGxzY3Jl
ZW4gbW9kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNl
SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1Mu
bW06CisKIDIwMTQtMTEtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUHV0IG5hbWVzIG9uIGEgY291cGxlIG9mIHZpZGVvLXJlbGF0ZWQgQ0FMYXll
cnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNzU2NDEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMjg0MCw2ICsyODQwLDcg
QEAgX3drRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JBZnRlcklPU1ZlcnNpbwogX3drR2V0QXZhaWxh
YmxlU2NyZWVuU2l6ZQogX3drR2V0RGV2aWNlQ2xhc3MKIF93a0dldERldmljZU5hbWUKK193a0dl
dE1lZGlhVUlJbWFnZURhdGEKIF93a0dldE9TTmFtZUZvclVzZXJBZ2VudAogX3drR2V0UGxhdGZv
cm1OYW1lRm9yTmF2aWdhdG9yCiBfd2tHZXRTY3JlZW5TY2FsZUZhY3RvcgpJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250
cm9sc0hvc3QuY3BwCShyZXZpc2lvbiAxNzU3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
ODYsNiArMjg2LDUwIEBAIHZvaWQgTWVkaWFDb250cm9sc0hvc3Q6OnNldENvbnRyb2xzRGVwZW4K
ICAgICBtX21lZGlhRWxlbWVudC0+c2V0TWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFj
dG9yKHZhbHVlKTsKIH0KIAorU3RyaW5nIE1lZGlhQ29udHJvbHNIb3N0OjpmdWxsc2NyZWVuTW9k
ZSgpIGNvbnN0Cit7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
bm9uZSwgKEFTQ0lJTGl0ZXJhbCgibm9uZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgc3RhbmRhcmQsIChBU0NJSUxpdGVyYWwoInN0YW5kYXJkIikpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBvcHRpbWl6ZWQsIChB
U0NJSUxpdGVyYWwoIm9wdGltaXplZCIpKSk7CisgICAgU3RyaW5nIG1vZGUgPSBub25lOworCisg
ICAgZW51bSBWaWRlb0Z1bGxzY3JlZW5Nb2RlIHsgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUsIFZp
ZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCwgVmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCB9
OworCisgICAgc3dpdGNoIChtX21lZGlhRWxlbWVudC0+ZnVsbHNjcmVlbk1vZGUoKSkgeworICAg
IGNhc2UgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmU6CisgICAgICAg
IG1vZGUgPSBub25lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEhUTUxNZWRpYUVsZW1lbnQ6
OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZDoKKyAgICAgICAgbW9kZSA9IHN0YW5kYXJkOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVl
bk1vZGVPcHRpbWl6ZWQ6CisgICAgICAgIG1vZGUgPSBvcHRpbWl6ZWQ7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICAKKyAgICBMT0coTWVkaWEsICJNZWRpYUNvbnRyb2xzSG9zdDo6ZnVsbHNj
cmVlbk1vZGUgLSByZXR1cm5pbmcgXCIlc1wiIiwgbW9kZS51dGY4KCkuZGF0YSgpKTsKKworICAg
IHJldHVybiBtb2RlOworfQorCitTdHJpbmcgTWVkaWFDb250cm9sc0hvc3Q6Om1lZGlhVUlJbWFn
ZURhdGEoU3RyaW5nIHBhcnRJRCkgY29uc3QKK3sKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYg
KHBhcnRJRCA9PSAib3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uIikKKyAgICAgICAgcmV0dXJu
IHdrR2V0TWVkaWFVSUltYWdlRGF0YSh3a01lZGlhVUlQYXJ0T3B0aW1pemVkRnVsbHNjcmVlbkJ1
dHRvbik7CisKKyAgICBpZiAocGFydElEID09ICJvcHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b24t
aGlsaXRlZCIpCisgICAgICAgIHJldHVybiB3a0dldE1lZGlhVUlJbWFnZURhdGEod2tNZWRpYVVJ
UGFydE9wdGltaXplZEZ1bGxzY3JlZW5CdXR0b25IaWxpdGVkKTsKKworICAgIGlmIChwYXJ0SUQg
PT0gIm9wdGltaXplZC1mdWxsc2NyZWVuLXBsYWNlaG9sZGVyIikKKyAgICAgICAgcmV0dXJuIHdr
R2V0TWVkaWFVSUltYWdlRGF0YSh3a01lZGlhVUlQYXJ0T3B0aW1pemVkRnVsbHNjcmVlblBsYWNl
aG9sZGVyKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhcnRJRCk7CisjZW5kaWYKKworICAg
IHJldHVybiBlbXB0eVN0cmluZygpOworfQorCiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmgJKHJldmlzaW9uIDE3NTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFj
b250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Miw2ICs3Miw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4aXRlZEZ1bGxzY3JlZW4oKTsKICAgICB2b2lkIGVudGVy
RnVsbHNjcmVlbk9wdGltaXplZCgpOwogICAgIGJvb2wgb3B0aW1pemVkRnVsbHNjcmVlblN1cHBv
cnRlZCgpOworICAgIFN0cmluZyBmdWxsc2NyZWVuTW9kZSgpIGNvbnN0OworICAgIFN0cmluZyBt
ZWRpYVVJSW1hZ2VEYXRhKFN0cmluZykgY29uc3Q7CiAKICAgICBTdHJpbmcgZXh0ZXJuYWxEZXZp
Y2VEaXNwbGF5TmFtZSgpIGNvbnN0OwogICAgIFN0cmluZyBleHRlcm5hbERldmljZVR5cGUoKSBj
b25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmlkbAkocmV2aXNpb24gMTc1NzQxKQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksMTggQEAgZW51bSBEZXZpY2VUeXBlIHsKICAgICAi
dHZvdXQiCiB9OwogCitlbnVtIEZ1bGxzY3JlZW5Nb2RlIHsKKyAgICAibm9uZSIsCisgICAgInN0
YW5kYXJkIiwKKyAgICAib3B0aW1pemVkIgorfTsKKworZW51bSBNZWRpYVVJUGFydElEIHsKKyAg
ICAib3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uIiwKKyAgICAib3B0aW1pemVkLWZ1bGxzY3Jl
ZW4tYnV0dG9uLWhpbGl0ZWQiLAorICAgICJvcHRpbWl6ZWQtZnVsbHNjcmVlbi1wbGFjZWhvbGRl
ciIKK307CisKIFsKICAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBDb25kaXRpb25hbD1NRURJ
QV9DT05UUk9MU19TQ1JJUFQsCkBAIC01Nyw0ICs2OSw2IEBAIGVudW0gRGV2aWNlVHlwZSB7CiAg
ICAgdm9pZCBleGl0ZWRGdWxsc2NyZWVuKCk7CiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5PcHRp
bWl6ZWQoKTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvcHRpbWl6ZWRGdWxsc2Ny
ZWVuU3VwcG9ydGVkOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGdWxsc2NyZWVuTW9kZSBmdWxs
c2NyZWVuTW9kZTsKKyAgICBET01TdHJpbmcgbWVkaWFVSUltYWdlRGF0YShNZWRpYVVJUGFydElE
IHBhcnRJRCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L21lZGlhQ29udHJvbHNpT1MuY3NzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzaU9TLmNzcwkocmV2aXNpb24gMTc1NzQxKQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNpT1Mu
Y3NzCSh3b3JraW5nIGNvcHkpCkBAIC02Niw5ICs2NiwxMCBAQCBhdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1wYW5lbCBidXR0CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogfQog
Ci12aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVzcy1wbGF5YmFjay1zdGF0dXMs
Ci1hdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVzcy1wbGF5YmFjay1zdGF0dXMg
ewordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtaW5saW5lLXBsYXliYWNrLXBsYWNlaG9s
ZGVyLAorYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtaW5saW5lLXBsYXliYWNrLXBsYWNl
aG9sZGVyIHsKICAgICBkaXNwbGF5OiBibG9jazsKKyAgICB6LWluZGV4OiAwOwogICAgIHdpZHRo
OiAxMDAlOwogICAgIGhlaWdodDogMTAwJTsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsK
QEAgLTc3LDggKzc4LDggQEAgYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtd2lyZWxlc3Mt
cAogICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSA1MCU7CiB9CiAKLXZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXdpcmVsZXNzLXBsYXliYWNrLXN0YXR1cy5oaWRkZW4sCi1hdWRpbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVzcy1wbGF5YmFjay1zdGF0dXMuaGlkZGVuIHsKK3Zp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWlubGluZS1wbGF5YmFjay1wbGFjZWhvbGRlci5o
aWRkZW4sCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1pbmxpbmUtcGxheWJhY2stcGxh
Y2Vob2xkZXIuaGlkZGVuIHsKICAgICBkaXNwbGF5OiBub25lOwogfQogCkBAIC0yNDYsOSArMjQ3
LDcgQEAgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbgogdmlkZW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtb3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uIHsKICAgICB3
aWR0aDogMzVweDsKICAgICBoZWlnaHQ6IDQ0cHg7Ci0gICAgYmFja2dyb3VuZC1zaXplOiAzNXB4
IDQ0cHg7Ci0gICAgb3BhY2l0eTogMC45OwotICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0
YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2
aWV3Qm94PSIwIDAgMzUgNDQiPjxnIHN0cm9rZT0icmdiYSgwLCAwLCAwLCAwLjQpIiBmaWxsPSJu
b25lIj48cGF0aCBkPSJNIDEwLDE1IGggMTQgdiAxNCBoIC0xNCB2IC0xNCIvPjwvZz48L3N2Zz4n
KTsKKyAgICBvcGFjaXR5OiAwLjQ7CiB9CiAKIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXBsYXktYnV0dG9uIHsKQEAgLTI3MSwxMCArMjcwLDYgQEAgdmlkZW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtZnVsbHNjcmVlbgogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFn
ZS9zdmcreG1sLDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94
PSIwIDAgMzUgNDQiPjxnIHN0cm9rZT0id2hpdGUiIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik0gMTAs
MjAgdiAtNSBoIDUgTSAxMCwxNSBsIDUsNSIvPjxwYXRoIGQ9Ik0gMjQsMjQgdiA1IGggLTUgTSAy
NCwyOSBsIC01LC01Ii8+PC9nPjwvc3ZnPicpOwogfQogCi12aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1vcHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b246YWN0aXZlIHsKLSAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM1IDQ0Ij48ZyBzdHJva2U9IndoaXRlIiBm
aWxsPSJub25lIj48cGF0aCBkPSJNIDEwLDE1IGggMTQgdiAxNCBoIC0xNCB2IC0xNCIvPjwvZz48
L3N2Zz4nKTsKLX0KLQogdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUsCiBh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSB7CiAgICAgLXdlYmtpdC1hcHBl
YXJhbmNlOiBub25lOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L21lZGlhQ29udHJvbHNpT1MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNpT1MuanMJKHJldmlzaW9uIDE3NTc0MSkKKysr
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzaU9TLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC01LDYgKzUsNyBAQCBmdW5jdGlvbiBjcmVhdGVDb250cm9scyhy
b290LCB2aWRlbywgaG9zCiAKIGZ1bmN0aW9uIENvbnRyb2xsZXJJT1Mocm9vdCwgdmlkZW8sIGhv
c3QpCiB7CisgICAgdGhpcy5kb2luZ1NldHVwID0gdHJ1ZTsKICAgICB0aGlzLmhhc1dpcmVsZXNz
UGxheWJhY2tUYXJnZXRzID0gZmFsc2U7CiAgICAgdGhpcy5fcGFnZVNjYWxlRmFjdG9yID0gMTsK
ICAgICB0aGlzLmlzTGlzdGVuaW5nRm9yUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudCA9
IGZhbHNlOwpAQCAtMTUsNiArMTYsNyBAQCBmdW5jdGlvbiBDb250cm9sbGVySU9TKHJvb3QsIHZp
ZGVvLCBob3N0CiAgICAgdGhpcy5zZXROZWVkc1RpbWVsaW5lTWV0cmljc1VwZGF0ZSgpOwogCiAg
ICAgaG9zdC5jb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yID0gdHJ1ZTsKKyAgICB0aGlz
LmRvaW5nU2V0dXAgPSBmYWxzZTsKIH07CiAKIC8qIEVudW1zICovCkBAIC03Niw3ICs3OCw3IEBA
IENvbnRyb2xsZXJJT1MucHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhpcy52aWRlby5jdXJy
ZW50U3JjICYmIHRoaXMudmlkZW8uZXJyb3IpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgICAgICBpZiAoIXRoaXMuaG9zdC51c2VyR2VzdHVyZVJlcXVpcmVkICYmIGFsbG93c0lubGlu
ZSkKKyAgICAgICAgaWYgKCF0aGlzLmRvaW5nU2V0dXAgJiYgIXRoaXMuaG9zdC51c2VyR2VzdHVy
ZVJlcXVpcmVkICYmIGFsbG93c0lubGluZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExNSwxMyArMTE3LDEzIEBAIENvbnRyb2xsZXJJT1Mu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlU1ZHID0gYmFja2dyb3Vu
ZEltYWdlU1ZHLnJlcGxhY2UoJyMjREVWSUNFX1RZUEUjIycsIGRldmljZVR5cGUpOwogICAgICAg
ICAgICAgYmFja2dyb3VuZEltYWdlU1ZHID0gYmFja2dyb3VuZEltYWdlU1ZHLnJlcGxhY2UoJyMj
REVWSUNFX05BTUUjIycsIGRldmljZU5hbWUpOwogCi0gICAgICAgICAgICB0aGlzLmNvbnRyb2xz
LndpcmVsZXNzUGxheWJhY2tTdGF0dXMuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gYmFja2dyb3Vu
ZEltYWdlU1ZHOwotICAgICAgICAgICAgdGhpcy5jb250cm9scy53aXJlbGVzc1BsYXliYWNrU3Rh
dHVzLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIGRldmljZVR5cGUgKyAiLCAiICsgZGV2aWNl
TmFtZSk7CisgICAgICAgICAgICB0aGlzLmNvbnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xk
ZXIuc3R5bGUuYmFja2dyb3VuZEltYWdlID0gYmFja2dyb3VuZEltYWdlU1ZHOworICAgICAgICAg
ICAgdGhpcy5jb250cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLnNldEF0dHJpYnV0ZSgn
YXJpYS1sYWJlbCcsIGRldmljZVR5cGUgKyAiLCAiICsgZGV2aWNlTmFtZSk7CiAKLSAgICAgICAg
ICAgIHRoaXMuY29udHJvbHMud2lyZWxlc3NQbGF5YmFja1N0YXR1cy5jbGFzc0xpc3QucmVtb3Zl
KHRoaXMuQ2xhc3NOYW1lcy5oaWRkZW4pOworICAgICAgICAgICAgdGhpcy5jb250cm9scy5pbmxp
bmVQbGF5YmFja1BsYWNlaG9sZGVyLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5DbGFzc05hbWVzLmhp
ZGRlbik7CiAgICAgICAgICAgICB0aGlzLmNvbnRyb2xzLndpcmVsZXNzVGFyZ2V0UGlja2VyLmNs
YXNzTGlzdC5hZGQodGhpcy5DbGFzc05hbWVzLmFjdGl2ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICB0aGlzLmNvbnRyb2xzLndpcmVsZXNzUGxheWJhY2tTdGF0dXMuY2xhc3NMaXN0
LmFkZCh0aGlzLkNsYXNzTmFtZXMuaGlkZGVuKTsKKyAgICAgICAgICAgIHRoaXMuY29udHJvbHMu
aW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5jbGFzc0xpc3QuYWRkKHRoaXMuQ2xhc3NOYW1lcy5o
aWRkZW4pOwogICAgICAgICAgICAgdGhpcy5jb250cm9scy53aXJlbGVzc1RhcmdldFBpY2tlci5j
bGFzc0xpc3QucmVtb3ZlKHRoaXMuQ2xhc3NOYW1lcy5hY3RpdmUpOwogICAgICAgICB9CiAgICAg
fSwKQEAgLTEzOSwxMCArMTQxLDE2IEBAIENvbnRyb2xsZXJJT1MucHJvdG90eXBlID0gewogICAg
ICAgICB2YXIgcGFuZWxDb21wb3NpdGVkUGFyZW50ID0gdGhpcy5jb250cm9scy5wYW5lbENvbXBv
c2l0ZWRQYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgcGFu
ZWxDb21wb3NpdGVkUGFyZW50LnNldEF0dHJpYnV0ZSgncHNldWRvJywgJy13ZWJraXQtbWVkaWEt
Y29udHJvbHMtcGFuZWwtY29tcG9zaXRlZC1wYXJlbnQnKTsKIAorICAgICAgICB2YXIgaW5saW5l
UGxheWJhY2tQbGFjZWhvbGRlciA9IHRoaXMuY29udHJvbHMuaW5saW5lUGxheWJhY2tQbGFjZWhv
bGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBpbmxpbmVQbGF5
YmFja1BsYWNlaG9sZGVyLnNldEF0dHJpYnV0ZSgncHNldWRvJywgJy13ZWJraXQtbWVkaWEtY29u
dHJvbHMtaW5saW5lLXBsYXliYWNrLXBsYWNlaG9sZGVyJyk7CisgICAgICAgIGlubGluZVBsYXli
YWNrUGxhY2Vob2xkZXIuY2xhc3NMaXN0LmFkZCh0aGlzLkNsYXNzTmFtZXMuaGlkZGVuKTsKKyAg
ICAgICAgaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwn
LCB0aGlzLlVJU3RyaW5nKCdEaXNwbGF5IE9wdGltaXplZCBGdWxsIFNjcmVlbicpKTsKIAotICAg
ICAgICB2YXIgd2lyZWxlc3NQbGF5YmFja1N0YXR1cyA9IHRoaXMuY29udHJvbHMud2lyZWxlc3NQ
bGF5YmFja1N0YXR1cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICB3
aXJlbGVzc1BsYXliYWNrU3RhdHVzLnNldEF0dHJpYnV0ZSgncHNldWRvJywgJy13ZWJraXQtbWVk
aWEtY29udHJvbHMtd2lyZWxlc3MtcGxheWJhY2stc3RhdHVzJyk7Ci0gICAgICAgIHdpcmVsZXNz
UGxheWJhY2tTdGF0dXMuY2xhc3NMaXN0LmFkZCh0aGlzLkNsYXNzTmFtZXMuaGlkZGVuKTsKKyAg
ICAgICAgdmFyIGJ1dHRvbkltYWdlU1ZHID0gImJhY2tncm91bmQtaW1hZ2U6IHVybCgnIiArIHRo
aXMuaG9zdC5tZWRpYVVJSW1hZ2VEYXRhKCJvcHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b24iKSAr
ICInKSI7CisgICAgICAgIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmluc2VydFJ1bGUoJ3ZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbiB7ICcg
KyBidXR0b25JbWFnZVNWRyArICc7IH0nLCAwKTsKKworICAgICAgICBidXR0b25JbWFnZVNWRyA9
ICJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyIgKyB0aGlzLmhvc3QubWVkaWFVSUltYWdlRGF0YSgi
b3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uLWhpbGl0ZWQiKSArICInKSI7CisgICAgICAgIGRv
Y3VtZW50LnN0eWxlU2hlZXRzWzBdLmluc2VydFJ1bGUoJ3ZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLW9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbjphY3RpdmUgeyAnICsgYnV0dG9uSW1h
Z2VTVkcgKyAnOyB9JywgMCk7CiAKICAgICAgICAgdmFyIHdpcmVsZXNzVGFyZ2V0UGlja2VyID0g
dGhpcy5jb250cm9scy53aXJlbGVzc1RhcmdldFBpY2tlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2J1dHRvbicpOwogICAgICAgICB3aXJlbGVzc1RhcmdldFBpY2tlci5zZXRBdHRyaWJ1dGUo
J3BzZXVkbycsICctd2Via2l0LW1lZGlhLWNvbnRyb2xzLXdpcmVsZXNzLXBsYXliYWNrLXBpY2tl
ci1idXR0b24nKTsKQEAgLTE5Niw4ICsyMDQsNiBAQCBDb250cm9sbGVySU9TLnByb3RvdHlwZSA9
IHsKICAgICB9LAogCiAgICAgY29uZmlndXJlSW5saW5lQ29udHJvbHM6IGZ1bmN0aW9uKCkgewot
ICAgICAgICB0aGlzLmJhc2UuYXBwZW5kQ2hpbGQodGhpcy5jb250cm9scy53aXJlbGVzc1BsYXli
YWNrU3RhdHVzKTsKLQogICAgICAgICB0aGlzLmNvbnRyb2xzLnBhbmVsLmFwcGVuZENoaWxkKHRo
aXMuY29udHJvbHMucGxheUJ1dHRvbik7CiAgICAgICAgIHRoaXMuY29udHJvbHMucGFuZWwuYXBw
ZW5kQ2hpbGQodGhpcy5jb250cm9scy5zdGF0dXNEaXNwbGF5KTsKICAgICAgICAgdGhpcy5jb250
cm9scy5wYW5lbC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLnRpbWVsaW5lQm94KTsKQEAgLTIy
OSw2ICsyMzUsNyBAQCBDb250cm9sbGVySU9TLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAg
YWRkQ29udHJvbHM6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLmJhc2UuYXBwZW5kQ2hpbGQo
dGhpcy5jb250cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyKTsKICAgICAgICAgdGhpcy5i
YXNlLmFwcGVuZENoaWxkKHRoaXMuY29udHJvbHMucGFuZWxDb21wb3NpdGVkUGFyZW50KTsKICAg
ICAgICAgdGhpcy5jb250cm9scy5wYW5lbENvbXBvc2l0ZWRQYXJlbnQuYXBwZW5kQ2hpbGQodGhp
cy5jb250cm9scy5wYW5lbCk7CiAgICAgICAgIHRoaXMuc2V0TmVlZHNUaW1lbGluZU1ldHJpY3NV
cGRhdGUoKTsKQEAgLTIzNyw3ICsyNDQsNyBAQCBDb250cm9sbGVySU9TLnByb3RvdHlwZSA9IHsK
ICAgICB1cGRhdGVDb250cm9sczogZnVuY3Rpb24oKSB7CiAgICAgICAgIGlmICh0aGlzLnNob3Vs
ZEhhdmVTdGFydFBsYXliYWNrQnV0dG9uKCkpCiAgICAgICAgICAgICB0aGlzLnNldENvbnRyb2xz
VHlwZShDb250cm9sbGVySU9TLlN0YXJ0UGxheWJhY2tDb250cm9scyk7Ci0gICAgICAgIGVsc2Ug
aWYgKHRoaXMuaXNGdWxsU2NyZWVuKCkpCisgICAgICAgIGVsc2UgaWYgKHRoaXMuaXNGdWxsU2Ny
ZWVuKCkgJiYgdGhpcy5ob3N0LmZ1bGxzY3JlZW5Nb2RlICE9PSAib3B0aW1pemVkIikKICAgICAg
ICAgICAgIHRoaXMuc2V0Q29udHJvbHNUeXBlKENvbnRyb2xsZXIuRnVsbFNjcmVlbkNvbnRyb2xz
KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhpcy5zZXRDb250cm9sc1R5cGUoQ29udHJv
bGxlci5JbmxpbmVDb250cm9scyk7CkBAIC0zNTUsNyArMzYyLDcgQEAgQ29udHJvbGxlcklPUy5w
cm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIGhhbmRsZVdyYXBwZXJUb3VjaFN0YXJ0OiBmdW5j
dGlvbihldmVudCkgewotICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9IHRoaXMuYmFzZSAmJiBl
dmVudC50YXJnZXQgIT0gdGhpcy5jb250cm9scy53aXJlbGVzc1BsYXliYWNrU3RhdHVzKQorICAg
ICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9IHRoaXMuYmFzZSAmJiBldmVudC50YXJnZXQgIT0gdGhp
cy5jb250cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyKQogICAgICAgICAgICAgcmV0dXJu
OwogCiAgICAgICAgIHRoaXMubW9zdFJlY2VudE51bWJlck9mVGFyZ2V0dGVkVG91Y2hlcyA9IGV2
ZW50LnRhcmdldFRvdWNoZXMubGVuZ3RoOwpAQCAtNTU1LDExICs1NjIsMTMgQEAgQ29udHJvbGxl
cklPUy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgZ2V0IHBhZ2VTY2Fs
ZUZhY3RvcigpIHsKKyAgICBnZXQgcGFnZVNjYWxlRmFjdG9yKCkKKyAgICB7CiAgICAgICAgIHJl
dHVybiB0aGlzLl9wYWdlU2NhbGVGYWN0b3I7CiAgICAgfSwKIAotICAgIHNldCBwYWdlU2NhbGVG
YWN0b3IobmV3U2NhbGVGYWN0b3IpIHsKKyAgICBzZXQgcGFnZVNjYWxlRmFjdG9yKG5ld1NjYWxl
RmFjdG9yKQorICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3BhZ2VTY2FsZUZhY3RvciA9PT0gbmV3
U2NhbGVGYWN0b3IpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTU4MCw3ICs1ODksMjUgQEAg
Q29udHJvbGxlcklPUy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQ
cm9ncmVzcygpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgfQorICAgIH0sCisKKyAg
ICBoYW5kbGVGdWxsc2NyZWVuQ2hhbmdlOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAg
IENvbnRyb2xsZXIucHJvdG90eXBlLmhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2UuY2FsbCh0aGlzLCBl
dmVudCk7CisKKyAgICAgICAgaWYgKCF0aGlzLmlzRnVsbFNjcmVlbigpKSB7CisgICAgICAgICAg
ICB0aGlzLmNvbnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIuY2xhc3NMaXN0LmFkZCh0
aGlzLkNsYXNzTmFtZXMuaGlkZGVuKTsKKyAgICAgICAgfSBlbHNlIGlmICh0aGlzLmhvc3QuZnVs
bHNjcmVlbk1vZGUgPT09ICJvcHRpbWl6ZWQiKSB7CisgICAgICAgICAgICB2YXIgYmFja2dyb3Vu
ZEltYWdlU1ZHID0gInVybCgnIiArIHRoaXMuaG9zdC5tZWRpYVVJSW1hZ2VEYXRhKCJvcHRpbWl6
ZWQtZnVsbHNjcmVlbi1wbGFjZWhvbGRlciIpICsgIicpIjsKKyAgICAgICAgICAgIHRoaXMuY29u
dHJvbHMuaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBi
YWNrZ3JvdW5kSW1hZ2VTVkc7CisgICAgICAgICAgICB0aGlzLmNvbnRyb2xzLmlubGluZVBsYXli
YWNrUGxhY2Vob2xkZXIuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgInZpZGVvIHBsYXliYWNr
IHBsYWNlaG9sZGVyIik7CisKKyAgICAgICAgICAgIHRoaXMuY29udHJvbHMuaW5saW5lUGxheWJh
Y2tQbGFjZWhvbGRlci5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ2xhc3NOYW1lcy5oaWRkZW4pOwor
ICAgICAgICB9CisKKyAgICAgICAgdGhpcy51cGRhdGVDYXB0aW9uQ29udGFpbmVyKCk7CisgICAg
fSwKKwogfTsKIAogT2JqZWN0LmNyZWF0ZShDb250cm9sbGVyLnByb3RvdHlwZSkuZXh0ZW5kKENv
bnRyb2xsZXJJT1MucHJvdG90eXBlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCShyZXZpc2lvbiAxNzU2NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzkyLDYgKzM5Miw4IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVuKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdm9pZCB0b2dnbGVGdWxsc2NyZWVuU3RhdGUoKTsKICAgICBlbnVtIFZpZGVv
RnVsbHNjcmVlbk1vZGUgeyBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSwgVmlkZW9GdWxsc2NyZWVu
TW9kZVN0YW5kYXJkLCBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkIH07CisgICAgVmlkZW9G
dWxsc2NyZWVuTW9kZSBmdWxsc2NyZWVuTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GdWxs
c2NyZWVuTW9kZTsgfQorCiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVu
TW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZXhpdEZ1bGxzY3JlZW4oKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1Mu
aAkocmV2aXNpb24gMTc1NjQxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2VJT1MuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNCArNzUsMTIgQEAg
ZXh0ZXJuIENGU3RyaW5nUmVmICgqd2tHZXRWZW5kb3JOYW1lRm9yTgogCiBleHRlcm4gYm9vbCAo
KndrSXNPcHRpbWl6ZWRGdWxsc2NyZWVuU3VwcG9ydGVkKSh2b2lkKTsKIAordHlwZWRlZiBlbnVt
IHsKKyAgICB3a01lZGlhVUlQYXJ0T3B0aW1pemVkRnVsbHNjcmVlbkJ1dHRvbiA9IDAsCisgICAg
d2tNZWRpYVVJUGFydE9wdGltaXplZEZ1bGxzY3JlZW5CdXR0b25IaWxpdGVkLAorICAgIHdrTWVk
aWFVSVBhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuUGxhY2Vob2xkZXIKK30gd2tNZWRpYVVJUGFydDsK
K2V4dGVybiBDRlN0cmluZ1JlZiAoKndrR2V0TWVkaWFVSUltYWdlRGF0YSkoaW50IHdrTWVkaWFV
SVBhcnQpOworCisKICNlbmRpZiAvLyBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TX2gKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVt
SW50ZXJmYWNlSU9TLm1tCShyZXZpc2lvbiAxNzU2NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MTMxLDYgKzEzMSw3IEBAIFdFQkNPUkVfRVhQT1JUIENGU3RyaW5nUmVmICgqd2tHZXRQbGF0Zm8K
IFdFQkNPUkVfRVhQT1JUIENGU3RyaW5nUmVmICgqd2tHZXRWZW5kb3JOYW1lRm9yTmF2aWdhdG9y
KSh2b2lkKTsKIAogV0VCQ09SRV9FWFBPUlQgYm9vbCAoKndrSXNPcHRpbWl6ZWRGdWxsc2NyZWVu
U3VwcG9ydGVkKSh2b2lkKTsKK1dFQkNPUkVfRVhQT1JUIENGU3RyaW5nUmVmICgqd2tHZXRNZWRp
YVVJSW1hZ2VEYXRhKShpbnQpOwogCiBXRUJDT1JFX0VYUE9SVCBpbnQgKCp3a0V4ZXJuYWxEZXZp
Y2VUeXBlRm9yUGxheWVyKShBVlBsYXllciAqKTsKIFdFQkNPUkVfRVhQT1JUIE5TU3RyaW5nICoo
KndrRXhlcm5hbERldmljZURpc3BsYXlOYW1lRm9yUGxheWVyKShBVlBsYXllciAqKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE3NTc0MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE0LTExLTA2ICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFVwZGF0ZSBvcHRpbWl6
ZWQgZnVsbHNjcmVlbiBtZWRpYSBjb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQg
RnVsZ2hhbS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5
c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKTog
SW5pdGlhbGl6ZSBHZXRNZWRpYVVJSW1hZ2VEYXRhLgorCiAyMDE0LTExLTA2ICBDb25yYWQgU2h1
bHR6ICA8Y29ucmFkX3NodWx0ekBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xpZW50cyBzaG91bGQg
YmUgYWJsZSB0byBjdXN0b21pemUgdGhlIHZpZXcgdXNlZCBmb3IgcGFnZSBwcmV2aWV3cwpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQkocmV2aXNpb24gMTc1NjQxKQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVt
SW50ZXJmYWNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMDgsNiArMjA4LDcgQEAgdm9pZCBJbml0
V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgICAgICBJTklUKEdldFNjcmVlblNjYWxl
RmFjdG9yKTsKICAgICAgICAgSU5JVChJc0dCMTgwMzBDb21wbGlhbmNlUmVxdWlyZWQpOwogICAg
ICAgICBJTklUKElzT3B0aW1pemVkRnVsbHNjcmVlblN1cHBvcnRlZCk7CisgICAgICAgIElOSVQo
R2V0TWVkaWFVSUltYWdlRGF0YSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQVUJMSUNfU1VGRklY
X0xJU1QpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzU3NDEpCisrKyBTb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAx
NC0xMS0wNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAg
ICBbaU9TXSBVcGRhdGUgb3B0aW1pemVkIGZ1bGxzY3JlZW4gbWVkaWEgY29udHJvbHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODQ5MworCisgICAg
ICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJTeXN0ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVy
ZmFjZSk6IEluaXRpYWxpemUgR2V0TWVkaWFVSUltYWdlRGF0YS4KKwogMjAxNC0xMS0wNiAgRGFu
aWVsIEphbGt1dCAgPGphbGt1dEByZWQtc3dlYXRlci5jb20+CiAKICAgICAgICAgV3JhcCB0aGUg
YnVsayBvZiAtW1dlYlZpZXcgZGVhbGxvY10gd2l0aCBhbiBhdXRvcmVsZWFzZSBwb29sLgpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3Rl
bUludGVyZmFjZS5tbQkocmV2aXNpb24gMTc1NjQxKQorKysgU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMzIs
NiArMTMyLDcgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQogICAgIElO
SVQoR2V0U2NyZWVuU2NhbGVGYWN0b3IpOwogICAgIElOSVQoSXNHQjE4MDMwQ29tcGxpYW5jZVJl
cXVpcmVkKTsKICAgICBJTklUKElzT3B0aW1pemVkRnVsbHNjcmVlblN1cHBvcnRlZCk7CisgICAg
SU5JVChHZXRNZWRpYVVJSW1hZ2VEYXRhKTsKICNlbmRpZgogCiAgICAgSU5JVChDcmVhdGVDVExp
bmVXaXRoVW5pQ2hhclByb3ZpZGVyKTsK
</data>
<flag name="commit-queue"
          id="266011"
          type_id="3"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241187</attachid>
            <date>2014-11-07 09:28:19 -0800</date>
            <delta_ts>2014-11-07 10:10:49 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>controller_patch_7.txt</filename>
            <type>text/plain</type>
            <size>21071</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDE0LTExLTA2ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFVwZGF0ZSBv
cHRpbWl6ZWQgZnVsbHNjcmVlbiBtZWRpYSBjb250cm9scworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzSG9zdDo6ZnVs
bHNjcmVlbk1vZGUpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzSG9zdDo6
bWVkaWFVSUltYWdlRGF0YSk6IE5ldy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMv
TWVkaWFDb250cm9sc0hvc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVk
aWFDb250cm9sc0hvc3QuaWRsOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21l
ZGlhQ29udHJvbHNpT1MuY3NzOgorICAgICAgICBSZW5hbWVkIC13ZWJraXQtbWVkaWEtY29udHJv
bHMtd2lyZWxlc3MtcGxheWJhY2stc3RhdHVzIHRvIC13ZWJraXQtbWVkaWEtY29udHJvbHMtaW5s
aW5lLXBsYXliYWNrLXBsYWNlaG9sZGVyCisgICAgICAgICAgICBiZWNhdXNlIGl0IGlzIG5vdyB1
c2VkIGZvciBvdGhlciBpbmxpbmUgcGxheWJhY2sgc3RhdHVzIGRpc3BsYXkuIEFkZCB6LWluZGV4
OjAgc28gdGhlIHBsYWNlaG9sZGVyCisgICAgICAgICAgICByZW5kZXJzIGFib3ZlIGNhcHRpb25z
LiBSZW1vdmUgdGhlIGJhY2tncm91bmQtaW1hZ2UsIGl0IGlzIG5vdyBzZXQgZnJvbSBzY3JpcHQu
CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1pbmxpbmUtcGxheWJhY2st
cGxhY2Vob2xkZXIpOiAKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWlu
bGluZS1wbGF5YmFjay1wbGFjZWhvbGRlci5oaWRkZW4pOgorICAgICAgICAodmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtb3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uKToKKyAgICAgICAg
KGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXdpcmVsZXNzLXBsYXliYWNrLXN0YXR1cyk6
IERlbGV0ZWQuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVz
cy1wbGF5YmFjay1zdGF0dXMuaGlkZGVuKTogRGVsZXRlZC4KKyAgICAgICAgKHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLW9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbjphY3RpdmUpOiBE
ZWxldGVkLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNp
T1MuanM6CisgICAgICAgIChDb250cm9sbGVySU9TKTogU2V0IGRvaW5nU2V0dXAgdG8gdHJ1ZSBh
cm91bmQgc2V0dXAgc28gd2UgZG9uJ3QgZHJhdyB0aGUgaW5saW5lIGNvbnRyb2xzCisgICAgICAg
ICAgICBicmllZmx5IHdoZW4gYW4gZWxlbWVudCBpcyBjcmVhdGVkIGFzIGEgcmVzdWx0IG9mIGEg
dXNlciBnZXN0dXJlLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUuc2hvdWxkSGF2
ZVN0YXJ0UGxheWJhY2tCdXR0b24pOiBEb24ndCBhbGxvdyBpbmxpbmUgY29udHJvbHMgZHVyaW5n
IAorICAgICAgICAgICAgaW5pdGlhbCBzZXR1cCB0byBwcmV2ZW50IGlubGluZSBjb250cm9scyBm
cm9tIGJlZ2luIGRyYXduIGJyaWVmbHkgd2hlbiBhIG1lZGlhIGVsZW1lbnQKKyAgICAgICAgICAg
IGlzIGNyZWF0ZWQgYW5kIGluc2VydGVkIGJ5IGEgc2NyaXB0IGNhbGxlZCBmcm9tIGEgdXNlciBn
ZXN0dXJlLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUudXBkYXRlV2lyZWxlc3NQ
bGF5YmFja1N0YXR1cyk6IHdpcmVsZXNzUGxheWJhY2tTdGF0dXMgLT4gaW5saW5lUGxheWJhY2tQ
bGFjZWhvbGRlci4KKyAgICAgICAgKENvbnRyb2xsZXJJT1MucHJvdG90eXBlLmNyZWF0ZUNvbnRy
b2xzKTogRGl0dG8uIEFkZCBzdHlsZSBydWxlcyBmb3Igb3B0aW1pemVkIGZ1bGxzY3JlZW4gYnV0
dG9uLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUuY29uZmlndXJlSW5saW5lQ29u
dHJvbHMpOiBBZGQgdGhlIGlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIgYXMgYSBwZWVyIG9mCisg
ICAgICAgICAgICB0aGUgaW5saW5lIGNvbnRyb2xzIGNvbXBvc2l0aW5nIGNoaWxkIGluc3RlYWQg
b2YgYXMgYSBjaGlsZCBzbyBpdCByZW5kZXJzIGNvcnJlY3RseS4KKyAgICAgICAgKENvbnRyb2xs
ZXJJT1MucHJvdG90eXBlLmFkZENvbnRyb2xzKToKKyAgICAgICAgKENvbnRyb2xsZXJJT1MucHJv
dG90eXBlLnVwZGF0ZUNvbnRyb2xzKTogd2lyZWxlc3NQbGF5YmFja1N0YXR1cyAtPiBpbmxpbmVQ
bGF5YmFja1BsYWNlaG9sZGVyLgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUuaGFu
ZGxlV3JhcHBlclRvdWNoU3RhcnQpOgorICAgICAgICAoQ29udHJvbGxlcklPUy5wcm90b3R5cGUu
Z2V0IHBhZ2VTY2FsZUZhY3Rvcik6IENsZWFudXAuCisgICAgICAgIChDb250cm9sbGVySU9TLnBy
b3RvdHlwZS5zZXQgcGFnZVNjYWxlRmFjdG9yKTogRGl0dG8uCisgICAgICAgIChDb250cm9sbGVy
SU9TLnByb3RvdHlwZS5oYW5kbGVGdWxsc2NyZWVuQ2hhbmdlKTogU2hvdyB0aGUgcGxhY2Vob2xk
ZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogRXhwb3J0IF93a0dldE1lZGlhVUlJbWFn
ZURhdGEuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmZ1bGxzY3JlZW5Nb2RlKTogRXhwb3NlIGZ1bGxzY3Jl
ZW4gbW9kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNl
SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1Mu
bW06CisKIDIwMTQtMTEtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUHV0IG5hbWVzIG9uIGEgY291cGxlIG9mIHZpZGVvLXJlbGF0ZWQgQ0FMYXll
cnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNzU2NDEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMjg0MCw2ICsyODQwLDcg
QEAgX3drRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JBZnRlcklPU1ZlcnNpbwogX3drR2V0QXZhaWxh
YmxlU2NyZWVuU2l6ZQogX3drR2V0RGV2aWNlQ2xhc3MKIF93a0dldERldmljZU5hbWUKK193a0dl
dE1lZGlhVUlJbWFnZURhdGEKIF93a0dldE9TTmFtZUZvclVzZXJBZ2VudAogX3drR2V0UGxhdGZv
cm1OYW1lRm9yTmF2aWdhdG9yCiBfd2tHZXRTY3JlZW5TY2FsZUZhY3RvcgpJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250
cm9sc0hvc3QuY3BwCShyZXZpc2lvbiAxNzU3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
ODYsNiArMjg2LDUwIEBAIHZvaWQgTWVkaWFDb250cm9sc0hvc3Q6OnNldENvbnRyb2xzRGVwZW4K
ICAgICBtX21lZGlhRWxlbWVudC0+c2V0TWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFj
dG9yKHZhbHVlKTsKIH0KIAorU3RyaW5nIE1lZGlhQ29udHJvbHNIb3N0OjpmdWxsc2NyZWVuTW9k
ZSgpIGNvbnN0Cit7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
bm9uZSwgKEFTQ0lJTGl0ZXJhbCgibm9uZSIpKSk7CisgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgc3RhbmRhcmQsIChBU0NJSUxpdGVyYWwoInN0YW5kYXJkIikpKTsK
KyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBvcHRpbWl6ZWQsIChB
U0NJSUxpdGVyYWwoIm9wdGltaXplZCIpKSk7CisgICAgU3RyaW5nIG1vZGUgPSBub25lOworCisg
ICAgZW51bSBWaWRlb0Z1bGxzY3JlZW5Nb2RlIHsgVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUsIFZp
ZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCwgVmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCB9
OworCisgICAgc3dpdGNoIChtX21lZGlhRWxlbWVudC0+ZnVsbHNjcmVlbk1vZGUoKSkgeworICAg
IGNhc2UgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmU6CisgICAgICAg
IG1vZGUgPSBub25lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEhUTUxNZWRpYUVsZW1lbnQ6
OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZDoKKyAgICAgICAgbW9kZSA9IHN0YW5kYXJkOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVl
bk1vZGVPcHRpbWl6ZWQ6CisgICAgICAgIG1vZGUgPSBvcHRpbWl6ZWQ7CisgICAgICAgIGJyZWFr
OworICAgIH0KKyAgICAKKyAgICBMT0coTWVkaWEsICJNZWRpYUNvbnRyb2xzSG9zdDo6ZnVsbHNj
cmVlbk1vZGUgLSByZXR1cm5pbmcgXCIlc1wiIiwgbW9kZS51dGY4KCkuZGF0YSgpKTsKKworICAg
IHJldHVybiBtb2RlOworfQorCitTdHJpbmcgTWVkaWFDb250cm9sc0hvc3Q6Om1lZGlhVUlJbWFn
ZURhdGEoY29uc3QgU3RyaW5nJiBwYXJ0SUQpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oSU9TKQor
ICAgIGlmIChwYXJ0SUQgPT0gIm9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbiIpCisgICAgICAg
IHJldHVybiB3a0dldE1lZGlhVUlJbWFnZURhdGEod2tNZWRpYVVJUGFydE9wdGltaXplZEZ1bGxz
Y3JlZW5CdXR0b24pOworCisgICAgaWYgKHBhcnRJRCA9PSAib3B0aW1pemVkLWZ1bGxzY3JlZW4t
YnV0dG9uLWhpbGl0ZWQiKQorICAgICAgICByZXR1cm4gd2tHZXRNZWRpYVVJSW1hZ2VEYXRhKHdr
TWVkaWFVSVBhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuQnV0dG9uSGlsaXRlZCk7CisKKyAgICBpZiAo
cGFydElEID09ICJvcHRpbWl6ZWQtZnVsbHNjcmVlbi1wbGFjZWhvbGRlciIpCisgICAgICAgIHJl
dHVybiB3a0dldE1lZGlhVUlJbWFnZURhdGEod2tNZWRpYVVJUGFydE9wdGltaXplZEZ1bGxzY3Jl
ZW5QbGFjZWhvbGRlcik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYXJ0SUQpOworI2VuZGlm
CisKKyAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKK30KKwogfQogCiAjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5oCShyZXZpc2lvbiAxNzU3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzIs
NiArNzIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBleGl0ZWRGdWxsc2NyZWVuKCk7CiAgICAgdm9p
ZCBlbnRlckZ1bGxzY3JlZW5PcHRpbWl6ZWQoKTsKICAgICBib29sIG9wdGltaXplZEZ1bGxzY3Jl
ZW5TdXBwb3J0ZWQoKTsKKyAgICBTdHJpbmcgZnVsbHNjcmVlbk1vZGUoKSBjb25zdDsKKyAgICBT
dHJpbmcgbWVkaWFVSUltYWdlRGF0YShjb25zdCBTdHJpbmcmKSBjb25zdDsKIAogICAgIFN0cmlu
ZyBleHRlcm5hbERldmljZURpc3BsYXlOYW1lKCkgY29uc3Q7CiAgICAgU3RyaW5nIGV4dGVybmFs
RGV2aWNlVHlwZSgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNv
bnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaWRsCShyZXZpc2lvbiAx
NzU3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250
cm9sc0hvc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSwxOCBAQCBlbnVtIERldmlj
ZVR5cGUgewogICAgICJ0dm91dCIKIH07CiAKK2VudW0gRnVsbHNjcmVlbk1vZGUgeworICAgICJu
b25lIiwKKyAgICAic3RhbmRhcmQiLAorICAgICJvcHRpbWl6ZWQiCit9OworCitlbnVtIE1lZGlh
VUlQYXJ0SUQgeworICAgICJvcHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b24iLAorICAgICJvcHRp
bWl6ZWQtZnVsbHNjcmVlbi1idXR0b24taGlsaXRlZCIsCisgICAgIm9wdGltaXplZC1mdWxsc2Ny
ZWVuLXBsYWNlaG9sZGVyIgorfTsKKwogWwogICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAgIENv
bmRpdGlvbmFsPU1FRElBX0NPTlRST0xTX1NDUklQVCwKQEAgLTU3LDQgKzY5LDYgQEAgZW51bSBE
ZXZpY2VUeXBlIHsKICAgICB2b2lkIGV4aXRlZEZ1bGxzY3JlZW4oKTsKICAgICB2b2lkIGVudGVy
RnVsbHNjcmVlbk9wdGltaXplZCgpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG9w
dGltaXplZEZ1bGxzY3JlZW5TdXBwb3J0ZWQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZ1bGxz
Y3JlZW5Nb2RlIGZ1bGxzY3JlZW5Nb2RlOworICAgIERPTVN0cmluZyBtZWRpYVVJSW1hZ2VEYXRh
KE1lZGlhVUlQYXJ0SUQgcGFydElEKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc2lPUy5jc3MKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNpT1MuY3NzCShyZXZp
c2lvbiAxNzU3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVk
aWFDb250cm9sc2lPUy5jc3MJKHdvcmtpbmcgY29weSkKQEAgLTY2LDkgKzY2LDEwIEBAIGF1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIGJ1dHQKICAgICAtd2Via2l0LWFwcGVhcmFu
Y2U6IG5vbmU7CiB9CiAKLXZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXdpcmVsZXNzLXBs
YXliYWNrLXN0YXR1cywKLWF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXdpcmVsZXNzLXBs
YXliYWNrLXN0YXR1cyB7Cit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1pbmxpbmUtcGxh
eWJhY2stcGxhY2Vob2xkZXIsCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1pbmxpbmUt
cGxheWJhY2stcGxhY2Vob2xkZXIgewogICAgIGRpc3BsYXk6IGJsb2NrOworICAgIHotaW5kZXg6
IDA7CiAgICAgd2lkdGg6IDEwMCU7CiAgICAgaGVpZ2h0OiAxMDAlOwogICAgIGJhY2tncm91bmQt
Y29sb3I6IGJsYWNrOwpAQCAtNzcsOCArNzgsOCBAQCBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy13aXJlbGVzcy1wCiAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDUwJTsKIH0KIAotdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtd2lyZWxlc3MtcGxheWJhY2stc3RhdHVzLmhpZGRl
biwKLWF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXdpcmVsZXNzLXBsYXliYWNrLXN0YXR1
cy5oaWRkZW4gewordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtaW5saW5lLXBsYXliYWNr
LXBsYWNlaG9sZGVyLmhpZGRlbiwKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWlubGlu
ZS1wbGF5YmFjay1wbGFjZWhvbGRlci5oaWRkZW4gewogICAgIGRpc3BsYXk6IG5vbmU7CiB9CiAK
QEAgLTI0Niw5ICsyNDcsNyBAQCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2Ny
ZWVuCiB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vcHRpbWl6ZWQtZnVsbHNjcmVlbi1i
dXR0b24gewogICAgIHdpZHRoOiAzNXB4OwogICAgIGhlaWdodDogNDRweDsKLSAgICBiYWNrZ3Jv
dW5kLXNpemU6IDM1cHggNDRweDsKLSAgICBvcGFjaXR5OiAwLjk7Ci0gICAgYmFja2dyb3VuZC1p
bWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNSA0NCI+PGcgc3Ryb2tlPSJyZ2JhKDAsIDAsIDAs
IDAuNCkiIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik0gMTAsMTUgaCAxNCB2IDE0IGggLTE0IHYgLTE0
Ii8+PC9nPjwvc3ZnPicpOworICAgIG9wYWNpdHk6IDAuNDsKIH0KIAogdmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtcGxheS1idXR0b24gewpAQCAtMjcxLDEwICsyNzAsNiBAQCB2aWRlbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuCiAgICAgYmFja2dyb3VuZC1pbWFnZTog
dXJsKCdkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciIHZpZXdCb3g9IjAgMCAzNSA0NCI+PGcgc3Ryb2tlPSJ3aGl0ZSIgZmlsbD0ibm9uZSI+
PHBhdGggZD0iTSAxMCwyMCB2IC01IGggNSBNIDEwLDE1IGwgNSw1Ii8+PHBhdGggZD0iTSAyNCwy
NCB2IDUgaCAtNSBNIDI0LDI5IGwgLTUsLTUiLz48L2c+PC9zdmc+Jyk7CiB9CiAKLXZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLW9wdGltaXplZC1mdWxsc2NyZWVuLWJ1dHRvbjphY3RpdmUg
ewotICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzUgNDQiPjxnIHN0
cm9rZT0id2hpdGUiIGZpbGw9Im5vbmUiPjxwYXRoIGQ9Ik0gMTAsMTUgaCAxNCB2IDE0IGggLTE0
IHYgLTE0Ii8+PC9nPjwvc3ZnPicpOwotfQotCiB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy10aW1lbGluZSwKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIHsKICAg
ICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc2lPUy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc2lPUy5qcwkocmV2aXNp
b24gMTc1NzQxKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlh
Q29udHJvbHNpT1MuanMJKHdvcmtpbmcgY29weSkKQEAgLTUsNiArNSw3IEBAIGZ1bmN0aW9uIGNy
ZWF0ZUNvbnRyb2xzKHJvb3QsIHZpZGVvLCBob3MKIAogZnVuY3Rpb24gQ29udHJvbGxlcklPUyhy
b290LCB2aWRlbywgaG9zdCkKIHsKKyAgICB0aGlzLmRvaW5nU2V0dXAgPSB0cnVlOwogICAgIHRo
aXMuaGFzV2lyZWxlc3NQbGF5YmFja1RhcmdldHMgPSBmYWxzZTsKICAgICB0aGlzLl9wYWdlU2Nh
bGVGYWN0b3IgPSAxOwogICAgIHRoaXMuaXNMaXN0ZW5pbmdGb3JQbGF5YmFja1RhcmdldEF2YWls
YWJpbGl0eUV2ZW50ID0gZmFsc2U7CkBAIC0xNSw2ICsxNiw3IEBAIGZ1bmN0aW9uIENvbnRyb2xs
ZXJJT1Mocm9vdCwgdmlkZW8sIGhvc3QKICAgICB0aGlzLnNldE5lZWRzVGltZWxpbmVNZXRyaWNz
VXBkYXRlKCk7CiAKICAgICBob3N0LmNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IgPSB0
cnVlOworICAgIHRoaXMuZG9pbmdTZXR1cCA9IGZhbHNlOwogfTsKIAogLyogRW51bXMgKi8KQEAg
LTc2LDcgKzc4LDcgQEAgQ29udHJvbGxlcklPUy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0
aGlzLnZpZGVvLmN1cnJlbnRTcmMgJiYgdGhpcy52aWRlby5lcnJvcikKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgICAgIGlmICghdGhpcy5ob3N0LnVzZXJHZXN0dXJlUmVxdWlyZWQg
JiYgYWxsb3dzSW5saW5lKQorICAgICAgICBpZiAoIXRoaXMuZG9pbmdTZXR1cCAmJiAhdGhpcy5o
b3N0LnVzZXJHZXN0dXJlUmVxdWlyZWQgJiYgYWxsb3dzSW5saW5lKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTE1LDEzICsxMTcsMTMgQEAg
Q29udHJvbGxlcklPUy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2VT
VkcgPSBiYWNrZ3JvdW5kSW1hZ2VTVkcucmVwbGFjZSgnIyNERVZJQ0VfVFlQRSMjJywgZGV2aWNl
VHlwZSk7CiAgICAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2VTVkcgPSBiYWNrZ3JvdW5kSW1hZ2VT
VkcucmVwbGFjZSgnIyNERVZJQ0VfTkFNRSMjJywgZGV2aWNlTmFtZSk7CiAKLSAgICAgICAgICAg
IHRoaXMuY29udHJvbHMud2lyZWxlc3NQbGF5YmFja1N0YXR1cy5zdHlsZS5iYWNrZ3JvdW5kSW1h
Z2UgPSBiYWNrZ3JvdW5kSW1hZ2VTVkc7Ci0gICAgICAgICAgICB0aGlzLmNvbnRyb2xzLndpcmVs
ZXNzUGxheWJhY2tTdGF0dXMuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgZGV2aWNlVHlwZSAr
ICIsICIgKyBkZXZpY2VOYW1lKTsKKyAgICAgICAgICAgIHRoaXMuY29udHJvbHMuaW5saW5lUGxh
eWJhY2tQbGFjZWhvbGRlci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBiYWNrZ3JvdW5kSW1hZ2VT
Vkc7CisgICAgICAgICAgICB0aGlzLmNvbnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIu
c2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgZGV2aWNlVHlwZSArICIsICIgKyBkZXZpY2VOYW1l
KTsKIAotICAgICAgICAgICAgdGhpcy5jb250cm9scy53aXJlbGVzc1BsYXliYWNrU3RhdHVzLmNs
YXNzTGlzdC5yZW1vdmUodGhpcy5DbGFzc05hbWVzLmhpZGRlbik7CisgICAgICAgICAgICB0aGlz
LmNvbnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIuY2xhc3NMaXN0LnJlbW92ZSh0aGlz
LkNsYXNzTmFtZXMuaGlkZGVuKTsKICAgICAgICAgICAgIHRoaXMuY29udHJvbHMud2lyZWxlc3NU
YXJnZXRQaWNrZXIuY2xhc3NMaXN0LmFkZCh0aGlzLkNsYXNzTmFtZXMuYWN0aXZlKTsKICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMuY29udHJvbHMud2lyZWxlc3NQbGF5YmFja1N0
YXR1cy5jbGFzc0xpc3QuYWRkKHRoaXMuQ2xhc3NOYW1lcy5oaWRkZW4pOworICAgICAgICAgICAg
dGhpcy5jb250cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLmNsYXNzTGlzdC5hZGQodGhp
cy5DbGFzc05hbWVzLmhpZGRlbik7CiAgICAgICAgICAgICB0aGlzLmNvbnRyb2xzLndpcmVsZXNz
VGFyZ2V0UGlja2VyLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5DbGFzc05hbWVzLmFjdGl2ZSk7CiAg
ICAgICAgIH0KICAgICB9LApAQCAtMTM5LDEwICsxNDEsMTYgQEAgQ29udHJvbGxlcklPUy5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciBwYW5lbENvbXBvc2l0ZWRQYXJlbnQgPSB0aGlzLmNvbnRy
b2xzLnBhbmVsQ29tcG9zaXRlZFBhcmVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwogICAgICAgICBwYW5lbENvbXBvc2l0ZWRQYXJlbnQuc2V0QXR0cmlidXRlKCdwc2V1ZG8nLCAn
LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbC1jb21wb3NpdGVkLXBhcmVudCcpOwogCisgICAg
ICAgIHZhciBpbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyID0gdGhpcy5jb250cm9scy5pbmxpbmVQ
bGF5YmFja1BsYWNlaG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAg
ICAgIGlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIuc2V0QXR0cmlidXRlKCdwc2V1ZG8nLCAnLXdl
YmtpdC1tZWRpYS1jb250cm9scy1pbmxpbmUtcGxheWJhY2stcGxhY2Vob2xkZXInKTsKKyAgICAg
ICAgaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5jbGFzc0xpc3QuYWRkKHRoaXMuQ2xhc3NOYW1l
cy5oaWRkZW4pOworICAgICAgICBpbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLnNldEF0dHJpYnV0
ZSgnYXJpYS1sYWJlbCcsIHRoaXMuVUlTdHJpbmcoJ0Rpc3BsYXkgT3B0aW1pemVkIEZ1bGwgU2Ny
ZWVuJykpOwogCi0gICAgICAgIHZhciB3aXJlbGVzc1BsYXliYWNrU3RhdHVzID0gdGhpcy5jb250
cm9scy53aXJlbGVzc1BsYXliYWNrU3RhdHVzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7Ci0gICAgICAgIHdpcmVsZXNzUGxheWJhY2tTdGF0dXMuc2V0QXR0cmlidXRlKCdwc2V1ZG8n
LCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy13aXJlbGVzcy1wbGF5YmFjay1zdGF0dXMnKTsKLSAg
ICAgICAgd2lyZWxlc3NQbGF5YmFja1N0YXR1cy5jbGFzc0xpc3QuYWRkKHRoaXMuQ2xhc3NOYW1l
cy5oaWRkZW4pOworICAgICAgICB2YXIgYnV0dG9uSW1hZ2VTVkcgPSAiYmFja2dyb3VuZC1pbWFn
ZTogdXJsKCciICsgdGhpcy5ob3N0Lm1lZGlhVUlJbWFnZURhdGEoIm9wdGltaXplZC1mdWxsc2Ny
ZWVuLWJ1dHRvbiIpICsgIicpIjsKKyAgICAgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5z
ZXJ0UnVsZSgndmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3B0aW1pemVkLWZ1bGxzY3Jl
ZW4tYnV0dG9uIHsgJyArIGJ1dHRvbkltYWdlU1ZHICsgJzsgfScsIDApOworCisgICAgICAgIGJ1
dHRvbkltYWdlU1ZHID0gImJhY2tncm91bmQtaW1hZ2U6IHVybCgnIiArIHRoaXMuaG9zdC5tZWRp
YVVJSW1hZ2VEYXRhKCJvcHRpbWl6ZWQtZnVsbHNjcmVlbi1idXR0b24taGlsaXRlZCIpICsgIicp
IjsKKyAgICAgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5zZXJ0UnVsZSgndmlkZW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtb3B0aW1pemVkLWZ1bGxzY3JlZW4tYnV0dG9uOmFjdGl2ZSB7
ICcgKyBidXR0b25JbWFnZVNWRyArICc7IH0nLCAwKTsKIAogICAgICAgICB2YXIgd2lyZWxlc3NU
YXJnZXRQaWNrZXIgPSB0aGlzLmNvbnRyb2xzLndpcmVsZXNzVGFyZ2V0UGlja2VyID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICAgICAgIHdpcmVsZXNzVGFyZ2V0UGlja2Vy
LnNldEF0dHJpYnV0ZSgncHNldWRvJywgJy13ZWJraXQtbWVkaWEtY29udHJvbHMtd2lyZWxlc3Mt
cGxheWJhY2stcGlja2VyLWJ1dHRvbicpOwpAQCAtMTk2LDggKzIwNCw2IEBAIENvbnRyb2xsZXJJ
T1MucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICBjb25maWd1cmVJbmxpbmVDb250cm9sczog
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIHRoaXMuYmFzZS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xz
LndpcmVsZXNzUGxheWJhY2tTdGF0dXMpOwotCiAgICAgICAgIHRoaXMuY29udHJvbHMucGFuZWwu
YXBwZW5kQ2hpbGQodGhpcy5jb250cm9scy5wbGF5QnV0dG9uKTsKICAgICAgICAgdGhpcy5jb250
cm9scy5wYW5lbC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLnN0YXR1c0Rpc3BsYXkpOwogICAg
ICAgICB0aGlzLmNvbnRyb2xzLnBhbmVsLmFwcGVuZENoaWxkKHRoaXMuY29udHJvbHMudGltZWxp
bmVCb3gpOwpAQCAtMjI5LDYgKzIzNSw3IEBAIENvbnRyb2xsZXJJT1MucHJvdG90eXBlID0gewog
ICAgIH0sCiAKICAgICBhZGRDb250cm9sczogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuYmFz
ZS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIpOwog
ICAgICAgICB0aGlzLmJhc2UuYXBwZW5kQ2hpbGQodGhpcy5jb250cm9scy5wYW5lbENvbXBvc2l0
ZWRQYXJlbnQpOwogICAgICAgICB0aGlzLmNvbnRyb2xzLnBhbmVsQ29tcG9zaXRlZFBhcmVudC5h
cHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLnBhbmVsKTsKICAgICAgICAgdGhpcy5zZXROZWVkc1Rp
bWVsaW5lTWV0cmljc1VwZGF0ZSgpOwpAQCAtMjM3LDcgKzI0NCw3IEBAIENvbnRyb2xsZXJJT1Mu
cHJvdG90eXBlID0gewogICAgIHVwZGF0ZUNvbnRyb2xzOiBmdW5jdGlvbigpIHsKICAgICAgICAg
aWYgKHRoaXMuc2hvdWxkSGF2ZVN0YXJ0UGxheWJhY2tCdXR0b24oKSkKICAgICAgICAgICAgIHRo
aXMuc2V0Q29udHJvbHNUeXBlKENvbnRyb2xsZXJJT1MuU3RhcnRQbGF5YmFja0NvbnRyb2xzKTsK
LSAgICAgICAgZWxzZSBpZiAodGhpcy5pc0Z1bGxTY3JlZW4oKSkKKyAgICAgICAgZWxzZSBpZiAo
dGhpcy5pc0Z1bGxTY3JlZW4oKSAmJiB0aGlzLmhvc3QuZnVsbHNjcmVlbk1vZGUgIT09ICJvcHRp
bWl6ZWQiKQogICAgICAgICAgICAgdGhpcy5zZXRDb250cm9sc1R5cGUoQ29udHJvbGxlci5GdWxs
U2NyZWVuQ29udHJvbHMpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aGlzLnNldENvbnRy
b2xzVHlwZShDb250cm9sbGVyLklubGluZUNvbnRyb2xzKTsKQEAgLTM1NSw3ICszNjIsNyBAQCBD
b250cm9sbGVySU9TLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgaGFuZGxlV3JhcHBlclRv
dWNoU3RhcnQ6IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIGlmIChldmVudC50YXJnZXQgIT0g
dGhpcy5iYXNlICYmIGV2ZW50LnRhcmdldCAhPSB0aGlzLmNvbnRyb2xzLndpcmVsZXNzUGxheWJh
Y2tTdGF0dXMpCisgICAgICAgIGlmIChldmVudC50YXJnZXQgIT0gdGhpcy5iYXNlICYmIGV2ZW50
LnRhcmdldCAhPSB0aGlzLmNvbnRyb2xzLmlubGluZVBsYXliYWNrUGxhY2Vob2xkZXIpCiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy5tb3N0UmVjZW50TnVtYmVyT2ZUYXJnZXR0
ZWRUb3VjaGVzID0gZXZlbnQudGFyZ2V0VG91Y2hlcy5sZW5ndGg7CkBAIC01NTUsMTEgKzU2Miwx
MyBAQCBDb250cm9sbGVySU9TLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAg
ICBnZXQgcGFnZVNjYWxlRmFjdG9yKCkgeworICAgIGdldCBwYWdlU2NhbGVGYWN0b3IoKQorICAg
IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3BhZ2VTY2FsZUZhY3RvcjsKICAgICB9LAogCi0gICAg
c2V0IHBhZ2VTY2FsZUZhY3RvcihuZXdTY2FsZUZhY3RvcikgeworICAgIHNldCBwYWdlU2NhbGVG
YWN0b3IobmV3U2NhbGVGYWN0b3IpCisgICAgewogICAgICAgICBpZiAodGhpcy5fcGFnZVNjYWxl
RmFjdG9yID09PSBuZXdTY2FsZUZhY3RvcikKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNTgw
LDcgKzU4OSwyNSBAQCBDb250cm9sbGVySU9TLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAg
ICB0aGlzLnVwZGF0ZVByb2dyZXNzKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9
CisgICAgfSwKKworICAgIGhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2U6IGZ1bmN0aW9uKGV2ZW50KQor
ICAgIHsKKyAgICAgICAgQ29udHJvbGxlci5wcm90b3R5cGUuaGFuZGxlRnVsbHNjcmVlbkNoYW5n
ZS5jYWxsKHRoaXMsIGV2ZW50KTsKKworICAgICAgICBpZiAoIXRoaXMuaXNGdWxsU2NyZWVuKCkp
IHsKKyAgICAgICAgICAgIHRoaXMuY29udHJvbHMuaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5j
bGFzc0xpc3QuYWRkKHRoaXMuQ2xhc3NOYW1lcy5oaWRkZW4pOworICAgICAgICB9IGVsc2UgaWYg
KHRoaXMuaG9zdC5mdWxsc2NyZWVuTW9kZSA9PT0gIm9wdGltaXplZCIpIHsKKyAgICAgICAgICAg
IHZhciBiYWNrZ3JvdW5kSW1hZ2VTVkcgPSAidXJsKCciICsgdGhpcy5ob3N0Lm1lZGlhVUlJbWFn
ZURhdGEoIm9wdGltaXplZC1mdWxsc2NyZWVuLXBsYWNlaG9sZGVyIikgKyAiJykiOworICAgICAg
ICAgICAgdGhpcy5jb250cm9scy5pbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLnN0eWxlLmJhY2tn
cm91bmRJbWFnZSA9IGJhY2tncm91bmRJbWFnZVNWRzsKKyAgICAgICAgICAgIHRoaXMuY29udHJv
bHMuaW5saW5lUGxheWJhY2tQbGFjZWhvbGRlci5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCAi
dmlkZW8gcGxheWJhY2sgcGxhY2Vob2xkZXIiKTsKKworICAgICAgICAgICAgdGhpcy5jb250cm9s
cy5pbmxpbmVQbGF5YmFja1BsYWNlaG9sZGVyLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5DbGFzc05h
bWVzLmhpZGRlbik7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnVwZGF0ZUNhcHRpb25Db250
YWluZXIoKTsKKyAgICB9LAorCiB9OwogCiBPYmplY3QuY3JlYXRlKENvbnRyb2xsZXIucHJvdG90
eXBlKS5leHRlbmQoQ29udHJvbGxlcklPUy5wcm90b3R5cGUpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHJldmlzaW9uIDE3NTY0MSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOTIsNiArMzky
LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgYm9vbCBpc0Z1bGxzY3Jl
ZW4oKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHRvZ2dsZUZ1bGxzY3JlZW5TdGF0ZSgpOwog
ICAgIGVudW0gVmlkZW9GdWxsc2NyZWVuTW9kZSB7IFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lLCBW
aWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQsIFZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQg
fTsKKyAgICBWaWRlb0Z1bGxzY3JlZW5Nb2RlIGZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgeyByZXR1
cm4gbV92aWRlb0Z1bGxzY3JlZW5Nb2RlOyB9CisKICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihW
aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkg
b3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBleGl0RnVsbHNjcmVlbigpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZVN5c3Rl
bUludGVyZmFjZUlPUy5oCShyZXZpc2lvbiAxNzU2NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViQ29yZVN5c3RlbUludGVyZmFjZUlPUy5oCSh3b3JraW5nIGNvcHkpCkBAIC03
NSw0ICs3NSwxMiBAQCBleHRlcm4gQ0ZTdHJpbmdSZWYgKCp3a0dldFZlbmRvck5hbWVGb3JOCiAK
IGV4dGVybiBib29sICgqd2tJc09wdGltaXplZEZ1bGxzY3JlZW5TdXBwb3J0ZWQpKHZvaWQpOwog
Cit0eXBlZGVmIGVudW0geworICAgIHdrTWVkaWFVSVBhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuQnV0
dG9uID0gMCwKKyAgICB3a01lZGlhVUlQYXJ0T3B0aW1pemVkRnVsbHNjcmVlbkJ1dHRvbkhpbGl0
ZWQsCisgICAgd2tNZWRpYVVJUGFydE9wdGltaXplZEZ1bGxzY3JlZW5QbGFjZWhvbGRlcgorfSB3
a01lZGlhVUlQYXJ0OworZXh0ZXJuIENGU3RyaW5nUmVmICgqd2tHZXRNZWRpYVVJSW1hZ2VEYXRh
KShpbnQgd2tNZWRpYVVJUGFydCk7CisKKwogI2VuZGlmIC8vIFdlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2VJT1NfaApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2VJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2VJT1MubW0JKHJldmlzaW9uIDE3NTY0MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlSU9TLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzEsNiArMTMxLDcgQEAgV0VCQ09SRV9FWFBPUlQgQ0ZTdHJpbmdSZWYg
KCp3a0dldFBsYXRmbwogV0VCQ09SRV9FWFBPUlQgQ0ZTdHJpbmdSZWYgKCp3a0dldFZlbmRvck5h
bWVGb3JOYXZpZ2F0b3IpKHZvaWQpOwogCiBXRUJDT1JFX0VYUE9SVCBib29sICgqd2tJc09wdGlt
aXplZEZ1bGxzY3JlZW5TdXBwb3J0ZWQpKHZvaWQpOworV0VCQ09SRV9FWFBPUlQgQ0ZTdHJpbmdS
ZWYgKCp3a0dldE1lZGlhVUlJbWFnZURhdGEpKGludCk7CiAKIFdFQkNPUkVfRVhQT1JUIGludCAo
KndrRXhlcm5hbERldmljZVR5cGVGb3JQbGF5ZXIpKEFWUGxheWVyICopOwogV0VCQ09SRV9FWFBP
UlQgTlNTdHJpbmcgKigqd2tFeGVybmFsRGV2aWNlRGlzcGxheU5hbWVGb3JQbGF5ZXIpKEFWUGxh
eWVyICopOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTc1NzQxKQorKysgU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMTEtMDYg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10g
VXBkYXRlIG9wdGltaXplZCBmdWxsc2NyZWVuIG1lZGlhIGNvbnRyb2xzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg0OTMKKworICAgICAgICBSZXZp
ZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAoSW5pdFdlYkNvcmVTeXN0
ZW1JbnRlcmZhY2UpOiBJbml0aWFsaXplIEdldE1lZGlhVUlJbWFnZURhdGEuCisKIDIwMTQtMTEt
MDYgIENvbnJhZCBTaHVsdHogIDxjb25yYWRfc2h1bHR6QGFwcGxlLmNvbT4KIAogICAgICAgICBD
bGllbnRzIHNob3VsZCBiZSBhYmxlIHRvIGN1c3RvbWl6ZSB0aGUgdmlldyB1c2VkIGZvciBwYWdl
IHByZXZpZXdzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZp
c2lvbiAxNzU2NDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTIwOCw2ICsyMDgs
NyBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgICAgIElOSVQo
R2V0U2NyZWVuU2NhbGVGYWN0b3IpOwogICAgICAgICBJTklUKElzR0IxODAzMENvbXBsaWFuY2VS
ZXF1aXJlZCk7CiAgICAgICAgIElOSVQoSXNPcHRpbWl6ZWRGdWxsc2NyZWVuU3VwcG9ydGVkKTsK
KyAgICAgICAgSU5JVChHZXRNZWRpYVVJSW1hZ2VEYXRhKTsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFBVQkxJQ19TVUZGSVhfTElTVCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NTc0
MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzIEBACisyMDE0LTExLTA2ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFtpT1NdIFVwZGF0ZSBvcHRpbWl6ZWQgZnVsbHNjcmVlbiBtZWRpYSBj
b250cm9scworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM4NDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbToKKyAgICAgICAgKEluaXRXZWJD
b3JlU3lzdGVtSW50ZXJmYWNlKTogSW5pdGlhbGl6ZSBHZXRNZWRpYVVJSW1hZ2VEYXRhLgorCiAy
MDE0LTExLTA2ICBEYW5pZWwgSmFsa3V0ICA8amFsa3V0QHJlZC1zd2VhdGVyLmNvbT4KIAogICAg
ICAgICBXcmFwIHRoZSBidWxrIG9mIC1bV2ViVmlldyBkZWFsbG9jXSB3aXRoIGFuIGF1dG9yZWxl
YXNlIHBvb2wuCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0
ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiAxNzU2NDEpCisrKyBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTEzMiw2ICsxMzIsNyBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNl
KHZvaWQpCiAgICAgSU5JVChHZXRTY3JlZW5TY2FsZUZhY3Rvcik7CiAgICAgSU5JVChJc0dCMTgw
MzBDb21wbGlhbmNlUmVxdWlyZWQpOwogICAgIElOSVQoSXNPcHRpbWl6ZWRGdWxsc2NyZWVuU3Vw
cG9ydGVkKTsKKyAgICBJTklUKEdldE1lZGlhVUlJbWFnZURhdGEpOwogI2VuZGlmCiAKICAgICBJ
TklUKENyZWF0ZUNUTGluZVdpdGhVbmlDaGFyUHJvdmlkZXIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>