<?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>135829</bug_id>
          
          <creation_ts>2014-08-11 21:40:16 -0700</creation_ts>
          <short_desc>Add a fade transition to services highlights</short_desc>
          <delta_ts>2014-08-12 13:05:44 -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>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>enrica</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1028411</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-11 21:40:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/17935736&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028412</commentid>
    <comment_count>1</comment_count>
      <attachid>236427</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-11 21:41:02 -0700</bug_when>
    <thetext>Created attachment 236427
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028440</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-12 00:24:43 -0700</bug_when>
    <thetext>Attachment 236427 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/WebPage/mac/ServicesOverlayController.mm:170:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 7 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>1028580</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-12 13:05:44 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/172483</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236427</attachid>
            <date>2014-08-11 21:41:02 -0700</date>
            <delta_ts>2014-08-12 12:26:32 -0700</delta_ts>
            <desc>patch</desc>
            <filename>fade.diff</filename>
            <type>text/plain</type>
            <size>31658</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyNTAzYzhjLi4yMjUwN2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAy
IEBACisyMDE0LTA4LTExICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBhIGZhZGUgdHJhbnNpdGlvbiB0byBzZXJ2aWNlcyBoaWdobGlnaHRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU4MjkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE3OTM1NzM2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHNtb290aCBmYWRlIHRvIGhpZ2hsaWdodCBp
bnN0YWxsYXRpb24gYW5kIHVuaW5zdGFsbGF0aW9uLgorICAgICAgICBUbyBkbyBzbywgd2UgbWFr
ZSBlYWNoIGhpZ2hsaWdodCBwYWludCBpbnRvIGl0cyBvd24gc21hbGwgbGF5ZXIuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpQYWdlT3ZlcmxheTo6bGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdl
T3ZlcmxheS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheUNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmxheWVy
Rm9yT3ZlcmxheSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5oOgorICAgICAgICBFeHBvc2UgdGhlIEdyYXBoaWNzTGF5ZXIgb24gUGFnZU92ZXJs
YXkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvU2VydmljZXNPdmVybGF5Q29udHJv
bGxlci5oOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdo
bGlnaHQ6OmxheWVyKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNPdmVybGF5Q29udHJvbGxl
cjo6YWN0aXZlSGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6d2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXI6OkhpZ2hsaWdodDo6SGlnaGxpZ2h0KTogRGVsZXRlZC4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbToKKyAgICAgICAg
KFdlYktpdDo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JT
ZWxlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpI
aWdobGlnaHQ6OmNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcik6CisgICAgICAgIChXZWJLaXQ6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6SGlnaGxpZ2h0KToKKyAgICAgICAg
SGlnaGxpZ2h0cyBub3cgb3duIGEgR3JhcGhpY3NMYXllciwgd2hpY2ggYXJlIGxhdGVyIGluc3Rh
bGxlZAorICAgICAgICBhcyBzdWJsYXllcnMgb2YgdGhlIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXIncyBQYWdlT3ZlcmxheSBsYXllci4KKyAgICAgICAgVGhlc2UgbGF5ZXJzIGFyZSBzaXplZCBh
bmQgcG9zaXRpb25lZCBhY2NvcmRpbmcgdG8gdGhlIERESGlnaGxpZ2h0J3MgYm91bmRzLgorCisg
ICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6fkhp
Z2hsaWdodCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Okhp
Z2hsaWdodDo6aW52YWxpZGF0ZSk6CisgICAgICAgIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIg
d2lsbCBpbnZhbGlkYXRlIGFueSByZW1haW5pbmcgaGlnaGxpZ2h0cworICAgICAgICB3aGVuIGl0
IGlzIHRvcm4gZG93biwgc28gdGhleSBjYW4gY2xlYXIgdGhlaXIgYmFja3BvaW50ZXJzLgorCisg
ICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6bm90
aWZ5Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgIEZvcndhcmQgZmx1c2ggbm90aWZpY2F0aW9ucyB0
byB0aGUgRHJhd2luZ0FyZWEuCisKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6SGlnaGxpZ2h0OjpwYWludENvbnRlbnRzKToKKyAgICAgICAgUGFpbnQgdGhlIERE
SGlnaGxpZ2h0IGludG8gdGhlIGxheWVyLiBUcmFuc2xhdGlvbiBpcyBkb25lIGJ5IHRoZSBsYXll
ciBwb3NpdGlvbiwKKyAgICAgICAgc28gd2UgemVybyB0aGUgYm91bmRzIG9yaWdpbiB3aGVuIHBh
aW50aW5nLgorCisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Okhp
Z2hsaWdodDo6ZGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICBGb3J3YXJkIHRoZSBkZXZpY2VT
Y2FsZUZhY3RvciBzbyB0aGF0IHRoaW5ncyBhcmUgcGFpbnRlZCBhdCB0aGUgcmlnaHQgc2NhbGUu
CisKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0
OjpmYWRlSW4pOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpI
aWdobGlnaHQ6OmZhZGVPdXQpOgorICAgICAgICBBcHBseSBhIGZhZGUgYW5pbWF0aW9uIHRvIHRo
ZSBsYXllci4KKworICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpI
aWdobGlnaHQ6OmRpZEZpbmlzaEZhZGVPdXRBbmltYXRpb24pOgorICAgICAgICBXaGVuIHRoZSBm
YWRlIGNvbXBsZXRlcywgdW5wYXJlbnQgdGhlIGxheWVyLCB1bmxlc3MgaXQgaGFzIGJlY29tZSBh
Y3RpdmUgYWdhaW4uCisKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNPdmVybGF5Q29udHJvbGxl
cjo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXI6On5TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyKToKKyAgICAgICAg
SW52YWxpZGF0ZSBhbGwgaGlnaGxpZ2h0cywgc28gdGhleSBjYW4gY2xlYXIgdGhlaXIgYmFja3Bv
aW50ZXJzLgorCisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OnJl
bWFpbmluZ1RpbWVVbnRpbEhpZ2hsaWdodFNob3VsZEJlU2hvd24pOgorICAgICAgICBNYWtlIHJl
bWFpbmluZ1RpbWVVbnRpbEhpZ2hsaWdodFNob3VsZEJlU2hvd24gYWN0IHVwb24gYSBwYXJ0aWN1
bGFyIGhpZ2hsaWdodAorICAgICAgICBpbnN0ZWFkIG9mIGFsd2F5cyB0aGUgYWN0aXZlIGhpZ2hs
aWdodC4KKworICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpkZXRl
cm1pbmVBY3RpdmVIaWdobGlnaHRUaW1lckZpcmVkKTogUmVuYW1lLgorCisgICAgICAgIChXZWJL
aXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmRyYXdSZWN0KToKKyAgICAgICAgZHJhd1Jl
Y3QgaXMgbm8gbG9uZ2VyIGNhbGxlZCBhbmQgd2lsbCBubyBsb25nZXIgZG8gYW55dGhpbmc7IGFs
bCBvZiB0aGUKKyAgICAgICAgcGFpbnRpbmcgaXMgZG9uZSBpbiBzdWJsYXllcnMuCisKKyAgICAg
ICAgKFdlYktpdDo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQaG9uZU51bWJlckhp
Z2hsaWdodHMpOgorICAgICAgICBFbnN1cmUgdGhhdCBwaG9uZSBudW1iZXIgSGlnaGxpZ2h0cyBz
dGF5IHN0YWJsZSBldmVuIHdoaWxlIHRoZSBzZWxlY3Rpb24KKyAgICAgICAgY2hhbmdlcywgYnkg
Y29tcGFyaW5nIHRoZSB1bmRlcmx5aW5nIFJhbmdlcyBhbmQga2VlcGluZyBhcm91bmQgb2xkIEhp
Z2hsaWdodHMKKyAgICAgICAgdGhhdCBtYXRjaCB0aGUgbmV3IG9uZXMuIFRoaXMgZW5hYmxlcyB1
cyB0byBlLmcuIGZhZGUgaW4gd2hpbGUgY2hhbmdpbmcKKyAgICAgICAgdGhlIHNlbGVjdGlvbiB3
aXRoaW4gYSBwaG9uZSBudW1iZXIuCisKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNPdmVybGF5
Q29udHJvbGxlcjo6YnVpbGRTZWxlY3Rpb25IaWdobGlnaHQpOgorICAgICAgICAoV2ViS2l0OjpT
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpkaWRSZWJ1aWxkUG90ZW50aWFsSGlnaGxpZ2h0cyk6
CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmNyZWF0ZU92ZXJs
YXlJZk5lZWRlZCk6CisgICAgICAgIERvbid0IGNhbGwgc2V0TmVlZHNEaXNwbGF5OyB0aGUgb3Zl
cmxheSBkb2Vzbid0IGhhdmUgYmFja2luZyBzdG9yZS4KKyAgICAgICAgSW5zdGVhZCwgY2FsbCBk
ZXRlcm1pbmVBY3RpdmVIaWdobGlnaHQsIHdoaWNoIHdpbGwgaW5zdGFsbC91bmluc3RhbGwKKyAg
ICAgICAgaGlnaGxpZ2h0cyBhcyBuZWNlc3NhcnkuCisKKyAgICAgICAgKFdlYktpdDo6U2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlcjo6ZGV0ZXJtaW5lQWN0aXZlSGlnaGxpZ2h0KToKKyAgICAgICAg
QXBwbHkgZmFkZSBpbi9mYWRlIG91dCB0byB0aGUgb3ZlcmxheXMuCisgICAgICAgIEtlZXAgdHJh
Y2sgb2Ygd2hpY2ggaGlnaGxpZ2h0IHdlJ3JlIGdvaW5nIHRvIGFjdGl2YXRlLCB1bnRpbCB0aGUg
aHlzdGVyZXNpcworICAgICAgICBkZWxheSBpcyB1cCwgdGhlbiBhY3R1YWxseSBtYWtlIGl0IGFj
dGl2ZS9wYXJlbnQgaXQvZmFkZSBpdCBpbi4KKyAgICAgICAgV2Ugbm93IHdpbGwgaGF2ZSBubyBh
Y3RpdmUgaGlnaGxpZ2h0IGJldHdlZW4gdGhlIGZhZGUgb3V0IG9mIHRoZSBwcmV2aW91cyBvbmUK
KyAgICAgICAgYW5kIHRoZSBmYWRlIGluIG9mIHRoZSBuZXcgb25lIChkdXJpbmcgdGhlIGh5c3Rl
cmVzaXMgZGVsYXkpLgorCisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXI6Om1vdXNlRXZlbnQpOgorICAgICAgICBUaGUgb3ZlcmxheSBub3cgd2lsbCBub3QgYmVjb21l
IGFjdGl2ZSB1bnRpbCB0aGUgZGVsYXkgaXMgdXAsIHNvIHdlIGRvbid0CisgICAgICAgIG5lZWQg
dG8gY2hlY2sgaXQgYWdhaW4gaGVyZS4KKworICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyOjpoYW5kbGVDbGljayk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXI6OmRpZENyZWF0ZUhpZ2hsaWdodCk6CisgICAgICAgIChXZWJLaXQ6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OndpbGxEZXN0cm95SGlnaGxpZ2h0KToKKyAgICAgICAg
KFdlYktpdDo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6cmVwYWludEhpZ2hsaWdodFRpbWVy
RmlyZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpkcmF3SGlnaGxpZ2h0KTogRGVsZXRlZC4KKwogMjAxNC0wOC0wOCAgRW5yaWNhIENhc3Vj
Y2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFtTZXJ2aWNlcyB3aXRoIFVJXSBBY3Rp
b24gbWVudSBhcnJvdyBoaXQgdGVzdGluZyBpcyBzb21ldGltZXMgd3JvbmcuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmNwcAppbmRleCA5Zjk2
MDAzLi41ODhhMzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvUGFnZU92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9QYWdlT3ZlcmxheS5jcHAKQEAgLTIzMyw0ICsyMzMsOSBAQCB2b2lkIFBhZ2VPdmVybGF5Ojpj
bGVhcigpCiAgICAgbV93ZWJQYWdlLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5jbGVhclBhZ2VP
dmVybGF5KCp0aGlzKTsKIH0KIAorV2ViQ29yZTo6R3JhcGhpY3NMYXllciogUGFnZU92ZXJsYXk6
OmxheWVyKCkKK3sKKyAgICByZXR1cm4gbV93ZWJQYWdlLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIo
KS5sYXllckZvck92ZXJsYXkoKnRoaXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKaW5kZXgg
ZTUwODJhZC4uODAyNWVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1BhZ2VPdmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1BhZ2VPdmVybGF5LmgKQEAgLTM1LDYgKzM1LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgR3JhcGhpY3NDb250ZXh0OworY2xhc3MgR3JhcGhpY3NMYXllcjsKIH0KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CkBAIC05NSw2ICs5Niw4IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6
OlJHQkEzMiBiYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmRDb2xv
cjsgfQogICAgIHZvaWQgc2V0QmFja2dyb3VuZENvbG9yKFdlYkNvcmU6OlJHQkEzMik7CisKKyAg
ICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllcigpOwogICAgIAogcHJvdGVjdGVkOgogICAg
IGV4cGxpY2l0IFBhZ2VPdmVybGF5KENsaWVudCosIE92ZXJsYXlUeXBlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5Q29udHJv
bGxlci5jcHAKaW5kZXggNGY3YjE4YS4uZWI2NjZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAK
QEAgLTE3MSw2ICsxNzEsMTIgQEAgdm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmNsZWFyUGFn
ZU92ZXJsYXkoUGFnZU92ZXJsYXkmIG92ZXJsYXkpCiAgICAgbV9vdmVybGF5R3JhcGhpY3NMYXll
cnMuZ2V0KCZvdmVybGF5KS0+c2V0RHJhd3NDb250ZW50KGZhbHNlKTsKIH0KIAorR3JhcGhpY3NM
YXllciogUGFnZU92ZXJsYXlDb250cm9sbGVyOjpsYXllckZvck92ZXJsYXkoUGFnZU92ZXJsYXkm
IG92ZXJsYXkpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fcGFnZU92ZXJsYXlzLmNvbnRhaW5zKCZv
dmVybGF5KSk7CisgICAgcmV0dXJuIG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLmdldCgmb3Zlcmxh
eSk7Cit9CisKIHZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjpkaWRDaGFuZ2VWaWV3U2l6ZSgp
CiB7CiAgICAgZm9yIChhdXRvJiBvdmVybGF5QW5kTGF5ZXIgOiBtX292ZXJsYXlHcmFwaGljc0xh
eWVycykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1Bh
Z2VPdmVybGF5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCmluZGV4IDRmMTY4OWIuLjhkMWI1Y2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXlD
b250cm9sbGVyLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGFnZU92
ZXJsYXlOZWVkc0Rpc3BsYXkoUGFnZU92ZXJsYXkmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7
CiAgICAgdm9pZCBzZXRQYWdlT3ZlcmxheU9wYWNpdHkoUGFnZU92ZXJsYXkmLCBmbG9hdCk7CiAg
ICAgdm9pZCBjbGVhclBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5Jik7CisgICAgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciogbGF5ZXJGb3JPdmVybGF5KFBhZ2VPdmVybGF5JikgY29uc3Q7CiAKICAgICB2
b2lkIGRpZENoYW5nZVZpZXdTaXplKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VEb2N1bWVudFNpemUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9TZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
U2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCmluZGV4IDFiNzNmNzYuLjAwZWMzOTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9TZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1NlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiUGFn
ZU92ZXJsYXkuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NMYXllckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmFuZ2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTU1LDE0
ICs1NiwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZWxlY3Rpb25SZWN0c0RpZENoYW5nZShjb25z
dCBWZWN0b3I8V2ViQ29yZTo6TGF5b3V0UmVjdD4mLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6R2Fw
UmVjdHM+JiwgYm9vbCBpc1RleHRPbmx5KTsKIAogcHJpdmF0ZToKLSAgICBjbGFzcyBIaWdobGln
aHQgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGlnaHQ+IHsKKyAgICBjbGFzcyBIaWdobGlnaHQg
OiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGlnaHQ+LCBwcml2YXRlIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDbGllbnQgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShIaWdobGlnaHQpOwog
ICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SGlnaGxpZ2h0PiBjcmVhdGVG
b3JTZWxlY3Rpb24oUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPik7Ci0gICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEhpZ2hsaWdodD4gY3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKFJldGFpblB0cjxE
REhpZ2hsaWdodFJlZj4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+KTsKKyAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SGlnaGxpZ2h0PiBjcmVhdGVGb3JTZWxlY3Rpb24oU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlciYsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4pOworICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxIaWdobGlnaHQ+IGNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihTZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpSYW5nZT4pOworICAgICAgICB+SGlnaGxpZ2h0KCk7CisKKyAgICAgICAgdm9p
ZCBpbnZhbGlkYXRlKCk7CiAKICAgICAgICAgRERIaWdobGlnaHRSZWYgZGRIaWdobGlnaHQoKSBj
b25zdCB7IHJldHVybiBtX2RkSGlnaGxpZ2h0LmdldCgpOyB9CiAgICAgICAgIFdlYkNvcmU6OlJh
bmdlKiByYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2UuZ2V0KCk7IH0KKyAgICAgICAgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2dyYXBoaWNzTGF5
ZXIuZ2V0KCk7IH0KIAogICAgICAgICBlbnVtIGNsYXNzIFR5cGUgewogICAgICAgICAgICAgVGVs
ZXBob25lTnVtYmVyLApAQCAtNzAsMTkgKzc1LDI1IEBAIHByaXZhdGU6CiAgICAgICAgIH07CiAg
ICAgICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCisgICAgICAgIHZv
aWQgZmFkZUluKCk7CisgICAgICAgIHZvaWQgZmFkZU91dCgpOworCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgZXhwbGljaXQgSGlnaGxpZ2h0KFR5cGUgdHlwZSwgUmV0YWluUHRyPERESGlnaGxpZ2h0
UmVmPiBkZEhpZ2hsaWdodCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpSYW5nZT4gcmFuZ2UpCi0gICAg
ICAgICAgICA6IG1fZGRIaWdobGlnaHQoZGRIaWdobGlnaHQpCi0gICAgICAgICAgICAsIG1fcmFu
Z2UocmFuZ2UpCi0gICAgICAgICAgICAsIG1fdHlwZSh0eXBlKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBBU1NFUlQobV9kZEhpZ2hsaWdodCk7Ci0gICAgICAgICAgICBBU1NFUlQodHlwZSAhPSBU
eXBlOjpUZWxlcGhvbmVOdW1iZXIgfHwgbV9yYW5nZSk7Ci0gICAgICAgIH0KKyAgICAgICAgZXhw
bGljaXQgSGlnaGxpZ2h0KFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBUeXBlLCBSZXRhaW5Q
dHI8RERIaWdobGlnaHRSZWY+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlJhbmdlPik7CisKKyAgICAg
ICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAorICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5p
bWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUp
IG92ZXJyaWRlIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBpbkNsaXApIG92ZXJyaWRlOworICAgICAgICB2aXJ0
dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICAgICAg
dm9pZCBkaWRGaW5pc2hGYWRlT3V0QW5pbWF0aW9uKCk7CiAKICAgICAgICAgUmV0YWluUHRyPERE
SGlnaGxpZ2h0UmVmPiBtX2RkSGlnaGxpZ2h0OwogICAgICAgICBSZWZQdHI8V2ViQ29yZTo6UmFu
Z2U+IG1fcmFuZ2U7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0xh
eWVyPiBtX2dyYXBoaWNzTGF5ZXI7CiAgICAgICAgIFR5cGUgbV90eXBlOworICAgICAgICBTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAgICAgfTsKIAogICAgIC8vIFBh
Z2VPdmVybGF5OjpDbGllbnQKQEAgLTEwNCwzMyArMTE1LDQ0IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGRldGVybWluZUFjdGl2ZUhpZ2hsaWdodChib29sJiBtb3VzZUlzT3ZlckJ1dHRvbik7CiAg
ICAgdm9pZCBjbGVhckFjdGl2ZUhpZ2hsaWdodCgpOworICAgIEhpZ2hsaWdodCogYWN0aXZlSGln
aGxpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmVIaWdobGlnaHQuZ2V0KCk7IH0KIAogICAg
IGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcygpOwogCiAgICAgYm9vbCBtb3VzZUlz
T3ZlckhpZ2hsaWdodChIaWdobGlnaHQmLCBib29sJiBtb3VzZUlzT3ZlckJ1dHRvbikgY29uc3Q7
Ci0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyByZW1haW5pbmdUaW1lVW50aWxIaWdobGln
aHRTaG91bGRCZVNob3duKCkgY29uc3Q7Ci0gICAgdm9pZCByZXBhaW50SGlnaGxpZ2h0VGltZXJG
aXJlZChXZWJDb3JlOjpUaW1lcjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyPiYpOworICAgIHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgcmVtYWluaW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxk
QmVTaG93bihIaWdobGlnaHQqKSBjb25zdDsKKyAgICB2b2lkIGRldGVybWluZUFjdGl2ZUhpZ2hs
aWdodFRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcj4m
KTsKIAogICAgIHN0YXRpYyBib29sIGhpZ2hsaWdodHNBcmVFcXVpdmFsZW50KGNvbnN0IEhpZ2hs
aWdodCogYSwgY29uc3QgSGlnaGxpZ2h0KiBiKTsKIAogICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29y
ZTo6UmFuZ2U+PiB0ZWxlcGhvbmVOdW1iZXJSYW5nZXNGb3JGb2N1c2VkRnJhbWUoKTsKIAorICAg
IHZvaWQgZGlkQ3JlYXRlSGlnaGxpZ2h0KEhpZ2hsaWdodCopOworICAgIHZvaWQgd2lsbERlc3Ry
b3lIaWdobGlnaHQoSGlnaGxpZ2h0Kik7CisgICAgdm9pZCBkaWRGaW5pc2hGYWRpbmdPdXRIaWdo
bGlnaHQoSGlnaGxpZ2h0Kik7CisKKyAgICBXZWJQYWdlJiB3ZWJQYWdlKCkgY29uc3QgeyByZXR1
cm4gbV93ZWJQYWdlOyB9CisKICAgICBXZWJQYWdlJiBtX3dlYlBhZ2U7CiAgICAgUGFnZU92ZXJs
YXkqIG1fc2VydmljZXNPdmVybGF5OwogCiAgICAgUmVmUHRyPEhpZ2hsaWdodD4gbV9hY3RpdmVI
aWdobGlnaHQ7CisgICAgUmVmUHRyPEhpZ2hsaWdodD4gbV9uZXh0QWN0aXZlSGlnaGxpZ2h0Owog
ICAgIEhhc2hTZXQ8UmVmUHRyPEhpZ2hsaWdodD4+IG1fcG90ZW50aWFsSGlnaGxpZ2h0czsKKyAg
ICBIYXNoU2V0PFJlZlB0cjxIaWdobGlnaHQ+PiBtX2FuaW1hdGluZ0hpZ2hsaWdodHM7CisKKyAg
ICBIYXNoU2V0PEhpZ2hsaWdodCo+IG1faGlnaGxpZ2h0czsKIAogICAgIFZlY3RvcjxXZWJDb3Jl
OjpMYXlvdXRSZWN0PiBtX2N1cnJlbnRTZWxlY3Rpb25SZWN0czsKICAgICBib29sIG1faXNUZXh0
T25seTsKIAogICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVfcG9pbnQgbV9sYXN0
U2VsZWN0aW9uQ2hhbmdlVGltZTsKLSAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1l
X3BvaW50IG1fbGFzdEFjdGl2ZUhpZ2hsaWdodENoYW5nZVRpbWU7CisgICAgc3RkOjpjaHJvbm86
OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCBtX25leHRBY3RpdmVIaWdobGlnaHRDaGFuZ2VUaW1l
OwogCiAgICAgUmVmUHRyPEhpZ2hsaWdodD4gbV9jdXJyZW50TW91c2VEb3duT25CdXR0b25IaWdo
bGlnaHQ7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9tb3VzZVBvc2l0aW9uOwogCi0gICAgV2Vi
Q29yZTo6VGltZXI8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcj4gbV9yZXBhaW50SGlnaGxpZ2h0
VGltZXI7CisgICAgV2ViQ29yZTo6VGltZXI8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcj4gbV9k
ZXRlcm1pbmVBY3RpdmVIaWdobGlnaHRUaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9TZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCmluZGV4IDRkOGE4YzAuLjYwMDRi
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KQEAgLTMxLDEzICszMSwx
NyBAQAogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViUGFnZS5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzcy5oIgorI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Gb2N1c0NvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVW
aWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dhcFJlY3RzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dy
YXBoaWNzQ29udGV4dC5oPgorI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJDQS5oPgogI2ltcG9ydCA8V2ViQ29yZS9NYWluRnJh
bWUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogCiAjaWYgX19oYXNfaW5jbHVkZSg8RGF0YURldGVj
dG9ycy9EREhpZ2hsaWdodERyYXdpbmcuaD4pCkBAIC01MCw2ICs1NCw4IEBAIHR5cGVkZWYgdm9p
ZCogRERIaWdobGlnaHRSZWY7CiAjaW1wb3J0IDxEYXRhRGV0ZWN0b3JzL0RESGlnaGxpZ2h0RHJh
d2luZ19Qcml2YXRlLmg+CiAjZW5kaWYKIAorY29uc3QgZmxvYXQgaGlnaGxpZ2h0RmFkZUFuaW1h
dGlvbkR1cmF0aW9uID0gMC4zOworCiB0eXBlZGVmIE5TVUludGVnZXIgRERIaWdobGlnaHRTdHls
ZTsKIHN0YXRpYyBjb25zdCBEREhpZ2hsaWdodFN0eWxlIERESGlnaGxpZ2h0Tm9PdXRsaW5lV2l0
aEFycm93ID0gKDEgPDwgMTYpOwogc3RhdGljIGNvbnN0IERESGlnaGxpZ2h0U3R5bGUgRERIaWdo
bGlnaHRPdXRsaW5lV2l0aEFycm93ID0gKDEgPDwgMTYpIHwgMTsKQEAgLTY0LDE0ICs3MCwxMjEg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNz
UmVmUHRyPFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodD4gU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24oUmV0YWluUHRyPERE
SGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCkKK1Bhc3NSZWZQdHI8U2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6SGlnaGxpZ2h0PiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6
OmNyZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVy
LCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0KQoreworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIsIFR5cGU6OlNlbGVjdGlvbiwgZGRIaWdo
bGlnaHQsIG51bGxwdHIpKTsKK30KKworUGFzc1JlZlB0cjxTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpIaWdobGlnaHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6Y3Jl
YXRlRm9yVGVsZXBob25lTnVtYmVyKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xs
ZXIsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFBhc3NSZWZQdHI8UmFu
Z2U+IHJhbmdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSGlnaGxpZ2h0KGNvbnRyb2xs
ZXIsIFR5cGU6OlRlbGVwaG9uZU51bWJlciwgZGRIaWdobGlnaHQsIHJhbmdlKSk7Cit9CisKK1Nl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6SGlnaGxpZ2h0KFNlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFR5cGUgdHlwZSwgUmV0YWluUHRyPERESGlnaGxp
Z2h0UmVmPiBkZEhpZ2hsaWdodCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpSYW5nZT4gcmFuZ2UpCisg
ICAgOiBtX2RkSGlnaGxpZ2h0KGRkSGlnaGxpZ2h0KQorICAgICwgbV9yYW5nZShyYW5nZSkKKyAg
ICAsIG1fdHlwZSh0eXBlKQorICAgICwgbV9jb250cm9sbGVyKCZjb250cm9sbGVyKQoreworICAg
IEFTU0VSVChtX2RkSGlnaGxpZ2h0KTsKKyAgICBBU1NFUlQodHlwZSAhPSBUeXBlOjpUZWxlcGhv
bmVOdW1iZXIgfHwgbV9yYW5nZSk7CisKKyAgICBEcmF3aW5nQXJlYSogZHJhd2luZ0FyZWEgPSBj
b250cm9sbGVyLndlYlBhZ2UoKS5kcmF3aW5nQXJlYSgpOworICAgIG1fZ3JhcGhpY3NMYXllciA9
IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShkcmF3aW5nQXJlYSA/IGRyYXdpbmdBcmVhLT5ncmFwaGlj
c0xheWVyRmFjdG9yeSgpIDogbnVsbHB0ciwgKnRoaXMpOworICAgIG1fZ3JhcGhpY3NMYXllci0+
c2V0RHJhd3NDb250ZW50KHRydWUpOworICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0TmVlZHNEaXNw
bGF5KCk7CisKKyAgICBDR1JlY3QgaGlnaGxpZ2h0Qm91bmRpbmdSZWN0ID0gRERIaWdobGlnaHRH
ZXRCb3VuZGluZ1JlY3QoZGRIaWdobGlnaHQuZ2V0KCkpOworICAgIG1fZ3JhcGhpY3NMYXllci0+
c2V0UG9zaXRpb24oRmxvYXRQb2ludChoaWdobGlnaHRCb3VuZGluZ1JlY3Qub3JpZ2luKSk7Cisg
ICAgbV9ncmFwaGljc0xheWVyLT5zZXRTaXplKEZsb2F0U2l6ZShoaWdobGlnaHRCb3VuZGluZ1Jl
Y3Quc2l6ZSkpOworCisgICAgLy8gU2V0IGRpcmVjdGx5IG9uIHRoZSBQbGF0Zm9ybUNBTGF5ZXIg
c28gdGhhdCB3aGVuIHdlIGxlYXZlIHRoZSAnZnJvbScgdmFsdWUgaW1wbGljaXQKKyAgICAvLyBp
biBvdXIgYW5pbWF0aW9ucywgd2UgZ2V0IHRoZSByaWdodCBpbml0aWFsIHZhbHVlIHJlZ2FyZGxl
c3Mgb2YgZmx1c2ggdGltaW5nLgorICAgIHRvR3JhcGhpY3NMYXllckNBKGxheWVyKCkpLT5wbGF0
Zm9ybUNBTGF5ZXIoKS0+c2V0T3BhY2l0eSgwKTsKKworICAgIGNvbnRyb2xsZXIuZGlkQ3JlYXRl
SGlnaGxpZ2h0KHRoaXMpOworfQorCitTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGln
aHQ6On5IaWdobGlnaHQoKQoreworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAgIG1fY29u
dHJvbGxlci0+d2lsbERlc3Ryb3lIaWdobGlnaHQodGhpcyk7Cit9CisKK3ZvaWQgU2VydmljZXNP
dmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjppbnZhbGlkYXRlKCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEhpZ2hsaWdodChUeXBlOjpTZWxlY3Rpb24sIGRkSGlnaGxpZ2h0LCBudWxs
cHRyKSk7CisgICAgbGF5ZXIoKS0+cmVtb3ZlRnJvbVBhcmVudCgpOworICAgIG1fY29udHJvbGxl
ciA9IG51bGxwdHI7CiB9CiAKLVBhc3NSZWZQdHI8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6
SGlnaGxpZ2h0PiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZv
clRlbGVwaG9uZU51bWJlcihSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBQ
YXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKK3ZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6
SGlnaGxpZ2h0Ojpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgSGlnaGxpZ2h0KFR5cGU6OlRlbGVwaG9uZU51bWJlciwg
ZGRIaWdobGlnaHQsIHJhbmdlKSk7CisgICAgaWYgKCFtX2NvbnRyb2xsZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChEcmF3aW5nQXJlYSogZHJhd2luZ0FyZWEgPSBtX2NvbnRyb2xsZXIt
PndlYlBhZ2UoKS5kcmF3aW5nQXJlYSgpKQorICAgICAgICBkcmF3aW5nQXJlYS0+c2NoZWR1bGVD
b21wb3NpdGluZ0xheWVyRmx1c2goKTsKK30KKwordm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpIaWdobGlnaHQ6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBo
aWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwg
Y29uc3QgRmxvYXRSZWN0JiBpbkNsaXApCit7CisgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9
IGdyYXBoaWNzQ29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKTsKKworICAgIENHTGF5ZXJSZWYgaGln
aGxpZ2h0TGF5ZXIgPSBEREhpZ2hsaWdodEdldExheWVyV2l0aENvbnRleHQoZGRIaWdobGlnaHQo
KSwgY2dDb250ZXh0KTsKKyAgICBDR1JlY3QgaGlnaGxpZ2h0Qm91bmRpbmdSZWN0ID0gRERIaWdo
bGlnaHRHZXRCb3VuZGluZ1JlY3QoZGRIaWdobGlnaHQoKSk7CisgICAgaGlnaGxpZ2h0Qm91bmRp
bmdSZWN0Lm9yaWdpbiA9IENHUG9pbnRaZXJvOworCisgICAgQ0dDb250ZXh0RHJhd0xheWVySW5S
ZWN0KGNnQ29udGV4dCwgaGlnaGxpZ2h0Qm91bmRpbmdSZWN0LCBoaWdobGlnaHRMYXllcik7Cit9
CisKK2Zsb2F0IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6ZGV2aWNlU2Nh
bGVGYWN0b3IoKSBjb25zdAoreworICAgIGlmICghbV9jb250cm9sbGVyKQorICAgICAgICByZXR1
cm4gMTsKKworICAgIHJldHVybiBtX2NvbnRyb2xsZXItPndlYlBhZ2UoKS5kZXZpY2VTY2FsZUZh
Y3RvcigpOworfQorCit2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6
ZmFkZUluKCkKK3sKKyAgICBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlvbj4gYW5pbWF0aW9uID0g
W0NBQmFzaWNBbmltYXRpb24gYW5pbWF0aW9uV2l0aEtleVBhdGg6QCJvcGFjaXR5Il07CisgICAg
W2FuaW1hdGlvbiBzZXREdXJhdGlvbjpoaWdobGlnaHRGYWRlQW5pbWF0aW9uRHVyYXRpb25dOwor
ICAgIFthbmltYXRpb24gc2V0RmlsbE1vZGU6a0NBRmlsbE1vZGVGb3J3YXJkc107CisgICAgW2Fu
aW1hdGlvbiBzZXRSZW1vdmVkT25Db21wbGV0aW9uOmZhbHNlXTsKKyAgICBbYW5pbWF0aW9uIHNl
dFRvVmFsdWU6QDFdOworCisgICAgUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IHBsYXRmb3Jt
QW5pbWF0aW9uID0gUGxhdGZvcm1DQUFuaW1hdGlvbk1hYzo6Y3JlYXRlKGFuaW1hdGlvbi5nZXQo
KSk7CisgICAgdG9HcmFwaGljc0xheWVyQ0EobGF5ZXIoKSktPnBsYXRmb3JtQ0FMYXllcigpLT5h
ZGRBbmltYXRpb25Gb3JLZXkoIkZhZGVIaWdobGlnaHRJbiIsIHBsYXRmb3JtQW5pbWF0aW9uLmdl
dCgpKTsKK30KKwordm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmZh
ZGVPdXQoKQoreworICAgIFJldGFpblB0cjxDQUJhc2ljQW5pbWF0aW9uPiBhbmltYXRpb24gPSBb
Q0FCYXNpY0FuaW1hdGlvbiBhbmltYXRpb25XaXRoS2V5UGF0aDpAIm9wYWNpdHkiXTsKKyAgICBb
YW5pbWF0aW9uIHNldER1cmF0aW9uOmhpZ2hsaWdodEZhZGVBbmltYXRpb25EdXJhdGlvbl07Cisg
ICAgW2FuaW1hdGlvbiBzZXRGaWxsTW9kZTprQ0FGaWxsTW9kZUZvcndhcmRzXTsKKyAgICBbYW5p
bWF0aW9uIHNldFJlbW92ZWRPbkNvbXBsZXRpb246ZmFsc2VdOworICAgIFthbmltYXRpb24gc2V0
VG9WYWx1ZTpAMF07CisKKyAgICBSZWZQdHI8SGlnaGxpZ2h0PiByZXRhaW5lZFNlbGYgPSB0aGlz
OworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXRDb21w
bGV0aW9uQmxvY2s6W3JldGFpbmVkU2VsZl0gKCkgeworICAgICAgICByZXRhaW5lZFNlbGYtPmRp
ZEZpbmlzaEZhZGVPdXRBbmltYXRpb24oKTsKKyAgICB9XTsKKworICAgIFJlZlB0cjxQbGF0Zm9y
bUNBQW5pbWF0aW9uPiBwbGF0Zm9ybUFuaW1hdGlvbiA9IFBsYXRmb3JtQ0FBbmltYXRpb25NYWM6
OmNyZWF0ZShhbmltYXRpb24uZ2V0KCkpOworICAgIHRvR3JhcGhpY3NMYXllckNBKGxheWVyKCkp
LT5wbGF0Zm9ybUNBTGF5ZXIoKS0+YWRkQW5pbWF0aW9uRm9yS2V5KCJGYWRlSGlnaGxpZ2h0T3V0
IiwgcGxhdGZvcm1BbmltYXRpb24uZ2V0KCkpOworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07
Cit9CisKK3ZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpkaWRGaW5p
c2hGYWRlT3V0QW5pbWF0aW9uKCkKK3sKKyAgICBpZiAoIW1fY29udHJvbGxlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG1fY29udHJvbGxlci0+YWN0aXZlSGlnaGxpZ2h0KCkgPT0gdGhp
cykKKyAgICAgICAgcmV0dXJuOworCisgICAgbGF5ZXIoKS0+cmVtb3ZlRnJvbVBhcmVudCgpOwog
fQogCiBzdGF0aWMgSW50UmVjdCB0ZXh0UXVhZHNUb0JvdW5kaW5nUmVjdEZvclJhbmdlKFJhbmdl
JiByYW5nZSkKQEAgLTg4LDEyICsyMDEsMTQgQEAgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcihXZWJQYWdlJiB3ZWJQYWdlKQogICAgIDogbV93ZWJQ
YWdlKHdlYlBhZ2UpCiAgICAgLCBtX3NlcnZpY2VzT3ZlcmxheShudWxscHRyKQogICAgICwgbV9p
c1RleHRPbmx5KGZhbHNlKQotICAgICwgbV9yZXBhaW50SGlnaGxpZ2h0VGltZXIodGhpcywgJlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OnJlcGFpbnRIaWdobGlnaHRUaW1lckZpcmVkKQorICAg
ICwgbV9kZXRlcm1pbmVBY3RpdmVIaWdobGlnaHRUaW1lcih0aGlzLCAmU2VydmljZXNPdmVybGF5
Q29udHJvbGxlcjo6ZGV0ZXJtaW5lQWN0aXZlSGlnaGxpZ2h0VGltZXJGaXJlZCkKIHsKIH0KIAog
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6flNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIoKQog
eworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogbV9oaWdobGlnaHRzKQorICAgICAgICBoaWdo
bGlnaHQtPmludmFsaWRhdGUoKTsKIH0KIAogdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
OjpwYWdlT3ZlcmxheURlc3Ryb3llZChQYWdlT3ZlcmxheSopCkBAIC0yODAsNTcgKzM5NSwzMyBA
QCBib29sIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Om1vdXNlSXNPdmVySGlnaGxpZ2h0KEhp
Z2hsaWdodCYgaGlnaGxpZ2h0LCBib29sJgogICAgIHJldHVybiBob3ZlcmVkOwogfQogCi1zdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OnJlbWFpbmlu
Z1RpbWVVbnRpbEhpZ2hsaWdodFNob3VsZEJlU2hvd24oKSBjb25zdAorc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcyBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpyZW1haW5pbmdUaW1lVW50aWxI
aWdobGlnaHRTaG91bGRCZVNob3duKEhpZ2hsaWdodCogaGlnaGxpZ2h0KSBjb25zdAogeworICAg
IGlmICghaGlnaGxpZ2h0KQorICAgICAgICByZXR1cm4gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
czo6emVybygpOworCiAgICAgLy8gSGlnaGxpZ2h0IGh5c3RlcmVzaXMgaXMgb25seSBmb3Igc2Vs
ZWN0aW9uIHNlcnZpY2VzLCBiZWNhdXNlIHRlbGVwaG9uZSBudW1iZXIgaGlnaGxpZ2h0cyBhcmUg
YWxyZWFkeSBtdWNoIG1vcmUgc3RhYmxlCiAgICAgLy8gYnkgdmlydHVlIG9mIGJlaW5nIGV4cGFu
ZGVkIHRvIGluY2x1ZGUgdGhlIGVudGlyZSB0ZWxlcGhvbmUgbnVtYmVyLgotICAgIGlmIChtX2Fj
dGl2ZUhpZ2hsaWdodC0+dHlwZSgpID09IEhpZ2hsaWdodDo6VHlwZTo6VGVsZXBob25lTnVtYmVy
KQorICAgIGlmIChoaWdobGlnaHQtPnR5cGUoKSA9PSBIaWdobGlnaHQ6OlR5cGU6OlRlbGVwaG9u
ZU51bWJlcikKICAgICAgICAgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8o
KTsKIAogICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OmR1cmF0aW9uIG1pbmltdW1UaW1l
VW50aWxIaWdobGlnaHRTaG91bGRCZVNob3duID0gMjAwX21zOwogCiAgICAgYXV0byBub3cgPSBz
dGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKICAgICBhdXRvIHRpbWVTaW5jZUxhc3RT
ZWxlY3Rpb25DaGFuZ2UgPSBub3cgLSBtX2xhc3RTZWxlY3Rpb25DaGFuZ2VUaW1lOwotICAgIGF1
dG8gdGltZVNpbmNlSGlnaGxpZ2h0QmVjYW1lQWN0aXZlID0gbm93IC0gbV9sYXN0QWN0aXZlSGln
aGxpZ2h0Q2hhbmdlVGltZTsKKyAgICBhdXRvIHRpbWVTaW5jZUhpZ2hsaWdodEJlY2FtZUFjdGl2
ZSA9IG5vdyAtIG1fbmV4dEFjdGl2ZUhpZ2hsaWdodENoYW5nZVRpbWU7CiAKICAgICByZXR1cm4g
c3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oc3Rk
OjptYXgobWluaW11bVRpbWVVbnRpbEhpZ2hsaWdodFNob3VsZEJlU2hvd24gLSB0aW1lU2luY2VM
YXN0U2VsZWN0aW9uQ2hhbmdlLCBtaW5pbXVtVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93
biAtIHRpbWVTaW5jZUhpZ2hsaWdodEJlY2FtZUFjdGl2ZSkpOwogfQogCi12b2lkIFNlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXI6OnJlcGFpbnRIaWdobGlnaHRUaW1lckZpcmVkKFdlYkNvcmU6OlRp
bWVyPFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI+JikKLXsKLSAgICBpZiAobV9zZXJ2aWNlc092
ZXJsYXkpCi0gICAgICAgIG1fc2VydmljZXNPdmVybGF5LT5zZXROZWVkc0Rpc3BsYXkoKTsKLX0K
LQotdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpkcmF3SGlnaGxpZ2h0KEhpZ2hsaWdo
dCYgaGlnaGxpZ2h0LCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCkK
K3ZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZGV0ZXJtaW5lQWN0aXZlSGlnaGxpZ2h0
VGltZXJGaXJlZChUaW1lcjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyPiYpCiB7CiAgICAgYm9v
bCBtb3VzZUlzT3ZlckJ1dHRvbjsKLSAgICBpZiAoIW1vdXNlSXNPdmVySGlnaGxpZ2h0KGhpZ2hs
aWdodCwgbW91c2VJc092ZXJCdXR0b24pKSB7Ci0gICAgICAgIExPRyhTZXJ2aWNlcywgIlNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXI6OmRyYXdIaWdobGlnaHQgLSBNb3VzZSBpcyBub3Qgb3ZlciBo
aWdobGlnaHQsIHNvIGRyYXdpbmcgbm90aGluZyIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgYXV0byByZW1haW5pbmdUaW1lVW50aWxIaWdobGlnaHRTaG91bGRCZVNob3duID0gdGhp
cy0+cmVtYWluaW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93bigpOwotICAgIGlmIChy
ZW1haW5pbmdUaW1lVW50aWxIaWdobGlnaHRTaG91bGRCZVNob3duID4gc3RkOjpjaHJvbm86OnN0
ZWFkeV9jbG9jazo6ZHVyYXRpb246Onplcm8oKSkgewotICAgICAgICBtX3JlcGFpbnRIaWdobGln
aHRUaW1lci5zdGFydE9uZVNob3QocmVtYWluaW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVT
aG93bik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBDR0NvbnRleHRSZWYgY2dDb250
ZXh0ID0gZ3JhcGhpY3NDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpOwotICAgIAotICAgIENHTGF5
ZXJSZWYgaGlnaGxpZ2h0TGF5ZXIgPSBEREhpZ2hsaWdodEdldExheWVyV2l0aENvbnRleHQoaGln
aGxpZ2h0LmRkSGlnaGxpZ2h0KCksIGNnQ29udGV4dCk7Ci0gICAgQ0dSZWN0IGhpZ2hsaWdodEJv
dW5kaW5nUmVjdCA9IERESGlnaGxpZ2h0R2V0Qm91bmRpbmdSZWN0KGhpZ2hsaWdodC5kZEhpZ2hs
aWdodCgpKTsKLQotICAgIENHQ29udGV4dERyYXdMYXllckluUmVjdChjZ0NvbnRleHQsIGhpZ2hs
aWdodEJvdW5kaW5nUmVjdCwgaGlnaGxpZ2h0TGF5ZXIpOworICAgIGRldGVybWluZUFjdGl2ZUhp
Z2hsaWdodChtb3VzZUlzT3ZlckJ1dHRvbik7CiB9CiAKLXZvaWQgU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkqIG92ZXJsYXksIFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBkaXJ0eVJl
Y3QpCit2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmRyYXdSZWN0KFBhZ2VPdmVybGF5
KiBvdmVybGF5LCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgSW50UmVj
dCYgZGlydHlSZWN0KQogewotICAgIGJvb2wgbW91c2VJc092ZXJCdXR0b247Ci0gICAgZGV0ZXJt
aW5lQWN0aXZlSGlnaGxpZ2h0KG1vdXNlSXNPdmVyQnV0dG9uKTsKLQotICAgIGlmIChtX2FjdGl2
ZUhpZ2hsaWdodCkKLSAgICAgICAgZHJhd0hpZ2hsaWdodCgqbV9hY3RpdmVIaWdobGlnaHQsIGdy
YXBoaWNzQ29udGV4dCk7CiB9CiAKIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6Y2xl
YXJBY3RpdmVIaWdobGlnaHQoKQpAQCAtMzU3LDcgKzQ0OCw3IEBAIHZvaWQgU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6cmVtb3ZlQWxsUG90ZW50aWFsSGlnaGxpZ2h0c09mVHlwZShIaWdobGln
aHQ6OlR5CiAKIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQaG9uZU51bWJl
ckhpZ2hsaWdodHMoKQogewotICAgIHJlbW92ZUFsbFBvdGVudGlhbEhpZ2hsaWdodHNPZlR5cGUo
SGlnaGxpZ2h0OjpUeXBlOjpUZWxlcGhvbmVOdW1iZXIpOworICAgIEhhc2hTZXQ8UmVmUHRyPEhp
Z2hsaWdodD4+IG5ld1BvdGVudGlhbEhpZ2hsaWdodHM7CiAKICAgICBGcmFtZSogbWFpbkZyYW1l
ID0gbV93ZWJQYWdlLm1haW5GcmFtZSgpOwogICAgIEZyYW1lVmlldyYgbWFpbkZyYW1lVmlldyA9
ICptYWluRnJhbWUtPnZpZXcoKTsKQEAgLTM4MSwxMCArNDcyLDMyIEBAIHZvaWQgU2VydmljZXNP
dmVybGF5Q29udHJvbGxlcjo6YnVpbGRQaG9uZU51bWJlckhpZ2hsaWdodHMoKQogICAgICAgICAg
ICAgQ0dSZWN0IGNnUmVjdCA9IHJlY3Q7CiAgICAgICAgICAgICBSZXRhaW5QdHI8RERIaWdobGln
aHRSZWY+IGRkSGlnaGxpZ2h0ID0gYWRvcHRDRihEREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0lu
VmlzaWJsZVJlY3RXaXRoU3R5bGVBbmREaXJlY3Rpb24obnVsbHB0ciwgJmNnUmVjdCwgMSwgbWFp
bkZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoKSwgRERIaWdobGlnaHRPdXRsaW5lV2l0aEFy
cm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMpKTsKIAotICAgICAg
ICAgICAgbV9wb3RlbnRpYWxIaWdobGlnaHRzLmFkZChIaWdobGlnaHQ6OmNyZWF0ZUZvclRlbGVw
aG9uZU51bWJlcihkZEhpZ2hsaWdodCwgcmFuZ2UpKTsKKyAgICAgICAgICAgIG5ld1BvdGVudGlh
bEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKCp0aGlz
LCBkZEhpZ2hsaWdodCwgcmFuZ2UpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIElmIGFu
eSBvbGQgSGlnaGxpZ2h0cyBhcmUgZXF1aXZhbGVudCAoYnkgUmFuZ2UpIHRvIGEgbmV3IEhpZ2hs
aWdodCwgcmV1c2UgdGhlIG9sZAorICAgIC8vIG9uZSBzbyB0aGF0IGFueSBtZXRhZGF0YSBpcyBy
ZXRhaW5lZC4KKyAgICBIYXNoU2V0PFJlZlB0cjxIaWdobGlnaHQ+PiByZXVzZWRQb3RlbnRpYWxI
aWdobGlnaHRzOworCisgICAgZm9yIChhdXRvJiBvbGRIaWdobGlnaHQgOiBtX3BvdGVudGlhbEhp
Z2hsaWdodHMpIHsKKyAgICAgICAgaWYgKG9sZEhpZ2hsaWdodC0+dHlwZSgpICE9IEhpZ2hsaWdo
dDo6VHlwZTo6VGVsZXBob25lTnVtYmVyKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgZm9yIChhdXRvJiBuZXdIaWdobGlnaHQgOiBuZXdQb3RlbnRpYWxIaWdobGlnaHRzKSB7Cisg
ICAgICAgICAgICBpZiAoaGlnaGxpZ2h0c0FyZUVxdWl2YWxlbnQob2xkSGlnaGxpZ2h0LmdldCgp
LCBuZXdIaWdobGlnaHQuZ2V0KCkpKSB7CisgICAgICAgICAgICAgICAgcmV1c2VkUG90ZW50aWFs
SGlnaGxpZ2h0cy5hZGQob2xkSGlnaGxpZ2h0KTsKKyAgICAgICAgICAgICAgICBuZXdQb3RlbnRp
YWxIaWdobGlnaHRzLnJlbW92ZShuZXdIaWdobGlnaHQpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCisgICAgcmVtb3ZlQWxsUG90ZW50
aWFsSGlnaGxpZ2h0c09mVHlwZShIaWdobGlnaHQ6OlR5cGU6OlRlbGVwaG9uZU51bWJlcik7CisK
KyAgICBtX3BvdGVudGlhbEhpZ2hsaWdodHMuYWRkKG5ld1BvdGVudGlhbEhpZ2hsaWdodHMuYmVn
aW4oKSwgbmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5lbmQoKSk7CisgICAgbV9wb3RlbnRpYWxIaWdo
bGlnaHRzLmFkZChyZXVzZWRQb3RlbnRpYWxIaWdobGlnaHRzLmJlZ2luKCksIHJldXNlZFBvdGVu
dGlhbEhpZ2hsaWdodHMuZW5kKCkpOworCiAgICAgZGlkUmVidWlsZFBvdGVudGlhbEhpZ2hsaWdo
dHMoKTsKIH0KIApAQCAtNDAyLDcgKzUxNSw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6YnVpbGRTZWxlY3Rpb25IaWdobGlnaHQoKQogICAgICAgICBDR1JlY3QgdmlzaWJsZVJl
Y3QgPSBtX3dlYlBhZ2UuY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT52aXNpYmxlQ29u
dGVudFJlY3QoKTsKICAgICAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdo
dCA9IGFkb3B0Q0YoRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0
eWxlQW5kRGlyZWN0aW9uKG51bGxwdHIsIGNnUmVjdHMuYmVnaW4oKSwgY2dSZWN0cy5zaXplKCks
IHZpc2libGVSZWN0LCBEREhpZ2hsaWdodE5vT3V0bGluZVdpdGhBcnJvdywgWUVTLCBOU1dyaXRp
bmdEaXJlY3Rpb25OYXR1cmFsLCBOTywgWUVTKSk7CiAgICAgICAgIAotICAgICAgICBtX3BvdGVu
dGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKGRkSGlnaGxp
Z2h0KSk7CisgICAgICAgIG1fcG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQoSGlnaGxpZ2h0OjpjcmVh
dGVGb3JTZWxlY3Rpb24oKnRoaXMsIGRkSGlnaGxpZ2h0KSk7CiAgICAgfQogCiAgICAgZGlkUmVi
dWlsZFBvdGVudGlhbEhpZ2hsaWdodHMoKTsKQEAgLTQyNSwxOSArNTM4LDE5IEBAIHZvaWQgU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZGlkUmVidWlsZFBvdGVudGlhbEhpZ2hsaWdodHMoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBjcmVhdGVPdmVybGF5SWZOZWVkZWQoKTsKKworICAgIGJv
b2wgbW91c2VJc092ZXJCdXR0b247CisgICAgZGV0ZXJtaW5lQWN0aXZlSGlnaGxpZ2h0KG1vdXNl
SXNPdmVyQnV0dG9uKTsKIH0KIAogdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpjcmVh
dGVPdmVybGF5SWZOZWVkZWQoKQogewotICAgIGlmIChtX3NlcnZpY2VzT3ZlcmxheSkgewotICAg
ICAgICBtX3NlcnZpY2VzT3ZlcmxheS0+c2V0TmVlZHNEaXNwbGF5KCk7CisgICAgaWYgKG1fc2Vy
dmljZXNPdmVybGF5KQogICAgICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgUmVmUHRyPFBhZ2VP
dmVybGF5PiBvdmVybGF5ID0gUGFnZU92ZXJsYXk6OmNyZWF0ZSh0aGlzLCBQYWdlT3ZlcmxheTo6
T3ZlcmxheVR5cGU6OkRvY3VtZW50KTsKICAgICBtX3NlcnZpY2VzT3ZlcmxheSA9IG92ZXJsYXku
Z2V0KCk7CiAgICAgbV93ZWJQYWdlLmluc3RhbGxQYWdlT3ZlcmxheShvdmVybGF5LnJlbGVhc2Uo
KSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwotICAgIG1fc2VydmljZXNPdmVy
bGF5LT5zZXROZWVkc0Rpc3BsYXkoKTsKIH0KIAogVmVjdG9yPFJlZlB0cjxSYW5nZT4+IFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXI6OnRlbGVwaG9uZU51bWJlclJhbmdlc0ZvckZvY3VzZWRGcmFt
ZSgpCkBAIC00NjcsMTMgKzU4MCwxMyBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6
OmRldGVybWluZUFjdGl2ZUhpZ2hsaWdodChib29sJiBtb3VzZUlzT3ZlckFjdGl2ZQogewogICAg
IG1vdXNlSXNPdmVyQWN0aXZlSGlnaGxpZ2h0QnV0dG9uID0gZmFsc2U7CiAKLSAgICBSZWZQdHI8
SGlnaGxpZ2h0PiBvbGRBY3RpdmVIaWdobGlnaHQgPSBtX2FjdGl2ZUhpZ2hsaWdodC5yZWxlYXNl
KCk7CisgICAgUmVmUHRyPEhpZ2hsaWdodD4gbmV3QWN0aXZlSGlnaGxpZ2h0OwogCiAgICAgZm9y
IChhdXRvJiBoaWdobGlnaHQgOiBtX3BvdGVudGlhbEhpZ2hsaWdodHMpIHsKICAgICAgICAgaWYg
KGhpZ2hsaWdodC0+dHlwZSgpID09IEhpZ2hsaWdodDo6VHlwZTo6U2VsZWN0aW9uKSB7CiAgICAg
ICAgICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGZvdW5kIGEgbmV3IGFjdGl2ZSBoaWdobGlnaHQs
IGFuZCBpdCdzCiAgICAgICAgICAgICAvLyBhIHRlbGVwaG9uZSBudW1iZXIgaGlnaGxpZ2h0LCBw
cmVmZXIgdGhhdCBvdmVyIHRoaXMgc2VsZWN0aW9uIGhpZ2hsaWdodC4KLSAgICAgICAgICAgIGlm
IChtX2FjdGl2ZUhpZ2hsaWdodCAmJiBtX2FjdGl2ZUhpZ2hsaWdodC0+dHlwZSgpID09IEhpZ2hs
aWdodDo6VHlwZTo6VGVsZXBob25lTnVtYmVyKQorICAgICAgICAgICAgaWYgKG5ld0FjdGl2ZUhp
Z2hsaWdodCAmJiBuZXdBY3RpdmVIaWdobGlnaHQtPnR5cGUoKSA9PSBIaWdobGlnaHQ6OlR5cGU6
OlRlbGVwaG9uZU51bWJlcikKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAg
ICAgLy8gSWYgdGhpcyBoaWdobGlnaHQgaGFzIG5vIGNvbXBhdGlibGUgc2VydmljZXMsIGl0IGNh
bid0IGJlIGFjdGl2ZSwgdW5sZXNzIHdlIGhhdmUgdGVsZXBob25lIG51bWJlciBoaWdobGlnaHRz
IHRvIHNob3cgaW4gdGhlIGNvbWJpbmVkIG1lbnUuCkBAIC00ODYsMTQgKzU5OSwzOCBAQCB2b2lk
IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmRldGVybWluZUFjdGl2ZUhpZ2hsaWdodChib29s
JiBtb3VzZUlzT3ZlckFjdGl2ZQogICAgICAgICBpZiAoIW1vdXNlSXNPdmVySGlnaGxpZ2h0KCpo
aWdobGlnaHQsIG1vdXNlSXNPdmVyQnV0dG9uKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0g
ICAgICAgIG1fYWN0aXZlSGlnaGxpZ2h0ID0gaGlnaGxpZ2h0OworICAgICAgICBuZXdBY3RpdmVI
aWdobGlnaHQgPSBoaWdobGlnaHQ7CiAgICAgICAgIG1vdXNlSXNPdmVyQWN0aXZlSGlnaGxpZ2h0
QnV0dG9uID0gbW91c2VJc092ZXJCdXR0b247CiAgICAgfQogCi0gICAgaWYgKCFoaWdobGlnaHRz
QXJlRXF1aXZhbGVudChvbGRBY3RpdmVIaWdobGlnaHQuZ2V0KCksIG1fYWN0aXZlSGlnaGxpZ2h0
LmdldCgpKSkgewotICAgICAgICBtX2xhc3RBY3RpdmVIaWdobGlnaHRDaGFuZ2VUaW1lID0gc3Rk
OjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7Ci0gICAgICAgIG1fc2VydmljZXNPdmVybGF5
LT5zZXROZWVkc0Rpc3BsYXkoKTsKKyAgICBpZiAoIXRoaXMtPmhpZ2hsaWdodHNBcmVFcXVpdmFs
ZW50KG1fYWN0aXZlSGlnaGxpZ2h0LmdldCgpLCBuZXdBY3RpdmVIaWdobGlnaHQuZ2V0KCkpKSB7
CisgICAgICAgIC8vIFdoZW4gdHJhbnNpdGlvbmluZyB0byBhIG5ldyBoaWdobGlnaHQsIHdlIG1p
Z2h0IGVuZCB1cCBpbiBkZXRlcm1pbmVBY3RpdmVIaWdobGlnaHQgbXVsdGlwbGUgdGltZXMKKyAg
ICAgICAgLy8gYmVmb3JlIHRoZSBuZXcgaGlnaGxpZ2h0IGFjdHVhbGx5IGJlY29tZXMgYWN0aXZl
LiBLZWVwIHRyYWNrIG9mIHRoZSBsYXN0IG5leHQtYnV0LW5vdC15ZXQtYWN0aXZlCisgICAgICAg
IC8vIGhpZ2hsaWdodCwgYW5kIG9ubHkgcmVzZXQgdGhlIGFjdGl2ZSBoaWdobGlnaHQgaHlzdGVy
ZXNpcyB3aGVuIHRoYXQgY2hhbmdlcy4KKyAgICAgICAgaWYgKG1fbmV4dEFjdGl2ZUhpZ2hsaWdo
dCAhPSBuZXdBY3RpdmVIaWdobGlnaHQpIHsKKyAgICAgICAgICAgIG1fbmV4dEFjdGl2ZUhpZ2hs
aWdodCA9IG5ld0FjdGl2ZUhpZ2hsaWdodDsKKyAgICAgICAgICAgIG1fbmV4dEFjdGl2ZUhpZ2hs
aWdodENoYW5nZVRpbWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKKyAgICAg
ICAgfQorCiAgICAgICAgIG1fY3VycmVudE1vdXNlRG93bk9uQnV0dG9uSGlnaGxpZ2h0ID0gbnVs
bHB0cjsKKworICAgICAgICBpZiAobV9hY3RpdmVIaWdobGlnaHQpIHsKKyAgICAgICAgICAgIG1f
YWN0aXZlSGlnaGxpZ2h0LT5mYWRlT3V0KCk7CisgICAgICAgICAgICBtX2FjdGl2ZUhpZ2hsaWdo
dCA9IG51bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIHJlbWFpbmluZ1RpbWVVbnRp
bEhpZ2hsaWdodFNob3VsZEJlU2hvd24gPSB0aGlzLT5yZW1haW5pbmdUaW1lVW50aWxIaWdobGln
aHRTaG91bGRCZVNob3duKG5ld0FjdGl2ZUhpZ2hsaWdodC5nZXQoKSk7CisgICAgICAgIGlmIChy
ZW1haW5pbmdUaW1lVW50aWxIaWdobGlnaHRTaG91bGRCZVNob3duID4gc3RkOjpjaHJvbm86OnN0
ZWFkeV9jbG9jazo6ZHVyYXRpb246Onplcm8oKSkgeworICAgICAgICAgICAgbV9kZXRlcm1pbmVB
Y3RpdmVIaWdobGlnaHRUaW1lci5zdGFydE9uZVNob3QocmVtYWluaW5nVGltZVVudGlsSGlnaGxp
Z2h0U2hvdWxkQmVTaG93bik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBtX2FjdGl2ZUhpZ2hsaWdodCA9IG1fbmV4dEFjdGl2ZUhpZ2hsaWdodC5yZWxlYXNlKCk7
CisKKyAgICAgICAgaWYgKG1fYWN0aXZlSGlnaGxpZ2h0KSB7CisgICAgICAgICAgICBtX3NlcnZp
Y2VzT3ZlcmxheS0+bGF5ZXIoKS0+YWRkQ2hpbGQobV9hY3RpdmVIaWdobGlnaHQtPmxheWVyKCkp
OworICAgICAgICAgICAgbV9hY3RpdmVIaWdobGlnaHQtPmZhZGVJbigpOworICAgICAgICB9CiAg
ICAgfQogfQogCkBAIC01MTUsNyArNjUyLDcgQEAgYm9vbCBTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjptb3VzZUV2ZW50KFBhZ2VPdmVybGF5KiwgY29uc3QgV2ViTW91c2VFdmVudCYgZXYKICAg
ICAgICAgUmVmUHRyPEhpZ2hsaWdodD4gbW91c2VEb3duSGlnaGxpZ2h0ID0gbV9jdXJyZW50TW91
c2VEb3duT25CdXR0b25IaWdobGlnaHQ7CiAgICAgICAgIG1fY3VycmVudE1vdXNlRG93bk9uQnV0
dG9uSGlnaGxpZ2h0ID0gbnVsbHB0cjsKIAotICAgICAgICBpZiAobW91c2VJc092ZXJBY3RpdmVI
aWdobGlnaHRCdXR0b24gJiYgbW91c2VEb3duSGlnaGxpZ2h0ICYmIHJlbWFpbmluZ1RpbWVVbnRp
bEhpZ2hsaWdodFNob3VsZEJlU2hvd24oKSA8PSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpk
dXJhdGlvbjo6emVybygpKSB7CisgICAgICAgIGlmIChtb3VzZUlzT3ZlckFjdGl2ZUhpZ2hsaWdo
dEJ1dHRvbiAmJiBtb3VzZURvd25IaWdobGlnaHQpIHsKICAgICAgICAgICAgIGhhbmRsZUNsaWNr
KG1fbW91c2VQb3NpdGlvbiwgKm1vdXNlRG93bkhpZ2hsaWdodCk7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtNTM2LDcgKzY3Myw2IEBAIGJvb2wgU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6bW91c2VFdmVudChQYWdlT3ZlcmxheSosIGNvbnN0IFdlYk1vdXNlRXZl
bnQmIGV2CiAgICAgaWYgKGV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6TW91c2VEb3duKSB7CiAg
ICAgICAgIGlmIChtX2FjdGl2ZUhpZ2hsaWdodCAmJiBtb3VzZUlzT3ZlckFjdGl2ZUhpZ2hsaWdo
dEJ1dHRvbikgewogICAgICAgICAgICAgbV9jdXJyZW50TW91c2VEb3duT25CdXR0b25IaWdobGln
aHQgPSBtX2FjdGl2ZUhpZ2hsaWdodDsKLSAgICAgICAgICAgIG1fc2VydmljZXNPdmVybGF5LT5z
ZXROZWVkc0Rpc3BsYXkoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAK
QEAgLTU0Niw3ICs2ODIsNyBAQCBib29sIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Om1vdXNl
RXZlbnQoUGFnZU92ZXJsYXkqLCBjb25zdCBXZWJNb3VzZUV2ZW50JiBldgogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGljayhj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpY2tQb2ludCwgSGlnaGxpZ2h0JiBoaWdobGlnaHQp
Cit2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmhhbmRsZUNsaWNrKGNvbnN0IEludFBv
aW50JiBjbGlja1BvaW50LCBIaWdobGlnaHQmIGhpZ2hsaWdodCkKIHsKICAgICBGcmFtZVZpZXcq
IGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCk7CiAgICAgaWYgKCFmcmFtZVZp
ZXcpCkBAIC01NjYsNiArNzAyLDE4IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6
aGFuZGxlQ2xpY2soY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWNrUG9pbnQsCiAgICAgICAg
IG1fd2ViUGFnZS5oYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayhoaWdobGlnaHQucmFuZ2UoKS0+
dGV4dCgpLCB3aW5kb3dQb2ludCk7CiB9CiAKK3ZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxl
cjo6ZGlkQ3JlYXRlSGlnaGxpZ2h0KEhpZ2hsaWdodCogaGlnaGxpZ2h0KQoreworICAgIEFTU0VS
VCghbV9oaWdobGlnaHRzLmNvbnRhaW5zKGhpZ2hsaWdodCkpOworICAgIG1faGlnaGxpZ2h0cy5h
ZGQoaGlnaGxpZ2h0KTsKK30KKwordm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjp3aWxs
RGVzdHJveUhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hsaWdodCkKK3sKKyAgICBBU1NFUlQobV9o
aWdobGlnaHRzLmNvbnRhaW5zKGhpZ2hsaWdodCkpOworICAgIG1faGlnaGxpZ2h0cy5yZW1vdmUo
aGlnaGxpZ2h0KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyAjaWYg
RU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpIHx8IEVOQUJMRShURUxFUEhPTkVfTlVNQkVSX0RFVEVD
VElPTikgJiYgUExBVEZPUk0oTUFDKQo=
</data>
<flag name="review"
          id="261043"
          type_id="1"
          status="+"
          setter="enrica"
    />
          </attachment>
      

    </bug>

</bugzilla>