<?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>82891</bug_id>
          
          <creation_ts>2012-04-02 05:27:30 -0700</creation_ts>
          <short_desc>Web Inspector: Implement frontend for device metrics emulation</short_desc>
          <delta_ts>2012-04-02 07:45:45 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>75963</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>593391</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-04-02 05:27:30 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593430</commentid>
    <comment_count>1</comment_count>
      <attachid>135089</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-04-02 06:56:34 -0700</bug_when>
    <thetext>Created attachment 135089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593437</commentid>
    <comment_count>2</comment_count>
      <attachid>135089</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-02 07:16:07 -0700</bug_when>
    <thetext>Comment on attachment 135089
Patch

Attachment 135089 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12308590</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593440</commentid>
    <comment_count>3</comment_count>
      <attachid>135092</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-04-02 07:21:23 -0700</bug_when>
    <thetext>Created attachment 135092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593446</commentid>
    <comment_count>4</comment_count>
      <attachid>135092</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-04-02 07:27:59 -0700</bug_when>
    <thetext>Comment on attachment 135092
Patch

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

&gt; Source/WebCore/ChangeLog:48
&gt; +2012-04-02  Alexander Pavlov  &lt;apavlov@chromium.org&gt;

Please remove this.

&gt; Source/WebCore/inspector/front-end/SettingsScreen.js:433
&gt; +            if (metrics &amp;&amp; metrics.isValid &amp;&amp; metrics.width &amp;&amp; metrics.height)

You are using isValid as a getter, while it is a function. Side-note: could you annotate device metrics class?

&gt; Source/WebCore/inspector/front-end/UserAgentSupport.js:57
&gt; +WebInspector.UserAgentSupport.DeviceMetrics.parseFromSettings = function(value)

parseSetting

&gt; Source/WebCore/inspector/front-end/UserAgentSupport.js:70
&gt; +WebInspector.UserAgentSupport.DeviceMetrics.parseFromUserInput = function(widthString, heightString, fontScaleFactorString)

parseUserInput</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593462</commentid>
    <comment_count>5</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-04-02 07:45:45 -0700</bug_when>
    <thetext>Committed r112884: &lt;http://trac.webkit.org/changeset/112884&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135089</attachid>
            <date>2012-04-02 06:56:34 -0700</date>
            <delta_ts>2012-04-02 07:20:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82891-20120402175632.patch</filename>
            <type>text/plain</type>
            <size>23357</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJiMmY2M2QxMzQyMWNj
MjEyNzYyOTRjNTMxZGEwNmViN2Q5MjA2ZC4uMTFlYWM4MDhkZjljODM4ZGEwZGQwNDYxMDBiMjQz
NzM2ZDQyYjllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA0LTAyICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW1wbGVtZW50IGZyb250ZW5kIGZvciBkZXZpY2UgbWV0cmljcyBlbXVsYXRpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyODkxCisKKyAg
ICAgICAgVGhpcyBjaGFuZ2UgaW1wbGVtZW50cyB0aGUgYmFja2VuZC1iYXNlZCBkZXZpY2UgbWV0
cmljcyBlbXVsYXRpb24gY2FwYWJpbGl0eSBkaXNjb3ZlcnksCisgICAgICAgIFVJIChlbmFibGVt
ZW50IGNoZWNrYm94ICsgaW5wdXQgY29udHJvbHMpLCBhbmQgYSBwZXJzaXN0ZW5jZSBzZXR0aW5n
CisgICAgICAgIGZvciB0aGUgdXNlci1zcGVjaWZpZWQgZGV2aWNlIG1ldHJpY3MgKHNjcmVlbiB3
aWR0aC9oZWlnaHQgYW5kIGFuIGF1eGlsaWFyeSBmb250IHNjYWxlIGZhY3RvcikuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9jb21w
aWxlLWZyb250LWVuZC5weToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdz
LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4pOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZS5fY3JlYXRlVXNlckFnZW50U2VsZWN0Um93RWxl
bWVudC5nZXQgY29uc3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnBy
b3RvdHlwZS5fc2hvd1BhaW50UmVjdHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
ZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUuc2V0IF9hcHBseURldmljZU1ldHJpY3NVc2VySW5wdXQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZS5fc2V0RGV2
aWNlTWV0cmljc092ZXJyaWRlLnNldCBpZik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGlu
Z3NTY3JlZW4ucHJvdG90eXBlLl9jcmVhdGVEZXZpY2VNZXRyaWNzRWxlbWVudC5jcmVhdGVJbnB1
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlLl9jcmVh
dGVEZXZpY2VNZXRyaWNzRWxlbWVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9X
ZWJLaXQucXJjOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3M6
CisgICAgICAgICguaGVscC10YWJsZSA+IHRyID4gdGgpOgorICAgICAgICAoLmhlbHAtdGFibGUg
PiB0ciA+IHRkKToKKyAgICAgICAgKCNyZXNvbHV0aW9uLW92ZXJyaWRlLXNlY3Rpb24pOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzczoKKyAgICAgICAgKC5oaWRk
ZW4pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuZG9Mb2FkZWREb25lKToKKwogMjAxMi0wMy0zMSAgQWxleGFuZGVyIFBhdmxvdiAgPGFw
YXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcGxlbWVudCBi
YWNrZW5kIGZvciBkZXZpY2UgbWV0cmljcyBlbXVsYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA3YWMwMTRkNjk4MGQ1YmJh
NDgzOWIxYjQzNTc0Y2RkY2U1NDBlNTBmLi40MzhkMDhhZWI1ZTUzMDMyNTQ1ZTdkOWM0NDkxMDRl
OTI5YjM1NjViIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDI0Ngp6Y21YQH5salh1Nm1K
Tn1LbyhjQGI0OU5fTTNeQCNgMzw/WnNLdnB0QzJ9Mz9aNXJZK2o1PEBJZCVvZDIxN35GdGoKemN8
YU1RPkwoWmMoJWxAR3hJPWsqdT56d0llK3RtTkdLTmZgWCZgZlJDK0N6JmYrWng7QiFKUS1LK0F2
JUNwJDNmCnpac3UlZGxKWlVrM2chV0k2Iz9tRHB1SVRecjllZlFVPkJnZURpfi0hTkVKQD9BWGlP
WkpEK0U+O1FXbnEwYy0jewpBdjtZN0EKCmRlbHRhIDI0CmdjbWNjY2h2bT51bUpOfUtvM0FIc1B+
SSVyI3c0fFE9N1F+VzBpcHtHVyZpKkgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOTM0ZWNlOGIxNDRl
YjA4NzliNDAyOTcxYjgxYTk2YzlmYmEwMjJhMi4uMGEwMjk0NDYxNWNkNGY0NDE3MDUxNGIwMTQ3
ZWI0ZWRiOTg5NmVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjM5NCw2ICs2Mzk0LDcgQEAKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcycsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzJywKKyAgICAgICAgICAgICdpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1VzZXJBZ2VudFN1cHBvcnQuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvVXNlck1ldHJpY3MuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvdXRpbGl0aWVzLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcu
anMnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCA5ZTNhMDI4OTE5MjIwYWJhMjQyYjEwYjM4NDE1N2FhMWEwYjQ2MDQ4Li41YTI5OGVjMmZjNjhj
NWYwMTJlNWM5ZDdjOTQ5NWU1MDc0NWViYTA1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzQyNjksNiArNzQyNjksMTAgQEAKIAkJCQkJPgog
CQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxm
cm9udC1lbmRcVXNlckFnZW50U3VwcG9ydC5qcyIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8
RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcVXNlck1ldHJp
Y3MuanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
Y29tcGlsZS1mcm9udC1lbmQucHkKaW5kZXggZWE5MzdmYTVkYjQ0OTY1ODg2M2ZlOTkyMzZiNmVj
ZjJmMDg1Nzg5NC4uMTE4MDQ4ZjVkMzdjMTg3ZjczMGJmNDAyZWQ2ZTNlNWM0MmU0ZDUxMiAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQpAQCAtOTQs
NiArOTQsNyBAQCBtb2R1bGVzID0gWwogICAgICAgICAgICAgIlJlc291cmNlVXRpbHMuanMiLAog
ICAgICAgICAgICAgIk5ldHdvcmtNYW5hZ2VyLmpzIiwKICAgICAgICAgICAgICJVSVNvdXJjZUNv
ZGUuanMiLAorICAgICAgICAgICAgIlVzZXJBZ2VudFN1cHBvcnQuanMiLAogICAgICAgICBdCiAg
ICAgfSwKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NldHRpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0
aW5ncy5qcwppbmRleCAyNmYyNTQzODliMDA3ZTljZTFiZWRlOTcyZDRhMWEyZGM3OTY1ZWFhLi41
MGM0MjNmMzhiNTA2YjczNjI0ZTY1MmFmZGYyMzA4NjcwNTk3ZmIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKQEAgLTUyLDcgKzUyLDggQEAg
dmFyIENhcGFiaWxpdGllcyA9IHsKICAgICBkZWJ1Z2dlckNhdXNlc1JlY29tcGlsYXRpb246IHRy
dWUsCiAgICAgcHJvZmlsZXJDYXVzZXNSZWNvbXBpbGF0aW9uOiB0cnVlLAogICAgIG5hdGl2ZUlu
c3RydW1lbnRhdGlvbkVuYWJsZWQ6IGZhbHNlLAotICAgIGhlYXBQcm9maWxlclByZXNlbnQ6IGZh
bHNlCisgICAgaGVhcFByb2ZpbGVyUHJlc2VudDogZmFsc2UsCisgICAgY2FuT3ZlcnJpZGVEZXZp
Y2VNZXRyaWNzOiBmYWxzZQogfQogCiAvKioKQEAgLTg2LDYgKzg3LDcgQEAgV2ViSW5zcGVjdG9y
LlNldHRpbmdzID0gZnVuY3Rpb24oKQogICAgIHRoaXMuY2FjaGVEaXNhYmxlZCA9IHRoaXMuY3Jl
YXRlU2V0dGluZygiY2FjaGVEaXNhYmxlZCIsIGZhbHNlKTsKICAgICB0aGlzLm92ZXJyaWRlVXNl
ckFnZW50ID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJvdmVycmlkZVVzZXJBZ2VudCIsICIiKTsKICAg
ICB0aGlzLnVzZXJBZ2VudCA9IHRoaXMuY3JlYXRlU2V0dGluZygidXNlckFnZW50IiwgIiIpOwor
ICAgIHRoaXMuZGV2aWNlTWV0cmljcyA9IHRoaXMuY3JlYXRlU2V0dGluZygiZGV2aWNlTWV0cmlj
cyIsICIiKTsKICAgICB0aGlzLnNob3dTY3JpcHRGb2xkZXJzID0gdGhpcy5jcmVhdGVTZXR0aW5n
KCJzaG93U2NyaXB0Rm9sZGVycyIsIHRydWUpOwogICAgIHRoaXMuZG9ja1RvUmlnaHQgPSB0aGlz
LmNyZWF0ZVNldHRpbmcoImRvY2tUb1JpZ2h0IiwgZmFsc2UpOwogICAgIHRoaXMuZW11bGF0ZVRv
dWNoRXZlbnRzID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJlbXVsYXRlVG91Y2hFdmVudHMiLCBmYWxz
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRp
bmdzU2NyZWVuLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5n
c1NjcmVlbi5qcwppbmRleCBmOTJmYjFlOWJkNmJlMTFjNWI4M2FmMzY0ZDI3NjFkZWI5ZDEzNWNl
Li4xMGQ4ZGEyNDI0YzFlNzMyYTY0M2Y4YzIxYzIzMWViODcxOWVjMjVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMKQEAg
LTcyLDcgKzcyLDkgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuID0gZnVuY3Rpb24oKQog
ICAgICAgICBdLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MudGV4dEVkaXRvckluZGVudCkpOwogCiAg
ICAgcCA9IHRoaXMuX2FwcGVuZFNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJVc2VyIEFn
ZW50IiksIHRydWUpOwotICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlVXNlckFjdGlvbkNv
bnRyb2woKSk7CisgICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVVc2VyQWdlbnRDb250cm9s
KCkpOworICAgIGlmIChDYXBhYmlsaXRpZXMuY2FuT3ZlcnJpZGVEZXZpY2VNZXRyaWNzKQorICAg
ICAgICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZURldmljZU1ldHJpY3NDb250cm9sKCkpOwog
ICAgIHAuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2hlY2tib3hTZXR0aW5nKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiRW11bGF0ZSB0b3VjaCBldmVudHMiKSwgV2ViSW5zcGVjdG9yLnNldHRpbmdz
LmVtdWxhdGVUb3VjaEV2ZW50cykpOwogCiAgICAgcCA9IHRoaXMuX2FwcGVuZFNlY3Rpb24oV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJTY3JpcHRzIiksIHRydWUpOwpAQCAtMTAxLDcgKzEwMyw3IEBA
IFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBleHBlcmltZW50cy5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIGV4cGVy
aW1lbnRzU2VjdGlvbi5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVFeHBlcmltZW50Q2hlY2tib3go
ZXhwZXJpbWVudHNbaV0pKTsKICAgICB9Ci0gICAgCisKICAgICB2YXIgdGFibGUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpOwogICAgIHRhYmxlLmNsYXNzTmFtZSA9ICJoZWxwLXRh
YmxlIjsKICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpOwpAQCAtMjYy
LDcgKzI2NCw3IEBAIFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHJldHVybiBwOwogICAgIH0sCiAKLSAgICBfY3JlYXRlVXNlckFjdGlvbkNvbnRyb2w6
IGZ1bmN0aW9uKCkKKyAgICBfY3JlYXRlVXNlckFnZW50Q29udHJvbDogZnVuY3Rpb24oKQogICAg
IHsKICAgICAgICAgdmFyIHVzZXJBZ2VudCA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy51c2VyQWdl
bnQuZ2V0KCk7CiAKQEAgLTI5Niw2ICsyOTgsMTEgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2Ny
ZWVuLnByb3RvdHlwZSA9IHsKICAgICBfY3JlYXRlVXNlckFnZW50U2VsZWN0Um93RWxlbWVudDog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIHVzZXJBZ2VudCA9IFdlYkluc3BlY3Rvci5z
ZXR0aW5ncy51c2VyQWdlbnQuZ2V0KCk7CisKKyAgICAgICAgLy8gV2hlbiBwcmVzZW50LCB0aGUg
dGhpcmQgZWxlbWVudCBsaXN0cyBkZXZpY2UgbWV0cmljcyBzZXBhcmF0ZWQgYnkgJ3gnOgorICAg
ICAgICAvLyAtIHNjcmVlbiB3aWR0aCwKKyAgICAgICAgLy8gLSBzY3JlZW4gaGVpZ2h0LAorICAg
ICAgICAvLyAtIGZvbnQgc2NhbGUgZmFjdG9yLgogICAgICAgICBjb25zdCB1c2VyQWdlbnRzID0g
WwogICAgICAgICAgICAgWyJJbnRlcm5ldCBFeHBsb3JlciA5IiwgIk1vemlsbGEvNS4wIChjb21w
YXRpYmxlOyBNU0lFIDkuMDsgV2luZG93cyBOVCA2LjE7IFRyaWRlbnQvNS4wKSJdLAogICAgICAg
ICAgICAgWyJJbnRlcm5ldCBFeHBsb3JlciA4IiwgIk1vemlsbGEvNC4wIChjb21wYXRpYmxlOyBN
U0lFIDguMDsgV2luZG93cyBOVCA2LjA7IFRyaWRlbnQvNC4wKSJdLApAQCAtMzA2LDE4ICszMTMs
MTggQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIFsiRmlyZWZveCA0IFx1MjAxNCBXaW5kb3dzIiwgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5U
IDYuMTsgcnY6Mi4wLjEpIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvNC4wLjEiXSwKICAgICAgICAg
ICAgIFsiRmlyZWZveCA0IFx1MjAxNCBNYWMiLCAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50
ZWwgTWFjIE9TIFggMTAuNjsgcnY6Mi4wLjEpIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvNC4wLjEi
XSwKIAotICAgICAgICAgICAgWyJpUGhvbmUgXHUyMDE0IGlPUyA1IiwgIk1vemlsbGEvNS4wIChp
UGhvbmU7IENQVSBpUGhvbmUgT1MgNV8wIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzUzNC40
NiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4xIE1vYmlsZS85QTMzNCBTYWZhcmkvNzUz
NC40OC4zIl0sCi0gICAgICAgICAgICBbImlQaG9uZSBcdTIwMTQgaU9TIDQiLCAiTW96aWxsYS81
LjAgKGlQaG9uZTsgVTsgQ1BVIGlQaG9uZSBPUyA0XzNfMiBsaWtlIE1hYyBPUyBYOyBlbi11cykg
QXBwbGVXZWJLaXQvNTMzLjE3LjkgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzUuMC4yIE1v
YmlsZS84SDcgU2FmYXJpLzY1MzMuMTguNSJdLAotICAgICAgICAgICAgWyJpUGFkIFx1MjAxNCBp
T1MgNSIsICJNb3ppbGxhLzUuMCAoaVBhZDsgQ1BVIE9TIDVfMCBsaWtlIE1hYyBPUyBYKSBBcHBs
ZVdlYktpdC81MzQuNDYgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzUuMSBNb2JpbGUvOUEz
MzQgU2FmYXJpLzc1MzQuNDguMyJdLAotICAgICAgICAgICAgWyJpUGFkIFx1MjAxNCBpT1MgNCIs
ICJNb3ppbGxhLzUuMCAoaVBhZDsgQ1BVIE9TIDRfM18yIGxpa2UgTWFjIE9TIFg7IGVuLXVzKSBB
cHBsZVdlYktpdC81MzMuMTcuOSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4wLjIgTW9i
aWxlLzhINyBTYWZhcmkvNjUzMy4xOC41Il0sCisgICAgICAgICAgICBbImlQaG9uZSBcdTIwMTQg
aU9TIDUiLCAiTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyA1XzAgbGlrZSBNYWMg
T1MgWCkgQXBwbGVXZWJLaXQvNTM0LjQ2IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjEg
TW9iaWxlLzlBMzM0IFNhZmFyaS83NTM0LjQ4LjMiLCAiNjQweDk2MHgxIl0sCisgICAgICAgICAg
ICBbImlQaG9uZSBcdTIwMTQgaU9TIDQiLCAiTW96aWxsYS81LjAgKGlQaG9uZTsgVTsgQ1BVIGlQ
aG9uZSBPUyA0XzNfMiBsaWtlIE1hYyBPUyBYOyBlbi11cykgQXBwbGVXZWJLaXQvNTMzLjE3Ljkg
KEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzUuMC4yIE1vYmlsZS84SDcgU2FmYXJpLzY1MzMu
MTguNSIsICI2NDB4OTYweDEiXSwKKyAgICAgICAgICAgIFsiaVBhZCBcdTIwMTQgaU9TIDUiLCAi
TW96aWxsYS81LjAgKGlQYWQ7IENQVSBPUyA1XzAgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQv
NTM0LjQ2IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjEgTW9iaWxlLzlBMzM0IFNhZmFy
aS83NTM0LjQ4LjMiLCAiMTAyNHg3Njh4MSJdLAorICAgICAgICAgICAgWyJpUGFkIFx1MjAxNCBp
T1MgNCIsICJNb3ppbGxhLzUuMCAoaVBhZDsgQ1BVIE9TIDRfM18yIGxpa2UgTWFjIE9TIFg7IGVu
LXVzKSBBcHBsZVdlYktpdC81MzMuMTcuOSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4w
LjIgTW9iaWxlLzhINyBTYWZhcmkvNjUzMy4xOC41IiwgIjEwMjR4NzY4eDEiXSwKIAotICAgICAg
ICAgICAgWyJBbmRyb2lkIDIuMyBcdTIwMTQgTmV4dXMgUyIsICJNb3ppbGxhLzUuMCAoTGludXg7
IFU7IEFuZHJvaWQgMi4zLjY7IGVuLXVzOyBOZXh1cyBTIEJ1aWxkL0dSSzM5RikgQXBwbGVXZWJL
aXQvNTMzLjEgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzQuMCBNb2JpbGUgU2FmYXJpLzUz
My4xIl0sCisgICAgICAgICAgICBbIkFuZHJvaWQgMi4zIFx1MjAxNCBOZXh1cyBTIiwgIk1vemls
bGEvNS4wIChMaW51eDsgVTsgQW5kcm9pZCAyLjMuNjsgZW4tdXM7IE5leHVzIFMgQnVpbGQvR1JL
MzlGKSBBcHBsZVdlYktpdC81MzMuMSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wIE1v
YmlsZSBTYWZhcmkvNTMzLjEiLCAiNDgweDgwMHgxLjEiXSwKIAotICAgICAgICAgICAgWyJCbGFj
a0JlcnJ5IFx1MjAxNCBQbGF5Qm9vayAxLjAiLCJNb3ppbGxhLzUuMCAoUGxheUJvb2s7IFU7IFJJ
TSBUYWJsZXQgT1MgMS4wLjA7IGVuLVVTKSBBcHBsZVdlYktpdC81MzQuMTErIChLSFRNTCwgbGlr
ZSBHZWNrbykgVmVyc2lvbi83LjEuMC43IFNhZmFyaS81MzQuMTErIl0sCi0gICAgICAgICAgICBb
IkJsYWNrQmVycnkgXHUyMDE0IFBsYXlCb29rIDIuMCIsICJNb3ppbGxhLzUuMCAoUGxheUJvb2s7
IFU7IFJJTSBUYWJsZXQgT1MgMi4wLjA7IGVuLVVTKSBBcHBsZVdlYktpdC81MzUuOCsgKEtIVE1M
LCBsaWtlIEdlY2tvKSBWZXJzaW9uLzcuMi4wLjAgU2FmYXJpLzUzNS44KyJdLAotICAgICAgICAg
ICAgWyJCbGFja0JlcnJ5IFx1MjAxNCA5OTAwIiwgIk1vemlsbGEvNS4wIChCbGFja0JlcnJ5OyBV
OyBCbGFja0JlcnJ5IDk5MDA7IGVuLVVTKSBBcHBsZVdlYktpdC81MzQuMTErIChLSFRNTCwgbGlr
ZSBHZWNrbykgVmVyc2lvbi83LjAuMC4xODcgTW9iaWxlIFNhZmFyaS81MzQuMTErIl0sCisgICAg
ICAgICAgICBbIkJsYWNrQmVycnkgXHUyMDE0IFBsYXlCb29rIDEuMCIsIk1vemlsbGEvNS4wIChQ
bGF5Qm9vazsgVTsgUklNIFRhYmxldCBPUyAxLjAuMDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzNC4x
MSsgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzcuMS4wLjcgU2FmYXJpLzUzNC4xMSsiLCAi
MTAyNHg2MDB4MSJdLAorICAgICAgICAgICAgWyJCbGFja0JlcnJ5IFx1MjAxNCBQbGF5Qm9vayAy
LjAiLCAiTW96aWxsYS81LjAgKFBsYXlCb29rOyBVOyBSSU0gVGFibGV0IE9TIDIuMC4wOyBlbi1V
UykgQXBwbGVXZWJLaXQvNTM1LjgrIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi83LjIuMC4w
IFNhZmFyaS81MzUuOCsiLCAiMTAyNHg2MDB4MSJdLAorICAgICAgICAgICAgWyJCbGFja0JlcnJ5
IFx1MjAxNCA5OTAwIiwgIk1vemlsbGEvNS4wIChCbGFja0JlcnJ5OyBVOyBCbGFja0JlcnJ5IDk5
MDA7IGVuLVVTKSBBcHBsZVdlYktpdC81MzQuMTErIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lv
bi83LjAuMC4xODcgTW9iaWxlIFNhZmFyaS81MzQuMTErIiwgIjY0MHg0ODB4MSJdLAogCi0gICAg
ICAgICAgICBbIk1lZUdvIFx1MjAxNCBOb2tpYSBOOSIsICJNb3ppbGxhLzUuMCAoTWVlR287IE5v
a2lhTjkpIEFwcGxlV2ViS2l0LzUzNC4xMyAoS0hUTUwsIGxpa2UgR2Vja28pIE5va2lhQnJvd3Nl
ci84LjUuMCBNb2JpbGUgU2FmYXJpLzUzNC4xMyJdLAorICAgICAgICAgICAgWyJNZWVHbyBcdTIw
MTQgTm9raWEgTjkiLCAiTW96aWxsYS81LjAgKE1lZUdvOyBOb2tpYU45KSBBcHBsZVdlYktpdC81
MzQuMTMgKEtIVE1MLCBsaWtlIEdlY2tvKSBOb2tpYUJyb3dzZXIvOC41LjAgTW9iaWxlIFNhZmFy
aS81MzQuMTMiLCAiNDgweDg1NHgxIl0sCiAKICAgICAgICAgICAgIFtXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIk90aGVyLi4uIiksICJPdGhlciJdCiAgICAgICAgIF07CkBAIC0zMzEsNyArMzM4LDkg
QEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFy
IHNlbGVjdGlvblJlc3RvcmVkID0gZmFsc2U7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dXNlckFnZW50cy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIGFnZW50ID0gdXNlckFn
ZW50c1tpXTsKLSAgICAgICAgICAgIHNlbGVjdEVsZW1lbnQuYWRkKG5ldyBPcHRpb24oYWdlbnRb
MF0sIGFnZW50WzFdKSk7CisgICAgICAgICAgICB2YXIgb3B0aW9uID0gbmV3IE9wdGlvbihhZ2Vu
dFswXSwgYWdlbnRbMV0pOworICAgICAgICAgICAgb3B0aW9uLl9tZXRyaWNzID0gYWdlbnRbMl0g
PyBhZ2VudFsyXSA6ICIiOworICAgICAgICAgICAgc2VsZWN0RWxlbWVudC5hZGQob3B0aW9uKTsK
ICAgICAgICAgICAgIGlmICh1c2VyQWdlbnQgPT09IGFnZW50WzFdKSB7CiAgICAgICAgICAgICAg
ICAgc2VsZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4ID0gaTsKICAgICAgICAgICAgICAgICBzZWxl
Y3Rpb25SZXN0b3JlZCA9IHRydWU7CkBAIC0zNDUsOSArMzU0LDEyIEBAIFdlYkluc3BlY3Rvci5T
ZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgc2VsZWN0RWxlbWVu
dC5zZWxlY3RlZEluZGV4ID0gdXNlckFnZW50cy5sZW5ndGggLSAxOwogICAgICAgICB9CiAKLSAg
ICAgICAgc2VsZWN0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBzZWxlY3Rpb25D
aGFuZ2VkLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICAgICAgc2VsZWN0RWxlbWVudC5hZGRFdmVu
dExpc3RlbmVyKCJjaGFuZ2UiLCBzZWxlY3Rpb25DaGFuZ2VkLmJpbmQodGhpcywgdHJ1ZSksIGZh
bHNlKTsKIAotICAgICAgICBmdW5jdGlvbiBzZWxlY3Rpb25DaGFuZ2VkKCkKKyAgICAgICAgLyoq
CisgICAgICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IGlzVXNlckdlc3R1cmUKKyAgICAgICAgICov
CisgICAgICAgIGZ1bmN0aW9uIHNlbGVjdGlvbkNoYW5nZWQoaXNVc2VyR2VzdHVyZSkKICAgICAg
ICAgewogICAgICAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0RWxlbWVudC5vcHRpb25zW3NlbGVj
dEVsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgICAgICAgICAgICBpZiAodmFsdWUgIT09
ICJPdGhlciIpIHsKQEAgLTM1OSw2ICszNzEsMTEgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2Ny
ZWVuLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBvdGhlclVzZXJBZ2VudEVsZW1lbnQu
ZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBvdGhlclVzZXJBZ2VudEVsZW1lbnQu
Zm9jdXMoKTsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlzVXNlckdlc3R1cmUg
JiYgQ2FwYWJpbGl0aWVzLmNhbk92ZXJyaWRlRGV2aWNlTWV0cmljcykgeworICAgICAgICAgICAg
ICAgIHZhciBtZXRyaWNzID0gc2VsZWN0RWxlbWVudC5vcHRpb25zW3NlbGVjdEVsZW1lbnQuc2Vs
ZWN0ZWRJbmRleF0uX21ldHJpY3M7CisgICAgICAgICAgICAgICAgdGhpcy5fc2V0RGV2aWNlTWV0
cmljc092ZXJyaWRlKFdlYkluc3BlY3Rvci5Vc2VyQWdlbnRTdXBwb3J0LkRldmljZU1ldHJpY3Mu
cGFyc2VGcm9tU2V0dGluZ3MobWV0cmljcyksIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCiAgICAgICAgIGZpZWxkc2V0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJk
YmxjbGljayIsIHRleHREb3VibGVDbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKQEAgLTM4Miw2
ICszOTksMTIxIEBAIFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUgPSB7CiAg
ICAgX3Nob3dQYWludFJlY3RzQ2hhbmdlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgUGFn
ZUFnZW50LnNldFNob3dQYWludFJlY3RzKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5zaG93UGFpbnRS
ZWN0cy5nZXQoKSk7CisgICAgfSwKKworICAgIF9jcmVhdGVEZXZpY2VNZXRyaWNzQ29udHJvbDog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgY29uc3QgbWV0cmljc1NldHRpbmcgPSBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MuZGV2aWNlTWV0cmljcy5nZXQoKTsKKyAgICAgICAgdmFyIG1ldHJpY3Mg
PSBXZWJJbnNwZWN0b3IuVXNlckFnZW50U3VwcG9ydC5EZXZpY2VNZXRyaWNzLnBhcnNlRnJvbVNl
dHRpbmdzKG1ldHJpY3NTZXR0aW5nKTsKKworICAgICAgICBjb25zdCBwID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgicCIpOworICAgICAgICBjb25zdCBsYWJlbEVsZW1lbnQgPSBwLmNyZWF0ZUNo
aWxkKCJsYWJlbCIpOworICAgICAgICBjb25zdCBjaGVja2JveEVsZW1lbnQgPSBsYWJlbEVsZW1l
bnQuY3JlYXRlQ2hpbGQoImlucHV0Iik7CisgICAgICAgIGNoZWNrYm94RWxlbWVudC5pZCA9ICJt
ZXRyaWNzLW92ZXJyaWRlLWNoZWNrYm94IjsKKyAgICAgICAgY2hlY2tib3hFbGVtZW50LnR5cGUg
PSAiY2hlY2tib3giOworICAgICAgICBjaGVja2JveEVsZW1lbnQuY2hlY2tlZCA9ICFtZXRyaWNz
IHx8IChtZXRyaWNzLndpZHRoICYmIG1ldHJpY3MuaGVpZ2h0ICYmIG1ldHJpY3MuZm9udFNjYWxl
RmFjdG9yKTsKKyAgICAgICAgY2hlY2tib3hFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgdGhpcy5fb25NZXRyaWNzQ2hlY2tib3hDbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKKyAg
ICAgICAgdGhpcy5fbWV0cmljc0NoZWNrYm94RWxlbWVudCA9IGNoZWNrYm94RWxlbWVudDsKKyAg
ICAgICAgbGFiZWxFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiT3ZlcnJpZGUgZGV2aWNlIG1ldHJpY3MiKSkpOworCisgICAg
ICAgIGNvbnN0IG1ldHJpY3NTZWN0aW9uRWxlbWVudCA9IHRoaXMuX2NyZWF0ZURldmljZU1ldHJp
Y3NFbGVtZW50KG1ldHJpY3MpOworICAgICAgICBwLmFwcGVuZENoaWxkKG1ldHJpY3NTZWN0aW9u
RWxlbWVudCk7CisgICAgICAgIHRoaXMuX21ldHJpY3NTZWN0aW9uRWxlbWVudCA9IG1ldHJpY3NT
ZWN0aW9uRWxlbWVudDsKKworICAgICAgICB0aGlzLl9zZXREZXZpY2VNZXRyaWNzT3ZlcnJpZGUo
bWV0cmljcywgZmFsc2UsIHRydWUpOworCisgICAgICAgIHJldHVybiBwOworICAgIH0sCisKKyAg
ICBfb25NZXRyaWNzQ2hlY2tib3hDbGlja2VkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBp
ZiAodGhpcy5fbWV0cmljc0NoZWNrYm94RWxlbWVudC5jaGVja2VkKSB7CisgICAgICAgICAgICB0
aGlzLl9tZXRyaWNzU2VjdGlvbkVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7Cisg
ICAgICAgICAgICB2YXIgbWV0cmljcyA9IFdlYkluc3BlY3Rvci5Vc2VyQWdlbnRTdXBwb3J0LkRl
dmljZU1ldHJpY3MucGFyc2VGcm9tVXNlcklucHV0KHRoaXMuX3dpZHRoT3ZlcnJpZGVFbGVtZW50
LnZhbHVlLCB0aGlzLl9oZWlnaHRPdmVycmlkZUVsZW1lbnQudmFsdWUsIHRoaXMuX2ZvbnRTY2Fs
ZUZhY3Rvck92ZXJyaWRlRWxlbWVudC52YWx1ZSk7CisgICAgICAgICAgICBpZiAobWV0cmljcyAm
JiBtZXRyaWNzLmlzVmFsaWQgJiYgbWV0cmljcy53aWR0aCAmJiBtZXRyaWNzLmhlaWdodCkKKyAg
ICAgICAgICAgICAgICB0aGlzLl9zZXREZXZpY2VNZXRyaWNzT3ZlcnJpZGUobWV0cmljcywgZmFs
c2UsIGZhbHNlKTsKKyAgICAgICAgICAgIGlmICghdGhpcy5fd2lkdGhPdmVycmlkZUVsZW1lbnQu
dmFsdWUpCisgICAgICAgICAgICAgICAgdGhpcy5fd2lkdGhPdmVycmlkZUVsZW1lbnQuZm9jdXMo
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuX21ldHJpY3NTZWN0aW9uRWxl
bWVudC5hZGRTdHlsZUNsYXNzKCJoaWRkZW4iKTsKKyAgICAgICAgICAgIGlmIChXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MuZGV2aWNlTWV0cmljcy5nZXQoKSkKKyAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MuZGV2aWNlTWV0cmljcy5zZXQoIiIpOworICAgICAgICB9CisgICAgfSwK
KworICAgIF9hcHBseURldmljZU1ldHJpY3NVc2VySW5wdXQ6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX3NldERldmljZU1ldHJpY3NPdmVycmlkZShXZWJJbnNwZWN0b3IuVXNlckFn
ZW50U3VwcG9ydC5EZXZpY2VNZXRyaWNzLnBhcnNlRnJvbVVzZXJJbnB1dCh0aGlzLl93aWR0aE92
ZXJyaWRlRWxlbWVudC52YWx1ZS50cmltKCksIHRoaXMuX2hlaWdodE92ZXJyaWRlRWxlbWVudC52
YWx1ZS50cmltKCksIHRoaXMuX2ZvbnRTY2FsZUZhY3Rvck92ZXJyaWRlRWxlbWVudC52YWx1ZS50
cmltKCkpLCB0cnVlLCBmYWxzZSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7
P1dlYkluc3BlY3Rvci5Vc2VyQWdlbnRTdXBwb3J0LkRldmljZU1ldHJpY3N9IG1ldHJpY3MKKyAg
ICAgKiBAcGFyYW0ge2Jvb2xlYW59IHVzZXJJbnB1dE1vZGlmaWVkCisgICAgICovCisgICAgX3Nl
dERldmljZU1ldHJpY3NPdmVycmlkZTogZnVuY3Rpb24obWV0cmljcywgdXNlcklucHV0TW9kaWZp
ZWQsIHVwZGF0ZUNoZWNrYm94KQorICAgIHsKKyAgICAgICAgY29uc3QgaW52YWxpZEJhY2tncm91
bmRWYWx1ZSA9ICJyZ2IoMjIwLCAxMzAsIDEzMCkiOworCisgICAgICAgIHRoaXMuX3dpZHRoT3Zl
cnJpZGVFbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSBtZXRyaWNzICYmIG1ldHJpY3MuaXNXaWR0
aFZhbGlkKCkgPyAiIiA6IGludmFsaWRCYWNrZ3JvdW5kVmFsdWU7CisgICAgICAgIHRoaXMuX2hl
aWdodE92ZXJyaWRlRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kID0gbWV0cmljcyAmJiBtZXRyaWNz
LmlzSGVpZ2h0VmFsaWQoKSA/ICIiIDogaW52YWxpZEJhY2tncm91bmRWYWx1ZTsKKyAgICAgICAg
dGhpcy5fZm9udFNjYWxlRmFjdG9yT3ZlcnJpZGVFbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSBt
ZXRyaWNzICYmIG1ldHJpY3MuaXNGb250U2NhbGVGYWN0b3JWYWxpZCgpID8gIiIgOiBpbnZhbGlk
QmFja2dyb3VuZFZhbHVlOworCisgICAgICAgIGlmICghbWV0cmljcykKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBpZiAoIXVzZXJJbnB1dE1vZGlmaWVkKSB7CisgICAgICAgICAgICB0
aGlzLl93aWR0aE92ZXJyaWRlRWxlbWVudC52YWx1ZSA9IG1ldHJpY3Mud2lkdGhUb0lucHV0KCk7
CisgICAgICAgICAgICB0aGlzLl9oZWlnaHRPdmVycmlkZUVsZW1lbnQudmFsdWUgPSBtZXRyaWNz
LmhlaWdodFRvSW5wdXQoKTsKKyAgICAgICAgICAgIHRoaXMuX2ZvbnRTY2FsZUZhY3Rvck92ZXJy
aWRlRWxlbWVudC52YWx1ZSA9IG1ldHJpY3MuZm9udFNjYWxlRmFjdG9yVG9JbnB1dCgpOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKG1ldHJpY3MuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICB2
YXIgdmFsdWUgPSBtZXRyaWNzLnRvU2V0dGluZ3MoKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSAh
PT0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmRldmljZU1ldHJpY3MuZ2V0KCkpCisgICAgICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmRldmljZU1ldHJpY3Muc2V0KHZhbHVlKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmICh0aGlzLl9tZXRyaWNzQ2hlY2tib3hFbGVtZW50ICYmIHVw
ZGF0ZUNoZWNrYm94KSB7CisgICAgICAgICAgICB0aGlzLl9tZXRyaWNzQ2hlY2tib3hFbGVtZW50
LmNoZWNrZWQgPSAhIW1ldHJpY3MudG9TZXR0aW5ncygpOworICAgICAgICAgICAgdGhpcy5fb25N
ZXRyaWNzQ2hlY2tib3hDbGlja2VkKCk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVXNlckFnZW50U3VwcG9ydC5EZXZpY2VNZXRyaWNz
fSBtZXRyaWNzCisgICAgICovCisgICAgX2NyZWF0ZURldmljZU1ldHJpY3NFbGVtZW50OiBmdW5j
dGlvbihtZXRyaWNzKQorICAgIHsKKyAgICAgICAgdmFyIGZpZWxkc2V0RWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImZpZWxkc2V0Iik7CisgICAgICAgIGZpZWxkc2V0RWxlbWVudC5p
ZCA9ICJtZXRyaWNzLW92ZXJyaWRlLXNlY3Rpb24iOworCisgICAgICAgIGZ1bmN0aW9uIGNyZWF0
ZUlucHV0KHBhcmVudEVsZW1lbnQsIGlkLCBkZWZhdWx0VGV4dCkKKyAgICAgICAgeworICAgICAg
ICAgICAgdmFyIGVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LmNyZWF0ZUNoaWxkKCJpbnB1dCIpOwor
ICAgICAgICAgICAgZWxlbWVudC5pZCA9IGlkOworICAgICAgICAgICAgZWxlbWVudC5tYXhMZW5n
dGggPSA2OworICAgICAgICAgICAgZWxlbWVudC5zdHlsZS53aWR0aCA9ICI0OHB4IjsKKyAgICAg
ICAgICAgIGVsZW1lbnQudmFsdWUgPSBkZWZhdWx0VGV4dDsKKyAgICAgICAgICAgIGVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIHRoaXMuX2FwcGx5RGV2aWNlTWV0cmljc1VzZXJJbnB1
dC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudDsKKyAgICAg
ICAgfQorCisgICAgICAgIHZhciB0YWJsZUVsZW1lbnQgPSBmaWVsZHNldEVsZW1lbnQuY3JlYXRl
Q2hpbGQoInRhYmxlIik7CisKKyAgICAgICAgdmFyIHJvd0VsZW1lbnQgPSB0YWJsZUVsZW1lbnQu
Y3JlYXRlQ2hpbGQoInRyIik7CisgICAgICAgIHZhciBjZWxsRWxlbWVudCA9IHJvd0VsZW1lbnQu
Y3JlYXRlQ2hpbGQoInRkIik7CisgICAgICAgIGNlbGxFbGVtZW50LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2NyZWVuIHJlc29sdXRp
b246IikpKTsKKyAgICAgICAgY2VsbEVsZW1lbnQgPSByb3dFbGVtZW50LmNyZWF0ZUNoaWxkKCJ0
ZCIpOworICAgICAgICB0aGlzLl93aWR0aE92ZXJyaWRlRWxlbWVudCA9IGNyZWF0ZUlucHV0LmNh
bGwodGhpcywgY2VsbEVsZW1lbnQsICJtZXRyaWNzLW92ZXJyaWRlLXdpZHRoIiwgU3RyaW5nKG1l
dHJpY3Mud2lkdGggfHwgc2NyZWVuLndpZHRoKSk7CisgICAgICAgIGNlbGxFbGVtZW50LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgXHUwMEQ3ICIpKTsKKyAgICAgICAgdGhp
cy5faGVpZ2h0T3ZlcnJpZGVFbGVtZW50ID0gY3JlYXRlSW5wdXQuY2FsbCh0aGlzLCBjZWxsRWxl
bWVudCwgIm1ldHJpY3Mtb3ZlcnJpZGUtaGVpZ2h0IiwgU3RyaW5nKG1ldHJpY3MuaGVpZ2h0IHx8
IHNjcmVlbi5oZWlnaHQpKTsKKworICAgICAgICByb3dFbGVtZW50ID0gdGFibGVFbGVtZW50LmNy
ZWF0ZUNoaWxkKCJ0ciIpOworICAgICAgICBjZWxsRWxlbWVudCA9IHJvd0VsZW1lbnQuY3JlYXRl
Q2hpbGQoInRkIik7CisgICAgICAgIGNlbGxFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRm9udCBzY2FsZSBmYWN0b3I6Iikp
KTsKKyAgICAgICAgY2VsbEVsZW1lbnQgPSByb3dFbGVtZW50LmNyZWF0ZUNoaWxkKCJ0ZCIpOwor
ICAgICAgICB0aGlzLl9mb250U2NhbGVGYWN0b3JPdmVycmlkZUVsZW1lbnQgPSBjcmVhdGVJbnB1
dC5jYWxsKHRoaXMsIGNlbGxFbGVtZW50LCAibWV0cmljcy1vdmVycmlkZS1mb250LXNjYWxlIiwg
U3RyaW5nKG1ldHJpY3MuZm9udFNjYWxlRmFjdG9yIHx8IDEpKTsKKyAgICAgICAgcmV0dXJuIGZp
ZWxkc2V0RWxlbWVudDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvV2ViS2l0LnFyYwppbmRleCBlNzY4YjBiNzY5YjJkNDlhZDBiYzBlNmI0ZDYzODBk
NTE4N2IzNDk2Li44YWFmNzdhNWMyYzk3YjIxOTJiZGU0YzFkYzdkMmY2MzkwZDk2ZDM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCkBAIC0xNjEs
NiArMTYxLDcgQEAKICAgICA8ZmlsZT50cmVlb3V0bGluZS5qczwvZmlsZT4KICAgICA8ZmlsZT5V
SVNvdXJjZUNvZGUuanM8L2ZpbGU+CiAgICAgPGZpbGU+VUlVdGlscy5qczwvZmlsZT4KKyAgICA8
ZmlsZT5Vc2VyQWdlbnRTdXBwb3J0LmpzPC9maWxlPgogICAgIDxmaWxlPlVzZXJNZXRyaWNzLmpz
PC9maWxlPgogICAgIDxmaWxlPnV0aWxpdGllcy5qczwvZmlsZT4KICAgICA8ZmlsZT5WaWV3Lmpz
PC9maWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9o
ZWxwU2NyZWVuLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNj
cmVlbi5jc3MKaW5kZXggNzgxNjY5NjgwOGI5ODU3M2Q4MjQ3ZjViM2JlNmZkOTU0NDhjZjA4OS4u
ZWMwY2JlZjQ0ZjQ0YzU5OTEyN2RmNTVhMjExNTNmY2U1NmFmNmE1NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBTY3JlZW4uY3NzCkBAIC0xMjEsMTMg
KzEyMSwxMyBAQCBib2R5Om5vdCgucGxhdGZvcm0tbWFjKSAuaGVscC1jbG9zZS1idXR0b24gewog
ICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IGF1dG87CiB9CiAKLS5oZWxwLXRhYmxlIHRoIHsKKy5o
ZWxwLXRhYmxlID4gdHIgPiB0aCB7CiAgICAgcGFkZGluZy10b3A6IDZweDsKICAgICB0ZXh0LWFs
aWduOiBsZWZ0OwogICAgIGNvbG9yOiB5ZWxsb3c7CiB9CiAKLS5oZWxwLXRhYmxlIHRkIHsKKy5o
ZWxwLXRhYmxlID4gdHIgPiB0ZCB7CiAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICB2ZXJ0
aWNhbC1hbGlnbjogdG9wOwogICAgIHdpZHRoOiA1MCU7CkBAIC0xOTYsNiArMTk2LDEwIEBAIGJv
ZHkucGxhdGZvcm0tbWFjIC5oZWxwLWtleSB7CiAgICAgY29sb3I6IHJnYigxNTAsIDE1MCwgMTUw
KTsKIH0KIAorI3Jlc29sdXRpb24tb3ZlcnJpZGUtc2VjdGlvbiB7CisgICAgbWFyZ2luLWxlZnQ6
IDEzcHg7Cit9CisKIC5oZWxwLWNvbnRlbnQgaW5wdXRbdHlwZT1jaGVja2JveF0gewogICAgIGhl
aWdodDogMTNweDsKICAgICB3aWR0aDogMTNweDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwppbmRleCA2MjhhOTdjMjhjMmFkN2FmMDhmZTQ0
Njk2MTllOTE4ZGI0NDg0YzFiLi4yNjM1NmVkZWQyNzdhYzcyZjI4NWMyYzNhNzI3NDFhM2ZkNWE3
YzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuY3NzCkBAIC0zOSw2ICszOSwxMCBAQCBpbnB1dFt0eXBlPSJzZWFyY2giXTpmb2N1cywgaW5w
dXRbdHlwZT0idGV4dCJdOmZvY3VzIHsKICAgICBib3R0b206IDA7CiB9CiAKKy5oaWRkZW4gewor
ICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKICN0b29sYmFyIHsKICAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CiAgICAgdG9wOiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggMjA5MjJkOWRkOTY4YTA5MWVhNzk0YTZlMGM3NTBmMWQy
ZGE3ZDliYi4uODJmNmEzNTE3Zjg1MDAzZDlkYzY4Mjg3ZDZhN2RmMTM4NjY0Zjc2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBA
IC03Myw2ICs3Myw3IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iUmVzb3VyY2VDYXRlZ29yeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGltZWxpbmVNYW5hZ2VyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJUaW1lbGluZU1vZGVsLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJVc2VyQWdl
bnRTdXBwb3J0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJEYXRhYmFzZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iRE9NU3RvcmFnZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRE9NU3RvcmFnZUl0ZW1zVmlldy5qcyI+PC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmlu
ZGV4IDMxMmQwOWYwNDhlZDdhMzYzODliZTIyZTVhMDAyODZkOTNiNjFkOTAuLjI3NTEwYWQ2ZGZk
ZWFmMDE0Njc0M2VjNjEzY2Q5YjY1MzA2MDU2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0zNzgsNyArMzc4LDggQEAgV2ViSW5z
cGVjdG9yLmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkKICAgICBEZWJ1Z2dlckFnZW50LnN1cHBv
cnRzTmF0aXZlQnJlYWtwb2ludHMoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5i
aW5kKFdlYkluc3BlY3RvciwgIm5hdGl2ZUluc3RydW1lbnRhdGlvbkVuYWJsZWQiLCBudWxsKSk7
CiAgICAgUHJvZmlsZXJBZ2VudC5jYXVzZXNSZWNvbXBpbGF0aW9uKFdlYkluc3BlY3Rvci5faW5p
dGlhbGl6ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJwcm9maWxlckNhdXNlc1JlY29t
cGlsYXRpb24iLCBudWxsKSk7CiAgICAgUHJvZmlsZXJBZ2VudC5pc1NhbXBsaW5nKFdlYkluc3Bl
Y3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJzYW1wbGluZ0NQ
VVByb2ZpbGVyIiwgbnVsbCkpOwotICAgIFByb2ZpbGVyQWdlbnQuaGFzSGVhcFByb2ZpbGVyKFdl
Ykluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3IsICJoZWFw
UHJvZmlsZXJQcmVzZW50IiwgV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVXaXRoQ2FwYWJpbGl0
aWVzLmJpbmQoV2ViSW5zcGVjdG9yKSkpOworICAgIFByb2ZpbGVyQWdlbnQuaGFzSGVhcFByb2Zp
bGVyKFdlYkluc3BlY3Rvci5faW5pdGlhbGl6ZUNhcGFiaWxpdHkuYmluZChXZWJJbnNwZWN0b3Is
ICJoZWFwUHJvZmlsZXJQcmVzZW50IiwgbnVsbCkpOworICAgIFBhZ2VBZ2VudC5jYW5PdmVycmlk
ZURldmljZU1ldHJpY3MoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdl
Ykluc3BlY3RvciwgImNhbk92ZXJyaWRlRGV2aWNlTWV0cmljcyIsIFdlYkluc3BlY3Rvci5fZG9M
b2FkZWREb25lV2l0aENhcGFiaWxpdGllcy5iaW5kKFdlYkluc3BlY3RvcikpKTsKIH0KIAogV2Vi
SW5zcGVjdG9yLl9kb0xvYWRlZERvbmVXaXRoQ2FwYWJpbGl0aWVzID0gZnVuY3Rpb24oKQpAQCAt
NDEyLDYgKzQxMyw3IEBAIFdlYkluc3BlY3Rvci5fZG9Mb2FkZWREb25lV2l0aENhcGFiaWxpdGll
cyA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuY3NzTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLkNT
U1N0eWxlTW9kZWwoKTsKICAgICB0aGlzLnRpbWVsaW5lTWFuYWdlciA9IG5ldyBXZWJJbnNwZWN0
b3IuVGltZWxpbmVNYW5hZ2VyKCk7CisgICAgdGhpcy51c2VyQWdlbnRTdXBwb3J0ID0gbmV3IFdl
Ykluc3BlY3Rvci5Vc2VyQWdlbnRTdXBwb3J0KCk7CiAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdp
c3RlckRhdGFiYXNlRGlzcGF0Y2hlcihuZXcgV2ViSW5zcGVjdG9yLkRhdGFiYXNlRGlzcGF0Y2hl
cigpKTsKICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRE9NU3RvcmFnZURpc3BhdGNoZXIo
bmV3IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlRGlzcGF0Y2hlcigpKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135092</attachid>
            <date>2012-04-02 07:21:23 -0700</date>
            <delta_ts>2012-04-02 07:27:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82891-20120402182121.patch</filename>
            <type>text/plain</type>
            <size>31294</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJiMmY2M2QxMzQyMWNj
MjEyNzYyOTRjNTMxZGEwNmViN2Q5MjA2ZC4uMTE5MWViMjYxZjU4N2QxNzM0YzI1NTQ1M2Y0NWMw
NjNlNDM5NmIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEyLTA0LTAyICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSW1wbGVtZW50IGZyb250ZW5kIGZvciBkZXZpY2UgbWV0cmljcyBlbXVsYXRpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyODkxCisKKyAg
ICAgICAgVGhpcyBjaGFuZ2UgaW1wbGVtZW50cyB0aGUgYmFja2VuZC1iYXNlZCBkZXZpY2UgbWV0
cmljcyBlbXVsYXRpb24gY2FwYWJpbGl0eSBkaXNjb3ZlcnksCisgICAgICAgIFVJIChlbmFibGVt
ZW50IGNoZWNrYm94ICsgaW5wdXQgY29udHJvbHMpLCBhbmQgYSBwZXJzaXN0ZW5jZSBzZXR0aW5n
CisgICAgICAgIGZvciB0aGUgdXNlci1zcGVjaWZpZWQgZGV2aWNlIG1ldHJpY3MgKHNjcmVlbiB3
aWR0aC9oZWlnaHQgYW5kIGFuIGF1eGlsaWFyeSBmb250IHNjYWxlIGZhY3RvcikuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9jb21w
aWxlLWZyb250LWVuZC5weToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdz
LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4pOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZS5fY3JlYXRlVXNlckFnZW50U2VsZWN0Um93RWxl
bWVudC5nZXQgY29uc3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnBy
b3RvdHlwZS5fc2hvd1BhaW50UmVjdHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
ZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUuc2V0IF9hcHBseURldmljZU1ldHJpY3NVc2VySW5wdXQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZS5fc2V0RGV2
aWNlTWV0cmljc092ZXJyaWRlLnNldCBpZik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGlu
Z3NTY3JlZW4ucHJvdG90eXBlLl9jcmVhdGVEZXZpY2VNZXRyaWNzRWxlbWVudC5jcmVhdGVJbnB1
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlLl9jcmVh
dGVEZXZpY2VNZXRyaWNzRWxlbWVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9V
c2VyQWdlbnRTdXBwb3J0LmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Vc2VyQWdl
bnRTdXBwb3J0LkRldmljZU1ldHJpY3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVzZXJBZ2Vu
dFN1cHBvcnQuRGV2aWNlTWV0cmljcy5wYXJzZUZyb21TZXR0aW5ncyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVXNlckFnZW50U3VwcG9ydC5EZXZpY2VNZXRyaWNzLnBhcnNlRnJvbVVzZXJJbnB1
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVXNlckFnZW50U3VwcG9ydC5EZXZpY2VNZXRyaWNz
LnByb3RvdHlwZS5pc1ZhbGlkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Vc2VyQWdlbnRTdXBw
b3J0LkRldmljZU1ldHJpY3MucHJvdG90eXBlLmlzV2lkdGhWYWxpZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVXNlckFnZW50U3VwcG9ydC5EZXZpY2VNZXRyaWNzLnByb3RvdHlwZS5pc0hlaWdo
dFZhbGlkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Vc2VyQWdlbnRTdXBwb3J0LkRldmljZU1l
dHJpY3MucHJvdG90eXBlLmlzRm9udFNjYWxlRmFjdG9yVmFsaWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlVzZXJBZ2VudFN1cHBvcnQuRGV2aWNlTWV0cmljcy5wcm90b3R5cGUudG9TZXR0aW5n
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVXNlckFnZW50U3VwcG9ydC5EZXZpY2VNZXRyaWNz
LnByb3RvdHlwZS53aWR0aFRvSW5wdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVzZXJBZ2Vu
dFN1cHBvcnQuRGV2aWNlTWV0cmljcy5wcm90b3R5cGUuaGVpZ2h0VG9JbnB1dCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVXNlckFnZW50U3VwcG9ydC5EZXZpY2VNZXRyaWNzLnByb3RvdHlwZS5m
b250U2NhbGVGYWN0b3JUb0lucHV0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dl
YktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzczoK
KyAgICAgICAgKC5oZWxwLXRhYmxlID4gdHIgPiB0aCk6CisgICAgICAgICguaGVscC10YWJsZSA+
IHRyID4gdGQpOgorICAgICAgICAoI3Jlc29sdXRpb24tb3ZlcnJpZGUtc2VjdGlvbik6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgorICAgICAgICAoLmhpZGRl
bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5kb0xvYWRlZERvbmUpOgorCisyMDEyLTA0LTAyICBBbGV4YW5kZXIgUGF2bG92ICA8YXBh
dmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogSW1wbGVtZW50IGZy
b250ZW5kIGZvciBkZXZpY2UgbWV0cmljcyBlbXVsYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyODkxCisKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qczoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5k
LnB5OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanM6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TZXR0aW5nc1NjcmVlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3NT
Y3JlZW4ucHJvdG90eXBlLl9jcmVhdGVVc2VyQWdlbnRTZWxlY3RSb3dFbGVtZW50LmdldCBjb25z
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlLl9zaG93
UGFpbnRSZWN0c0NoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVu
LnByb3RvdHlwZS5zZXQgX2FwcGx5RGV2aWNlTWV0cmljc1VzZXJJbnB1dCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlLl9zZXREZXZpY2VNZXRyaWNzT3Zl
cnJpZGUuc2V0IGlmKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5wcm90
b3R5cGUuX2NyZWF0ZURldmljZU1ldHJpY3NFbGVtZW50LmNyZWF0ZUlucHV0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5wcm90b3R5cGUuX2NyZWF0ZURldmljZU1ldHJp
Y3NFbGVtZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzczoKKyAgICAgICAgKC5o
ZWxwLXRhYmxlID4gdHIgPiB0aCk6CisgICAgICAgICguaGVscC10YWJsZSA+IHRyID4gdGQpOgor
ICAgICAgICAoI3Jlc29sdXRpb24tb3ZlcnJpZGUtc2VjdGlvbik6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgorICAgICAgICAoLmhpZGRlbik6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kb0xvYWRl
ZERvbmUpOgorCiAyMDEyLTAzLTMxICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW1wbGVtZW50IGJhY2tlbmQgZm9yIGRl
dmljZSBtZXRyaWNzIGVtdWxhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlz
aC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJv
ai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDdhYzAxNGQ2OTgwZDViYmE0ODM5YjFiNDM1NzRj
ZGRjZTU0MGU1MGYuLjQzOGQwOGFlYjVlNTMwMzI1NDVlN2Q5YzQ0OTEwNGU5MjliMzU2NWIgMTAw
NjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMjQ2CnpjbVhAfmxqWHU2bUpOfUtvKGNAYjQ5Tl9N
M15AI2AzPD9ac0t2cHRDMn0zP1o1clkrajU8QElkJW9kMjE3fkZ0agp6Y3xhTVE+TChaYyglbEBH
eEk9ayp1Pnp3SWUrdG1OR0tOZmBYJmBmUkMrQ3omZitaeDtCIUpRLUsrQXYlQ3AkM2YKelpzdSVk
bEpaVWszZyFXSTYjP21EcHVJVF5yOWVmUVU+QmdlRGl+LSFORUpAP0FYaU9aSkQrRT47UVducTBj
LSN7CkF2O1k3QQoKZGVsdGEgMjQKZ2NtY2NjaHZtPnVtSk59S28zQUhzUH5JJXIjdzR8UT03UX5X
MGlwe0dXJmkqSAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5MzRlY2U4YjE0NGViMDg3OWI0MDI5NzFi
ODFhOTZjOWZiYTAyMmEyLi4wYTAyOTQ0NjE1Y2Q0ZjQ0MTcwNTE0YjAxNDdlYjRlZGI5ODk2ZWNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC02Mzk0LDYgKzYzOTQsNyBAQAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvdHJlZW91dGxpbmUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL1VJVXRpbHMuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVXNl
ckFnZW50U3VwcG9ydC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Vc2Vy
TWV0cmljcy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcycsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDllM2EwMjg5MTky
MjBhYmEyNDJiMTBiMzg0MTU3YWExYTBiNDYwNDguLjVhMjk4ZWMyZmM2OGM1ZjAxMmU1YzlkN2M5
NDk1ZTUwNzQ1ZWJhMDUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC03NDI2OSw2ICs3NDI2OSwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxVc2Vy
QWdlbnRTdXBwb3J0LmpzIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJl
bGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxVc2VyTWV0cmljcy5qcyIKIAkJCQkJ
PgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21w
aWxlLWZyb250LWVuZC5weSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250
LWVuZC5weQppbmRleCBlYTkzN2ZhNWRiNDQ5NjU4ODYzZmU5OTIzNmI2ZWNmMmYwODU3ODk0Li4x
MTgwNDhmNWQzN2MxODdmNzMwYmY0MDJlZDZlM2U1YzQyZTRkNTEyIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5CkBAIC05NCw2ICs5NCw3IEBAIG1v
ZHVsZXMgPSBbCiAgICAgICAgICAgICAiUmVzb3VyY2VVdGlscy5qcyIsCiAgICAgICAgICAgICAi
TmV0d29ya01hbmFnZXIuanMiLAogICAgICAgICAgICAgIlVJU291cmNlQ29kZS5qcyIsCisgICAg
ICAgICAgICAiVXNlckFnZW50U3VwcG9ydC5qcyIsCiAgICAgICAgIF0KICAgICB9LAogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3Mu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4
IDI2ZjI1NDM4OWIwMDdlOWNlMWJlZGU5NzJkNGExYTJkYzc5NjVlYWEuLjUwYzQyM2YzOGI1MDZi
NzM2MjRlNjUyYWZkZjIzMDg2NzA1OTdmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwpAQCAtNTIsNyArNTIsOCBAQCB2YXIgQ2FwYWJpbGl0
aWVzID0gewogICAgIGRlYnVnZ2VyQ2F1c2VzUmVjb21waWxhdGlvbjogdHJ1ZSwKICAgICBwcm9m
aWxlckNhdXNlc1JlY29tcGlsYXRpb246IHRydWUsCiAgICAgbmF0aXZlSW5zdHJ1bWVudGF0aW9u
RW5hYmxlZDogZmFsc2UsCi0gICAgaGVhcFByb2ZpbGVyUHJlc2VudDogZmFsc2UKKyAgICBoZWFw
UHJvZmlsZXJQcmVzZW50OiBmYWxzZSwKKyAgICBjYW5PdmVycmlkZURldmljZU1ldHJpY3M6IGZh
bHNlCiB9CiAKIC8qKgpAQCAtODYsNiArODcsNyBAQCBXZWJJbnNwZWN0b3IuU2V0dGluZ3MgPSBm
dW5jdGlvbigpCiAgICAgdGhpcy5jYWNoZURpc2FibGVkID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJj
YWNoZURpc2FibGVkIiwgZmFsc2UpOwogICAgIHRoaXMub3ZlcnJpZGVVc2VyQWdlbnQgPSB0aGlz
LmNyZWF0ZVNldHRpbmcoIm92ZXJyaWRlVXNlckFnZW50IiwgIiIpOwogICAgIHRoaXMudXNlckFn
ZW50ID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJ1c2VyQWdlbnQiLCAiIik7CisgICAgdGhpcy5kZXZp
Y2VNZXRyaWNzID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJkZXZpY2VNZXRyaWNzIiwgIiIpOwogICAg
IHRoaXMuc2hvd1NjcmlwdEZvbGRlcnMgPSB0aGlzLmNyZWF0ZVNldHRpbmcoInNob3dTY3JpcHRG
b2xkZXJzIiwgdHJ1ZSk7CiAgICAgdGhpcy5kb2NrVG9SaWdodCA9IHRoaXMuY3JlYXRlU2V0dGlu
ZygiZG9ja1RvUmlnaHQiLCBmYWxzZSk7CiAgICAgdGhpcy5lbXVsYXRlVG91Y2hFdmVudHMgPSB0
aGlzLmNyZWF0ZVNldHRpbmcoImVtdWxhdGVUb3VjaEV2ZW50cyIsIGZhbHNlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzCmlu
ZGV4IGY5MmZiMWU5YmQ2YmUxMWM1YjgzYWYzNjRkMjc2MWRlYjlkMTM1Y2UuLjEwZDhkYTI0MjRj
MWU3MzJhNjQzZjhjMjFjMjMxZWI4NzE5ZWMyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcwpAQCAtNzIsNyArNzIsOSBA
QCBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4gPSBmdW5jdGlvbigpCiAgICAgICAgIF0sIFdl
Ykluc3BlY3Rvci5zZXR0aW5ncy50ZXh0RWRpdG9ySW5kZW50KSk7CiAKICAgICBwID0gdGhpcy5f
YXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlVzZXIgQWdlbnQiKSwgdHJ1ZSk7
Ci0gICAgcC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVVc2VyQWN0aW9uQ29udHJvbCgpKTsKKyAg
ICBwLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVVzZXJBZ2VudENvbnRyb2woKSk7CisgICAgaWYg
KENhcGFiaWxpdGllcy5jYW5PdmVycmlkZURldmljZU1ldHJpY3MpCisgICAgICAgIHAuYXBwZW5k
Q2hpbGQodGhpcy5fY3JlYXRlRGV2aWNlTWV0cmljc0NvbnRyb2woKSk7CiAgICAgcC5hcHBlbmRD
aGlsZCh0aGlzLl9jcmVhdGVDaGVja2JveFNldHRpbmcoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJF
bXVsYXRlIHRvdWNoIGV2ZW50cyIpLCBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZW11bGF0ZVRvdWNo
RXZlbnRzKSk7CiAKICAgICBwID0gdGhpcy5fYXBwZW5kU2VjdGlvbihXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlNjcmlwdHMiKSwgdHJ1ZSk7CkBAIC0xMDEsNyArMTAzLDcgQEAgV2ViSW5zcGVjdG9y
LlNldHRpbmdzU2NyZWVuID0gZnVuY3Rpb24oKQogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGV4cGVyaW1lbnRzLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgZXhwZXJpbWVudHNTZWN0aW9u
LmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUV4cGVyaW1lbnRDaGVja2JveChleHBlcmltZW50c1tp
XSkpOwogICAgIH0KLSAgICAKKwogICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInRhYmxlIik7CiAgICAgdGFibGUuY2xhc3NOYW1lID0gImhlbHAtdGFibGUiOwogICAgIHZh
ciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7CkBAIC0yNjIsNyArMjY0LDcgQEAg
V2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJu
IHA7CiAgICAgfSwKIAotICAgIF9jcmVhdGVVc2VyQWN0aW9uQ29udHJvbDogZnVuY3Rpb24oKQor
ICAgIF9jcmVhdGVVc2VyQWdlbnRDb250cm9sOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2
YXIgdXNlckFnZW50ID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLnVzZXJBZ2VudC5nZXQoKTsKIApA
QCAtMjk2LDYgKzI5OCwxMSBAQCBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBl
ID0gewogICAgIF9jcmVhdGVVc2VyQWdlbnRTZWxlY3RSb3dFbGVtZW50OiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICB2YXIgdXNlckFnZW50ID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLnVzZXJB
Z2VudC5nZXQoKTsKKworICAgICAgICAvLyBXaGVuIHByZXNlbnQsIHRoZSB0aGlyZCBlbGVtZW50
IGxpc3RzIGRldmljZSBtZXRyaWNzIHNlcGFyYXRlZCBieSAneCc6CisgICAgICAgIC8vIC0gc2Ny
ZWVuIHdpZHRoLAorICAgICAgICAvLyAtIHNjcmVlbiBoZWlnaHQsCisgICAgICAgIC8vIC0gZm9u
dCBzY2FsZSBmYWN0b3IuCiAgICAgICAgIGNvbnN0IHVzZXJBZ2VudHMgPSBbCiAgICAgICAgICAg
ICBbIkludGVybmV0IEV4cGxvcmVyIDkiLCAiTW96aWxsYS81LjAgKGNvbXBhdGlibGU7IE1TSUUg
OS4wOyBXaW5kb3dzIE5UIDYuMTsgVHJpZGVudC81LjApIl0sCiAgICAgICAgICAgICBbIkludGVy
bmV0IEV4cGxvcmVyIDgiLCAiTW96aWxsYS80LjAgKGNvbXBhdGlibGU7IE1TSUUgOC4wOyBXaW5k
b3dzIE5UIDYuMDsgVHJpZGVudC80LjApIl0sCkBAIC0zMDYsMTggKzMxMywxOCBAQCBXZWJJbnNw
ZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlID0gewogICAgICAgICAgICAgWyJGaXJlZm94
IDQgXHUyMDE0IFdpbmRvd3MiLCAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBydjoyLjAu
MSkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC80LjAuMSJdLAogICAgICAgICAgICAgWyJGaXJlZm94
IDQgXHUyMDE0IE1hYyIsICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAx
MC42OyBydjoyLjAuMSkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC80LjAuMSJdLAogCi0gICAgICAg
ICAgICBbImlQaG9uZSBcdTIwMTQgaU9TIDUiLCAiTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQ
aG9uZSBPUyA1XzAgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvNTM0LjQ2IChLSFRNTCwgbGlr
ZSBHZWNrbykgVmVyc2lvbi81LjEgTW9iaWxlLzlBMzM0IFNhZmFyaS83NTM0LjQ4LjMiXSwKLSAg
ICAgICAgICAgIFsiaVBob25lIFx1MjAxNCBpT1MgNCIsICJNb3ppbGxhLzUuMCAoaVBob25lOyBV
OyBDUFUgaVBob25lIE9TIDRfM18yIGxpa2UgTWFjIE9TIFg7IGVuLXVzKSBBcHBsZVdlYktpdC81
MzMuMTcuOSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4wLjIgTW9iaWxlLzhINyBTYWZh
cmkvNjUzMy4xOC41Il0sCi0gICAgICAgICAgICBbImlQYWQgXHUyMDE0IGlPUyA1IiwgIk1vemls
bGEvNS4wIChpUGFkOyBDUFUgT1MgNV8wIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzUzNC40
NiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4xIE1vYmlsZS85QTMzNCBTYWZhcmkvNzUz
NC40OC4zIl0sCi0gICAgICAgICAgICBbImlQYWQgXHUyMDE0IGlPUyA0IiwgIk1vemlsbGEvNS4w
IChpUGFkOyBDUFUgT1MgNF8zXzIgbGlrZSBNYWMgT1MgWDsgZW4tdXMpIEFwcGxlV2ViS2l0LzUz
My4xNy45IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjAuMiBNb2JpbGUvOEg3IFNhZmFy
aS82NTMzLjE4LjUiXSwKKyAgICAgICAgICAgIFsiaVBob25lIFx1MjAxNCBpT1MgNSIsICJNb3pp
bGxhLzUuMCAoaVBob25lOyBDUFUgaVBob25lIE9TIDVfMCBsaWtlIE1hYyBPUyBYKSBBcHBsZVdl
YktpdC81MzQuNDYgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzUuMSBNb2JpbGUvOUEzMzQg
U2FmYXJpLzc1MzQuNDguMyIsICI2NDB4OTYweDEiXSwKKyAgICAgICAgICAgIFsiaVBob25lIFx1
MjAxNCBpT1MgNCIsICJNb3ppbGxhLzUuMCAoaVBob25lOyBVOyBDUFUgaVBob25lIE9TIDRfM18y
IGxpa2UgTWFjIE9TIFg7IGVuLXVzKSBBcHBsZVdlYktpdC81MzMuMTcuOSAoS0hUTUwsIGxpa2Ug
R2Vja28pIFZlcnNpb24vNS4wLjIgTW9iaWxlLzhINyBTYWZhcmkvNjUzMy4xOC41IiwgIjY0MHg5
NjB4MSJdLAorICAgICAgICAgICAgWyJpUGFkIFx1MjAxNCBpT1MgNSIsICJNb3ppbGxhLzUuMCAo
aVBhZDsgQ1BVIE9TIDVfMCBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC81MzQuNDYgKEtIVE1M
LCBsaWtlIEdlY2tvKSBWZXJzaW9uLzUuMSBNb2JpbGUvOUEzMzQgU2FmYXJpLzc1MzQuNDguMyIs
ICIxMDI0eDc2OHgxIl0sCisgICAgICAgICAgICBbImlQYWQgXHUyMDE0IGlPUyA0IiwgIk1vemls
bGEvNS4wIChpUGFkOyBDUFUgT1MgNF8zXzIgbGlrZSBNYWMgT1MgWDsgZW4tdXMpIEFwcGxlV2Vi
S2l0LzUzMy4xNy45IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjAuMiBNb2JpbGUvOEg3
IFNhZmFyaS82NTMzLjE4LjUiLCAiMTAyNHg3Njh4MSJdLAogCi0gICAgICAgICAgICBbIkFuZHJv
aWQgMi4zIFx1MjAxNCBOZXh1cyBTIiwgIk1vemlsbGEvNS4wIChMaW51eDsgVTsgQW5kcm9pZCAy
LjMuNjsgZW4tdXM7IE5leHVzIFMgQnVpbGQvR1JLMzlGKSBBcHBsZVdlYktpdC81MzMuMSAoS0hU
TUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wIE1vYmlsZSBTYWZhcmkvNTMzLjEiXSwKKyAgICAg
ICAgICAgIFsiQW5kcm9pZCAyLjMgXHUyMDE0IE5leHVzIFMiLCAiTW96aWxsYS81LjAgKExpbnV4
OyBVOyBBbmRyb2lkIDIuMy42OyBlbi11czsgTmV4dXMgUyBCdWlsZC9HUkszOUYpIEFwcGxlV2Vi
S2l0LzUzMy4xIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi80LjAgTW9iaWxlIFNhZmFyaS81
MzMuMSIsICI0ODB4ODAweDEuMSJdLAogCi0gICAgICAgICAgICBbIkJsYWNrQmVycnkgXHUyMDE0
IFBsYXlCb29rIDEuMCIsIk1vemlsbGEvNS4wIChQbGF5Qm9vazsgVTsgUklNIFRhYmxldCBPUyAx
LjAuMDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzNC4xMSsgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJz
aW9uLzcuMS4wLjcgU2FmYXJpLzUzNC4xMSsiXSwKLSAgICAgICAgICAgIFsiQmxhY2tCZXJyeSBc
dTIwMTQgUGxheUJvb2sgMi4wIiwgIk1vemlsbGEvNS4wIChQbGF5Qm9vazsgVTsgUklNIFRhYmxl
dCBPUyAyLjAuMDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzNS44KyAoS0hUTUwsIGxpa2UgR2Vja28p
IFZlcnNpb24vNy4yLjAuMCBTYWZhcmkvNTM1LjgrIl0sCi0gICAgICAgICAgICBbIkJsYWNrQmVy
cnkgXHUyMDE0IDk5MDAiLCAiTW96aWxsYS81LjAgKEJsYWNrQmVycnk7IFU7IEJsYWNrQmVycnkg
OTkwMDsgZW4tVVMpIEFwcGxlV2ViS2l0LzUzNC4xMSsgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJz
aW9uLzcuMC4wLjE4NyBNb2JpbGUgU2FmYXJpLzUzNC4xMSsiXSwKKyAgICAgICAgICAgIFsiQmxh
Y2tCZXJyeSBcdTIwMTQgUGxheUJvb2sgMS4wIiwiTW96aWxsYS81LjAgKFBsYXlCb29rOyBVOyBS
SU0gVGFibGV0IE9TIDEuMC4wOyBlbi1VUykgQXBwbGVXZWJLaXQvNTM0LjExKyAoS0hUTUwsIGxp
a2UgR2Vja28pIFZlcnNpb24vNy4xLjAuNyBTYWZhcmkvNTM0LjExKyIsICIxMDI0eDYwMHgxIl0s
CisgICAgICAgICAgICBbIkJsYWNrQmVycnkgXHUyMDE0IFBsYXlCb29rIDIuMCIsICJNb3ppbGxh
LzUuMCAoUGxheUJvb2s7IFU7IFJJTSBUYWJsZXQgT1MgMi4wLjA7IGVuLVVTKSBBcHBsZVdlYktp
dC81MzUuOCsgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzcuMi4wLjAgU2FmYXJpLzUzNS44
KyIsICIxMDI0eDYwMHgxIl0sCisgICAgICAgICAgICBbIkJsYWNrQmVycnkgXHUyMDE0IDk5MDAi
LCAiTW96aWxsYS81LjAgKEJsYWNrQmVycnk7IFU7IEJsYWNrQmVycnkgOTkwMDsgZW4tVVMpIEFw
cGxlV2ViS2l0LzUzNC4xMSsgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzcuMC4wLjE4NyBN
b2JpbGUgU2FmYXJpLzUzNC4xMSsiLCAiNjQweDQ4MHgxIl0sCiAKLSAgICAgICAgICAgIFsiTWVl
R28gXHUyMDE0IE5va2lhIE45IiwgIk1vemlsbGEvNS4wIChNZWVHbzsgTm9raWFOOSkgQXBwbGVX
ZWJLaXQvNTM0LjEzIChLSFRNTCwgbGlrZSBHZWNrbykgTm9raWFCcm93c2VyLzguNS4wIE1vYmls
ZSBTYWZhcmkvNTM0LjEzIl0sCisgICAgICAgICAgICBbIk1lZUdvIFx1MjAxNCBOb2tpYSBOOSIs
ICJNb3ppbGxhLzUuMCAoTWVlR287IE5va2lhTjkpIEFwcGxlV2ViS2l0LzUzNC4xMyAoS0hUTUws
IGxpa2UgR2Vja28pIE5va2lhQnJvd3Nlci84LjUuMCBNb2JpbGUgU2FmYXJpLzUzNC4xMyIsICI0
ODB4ODU0eDEiXSwKIAogICAgICAgICAgICAgW1dlYkluc3BlY3Rvci5VSVN0cmluZygiT3RoZXIu
Li4iKSwgIk90aGVyIl0KICAgICAgICAgXTsKQEAgLTMzMSw3ICszMzgsOSBAQCBXZWJJbnNwZWN0
b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBlID0gewogICAgICAgICB2YXIgc2VsZWN0aW9uUmVz
dG9yZWQgPSBmYWxzZTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1c2VyQWdlbnRzLmxl
bmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgYWdlbnQgPSB1c2VyQWdlbnRzW2ldOwotICAg
ICAgICAgICAgc2VsZWN0RWxlbWVudC5hZGQobmV3IE9wdGlvbihhZ2VudFswXSwgYWdlbnRbMV0p
KTsKKyAgICAgICAgICAgIHZhciBvcHRpb24gPSBuZXcgT3B0aW9uKGFnZW50WzBdLCBhZ2VudFsx
XSk7CisgICAgICAgICAgICBvcHRpb24uX21ldHJpY3MgPSBhZ2VudFsyXSA/IGFnZW50WzJdIDog
IiI7CisgICAgICAgICAgICBzZWxlY3RFbGVtZW50LmFkZChvcHRpb24pOwogICAgICAgICAgICAg
aWYgKHVzZXJBZ2VudCA9PT0gYWdlbnRbMV0pIHsKICAgICAgICAgICAgICAgICBzZWxlY3RFbGVt
ZW50LnNlbGVjdGVkSW5kZXggPSBpOwogICAgICAgICAgICAgICAgIHNlbGVjdGlvblJlc3RvcmVk
ID0gdHJ1ZTsKQEAgLTM0NSw5ICszNTQsMTIgQEAgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVu
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBzZWxlY3RFbGVtZW50LnNlbGVjdGVkSW5k
ZXggPSB1c2VyQWdlbnRzLmxlbmd0aCAtIDE7CiAgICAgICAgIH0KIAotICAgICAgICBzZWxlY3RF
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIHNlbGVjdGlvbkNoYW5nZWQuYmluZCh0
aGlzKSwgZmFsc2UpOworICAgICAgICBzZWxlY3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNo
YW5nZSIsIHNlbGVjdGlvbkNoYW5nZWQuYmluZCh0aGlzLCB0cnVlKSwgZmFsc2UpOwogCi0gICAg
ICAgIGZ1bmN0aW9uIHNlbGVjdGlvbkNoYW5nZWQoKQorICAgICAgICAvKioKKyAgICAgICAgICog
QHBhcmFtIHtib29sZWFuPX0gaXNVc2VyR2VzdHVyZQorICAgICAgICAgKi8KKyAgICAgICAgZnVu
Y3Rpb24gc2VsZWN0aW9uQ2hhbmdlZChpc1VzZXJHZXN0dXJlKQogICAgICAgICB7CiAgICAgICAg
ICAgICB2YXIgdmFsdWUgPSBzZWxlY3RFbGVtZW50Lm9wdGlvbnNbc2VsZWN0RWxlbWVudC5zZWxl
Y3RlZEluZGV4XS52YWx1ZTsKICAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gIk90aGVyIikgewpA
QCAtMzU5LDYgKzM3MSwxMSBAQCBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4ucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgICAgIG90aGVyVXNlckFnZW50RWxlbWVudC5kaXNhYmxlZCA9IGZh
bHNlOwogICAgICAgICAgICAgICAgIG90aGVyVXNlckFnZW50RWxlbWVudC5mb2N1cygpOwogICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaXNVc2VyR2VzdHVyZSAmJiBDYXBhYmlsaXRp
ZXMuY2FuT3ZlcnJpZGVEZXZpY2VNZXRyaWNzKSB7CisgICAgICAgICAgICAgICAgdmFyIG1ldHJp
Y3MgPSBzZWxlY3RFbGVtZW50Lm9wdGlvbnNbc2VsZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4XS5f
bWV0cmljczsKKyAgICAgICAgICAgICAgICB0aGlzLl9zZXREZXZpY2VNZXRyaWNzT3ZlcnJpZGUo
V2ViSW5zcGVjdG9yLlVzZXJBZ2VudFN1cHBvcnQuRGV2aWNlTWV0cmljcy5wYXJzZUZyb21TZXR0
aW5ncyhtZXRyaWNzKSwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAK
ICAgICAgICAgZmllbGRzZXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgdGV4
dERvdWJsZUNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwpAQCAtMzgyLDYgKzM5OSwxMjEgQEAg
V2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLnByb3RvdHlwZSA9IHsKICAgICBfc2hvd1BhaW50
UmVjdHNDaGFuZ2VkOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBQYWdlQWdlbnQuc2V0U2hv
d1BhaW50UmVjdHMoV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dQYWludFJlY3RzLmdldCgpKTsK
KyAgICB9LAorCisgICAgX2NyZWF0ZURldmljZU1ldHJpY3NDb250cm9sOiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICBjb25zdCBtZXRyaWNzU2V0dGluZyA9IFdlYkluc3BlY3Rvci5zZXR0aW5n
cy5kZXZpY2VNZXRyaWNzLmdldCgpOworICAgICAgICB2YXIgbWV0cmljcyA9IFdlYkluc3BlY3Rv
ci5Vc2VyQWdlbnRTdXBwb3J0LkRldmljZU1ldHJpY3MucGFyc2VGcm9tU2V0dGluZ3MobWV0cmlj
c1NldHRpbmcpOworCisgICAgICAgIGNvbnN0IHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJw
Iik7CisgICAgICAgIGNvbnN0IGxhYmVsRWxlbWVudCA9IHAuY3JlYXRlQ2hpbGQoImxhYmVsIik7
CisgICAgICAgIGNvbnN0IGNoZWNrYm94RWxlbWVudCA9IGxhYmVsRWxlbWVudC5jcmVhdGVDaGls
ZCgiaW5wdXQiKTsKKyAgICAgICAgY2hlY2tib3hFbGVtZW50LmlkID0gIm1ldHJpY3Mtb3ZlcnJp
ZGUtY2hlY2tib3giOworICAgICAgICBjaGVja2JveEVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7
CisgICAgICAgIGNoZWNrYm94RWxlbWVudC5jaGVja2VkID0gIW1ldHJpY3MgfHwgKG1ldHJpY3Mu
d2lkdGggJiYgbWV0cmljcy5oZWlnaHQgJiYgbWV0cmljcy5mb250U2NhbGVGYWN0b3IpOworICAg
ICAgICBjaGVja2JveEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9vbk1l
dHJpY3NDaGVja2JveENsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOworICAgICAgICB0aGlzLl9t
ZXRyaWNzQ2hlY2tib3hFbGVtZW50ID0gY2hlY2tib3hFbGVtZW50OworICAgICAgICBsYWJlbEVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJPdmVycmlkZSBkZXZpY2UgbWV0cmljcyIpKSk7CisKKyAgICAgICAgY29uc3QgbWV0
cmljc1NlY3Rpb25FbGVtZW50ID0gdGhpcy5fY3JlYXRlRGV2aWNlTWV0cmljc0VsZW1lbnQobWV0
cmljcyk7CisgICAgICAgIHAuYXBwZW5kQ2hpbGQobWV0cmljc1NlY3Rpb25FbGVtZW50KTsKKyAg
ICAgICAgdGhpcy5fbWV0cmljc1NlY3Rpb25FbGVtZW50ID0gbWV0cmljc1NlY3Rpb25FbGVtZW50
OworCisgICAgICAgIHRoaXMuX3NldERldmljZU1ldHJpY3NPdmVycmlkZShtZXRyaWNzLCBmYWxz
ZSwgdHJ1ZSk7CisKKyAgICAgICAgcmV0dXJuIHA7CisgICAgfSwKKworICAgIF9vbk1ldHJpY3ND
aGVja2JveENsaWNrZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9tZXRy
aWNzQ2hlY2tib3hFbGVtZW50LmNoZWNrZWQpIHsKKyAgICAgICAgICAgIHRoaXMuX21ldHJpY3NT
ZWN0aW9uRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJoaWRkZW4iKTsKKyAgICAgICAgICAgIHZh
ciBtZXRyaWNzID0gV2ViSW5zcGVjdG9yLlVzZXJBZ2VudFN1cHBvcnQuRGV2aWNlTWV0cmljcy5w
YXJzZUZyb21Vc2VySW5wdXQodGhpcy5fd2lkdGhPdmVycmlkZUVsZW1lbnQudmFsdWUsIHRoaXMu
X2hlaWdodE92ZXJyaWRlRWxlbWVudC52YWx1ZSwgdGhpcy5fZm9udFNjYWxlRmFjdG9yT3ZlcnJp
ZGVFbGVtZW50LnZhbHVlKTsKKyAgICAgICAgICAgIGlmIChtZXRyaWNzICYmIG1ldHJpY3MuaXNW
YWxpZCAmJiBtZXRyaWNzLndpZHRoICYmIG1ldHJpY3MuaGVpZ2h0KQorICAgICAgICAgICAgICAg
IHRoaXMuX3NldERldmljZU1ldHJpY3NPdmVycmlkZShtZXRyaWNzLCBmYWxzZSwgZmFsc2UpOwor
ICAgICAgICAgICAgaWYgKCF0aGlzLl93aWR0aE92ZXJyaWRlRWxlbWVudC52YWx1ZSkKKyAgICAg
ICAgICAgICAgICB0aGlzLl93aWR0aE92ZXJyaWRlRWxlbWVudC5mb2N1cygpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgdGhpcy5fbWV0cmljc1NlY3Rpb25FbGVtZW50LmFkZFN0eWxl
Q2xhc3MoImhpZGRlbiIpOworICAgICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5k
ZXZpY2VNZXRyaWNzLmdldCgpKQorICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5n
cy5kZXZpY2VNZXRyaWNzLnNldCgiIik7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgX2FwcGx5
RGV2aWNlTWV0cmljc1VzZXJJbnB1dDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5f
c2V0RGV2aWNlTWV0cmljc092ZXJyaWRlKFdlYkluc3BlY3Rvci5Vc2VyQWdlbnRTdXBwb3J0LkRl
dmljZU1ldHJpY3MucGFyc2VGcm9tVXNlcklucHV0KHRoaXMuX3dpZHRoT3ZlcnJpZGVFbGVtZW50
LnZhbHVlLnRyaW0oKSwgdGhpcy5faGVpZ2h0T3ZlcnJpZGVFbGVtZW50LnZhbHVlLnRyaW0oKSwg
dGhpcy5fZm9udFNjYWxlRmFjdG9yT3ZlcnJpZGVFbGVtZW50LnZhbHVlLnRyaW0oKSksIHRydWUs
IGZhbHNlKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHs/V2ViSW5zcGVjdG9y
LlVzZXJBZ2VudFN1cHBvcnQuRGV2aWNlTWV0cmljc30gbWV0cmljcworICAgICAqIEBwYXJhbSB7
Ym9vbGVhbn0gdXNlcklucHV0TW9kaWZpZWQKKyAgICAgKi8KKyAgICBfc2V0RGV2aWNlTWV0cmlj
c092ZXJyaWRlOiBmdW5jdGlvbihtZXRyaWNzLCB1c2VySW5wdXRNb2RpZmllZCwgdXBkYXRlQ2hl
Y2tib3gpCisgICAgeworICAgICAgICBjb25zdCBpbnZhbGlkQmFja2dyb3VuZFZhbHVlID0gInJn
YigyMjAsIDEzMCwgMTMwKSI7CisKKyAgICAgICAgdGhpcy5fd2lkdGhPdmVycmlkZUVsZW1lbnQu
c3R5bGUuYmFja2dyb3VuZCA9IG1ldHJpY3MgJiYgbWV0cmljcy5pc1dpZHRoVmFsaWQoKSA/ICIi
IDogaW52YWxpZEJhY2tncm91bmRWYWx1ZTsKKyAgICAgICAgdGhpcy5faGVpZ2h0T3ZlcnJpZGVF
bGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSBtZXRyaWNzICYmIG1ldHJpY3MuaXNIZWlnaHRWYWxp
ZCgpID8gIiIgOiBpbnZhbGlkQmFja2dyb3VuZFZhbHVlOworICAgICAgICB0aGlzLl9mb250U2Nh
bGVGYWN0b3JPdmVycmlkZUVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IG1ldHJpY3MgJiYgbWV0
cmljcy5pc0ZvbnRTY2FsZUZhY3RvclZhbGlkKCkgPyAiIiA6IGludmFsaWRCYWNrZ3JvdW5kVmFs
dWU7CisKKyAgICAgICAgaWYgKCFtZXRyaWNzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGlmICghdXNlcklucHV0TW9kaWZpZWQpIHsKKyAgICAgICAgICAgIHRoaXMuX3dpZHRoT3Zl
cnJpZGVFbGVtZW50LnZhbHVlID0gbWV0cmljcy53aWR0aFRvSW5wdXQoKTsKKyAgICAgICAgICAg
IHRoaXMuX2hlaWdodE92ZXJyaWRlRWxlbWVudC52YWx1ZSA9IG1ldHJpY3MuaGVpZ2h0VG9JbnB1
dCgpOworICAgICAgICAgICAgdGhpcy5fZm9udFNjYWxlRmFjdG9yT3ZlcnJpZGVFbGVtZW50LnZh
bHVlID0gbWV0cmljcy5mb250U2NhbGVGYWN0b3JUb0lucHV0KCk7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAobWV0cmljcy5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIHZhciB2YWx1ZSA9IG1l
dHJpY3MudG9TZXR0aW5ncygpOworICAgICAgICAgICAgaWYgKHZhbHVlICE9PSBXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MuZGV2aWNlTWV0cmljcy5nZXQoKSkKKyAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MuZGV2aWNlTWV0cmljcy5zZXQodmFsdWUpOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHRoaXMuX21ldHJpY3NDaGVja2JveEVsZW1lbnQgJiYgdXBkYXRlQ2hlY2tib3gp
IHsKKyAgICAgICAgICAgIHRoaXMuX21ldHJpY3NDaGVja2JveEVsZW1lbnQuY2hlY2tlZCA9ICEh
bWV0cmljcy50b1NldHRpbmdzKCk7CisgICAgICAgICAgICB0aGlzLl9vbk1ldHJpY3NDaGVja2Jv
eENsaWNrZWQoKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5Vc2VyQWdlbnRTdXBwb3J0LkRldmljZU1ldHJpY3N9IG1ldHJpY3MKKyAg
ICAgKi8KKyAgICBfY3JlYXRlRGV2aWNlTWV0cmljc0VsZW1lbnQ6IGZ1bmN0aW9uKG1ldHJpY3Mp
CisgICAgeworICAgICAgICB2YXIgZmllbGRzZXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZmllbGRzZXQiKTsKKyAgICAgICAgZmllbGRzZXRFbGVtZW50LmlkID0gIm1ldHJpY3Mt
b3ZlcnJpZGUtc2VjdGlvbiI7CisKKyAgICAgICAgZnVuY3Rpb24gY3JlYXRlSW5wdXQocGFyZW50
RWxlbWVudCwgaWQsIGRlZmF1bHRUZXh0KQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgZWxl
bWVudCA9IHBhcmVudEVsZW1lbnQuY3JlYXRlQ2hpbGQoImlucHV0Iik7CisgICAgICAgICAgICBl
bGVtZW50LmlkID0gaWQ7CisgICAgICAgICAgICBlbGVtZW50Lm1heExlbmd0aCA9IDY7CisgICAg
ICAgICAgICBlbGVtZW50LnN0eWxlLndpZHRoID0gIjQ4cHgiOworICAgICAgICAgICAgZWxlbWVu
dC52YWx1ZSA9IGRlZmF1bHRUZXh0OworICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJibHVyIiwgdGhpcy5fYXBwbHlEZXZpY2VNZXRyaWNzVXNlcklucHV0LmJpbmQodGhpcyks
IGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50OworICAgICAgICB9CisKKyAgICAg
ICAgdmFyIHRhYmxlRWxlbWVudCA9IGZpZWxkc2V0RWxlbWVudC5jcmVhdGVDaGlsZCgidGFibGUi
KTsKKworICAgICAgICB2YXIgcm93RWxlbWVudCA9IHRhYmxlRWxlbWVudC5jcmVhdGVDaGlsZCgi
dHIiKTsKKyAgICAgICAgdmFyIGNlbGxFbGVtZW50ID0gcm93RWxlbWVudC5jcmVhdGVDaGlsZCgi
dGQiKTsKKyAgICAgICAgY2VsbEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTY3JlZW4gcmVzb2x1dGlvbjoiKSkpOworICAg
ICAgICBjZWxsRWxlbWVudCA9IHJvd0VsZW1lbnQuY3JlYXRlQ2hpbGQoInRkIik7CisgICAgICAg
IHRoaXMuX3dpZHRoT3ZlcnJpZGVFbGVtZW50ID0gY3JlYXRlSW5wdXQuY2FsbCh0aGlzLCBjZWxs
RWxlbWVudCwgIm1ldHJpY3Mtb3ZlcnJpZGUtd2lkdGgiLCBTdHJpbmcobWV0cmljcy53aWR0aCB8
fCBzY3JlZW4ud2lkdGgpKTsKKyAgICAgICAgY2VsbEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoIiBcdTAwRDcgIikpOworICAgICAgICB0aGlzLl9oZWlnaHRPdmVy
cmlkZUVsZW1lbnQgPSBjcmVhdGVJbnB1dC5jYWxsKHRoaXMsIGNlbGxFbGVtZW50LCAibWV0cmlj
cy1vdmVycmlkZS1oZWlnaHQiLCBTdHJpbmcobWV0cmljcy5oZWlnaHQgfHwgc2NyZWVuLmhlaWdo
dCkpOworCisgICAgICAgIHJvd0VsZW1lbnQgPSB0YWJsZUVsZW1lbnQuY3JlYXRlQ2hpbGQoInRy
Iik7CisgICAgICAgIGNlbGxFbGVtZW50ID0gcm93RWxlbWVudC5jcmVhdGVDaGlsZCgidGQiKTsK
KyAgICAgICAgY2VsbEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGb250IHNjYWxlIGZhY3RvcjoiKSkpOworICAgICAgICBj
ZWxsRWxlbWVudCA9IHJvd0VsZW1lbnQuY3JlYXRlQ2hpbGQoInRkIik7CisgICAgICAgIHRoaXMu
X2ZvbnRTY2FsZUZhY3Rvck92ZXJyaWRlRWxlbWVudCA9IGNyZWF0ZUlucHV0LmNhbGwodGhpcywg
Y2VsbEVsZW1lbnQsICJtZXRyaWNzLW92ZXJyaWRlLWZvbnQtc2NhbGUiLCBTdHJpbmcobWV0cmlj
cy5mb250U2NhbGVGYWN0b3IgfHwgMSkpOworICAgICAgICByZXR1cm4gZmllbGRzZXRFbGVtZW50
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Vc2VyQWdlbnRTdXBwb3J0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Vc2VyQWdlbnRTdXBwb3J0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhYjFkMGFiZWY2NDQxZDA2NWFh
Yzc1MjVhZTg4MWY2M2ZkNDNiNTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1VzZXJBZ2VudFN1cHBvcnQuanMKQEAgLTAsMCArMSwxNDggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisv
KioKKyAqIEBjb25zdHJ1Y3RvcgorICovCitXZWJJbnNwZWN0b3IuVXNlckFnZW50U3VwcG9ydCA9
IGZ1bmN0aW9uKCkKK3sKKyAgICBpZiAoV2ViSW5zcGVjdG9yLnNldHRpbmdzLmRldmljZU1ldHJp
Y3MuZ2V0KCkpCisgICAgICAgIHRoaXMuX2RldmljZU1ldHJpY3NTZXR0aW5nQ2hhbmdlZCgpOwor
ICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5kZXZpY2VNZXRyaWNzLmFkZENoYW5nZUxpc3RlbmVy
KHRoaXMuX2RldmljZU1ldHJpY3NTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7Cit9CisKKy8qKgorICog
QGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge251bWJlcn0gd2lkdGgKKyAqIEBwYXJhbSB7bnVtYmVy
fSBoZWlnaHQKKyAqIEBwYXJhbSB7bnVtYmVyfSBmb250U2NhbGVGYWN0b3IKKyAqLworV2ViSW5z
cGVjdG9yLlVzZXJBZ2VudFN1cHBvcnQuRGV2aWNlTWV0cmljcyA9IGZ1bmN0aW9uKHdpZHRoLCBo
ZWlnaHQsIGZvbnRTY2FsZUZhY3RvcikKK3sKKyAgICB0aGlzLndpZHRoID0gd2lkdGg7CisgICAg
dGhpcy5oZWlnaHQgPSBoZWlnaHQ7CisgICAgdGhpcy5mb250U2NhbGVGYWN0b3IgPSBmb250U2Nh
bGVGYWN0b3I7Cit9CisKKy8qKgorICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlVzZXJBZ2VudFN1
cHBvcnQuRGV2aWNlTWV0cmljc30KKyAqLworV2ViSW5zcGVjdG9yLlVzZXJBZ2VudFN1cHBvcnQu
RGV2aWNlTWV0cmljcy5wYXJzZUZyb21TZXR0aW5ncyA9IGZ1bmN0aW9uKHZhbHVlKQoreworICAg
IGlmICh2YWx1ZSkgeworICAgICAgICB2YXIgc3BsaXRNZXRyaWNzID0gdmFsdWUuc3BsaXQoIngi
KTsKKyAgICAgICAgaWYgKHNwbGl0TWV0cmljcy5sZW5ndGggPT09IDMpCisgICAgICAgICAgICBy
ZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Vc2VyQWdlbnRTdXBwb3J0LkRldmljZU1ldHJpY3MocGFy
c2VJbnQoc3BsaXRNZXRyaWNzWzBdLCAxMCksIHBhcnNlSW50KHNwbGl0TWV0cmljc1sxXSwgMTAp
LCBwYXJzZUZsb2F0KHNwbGl0TWV0cmljc1syXSkpOworICAgIH0KKyAgICByZXR1cm4gbmV3IFdl
Ykluc3BlY3Rvci5Vc2VyQWdlbnRTdXBwb3J0LkRldmljZU1ldHJpY3MoMCwgMCwgMSk7Cit9CisK
Ky8qKgorICogQHJldHVybiB7P1dlYkluc3BlY3Rvci5Vc2VyQWdlbnRTdXBwb3J0LkRldmljZU1l
dHJpY3N9CisgKi8KK1dlYkluc3BlY3Rvci5Vc2VyQWdlbnRTdXBwb3J0LkRldmljZU1ldHJpY3Mu
cGFyc2VGcm9tVXNlcklucHV0ID0gZnVuY3Rpb24od2lkdGhTdHJpbmcsIGhlaWdodFN0cmluZywg
Zm9udFNjYWxlRmFjdG9yU3RyaW5nKQoreworICAgIGZ1bmN0aW9uIGlzVXNlcklucHV0VmFsaWQo
dmFsdWUsIGlzSW50ZWdlcikKKyAgICB7CisgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGlzSW50ZWdlciA/IC9eWzBdKlsxLTldW1xk
XSokLy50ZXN0KHZhbHVlKSA6IC9eWzBdKihbMS05XVtcZF0qKFwuXGQrKT98XC5cZCspJC8udGVz
dCh2YWx1ZSk7CisgICAgfQorCisgICAgaWYgKCF3aWR0aFN0cmluZyBeICFoZWlnaHRTdHJpbmcp
CisgICAgICAgIHJldHVybiBudWxsOworCisgICAgdmFyIGlzV2lkdGhWYWxpZCA9IGlzVXNlcklu
cHV0VmFsaWQod2lkdGhTdHJpbmcsIHRydWUpOworICAgIHZhciBpc0hlaWdodFZhbGlkID0gaXNV
c2VySW5wdXRWYWxpZChoZWlnaHRTdHJpbmcsIHRydWUpOworICAgIHZhciBpc0ZvbnRTY2FsZUZh
Y3RvclZhbGlkID0gaXNVc2VySW5wdXRWYWxpZChmb250U2NhbGVGYWN0b3JTdHJpbmcsIGZhbHNl
KTsKKworICAgIGlmICghaXNXaWR0aFZhbGlkICYmICFpc0hlaWdodFZhbGlkICYmICFpc0ZvbnRT
Y2FsZUZhY3RvclZhbGlkKQorICAgICAgICByZXR1cm4gbnVsbDsKKworICAgIHZhciB3aWR0aCA9
IGlzV2lkdGhWYWxpZCA/IHBhcnNlSW50KHdpZHRoU3RyaW5nIHx8ICIwIiwgMTApIDogLTE7Cisg
ICAgdmFyIGhlaWdodCA9IGlzSGVpZ2h0VmFsaWQgPyBwYXJzZUludChoZWlnaHRTdHJpbmcgfHwg
IjAiLCAxMCkgOiAtMTsKKyAgICB2YXIgZm9udFNjYWxlRmFjdG9yID0gaXNGb250U2NhbGVGYWN0
b3JWYWxpZCA/IHBhcnNlRmxvYXQoZm9udFNjYWxlRmFjdG9yU3RyaW5nKSA6IC0xOworCisgICAg
cmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuVXNlckFnZW50U3VwcG9ydC5EZXZpY2VNZXRyaWNzKHdp
ZHRoLCBoZWlnaHQsIGZvbnRTY2FsZUZhY3Rvcik7Cit9CisKK1dlYkluc3BlY3Rvci5Vc2VyQWdl
bnRTdXBwb3J0LkRldmljZU1ldHJpY3MucHJvdG90eXBlID0geworICAgIGlzVmFsaWQ6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmlzV2lkdGhWYWxpZCgpICYmIHRoaXMu
aXNIZWlnaHRWYWxpZCgpICYmIHRoaXMuaXNGb250U2NhbGVGYWN0b3JWYWxpZCgpOworICAgIH0s
CisKKyAgICBpc1dpZHRoVmFsaWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLndpZHRoID49IDA7CisgICAgfSwKKworICAgIGlzSGVpZ2h0VmFsaWQ6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmhlaWdodCA+PSAwOworICAgIH0sCisKKyAgICBp
c0ZvbnRTY2FsZUZhY3RvclZhbGlkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5mb250U2NhbGVGYWN0b3IgPiAwOworICAgIH0sCisKKyAgICB0b1NldHRpbmdzOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKQorICAgICAgICAgICAg
cmV0dXJuICIiOworCisgICAgICAgIHJldHVybiB0aGlzLndpZHRoICYmIHRoaXMuaGVpZ2h0ID8g
dGhpcy53aWR0aCArICJ4IiArIHRoaXMuaGVpZ2h0ICsgIngiICsgdGhpcy5mb250U2NhbGVGYWN0
b3IgOiAiIjsKKyAgICB9LAorCisgICAgd2lkdGhUb0lucHV0OiBmdW5jdGlvbigpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5pc1dpZHRoVmFsaWQoKSAmJiB0aGlzLndpZHRoID8gU3RyaW5n
KHRoaXMud2lkdGgpIDogIiI7CisgICAgfSwKKworICAgIGhlaWdodFRvSW5wdXQ6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmlzSGVpZ2h0VmFsaWQoKSAmJiB0aGlzLmhl
aWdodCA/IFN0cmluZyh0aGlzLmhlaWdodCkgOiAiIjsKKyAgICB9LAorCisgICAgZm9udFNjYWxl
RmFjdG9yVG9JbnB1dDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuaXNG
b250U2NhbGVGYWN0b3JWYWxpZCgpICYmIHRoaXMuZm9udFNjYWxlRmFjdG9yID8gU3RyaW5nKHRo
aXMuZm9udFNjYWxlRmFjdG9yKSA6ICIiOworICAgIH0KK30KKworV2ViSW5zcGVjdG9yLlVzZXJB
Z2VudFN1cHBvcnQucHJvdG90eXBlID0geworICAgIF9kZXZpY2VNZXRyaWNzU2V0dGluZ0NoYW5n
ZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBtZXRyaWNzID0gV2ViSW5zcGVjdG9y
LlVzZXJBZ2VudFN1cHBvcnQuRGV2aWNlTWV0cmljcy5wYXJzZUZyb21TZXR0aW5ncyhXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MuZGV2aWNlTWV0cmljcy5nZXQoKSk7CisgICAgICAgIGlmIChtZXRyaWNz
LmlzVmFsaWQoKSkKKyAgICAgICAgICAgIFBhZ2VBZ2VudC5zZXREZXZpY2VNZXRyaWNzT3ZlcnJp
ZGUobWV0cmljcy53aWR0aCwgbWV0cmljcy5oZWlnaHQsIG1ldHJpY3MuZm9udFNjYWxlRmFjdG9y
KTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCmluZGV4IGU3NjhiMGI3NjliMmQ0OWFk
MGJjMGU2YjRkNjM4MGQ1MTg3YjM0OTYuLjhhYWY3N2E1YzJjOTdiMjE5MmJkZTRjMWRjN2QyZjYz
OTBkOTZkMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
V2ViS2l0LnFyYworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktp
dC5xcmMKQEAgLTE2MSw2ICsxNjEsNyBAQAogICAgIDxmaWxlPnRyZWVvdXRsaW5lLmpzPC9maWxl
PgogICAgIDxmaWxlPlVJU291cmNlQ29kZS5qczwvZmlsZT4KICAgICA8ZmlsZT5VSVV0aWxzLmpz
PC9maWxlPgorICAgIDxmaWxlPlVzZXJBZ2VudFN1cHBvcnQuanM8L2ZpbGU+CiAgICAgPGZpbGU+
VXNlck1ldHJpY3MuanM8L2ZpbGU+CiAgICAgPGZpbGU+dXRpbGl0aWVzLmpzPC9maWxlPgogICAg
IDxmaWxlPlZpZXcuanM8L2ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2hlbHBTY3JlZW4uY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9oZWxwU2NyZWVuLmNzcwppbmRleCA3ODE2Njk2ODA4Yjk4NTczZDgyNDdmNWIzYmU2
ZmQ5NTQ0OGNmMDg5Li5lYzBjYmVmNDRmNDRjNTk5MTI3ZGY1NWEyMTE1M2ZjZTU2YWY2YTU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBTY3JlZW4u
Y3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5j
c3MKQEAgLTEyMSwxMyArMTIxLDEzIEBAIGJvZHk6bm90KC5wbGF0Zm9ybS1tYWMpIC5oZWxwLWNs
b3NlLWJ1dHRvbiB7CiAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogYXV0bzsKIH0KIAotLmhlbHAt
dGFibGUgdGggeworLmhlbHAtdGFibGUgPiB0ciA+IHRoIHsKICAgICBwYWRkaW5nLXRvcDogNnB4
OwogICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAgY29sb3I6IHllbGxvdzsKIH0KIAotLmhlbHAt
dGFibGUgdGQgeworLmhlbHAtdGFibGUgPiB0ciA+IHRkIHsKICAgICB3aGl0ZS1zcGFjZTogbm93
cmFwOwogICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CiAgICAgd2lkdGg6IDUwJTsKQEAgLTE5Niw2
ICsxOTYsMTAgQEAgYm9keS5wbGF0Zm9ybS1tYWMgLmhlbHAta2V5IHsKICAgICBjb2xvcjogcmdi
KDE1MCwgMTUwLCAxNTApOwogfQogCisjcmVzb2x1dGlvbi1vdmVycmlkZS1zZWN0aW9uIHsKKyAg
ICBtYXJnaW4tbGVmdDogMTNweDsKK30KKwogLmhlbHAtY29udGVudCBpbnB1dFt0eXBlPWNoZWNr
Ym94XSB7CiAgICAgaGVpZ2h0OiAxM3B4OwogICAgIHdpZHRoOiAxM3B4OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCmluZGV4IDYyOGE5N2My
OGMyYWQ3YWYwOGZlNDQ2OTYxOWU5MThkYjQ0ODRjMWIuLjI2MzU2ZWRlZDI3N2FjNzJmMjg1YzJj
M2E3Mjc0MWEzZmQ1YTdjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5jc3MKQEAgLTM5LDYgKzM5LDEwIEBAIGlucHV0W3R5cGU9InNlYXJj
aCJdOmZvY3VzLCBpbnB1dFt0eXBlPSJ0ZXh0Il06Zm9jdXMgewogICAgIGJvdHRvbTogMDsKIH0K
IAorLmhpZGRlbiB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwogI3Rvb2xiYXIgewogICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKICAgICB0b3A6IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCAyMDkyMmQ5ZGQ5NjhhMDkxZWE3
OTRhNmUwYzc1MGYxZDJkYTdkOWJiLi44MmY2YTM1MTdmODUwMDNkOWRjNjgyODdkNmE3ZGYxMzg2
NjRmNzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5odG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmh0bWwKQEAgLTczLDYgKzczLDcgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJSZXNvdXJjZUNhdGVnb3J5LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJUaW1lbGluZU1hbmFnZXIuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRpbWVs
aW5lTW9kZWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9IlVzZXJBZ2VudFN1cHBvcnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRhdGFiYXNlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJET01TdG9yYWdlLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJET01TdG9yYWdlSXRlbXNWaWV3
LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanMKaW5kZXggMzEyZDA5ZjA0OGVkN2EzNjM4OWJlMjJlNWEwMDI4NmQ5M2I2MWQ5
MC4uMjc1MTBhZDZkZmRlYWYwMTQ2NzQzZWM2MTNjZDliNjUzMDYwNTY0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTM3OCw3ICsz
NzgsOCBAQCBXZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rpb24oKQogICAgIERlYnVn
Z2VyQWdlbnQuc3VwcG9ydHNOYXRpdmVCcmVha3BvaW50cyhXZWJJbnNwZWN0b3IuX2luaXRpYWxp
emVDYXBhYmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAibmF0aXZlSW5zdHJ1bWVudGF0aW9uRW5h
YmxlZCIsIG51bGwpKTsKICAgICBQcm9maWxlckFnZW50LmNhdXNlc1JlY29tcGlsYXRpb24oV2Vi
SW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3RvciwgInByb2Zp
bGVyQ2F1c2VzUmVjb21waWxhdGlvbiIsIG51bGwpKTsKICAgICBQcm9maWxlckFnZW50LmlzU2Ft
cGxpbmcoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYkluc3BlY3Rv
ciwgInNhbXBsaW5nQ1BVUHJvZmlsZXIiLCBudWxsKSk7Ci0gICAgUHJvZmlsZXJBZ2VudC5oYXNI
ZWFwUHJvZmlsZXIoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5kKFdlYklu
c3BlY3RvciwgImhlYXBQcm9maWxlclByZXNlbnQiLCBXZWJJbnNwZWN0b3IuX2RvTG9hZGVkRG9u
ZVdpdGhDYXBhYmlsaXRpZXMuYmluZChXZWJJbnNwZWN0b3IpKSk7CisgICAgUHJvZmlsZXJBZ2Vu
dC5oYXNIZWFwUHJvZmlsZXIoV2ViSW5zcGVjdG9yLl9pbml0aWFsaXplQ2FwYWJpbGl0eS5iaW5k
KFdlYkluc3BlY3RvciwgImhlYXBQcm9maWxlclByZXNlbnQiLCBudWxsKSk7CisgICAgUGFnZUFn
ZW50LmNhbk92ZXJyaWRlRGV2aWNlTWV0cmljcyhXZWJJbnNwZWN0b3IuX2luaXRpYWxpemVDYXBh
YmlsaXR5LmJpbmQoV2ViSW5zcGVjdG9yLCAiY2FuT3ZlcnJpZGVEZXZpY2VNZXRyaWNzIiwgV2Vi
SW5zcGVjdG9yLl9kb0xvYWRlZERvbmVXaXRoQ2FwYWJpbGl0aWVzLmJpbmQoV2ViSW5zcGVjdG9y
KSkpOwogfQogCiBXZWJJbnNwZWN0b3IuX2RvTG9hZGVkRG9uZVdpdGhDYXBhYmlsaXRpZXMgPSBm
dW5jdGlvbigpCkBAIC00MTIsNiArNDEzLDcgQEAgV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVX
aXRoQ2FwYWJpbGl0aWVzID0gZnVuY3Rpb24oKQogCiAgICAgdGhpcy5jc3NNb2RlbCA9IG5ldyBX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbCgpOwogICAgIHRoaXMudGltZWxpbmVNYW5hZ2VyID0g
bmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIoKTsKKyAgICB0aGlzLnVzZXJBZ2VudFN1
cHBvcnQgPSBuZXcgV2ViSW5zcGVjdG9yLlVzZXJBZ2VudFN1cHBvcnQoKTsKICAgICBJbnNwZWN0
b3JCYWNrZW5kLnJlZ2lzdGVyRGF0YWJhc2VEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuRGF0
YWJhc2VEaXNwYXRjaGVyKCkpOwogICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJET01TdG9y
YWdlRGlzcGF0Y2hlcihuZXcgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VEaXNwYXRjaGVyKCkpOwog
Cg==
</data>
<flag name="review"
          id="139507"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>