<?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>135499</bug_id>
          
          <creation_ts>2014-08-01 01:32:59 -0700</creation_ts>
          <short_desc>Make it easer to add switches to MiniBrowser</short_desc>
          <delta_ts>2014-08-01 11:21:51 -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>Tools / Tests</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>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1026212</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-01 01:32:59 -0700</bug_when>
    <thetext>Put all of the settings in one place, share more code between WK{1,2}BrowserWindowController; make them all persistent and as global as they can be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026213</commentid>
    <comment_count>1</comment_count>
      <attachid>235882</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-01 01:52:29 -0700</bug_when>
    <thetext>Created attachment 235882
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026214</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-01 01:53:41 -0700</bug_when>
    <thetext>Attachment 235882 did not pass style-queue:


ERROR: Tools/MiniBrowser/mac/SettingsController.m:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 10 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>1026283</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-01 11:21:51 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/171926</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235882</attachid>
            <date>2014-08-01 01:52:29 -0700</date>
            <delta_ts>2014-08-01 08:58:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>minibrowser-prefs.diff</filename>
            <type>text/plain</type>
            <size>44698</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1ZjQy
MmFjLi5hMmI1OWM1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIzIEBACisyMDE0LTA4LTAxICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgaXQgZWFzZXIgdG8gYWRkIHN3aXRj
aGVzIHRvIE1pbmlCcm93c2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzU0OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBzaW5nbGUgY2xhc3MgdG8gbWFuYWdlIGEgc2V0IG9mIHBlcnNpc3Rl
bnQsIGdsb2JhbCBzZXR0aW5ncyBmb3IgTWluaUJyb3dzZXIuCisgICAgICAgIEFkZCBhIG5ldyBt
ZW51IHRoYXQgY29udGFpbnMgaXRlbXMgdG8gdG9nZ2xlIHRoZSBhZm9yZW1lbnRpb25lZCBzZXR0
aW5ncyAobW92aW5nIHRoZW0gb3V0IG9mIHRoZSBEZWJ1ZyBtZW51KS4KKworICAgICAgICAqIE1p
bmlCcm93c2VyL01pbmlCcm93c2VyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
IEFkZCBTZXR0aW5nc0NvbnRyb2xsZXIue20sIGh9LgorCisgICAgICAgICogTWluaUJyb3dzZXIv
bWFjL0FwcERlbGVnYXRlLmg6CisgICAgICAgIE1vdmUgX2Jyb3dzZXJXaW5kb3dDb250cm9sbGVy
cyB0byB0aGUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIEdldCByaWQgb2YgdG9nZ2xlVXNlV2Vi
S2l0MkJ5RGVmYXVsdCwgYmVjYXVzZSBTZXR0aW5nc0NvbnRyb2xsZXIgbm93IHRha2VzIGNhcmUK
KyAgICAgICAgb2YgdGhhdDsgaW5zdGVhZCwgd2UnbGwgcmVjZWl2ZSBkaWRDaGFuZ2VTZXR0aW5n
cy4KKworICAgICAgICAqIE1pbmlCcm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5tOgorICAgICAgICBN
b3ZlIHRoZSBkZWZhdWx0IFVSTCwgZGVmYXVsdCBVUkwgcHJlZmVyZW5jZSBrZXksIGFuZCB1c2Ut
V2ViS2l0Mi1ieS1kZWZhdWx0CisgICAgICAgIHByZWZlcmVuY2Uga2V5IGludG8gU2V0dGluZ3ND
b250cm9sbGVyLgorCisgICAgICAgICgtW0Jyb3dzZXJBcHBEZWxlZ2F0ZSBhd2FrZUZyb21OaWJd
KToKKyAgICAgICAgQWRkIHRoZSBkeW5hbWljYWxseS1nZW5lcmF0ZWQgU2V0dGluZ3NDb250cm9s
bGVyIG1lbnUganVzdCB0byB0aGUgbGVmdCBvZiB0aGUgRGVidWcgbWVudS4KKworICAgICAgICAo
LVtCcm93c2VyQXBwRGVsZWdhdGUgbmV3V2luZG93Ol0pOgorICAgICAgICBBc2sgU2V0dGluZ3ND
b250cm9sbGVyIGlmIHdlIHNob3VsZCB1c2UgV2ViS2l0MiBieSBkZWZhdWx0LCBhbmQgd2hhdCB0
aGUgaW5pdGlhbCBVUkwgdG8gbG9hZCBpcy4KKworICAgICAgICAoLVtCcm93c2VyQXBwRGVsZWdh
dGUgYXBwbGljYXRpb25EaWRGaW5pc2hMYXVuY2hpbmc6XSk6CisgICAgICAgIFNldHRpbmdzQ29u
dHJvbGxlciBub3cgdGFrZXMgY2FyZSBvZiByZWFkaW5nIHRoZSBkZWZhdWx0IFVSTCBwcmVmZXJl
bmNlLgorICAgICAgICBXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciBub3cgdGFrZXMgY2FyZSBv
ZiBlbmFibGluZyB0aGUgZGV2ZWxvcGVyIGV4dHJhcywgdmlhIFdlYlByZWZlcmVuY2VzLgorCisg
ICAgICAgICgtW0Jyb3dzZXJBcHBEZWxlZ2F0ZSBkaWRDaGFuZ2VTZXR0aW5nc10pOgorICAgICAg
ICBXaGVuIHNldHRpbmdzIGNoYW5nZSwgdXBkYXRlIHRoZSBrZXkgZXF1aXZhbGVudHMgZm9yIHRo
ZSBuZXctd2luZG93IG1lbnUgaXRlbXMsIGFzIHRoZXkKKyAgICAgICAgbWlnaHQgaGF2ZSBjaGFu
Z2VkIChhcyB1c2UtV2ViS2l0Mi1ieS1kZWZhdWx0IGlzIG9uZSBvZiB0aGUgc2V0dGluZ3MpLgor
CisgICAgICAgIERpc3BhdGNoIHNldHRpbmdzIGNoYW5nZSBub3RpZmljYXRpb25zIHRvIGFsbCBs
aXZlIEJyb3dzZXJDb250cm9sbGVycy4KKworICAgICAgICAoLVtCcm93c2VyQXBwRGVsZWdhdGUg
X3VwZGF0ZU5ld1dpbmRvd0tleUVxdWl2YWxlbnRzXSk6CisgICAgICAgICgtW0Jyb3dzZXJBcHBE
ZWxlZ2F0ZSB0b2dnbGVVc2VXZWJLaXQyQnlEZWZhdWx0Ol0pOiBEZWxldGVkLgorICAgICAgICAo
LVtCcm93c2VyQXBwRGVsZWdhdGUgX3VzZVdlYktpdDJCeURlZmF1bHRdKTogRGVsZXRlZC4KKyAg
ICAgICAgKC1bQnJvd3NlckFwcERlbGVnYXRlIHZhbGlkYXRlTWVudUl0ZW06XSk6IERlbGV0ZWQu
CisgICAgICAgIEFsbCBtZW51IGl0ZW0gdmFsaWRhdGlvbiBmb3Igc2V0dGluZ3MgaXMgbW92ZWQg
aW50byBTZXR0aW5nc0NvbnRyb2xsZXIuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9tYWMvQnJv
d3NlcldpbmRvd0NvbnRyb2xsZXIuaDoKKyAgICAgICAgU2ltcGxpZnkgdGhlIEJyb3dzZXJXaW5k
b3dDb250cm9sbGVyIGludGVyZmFjZTsgInRvZ2dsaW5nIiBzZXR0aW5ncyB3aWxsIGhhcHBlbiBp
bnNpZGUgU2V0dGluZ3NDb250cm9sbGVyLAorICAgICAgICB0aGUgQnJvd3NlcldpbmRvd0NvbnRy
b2xsZXIgc3ViY2xhc3NlcyB3aWxsIGJlIGFibGUgdG8gYSkga25vdyB3aGVuIGFueSBzZXR0aW5n
IGNoYW5nZXMsIGIpIHF1ZXJ5IHRoZSBjdXJyZW50IHNldHRpbmcgc3RhdGUuCisKKyAgICAgICAg
KiBNaW5pQnJvd3Nlci9tYWMvTWFpbk1lbnUueGliOgorICAgICAgICBSZW1vdmUgdGhlIHNldHRp
bmdzIG1lbnUgaXRlbXMgZnJvbSB0aGUgIkRlYnVnIiBtZW51LgorCisgICAgICAgICogTWluaUJy
b3dzZXIvbWFjL1NldHRpbmdzQ29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNaW5pQnJv
d3Nlci9tYWMvU2V0dGluZ3NDb250cm9sbGVyLm06IEFkZGVkLgorICAgICAgICAoK1tTZXR0aW5n
c0NvbnRyb2xsZXIgc2hhcmVkXSk6CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciBtZW51
XSk6CisKKyAgICAgICAgKC1bU2V0dGluZ3NDb250cm9sbGVyIF9hZGRJdGVtV2l0aFRpdGxlOmFj
dGlvbjppbmRlbnRlZDpdKToKKyAgICAgICAgKC1bU2V0dGluZ3NDb250cm9sbGVyIF9hZGRIZWFk
ZXJXaXRoVGl0bGU6XSk6CisgICAgICAgIE5TTWVudUl0ZW0tY3JlYXRpbmcgaGVscGVycy4KKwor
ICAgICAgICAoLVtTZXR0aW5nc0NvbnRyb2xsZXIgX3BvcHVsYXRlTWVudV0pOgorICAgICAgICBC
dWlsZCB0aGUgbWVudS4gSWRlYWxseSB0aGlzIGFuZCB0aGUgdmFsaWRhdGlvbiBzdGVwIHdvdWxk
IGV2ZW50dWFsbHkgYmUgbWFkZSBtb3JlIGR5bmFtaWMuCisKKyAgICAgICAgKC1bU2V0dGluZ3ND
b250cm9sbGVyIHZhbGlkYXRlTWVudUl0ZW06XSk6CisgICAgICAgIFZhbGlkYXRlIG1lbnUgaXRl
bXM7IHNpbmNlIHRoZXkgY2FuIGJlIHVzZWQgdG8gdG9nZ2xlIHRoZSBkZWZhdWx0IHN0YXRlIG9m
IGEgc2V0dGluZywKKyAgICAgICAgd2UnbGwgYWx3YXlzIHJldHVybiBZRVMuIEhvd2V2ZXIsIHdl
IHdpbGwgdXNlIHRoaXMgb3Bwb3J0dW5pdHkgdG8gc2V0IHRoZSAnY2hlY2tlZCcgc3RhdGUKKyAg
ICAgICAgb2YgZWFjaCBpdGVtLgorCisKKyAgICAgICAgKC1bU2V0dGluZ3NDb250cm9sbGVyIF90
b2dnbGVCb29sZWFuRGVmYXVsdDpdKToKKyAgICAgICAgVG9nZ2xlIHRoZSBnaXZlbiBib29sZWFu
IGRlZmF1bHQsIGFuZCBub3RpZnkgQnJvd3NlckFwcERlbGVnYXRlIHRoYXQgc29tZXRoaW5nIGNo
YW5nZWQuCisKKyAgICAgICAgKC1bU2V0dGluZ3NDb250cm9sbGVyIHRvZ2dsZVVzZVdlYktpdDJC
eURlZmF1bHQ6XSk6CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciB1c2VXZWJLaXQyQnlE
ZWZhdWx0XSk6CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciB0b2dnbGVVc2VUcmFuc3Bh
cmVudFdpbmRvd3M6XSk6CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciB1c2VUcmFuc3Bh
cmVudFdpbmRvd3NdKToKKyAgICAgICAgKC1bU2V0dGluZ3NDb250cm9sbGVyIHRvZ2dsZVVzZVBh
Z2luYXRlZE1vZGU6XSk6CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciB1c2VQYWdpbmF0
ZWRNb2RlXSk6CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciB0b2dnbGVVc2VVSVNpZGVD
b21wb3NpdGluZzpdKToKKyAgICAgICAgKC1bU2V0dGluZ3NDb250cm9sbGVyIHVzZVVJU2lkZUNv
bXBvc2l0aW5nXSk6CisgICAgICAgICgtW1NldHRpbmdzQ29udHJvbGxlciB0b2dnbGVTaG93TGF5
ZXJCb3JkZXJzOl0pOgorICAgICAgICAoLVtTZXR0aW5nc0NvbnRyb2xsZXIgbGF5ZXJCb3JkZXJz
VmlzaWJsZV0pOgorICAgICAgICAoLVtTZXR0aW5nc0NvbnRyb2xsZXIgdG9nZ2xlU2hvd1RpbGVk
U2Nyb2xsaW5nSW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtTZXR0aW5nc0NvbnRyb2xsZXIgdGls
ZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlXSk6CisgICAgICAgICgtW1NldHRpbmdzQ29udHJv
bGxlciB0b2dnbGVFbmFibGVTdWJQaXhlbENTU09NTWV0cmljczpdKToKKyAgICAgICAgKC1bU2V0
dGluZ3NDb250cm9sbGVyIHN1YlBpeGVsQ1NTT01NZXRyaWNzRW5hYmxlZF0pOgorICAgICAgICAo
LVtTZXR0aW5nc0NvbnRyb2xsZXIgZGVmYXVsdFVSTF0pOgorICAgICAgICBUb2dnbGUgb3IgcmV0
dXJuIHRoZSBjdXJyZW50IHN0YXRlIG9mIGVhY2ggcHJlZmVyZW5jZS4KKworICAgICAgICAqIE1p
bmlCcm93c2VyL21hYy9XSzFCcm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtX
SzFCcm93c2VyV2luZG93Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKToKKyAgICAgICAgKC1bV0sx
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgdmFsaWRhdGVNZW51SXRlbTpdKToKKyAgICAgICAgKC1b
V0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgd2luZG93V2lsbENsb3NlOl0pOgorICAgICAgICAo
LVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciBmaW5kOl0pOgorICAgICAgICAoLVtXSzFCcm93
c2VyV2luZG93Q29udHJvbGxlciBkdW1wU291cmNlVG9Db25zb2xlOl0pOgorICAgICAgICAoLVtX
SzFCcm93c2VyV2luZG93Q29udHJvbGxlciBkaWRDaGFuZ2VTZXR0aW5nc10pOgorICAgICAgICAo
LVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciB3ZWJWaWV3OmRpZFJlY2VpdmVUaXRsZTpmb3JG
cmFtZTpdKToKKyAgICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgaXNQYWdpbmF0
ZWRdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgdG9n
Z2xlUGFnaW5hdGlvbk1vZGU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLMUJyb3dzZXJXaW5k
b3dDb250cm9sbGVyIHRvZ2dsZVRyYW5zcGFyZW50V2luZG93Ol0pOiBEZWxldGVkLgorICAgICAg
ICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciBpc1N1YnBpeGVsQ1NTT01FbGVtZW50TWV0
cmljc0VuYWJsZWRdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRy
b2xsZXIgdG9nZ2xlU3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDpdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgbGF5ZXJCb3JkZXJzVmlz
aWJsZV0pOiBEZWxldGVkLgorICAgICAgICAoLVtXSzFCcm93c2VyV2luZG93Q29udHJvbGxlciB0
b2dnbGVMYXllckJvcmRlcnNWaXNpYmlsaXR5Ol0pOiBEZWxldGVkLgorICAgICAgICAqIE1pbmlC
cm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtXSzJC
cm93c2VyV2luZG93Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKToKKyAgICAgICAgKC1bV0syQnJv
d3NlcldpbmRvd0NvbnRyb2xsZXIgdmFsaWRhdGVNZW51SXRlbTpdKToKKyAgICAgICAgKC1bV0sy
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgZm9yY2VSZXBhaW50Ol0pOgorICAgICAgICAoLVtXSzJC
cm93c2VyV2luZG93Q29udHJvbGxlciB3aW5kb3dXaWxsQ2xvc2U6XSk6CisgICAgICAgICgtW1dL
MkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGRpZENoYW5nZVNldHRpbmdzXSk6CisgICAgICAgICgt
W1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGlzUGFnaW5hdGVkXSk6IERlbGV0ZWQuCisgICAg
ICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIHRvZ2dsZVBhZ2luYXRpb25Nb2RlOl0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXSzJCcm93c2VyV2luZG93Q29udHJvbGxlciB0b2dnbGVU
cmFuc3BhcmVudFdpbmRvdzpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIgaXNVSVNpZGVDb21wb3NpdGluZ0VuYWJsZWRdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgdG9nZ2xlVUlTaWRlQ29tcG9zaXRpbmc6
XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGxheWVy
Qm9yZGVyc1Zpc2libGVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0syQnJvd3NlcldpbmRvd0Nv
bnRyb2xsZXIgdG9nZ2xlTGF5ZXJCb3JkZXJzVmlzaWJpbGl0eTpdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgdGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JW
aXNpYmxlXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVy
IHRvZ2dsZVRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJpbGl0eTpdKTogRGVsZXRlZC4KKwog
MjAxNC0wNy0zMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNaW5pQnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgZGF0YSBVUkxzCmRpZmYgLS1naXQgYS9U
b29scy9NaW5pQnJvd3Nlci9NaW5pQnJvd3Nlci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
VG9vbHMvTWluaUJyb3dzZXIvTWluaUJyb3dzZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBhMmUzNWVkLi40MThhMTE0IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9NaW5p
QnJvd3Nlci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL01pbmlCcm93c2Vy
L01pbmlCcm93c2VyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0LDYgKzE0LDcgQEAK
IAkJMUFGRkVGODgxODYxMUMzRDAwREE0NjVFIC8qIE1pbmlCcm93c2VyV2ViUHJvY2Vzc1BsdWdJ
bi5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRkVG
ODYxODYxMUMzRDAwREE0NjVFIC8qIE1pbmlCcm93c2VyV2ViUHJvY2Vzc1BsdWdJbi5tICovOyB9
OwogCQkxQUZGRUY4QjE4NjExRDhBMDBEQTQ2NUUgLyogTWluaUJyb3dzZXIud2tidW5kbGUgaW4g
Q29weSBCdW5kbGUgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRkVGNzUx
ODYwRUU2NzAwREE0NjVFIC8qIE1pbmlCcm93c2VyLndrYnVuZGxlICovOyB9OwogCQkyNTZBQzNE
QTBGNEI2QUMzMDBDRjMzNjkgLyogQXBwRGVsZWdhdGUubSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI1NkFDM0Q5MEY0QjZBQzMwMENGMzM2OSAvKiBBcHBE
ZWxlZ2F0ZS5tICovOyB9OworCQkyREMzNzM0MzE5OEI2MkQzMDBFQzMzRTkgLyogU2V0dGluZ3ND
b250cm9sbGVyLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyREMzNzM0MjE5OEI2MkQzMDBFQzMzRTkgLyogU2V0dGluZ3NDb250cm9sbGVyLm0gKi87IH07
CiAJCTUxRTI0NEZBMTFFRkNFMDcwMDgyMjhEMSAvKiBNQlRvb2xiYXJJdGVtLm0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUUyNDRGOTExRUZDRTA3MDA4
MjI4RDEgLyogTUJUb29sYmFySXRlbS5tICovOyB9OwogCQk4RDExMDcyRjA0ODZDRUI4MDBFNDcw
OTAgLyogQ29jb2EuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTA1OEM3QTFGRUE1NEYwMTExQ0EyQ0JCIC8qIENvY29hLmZyYW1ld29y
ayAqLzsgfTsKIAkJQkMzMjk0ODcxMTZBOTJFMjAwODYzNUQwIC8qIG1haW4ubSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzI5NDg2MTE2QTkyRTIwMDg2
MzVEMCAvKiBtYWluLm0gKi87IH07CkBAIC02OCw2ICs2OSw4IEBACiAJCTI1NkFDM0YwMEY0QjZB
RjUwMENGMzM2OSAvKiBNaW5pQnJvd3Nlcl9QcmVmaXgucGNoICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBNaW5pQnJvd3Nlcl9QcmVmaXgucGNoOyBwYXRoID0gbWFjL01pbmlCcm93
c2VyX1ByZWZpeC5wY2g7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5Qjk3MzI0RkRD
RkEzOTQxMUNBMkNFQSAvKiBBcHBLaXQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBBcHBL
aXQuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZy
YW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJMjlCOTczMjVGRENGQTM5
NDExQ0EyQ0VBIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBGb3Vu
ZGF0aW9uLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ZvdW5k
YXRpb24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQkyREMzNzM0
MTE5OEI2MkQzMDBFQzMzRTkgLyogU2V0dGluZ3NDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFNldHRpbmdzQ29udHJvbGxlci5oOyBwYXRoID0gbWFjL1NldHRp
bmdzQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREMzNzM0MjE5
OEI2MkQzMDBFQzMzRTkgLyogU2V0dGluZ3NDb250cm9sbGVyLm0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMub2JqYzsgbmFtZSA9IFNldHRpbmdzQ29udHJvbGxlci5tOyBwYXRoID0gbWFjL1NldHRp
bmdzQ29udHJvbGxlci5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUUyNDRGODEx
RUZDRTA3MDA4MjI4RDEgLyogTUJUb29sYmFySXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNQlRvb2xiYXJJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxRTI0NEY5MTFFRkNFMDcwMDgyMjhEMSAvKiBNQlRvb2xiYXJJdGVtLm0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IE1CVG9vbGJhckl0ZW0ubTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOEQxMTA3MzIwNDg2Q0VCODAwRTQ3MDkwIC8qIE1pbmlCcm93c2VyLmFw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBl
ci5hcHBsaWNhdGlvbjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gTWluaUJyb3dzZXIuYXBw
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMTE5LDYgKzEyMiw4IEBA
CiAJCQkJMEZFNjQzQTMxNjFGQUM2NjAwNTlFM0ZGIC8qIFdLMUJyb3dzZXJXaW5kb3dDb250cm9s
bGVyLm0gKi8sCiAJCQkJQkMzMjk0OTYxMTZBOTQxQjAwODYzNUQwIC8qIFdLMkJyb3dzZXJXaW5k
b3dDb250cm9sbGVyLmggKi8sCiAJCQkJQkMzMjk0OTcxMTZBOTQxQjAwODYzNUQwIC8qIFdLMkJy
b3dzZXJXaW5kb3dDb250cm9sbGVyLm0gKi8sCisJCQkJMkRDMzczNDExOThCNjJEMzAwRUMzM0U5
IC8qIFNldHRpbmdzQ29udHJvbGxlci5oICovLAorCQkJCTJEQzM3MzQyMTk4QjYyRDMwMEVDMzNF
OSAvKiBTZXR0aW5nc0NvbnRyb2xsZXIubSAqLywKIAkJCSk7CiAJCQluYW1lID0gTWluaUJyb3dz
ZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzA5LDYgKzMxNCw3IEBACiAJCQlm
aWxlcyA9ICgKIAkJCQkyNTZBQzNEQTBGNEI2QUMzMDBDRjMzNjkgLyogQXBwRGVsZWdhdGUubSBp
biBTb3VyY2VzICovLAogCQkJCTBGRTY0M0ExMTYxRkE4OTQwMDU5RTNGRiAvKiBCcm93c2VyV2lu
ZG93Q29udHJvbGxlci5tIGluIFNvdXJjZXMgKi8sCisJCQkJMkRDMzczNDMxOThCNjJEMzAwRUMz
M0U5IC8qIFNldHRpbmdzQ29udHJvbGxlci5tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMzMjk0ODcx
MTZBOTJFMjAwODYzNUQwIC8qIG1haW4ubSBpbiBTb3VyY2VzICovLAogCQkJCTUxRTI0NEZBMTFF
RkNFMDcwMDgyMjhEMSAvKiBNQlRvb2xiYXJJdGVtLm0gaW4gU291cmNlcyAqLywKIAkJCQkwRkU2
NDNBNDE2MUZBQzY2MDA1OUUzRkYgLyogV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0FwcERlbGVnYXRl
LmggYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUuaAppbmRleCA4ZWFkMGVmLi4z
ODJjMDkwIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUuaAor
KysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUuaApAQCAtMjQsMTQgKzI0LDEy
IEBACiAgKi8KIAogQGludGVyZmFjZSBCcm93c2VyQXBwRGVsZWdhdGUgOiBOU09iamVjdCA8TlNB
cHBsaWNhdGlvbkRlbGVnYXRlPiB7Ci0gICAgTlNNdXRhYmxlU2V0ICpfYnJvd3NlcldpbmRvd0Nv
bnRyb2xsZXJzOwotCiAgICAgSUJPdXRsZXQgTlNNZW51SXRlbSAqX25ld1dlYktpdDFXaW5kb3dJ
dGVtOwogICAgIElCT3V0bGV0IE5TTWVudUl0ZW0gKl9uZXdXZWJLaXQyV2luZG93SXRlbTsKIH0K
IAogLSAodm9pZClicm93c2VyV2luZG93V2lsbENsb3NlOihOU1dpbmRvdyAqKXdpbmRvdzsKIAot
LSAoSUJBY3Rpb24pdG9nZ2xlVXNlV2ViS2l0MkJ5RGVmYXVsdDooaWQpc2VuZGVyOworLSAodm9p
ZClkaWRDaGFuZ2VTZXR0aW5nczsKIAogQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dz
ZXIvbWFjL0FwcERlbGVnYXRlLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUu
bQppbmRleCBiMGI0ZDc2Li5jZjRiNDc0IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9t
YWMvQXBwRGVsZWdhdGUubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQXBwRGVsZWdhdGUu
bQpAQCAtMjUsMjEgKzI1LDIwIEBACiAKICNpbXBvcnQgIkFwcERlbGVnYXRlLmgiCiAKKyNpbXBv
cnQgIlNldHRpbmdzQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV0sxQnJvd3NlcldpbmRvd0NvbnRy
b2xsZXIuaCIKICNpbXBvcnQgIldLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgiCiAjaW1wb3J0
IDxXZWJLaXQvV2ViSGlzdG9yeS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdDIuaD4KIAotc3Rh
dGljIE5TU3RyaW5nICpkZWZhdWx0VVJMID0gQCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIjsKLXN0
YXRpYyBOU1N0cmluZyAqdXNlV2ViS2l0MkJ5RGVmYXVsdFByZWZlcmVuY2VLZXkgPSBAIlVzZVdl
YktpdDJCeURlZmF1bHQiOwotc3RhdGljIE5TU3RyaW5nICpkZWZhdWx0VVJMUHJlZmVyZW5jZUtl
eSA9IEAiRGVmYXVsdFVSTCI7Ci0KIGVudW0gewogICAgIFdlYktpdDFOZXdXaW5kb3dUYWcgPSAx
LAogICAgIFdlYktpdDJOZXdXaW5kb3dUYWcgPSAyCiB9OwogCi1AaW1wbGVtZW50YXRpb24gQnJv
d3NlckFwcERlbGVnYXRlCitAaW1wbGVtZW50YXRpb24gQnJvd3NlckFwcERlbGVnYXRlIHsKKyAg
ICBOU011dGFibGVTZXQgKl9icm93c2VyV2luZG93Q29udHJvbGxlcnM7Cit9CiAKIC0gKGlkKWlu
aXQKIHsKQEAgLTUxLDYgKzUwLDEzIEBAIC0gKGlkKWluaXQKICAgICByZXR1cm4gc2VsZjsKIH0K
IAorLSAodm9pZClhd2FrZUZyb21OaWIKK3sKKyAgICBOU01lbnVJdGVtICppdGVtID0gW1tOU01l
bnVJdGVtIGFsbG9jXSBpbml0XTsKKyAgICBbaXRlbSBzZXRTdWJtZW51OltbU2V0dGluZ3NDb250
cm9sbGVyIHNoYXJlZF0gbWVudV1dOworICAgIFtbTlNBcHAgbWFpbk1lbnVdIGluc2VydEl0ZW06
W2l0ZW0gYXV0b3JlbGVhc2VdIGF0SW5kZXg6W1tOU0FwcCBtYWluTWVudV0gaW5kZXhPZkl0ZW1X
aXRoVGl0bGU6QCJEZWJ1ZyJdXTsKK30KKwogLSAoSUJBY3Rpb24pbmV3V2luZG93OihpZClzZW5k
ZXIKIHsKICAgICBCcm93c2VyV2luZG93Q29udHJvbGxlciAqY29udHJvbGxlciA9IG5pbDsKQEAg
LTU4LDcgKzY0LDcgQEAgLSAoSUJBY3Rpb24pbmV3V2luZG93OihpZClzZW5kZXIKICAgICBCT09M
IHVzZVdlYktpdDIgPSBOTzsKIAogICAgIGlmICghW3NlbmRlciByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKHRhZyldKQotICAgICAgICB1c2VXZWJLaXQyID0gW3NlbGYgX3VzZVdlYktpdDJC
eURlZmF1bHRdOworICAgICAgICB1c2VXZWJLaXQyID0gW1NldHRpbmdzQ29udHJvbGxlciBzaGFy
ZWRdLnVzZVdlYktpdDJCeURlZmF1bHQ7CiAgICAgZWxzZQogICAgICAgICB1c2VXZWJLaXQyID0g
W3NlbmRlciB0YWddID09IFdlYktpdDJOZXdXaW5kb3dUYWc7CiAgICAgCkBAIC03NCw3ICs4MCw3
IEBAIC0gKElCQWN0aW9uKW5ld1dpbmRvdzooaWQpc2VuZGVyCiAgICAgW1tjb250cm9sbGVyIHdp
bmRvd10gbWFrZUtleUFuZE9yZGVyRnJvbnQ6c2VuZGVyXTsKICAgICBbX2Jyb3dzZXJXaW5kb3dD
b250cm9sbGVycyBhZGRPYmplY3Q6Y29udHJvbGxlcl07CiAgICAgCi0gICAgW2NvbnRyb2xsZXIg
bG9hZFVSTFN0cmluZzpkZWZhdWx0VVJMXTsKKyAgICBbY29udHJvbGxlciBsb2FkVVJMU3RyaW5n
OltTZXR0aW5nc0NvbnRyb2xsZXIgc2hhcmVkXS5kZWZhdWx0VVJMXTsKIH0KIAogLSAodm9pZCli
cm93c2VyV2luZG93V2lsbENsb3NlOihOU1dpbmRvdyAqKXdpbmRvdwpAQCAtODksMTEgKzk1LDYg
QEAgLSAodm9pZClhcHBsaWNhdGlvbkRpZEZpbmlzaExhdW5jaGluZzooTlNOb3RpZmljYXRpb24g
KilhTm90aWZpY2F0aW9uCiAgICAgW3dlYkhpc3RvcnkgcmVsZWFzZV07CiAKICAgICBbc2VsZiBf
dXBkYXRlTmV3V2luZG93S2V5RXF1aXZhbGVudHNdOwotICAgIAotICAgIFtbTlNVc2VyRGVmYXVs
dHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6QFlFUyBmb3JLZXk6QCJXZWJLaXREZXZl
bG9wZXJFeHRyYXNFbmFibGVkIl07Ci0gICAgTlNTdHJpbmcgKm5ld0RlZmF1bHRVUkwgPSBbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzdHJpbmdGb3JLZXk6ZGVmYXVsdFVS
TFByZWZlcmVuY2VLZXldOwotICAgIGlmIChuZXdEZWZhdWx0VVJMKQotICAgICAgICBkZWZhdWx0
VVJMID0gW25ld0RlZmF1bHRVUkwgcmV0YWluXTsKIAogICAgIFtzZWxmIG5ld1dpbmRvdzpzZWxm
XTsKIH0KQEAgLTE0OSwyNCArMTUwLDE4IEBAIC0gKElCQWN0aW9uKW9wZW5Eb2N1bWVudDooaWQp
c2VuZGVyCiAgICAgfV07CiB9CiAKLS0gKElCQWN0aW9uKXRvZ2dsZVVzZVdlYktpdDJCeURlZmF1
bHQ6KGlkKXNlbmRlcgorLSAodm9pZClkaWRDaGFuZ2VTZXR0aW5ncwogewotICAgIEJPT0wgbmV3
VXNlV2ViS2l0MkJ5RGVmYXVsdCA9ICFbc2VsZiBfdXNlV2ViS2l0MkJ5RGVmYXVsdF07Ci0gICAg
aWYgKCFuZXdVc2VXZWJLaXQyQnlEZWZhdWx0KQotICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0
YW5kYXJkVXNlckRlZmF1bHRzXSByZW1vdmVPYmplY3RGb3JLZXk6dXNlV2ViS2l0MkJ5RGVmYXVs
dFByZWZlcmVuY2VLZXldOwotICAgIGVsc2UKLSAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpuZXdVc2VXZWJLaXQyQnlEZWZhdWx0IGZvcktleTp1
c2VXZWJLaXQyQnlEZWZhdWx0UHJlZmVyZW5jZUtleV07CiAgICAgW3NlbGYgX3VwZGF0ZU5ld1dp
bmRvd0tleUVxdWl2YWxlbnRzXTsKLX0KIAotLSAoQk9PTClfdXNlV2ViS2l0MkJ5RGVmYXVsdAot
ewotICAgIHJldHVybiBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29s
Rm9yS2V5OnVzZVdlYktpdDJCeURlZmF1bHRQcmVmZXJlbmNlS2V5XTsKKyAgICAvLyBMZXQgYWxs
IG9mIHRoZSBCcm93c2VyV2luZG93Q29udHJvbGxlcnMga25vdyB0aGF0IGEgc2V0dGluZyBjaGFu
Z2VkLCBzbyB0aGV5IGNhbiBhdHRlbXB0IHRvIGR5bmFtaWNhbGx5IHVwZGF0ZS4KKyAgICBmb3Ig
KEJyb3dzZXJXaW5kb3dDb250cm9sbGVyPEJyb3dzZXJDb250cm9sbGVyPiAqYnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIgaW4gX2Jyb3dzZXJXaW5kb3dDb250cm9sbGVycykKKyAgICAgICAgW2Jyb3dz
ZXJXaW5kb3dDb250cm9sbGVyIGRpZENoYW5nZVNldHRpbmdzXTsKIH0KIAogLSAodm9pZClfdXBk
YXRlTmV3V2luZG93S2V5RXF1aXZhbGVudHMKIHsKLSAgICBpZiAoW3NlbGYgX3VzZVdlYktpdDJC
eURlZmF1bHRdKSB7CisgICAgaWYgKFtbU2V0dGluZ3NDb250cm9sbGVyIHNoYXJlZF0gdXNlV2Vi
S2l0MkJ5RGVmYXVsdF0pIHsKICAgICAgICAgW19uZXdXZWJLaXQxV2luZG93SXRlbSBzZXRLZXlF
cXVpdmFsZW50TW9kaWZpZXJNYXNrOk5TQ29tbWFuZEtleU1hc2sgfCBOU0FsdGVybmF0ZUtleU1h
c2tdOwogICAgICAgICBbX25ld1dlYktpdDJXaW5kb3dJdGVtIHNldEtleUVxdWl2YWxlbnRNb2Rp
Zmllck1hc2s6TlNDb21tYW5kS2V5TWFza107CiAgICAgfSBlbHNlIHsKQEAgLTE3NSwxMiArMTcw
LDQgQEAgLSAodm9pZClfdXBkYXRlTmV3V2luZG93S2V5RXF1aXZhbGVudHMKICAgICB9CiB9CiAK
LS0gKEJPT0wpdmFsaWRhdGVNZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtCi17Ci0gICAg
aWYgKFttZW51SXRlbSBhY3Rpb25dID09IEBzZWxlY3Rvcih0b2dnbGVVc2VXZWJLaXQyQnlEZWZh
dWx0OikpCi0gICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpbc2VsZiBfdXNlV2ViS2l0MkJ5RGVm
YXVsdF0gPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKLQotICAgIHJldHVybiBZRVM7Ci19Ci0K
IEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29u
dHJvbGxlci5oIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVy
LmgKaW5kZXggOTYzNDY3OS4uMWQ4YWQ3NiAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIv
bWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFj
L0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgKQEAgLTQ0LDE3ICs0NCwxMSBAQAogLSAoQk9PTClj
YW5SZXNldFpvb207CiAKIC0gKElCQWN0aW9uKXRvZ2dsZVpvb21Nb2RlOihpZClzZW5kZXI7Ci0t
IChJQkFjdGlvbil0b2dnbGVQYWdpbmF0aW9uTW9kZTooaWQpc2VuZGVyOwotLSAoSUJBY3Rpb24p
dG9nZ2xlVHJhbnNwYXJlbnRXaW5kb3c6KGlkKXNlbmRlcjsKLS0gKElCQWN0aW9uKXRvZ2dsZUxh
eWVyQm9yZGVyc1Zpc2liaWxpdHk6KGlkKXNlbmRlcjsKIAogLSAoSUJBY3Rpb24pZHVtcFNvdXJj
ZVRvQ29uc29sZTooaWQpc2VuZGVyOwogLSAoSUJBY3Rpb24pZmluZDooaWQpc2VuZGVyOwogCi1A
b3B0aW9uYWwKLS0gKElCQWN0aW9uKXRvZ2dsZVN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0Vu
YWJsZWQ6KGlkKXNlbmRlcjsKLS0gKElCQWN0aW9uKXRvZ2dsZVVJU2lkZUNvbXBvc2l0aW5nOihp
ZClzZW5kZXI7Ci0tIChJQkFjdGlvbil0b2dnbGVUaWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2li
aWxpdHk6KGlkKXNlbmRlcjsKKy0gKHZvaWQpZGlkQ2hhbmdlU2V0dGluZ3M7CiAKIEBlbmQKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL01haW5NZW51LnhpYiBiL1Rvb2xzL01p
bmlCcm93c2VyL21hYy9NYWluTWVudS54aWIKaW5kZXggOTlkNjUxYy4uYzVkZjQwMSAxMDA2NDQK
LS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL01haW5NZW51LnhpYgorKysgYi9Ub29scy9NaW5p
QnJvd3Nlci9tYWMvTWFpbk1lbnUueGliCkBAIC0xLDUgKzEsNSBAQAogPD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Ci08ZG9jdW1lbnQgdHlwZT0i
Y29tLmFwcGxlLkludGVyZmFjZUJ1aWxkZXIzLkNvY29hLlhJQiIgdmVyc2lvbj0iMy4wIiB0b29s
c1ZlcnNpb249IjUwNTYiIHN5c3RlbVZlcnNpb249IjEzRDY1IiB0YXJnZXRSdW50aW1lPSJNYWNP
U1guQ29jb2EiIHByb3BlcnR5QWNjZXNzQ29udHJvbD0ibm9uZSI+Cis8ZG9jdW1lbnQgdHlwZT0i
Y29tLmFwcGxlLkludGVyZmFjZUJ1aWxkZXIzLkNvY29hLlhJQiIgdmVyc2lvbj0iMy4wIiB0b29s
c1ZlcnNpb249IjUwNTYiIHN5c3RlbVZlcnNpb249IjEzRTI4IiB0YXJnZXRSdW50aW1lPSJNYWNP
U1guQ29jb2EiIHByb3BlcnR5QWNjZXNzQ29udHJvbD0ibm9uZSI+CiAgICAgPGRlcGVuZGVuY2ll
cz4KICAgICAgICAgPHBsdWdJbiBpZGVudGlmaWVyPSJjb20uYXBwbGUuSW50ZXJmYWNlQnVpbGRl
ci5Db2NvYVBsdWdpbiIgdmVyc2lvbj0iNTA1NiIvPgogICAgIDwvZGVwZW5kZW5jaWVzPgpAQCAt
NDI1LDEzICs0MjUsNiBAQAogICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0i
a2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgogICAgICAgICAgICAgICAgICAgICA8bWVudSBr
ZXk9InN1Ym1lbnUiIHRpdGxlPSJEZWJ1ZyIgaWQ9IjUzNSI+CiAgICAgICAgICAgICAgICAgICAg
ICAgICA8aXRlbXM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxl
PSJVc2UgV2ViS2l0MiBCeSBEZWZhdWx0IiBpZD0iR21ILTA4LVpYOSI+Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZp
ZXJNYXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InRv
Z2dsZVVzZVdlYktpdDJCeURlZmF1bHQ6IiB0YXJnZXQ9IjQ5NCIgaWQ9InhnQS05UC16WTYiLz4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDxtZW51SXRlbSBpc1NlcGFyYXRvckl0ZW09IllFUyIgaWQ9ImtnZi1Ccy04UzEiLz4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0bGU9IkZvcmNlIFJlcGFpbnQi
IGtleUVxdWl2YWxlbnQ9InIiIGlkPSI1NDUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIgb3B0aW9u
PSJZRVMiIGNvbW1hbmQ9IllFUyIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
Y29ubmVjdGlvbnM+CkBAIC00NTEsNDMgKzQ0NCw2IEBACiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvY29ubmVjdGlvbnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9t
ZW51SXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gaXNTZXBhcmF0
b3JJdGVtPSJZRVMiIGlkPSI1NTMiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVu
dUl0ZW0gdGl0bGU9IlBhZ2luYXRlZCBNb2RlIiBpZD0iNTY5Ij4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPG1vZGlmaWVyTWFzayBrZXk9ImtleUVxdWl2YWxlbnRNb2RpZmllck1h
c2siLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvbm5lY3Rpb25zPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFjdGlvbiBzZWxlY3Rvcj0idG9nZ2xl
UGFnaW5hdGlvbk1vZGU6IiB0YXJnZXQ9Ii0xIiBpZD0iNTcwIi8+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvY29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9tZW51SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWVudUl0ZW0gdGl0
bGU9IlRyYW5zcGFyZW50IFdpbmRvdyIgaWQ9IjU3NiI+Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJNYXNrIi8+
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InRvZ2dsZVRyYW5z
cGFyZW50V2luZG93OiIgdGFyZ2V0PSItMSIgaWQ9IjU3OCIvPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRpdGxl
PSJVSS1TaWRlIENvbXBvc2l0aW5nIiBpZD0iQkR4LUhlLWpPSyI+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFsZW50TW9kaWZpZXJN
YXNrIi8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25uZWN0aW9ucz4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3Rpb24gc2VsZWN0b3I9InRvZ2ds
ZVVJU2lkZUNvbXBvc2l0aW5nOiIgdGFyZ2V0PSItMSIgaWQ9IjFFZC1DNS0wcG8iLz4KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxt
ZW51SXRlbSB0aXRsZT0iTGF5ZXIgQm9yZGVycyIgaWQ9IjAwVC1FSS1XcWoiPgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNrIGtleT0ia2V5RXF1aXZhbGVudE1v
ZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29ubmVjdGlv
bnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aW9uIHNlbGVjdG9y
PSJ0b2dnbGVMYXllckJvcmRlcnNWaXNpYmlsaXR5OiIgdGFyZ2V0PSItMSIgaWQ9ImdtdC0xWi1Y
Y1EiLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxtZW51SXRlbSB0aXRsZT0iVGlsZWQgU2Nyb2xsaW5nIEluZGljYXRvciIgaWQ9
ImlCVS1ZeS1HdVYiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJN
YXNrIGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ0b2dnbGVUaWxlZFNjcm9sbGluZ0luZGljYXRvclZp
c2liaWxpdHk6IiB0YXJnZXQ9Ii0xIiBpZD0iUkpCLWR0LXhTUiIvPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8L2Nvbm5lY3Rpb25zPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvbWVudUl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1lbnVJdGVtIHRp
dGxlPSJFbmFibGUgU3ViLVBpeGVsIG9mZnNldFdpZHRoIGV0Yy4iIHN0YXRlPSJvbiIgaWQ9IjhY
NS1pNi10MmQiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bW9kaWZpZXJNYXNr
IGtleT0ia2V5RXF1aXZhbGVudE1vZGlmaWVyTWFzayIvPgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8Y29ubmVjdGlvbnM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8YWN0aW9uIHNlbGVjdG9yPSJ0b2dnbGVTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NF
bmFibGVkOiIgdGFyZ2V0PSItMSIgaWQ9IkxiZS1VUS1BOVUiLz4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPC9jb25uZWN0aW9ucz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8L21lbnVJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtZW51SXRlbSBpc1Nl
cGFyYXRvckl0ZW09IllFUyIgaWQ9IjU2OCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxtZW51SXRlbSB0aXRsZT0iRHVtcCBTb3VyY2UgVG8gQ29uc29sZSIgaWQ9IjU2NiI+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtb2RpZmllck1hc2sga2V5PSJrZXlFcXVpdmFs
ZW50TW9kaWZpZXJNYXNrIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb25u
ZWN0aW9ucz4KZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9TZXR0aW5nc0NvbnRy
b2xsZXIuaCBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9TZXR0aW5nc0NvbnRyb2xsZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGRkM2YxCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1NldHRpbmdzQ29udHJvbGxlci5oCkBAIC0wLDAgKzEs
NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxDb2NvYS9Db2NvYS5oPgorCitAaW50ZXJmYWNl
IFNldHRpbmdzQ29udHJvbGxlciA6IE5TT2JqZWN0CisKKysgKGluc3RhbmNldHlwZSlzaGFyZWQ7
CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNNZW51ICptZW51OworCitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgdXNlV2ViS2l0MkJ5RGVmYXVsdDsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCB1c2VUcmFuc3BhcmVudFdpbmRvd3M7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgdXNlUGFnaW5hdGVkTW9kZTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBsYXllckJvcmRlcnNWaXNpYmxl
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHRpbGVkU2Nyb2xsaW5nSW5k
aWNhdG9yVmlzaWJsZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCB1c2VV
SVNpZGVDb21wb3NpdGluZzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBz
dWJQaXhlbENTU09NTWV0cmljc0VuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIE5TU3RyaW5nICpkZWZhdWx0VVJMOworCitAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9NaW5p
QnJvd3Nlci9tYWMvU2V0dGluZ3NDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMv
U2V0dGluZ3NDb250cm9sbGVyLm0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZGJlOTU1YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9TZXR0aW5n
c0NvbnRyb2xsZXIubQpAQCAtMCwwICsxLDIxMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIlNl
dHRpbmdzQ29udHJvbGxlci5oIgorCisjaW1wb3J0ICJBcHBEZWxlZ2F0ZS5oIgorI2ltcG9ydCAi
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIuaCIKKworc3RhdGljIE5TU3RyaW5nICogY29uc3QgZGVm
YXVsdFVSTCA9IEAiaHR0cDovL3d3dy53ZWJraXQub3JnLyI7CitzdGF0aWMgTlNTdHJpbmcgKiBj
b25zdCBEZWZhdWx0VVJMUHJlZmVyZW5jZUtleSA9IEAiRGVmYXVsdFVSTCI7CisKK3N0YXRpYyBO
U1N0cmluZyAqIGNvbnN0IFVzZVdlYktpdDJCeURlZmF1bHRQcmVmZXJlbmNlS2V5ID0gQCJVc2VX
ZWJLaXQyQnlEZWZhdWx0IjsKK3N0YXRpYyBOU1N0cmluZyAqIGNvbnN0IExheWVyQm9yZGVyc1Zp
c2libGVQcmVmZXJlbmNlS2V5ID0gQCJMYXllckJvcmRlcnNWaXNpYmxlIjsKK3N0YXRpYyBOU1N0
cmluZyAqIGNvbnN0IFRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZVByZWZlcmVuY2VLZXkg
PSBAIlRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZSI7CisKK3N0YXRpYyBOU1N0cmluZyAq
IGNvbnN0IFVzZVRyYW5zcGFyZW50V2luZG93c1ByZWZlcmVuY2VLZXkgPSBAIlVzZVRyYW5zcGFy
ZW50V2luZG93cyI7CitzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBVc2VQYWdpbmF0ZWRNb2RlUHJl
ZmVyZW5jZUtleSA9IEAiVXNlUGFnaW5hdGVkTW9kZSI7CitzdGF0aWMgTlNTdHJpbmcgKiBjb25z
dCBFbmFibGVTdWJQaXhlbENTU09NTWV0cmljc1ByZWZlcmVuY2VLZXkgPSBAIkVuYWJsZVN1YlBp
eGVsQ1NTT01NZXRyaWNzIjsKKworLy8gVGhpcyBkZWZhdWx0IG5hbWUgaW50ZW50aW9uYWxseSBv
dmVybGFwcyB3aXRoIHRoZSBrZXkgdGhhdCBXZWJLaXQyIGNoZWNrcyB3aGVuIGNyZWF0aW5nIGEg
dmlldy4KK3N0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFVzZVJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJlZmVyZW5jZUtleSA9IEAiV2ViS2l0MlVzZVJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
IjsKKworQGltcGxlbWVudGF0aW9uIFNldHRpbmdzQ29udHJvbGxlcgorCitAc3ludGhlc2l6ZSBt
ZW51PV9tZW51OworCisrIChpbnN0YW5jZXR5cGUpc2hhcmVkCit7CisgICAgc3RhdGljIFNldHRp
bmdzQ29udHJvbGxlciAqc2hhcmVkU2V0dGluZ3NDb250cm9sbGVyOworICAgIHN0YXRpYyBkaXNw
YXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsK
KyAgICAgICAgc2hhcmVkU2V0dGluZ3NDb250cm9sbGVyID0gW1tzdXBlciBhbGxvY10gaW5pdF07
CisgICAgfSk7CisKKyAgICByZXR1cm4gc2hhcmVkU2V0dGluZ3NDb250cm9sbGVyOworfQorCist
IChOU01lbnUgKiltZW51Cit7CisgICAgaWYgKCFfbWVudSkKKyAgICAgICAgW3NlbGYgX3BvcHVs
YXRlTWVudV07CisKKyAgICByZXR1cm4gX21lbnU7Cit9CisKKy0gKHZvaWQpX2FkZEl0ZW1XaXRo
VGl0bGU6KE5TU3RyaW5nICopdGl0bGUgYWN0aW9uOihTRUwpYWN0aW9uIGluZGVudGVkOihCT09M
KWluZGVudGVkCit7CisgICAgTlNNZW51SXRlbSAqaXRlbSA9IFtbTlNNZW51SXRlbSBhbGxvY10g
aW5pdFdpdGhUaXRsZTp0aXRsZSBhY3Rpb246YWN0aW9uIGtleUVxdWl2YWxlbnQ6QCIiXTsKKyAg
ICBbaXRlbSBzZXRUYXJnZXQ6c2VsZl07CisgICAgaWYgKGluZGVudGVkKQorICAgICAgICBbaXRl
bSBzZXRJbmRlbnRhdGlvbkxldmVsOjFdOworICAgIFtfbWVudSBhZGRJdGVtOml0ZW1dOworICAg
IFtpdGVtIHJlbGVhc2VdOworfQorCistICh2b2lkKV9hZGRIZWFkZXJXaXRoVGl0bGU6KE5TU3Ry
aW5nICopdGl0bGUKK3sKKyAgICBbX21lbnUgYWRkSXRlbTpbTlNNZW51SXRlbSBzZXBhcmF0b3JJ
dGVtXV07CisgICAgW19tZW51IGFkZEl0ZW06W1tbTlNNZW51SXRlbSBhbGxvY10gaW5pdFdpdGhU
aXRsZTp0aXRsZSBhY3Rpb246bmlsIGtleUVxdWl2YWxlbnQ6QCIiXSBhdXRvcmVsZWFzZV1dOwor
fQorCistICh2b2lkKV9wb3B1bGF0ZU1lbnUKK3sKKyAgICBfbWVudSA9IFtbTlNNZW51IGFsbG9j
XSBpbml0V2l0aFRpdGxlOkAiU2V0dGluZ3MiXTsKKworICAgIFtzZWxmIF9hZGRJdGVtV2l0aFRp
dGxlOkAiVXNlIFdlYktpdDIgQnkgRGVmYXVsdCIgYWN0aW9uOkBzZWxlY3Rvcih0b2dnbGVVc2VX
ZWJLaXQyQnlEZWZhdWx0OikgaW5kZW50ZWQ6Tk9dOworCisgICAgW19tZW51IGFkZEl0ZW06W05T
TWVudUl0ZW0gc2VwYXJhdG9ySXRlbV1dOworCisgICAgW3NlbGYgX2FkZEl0ZW1XaXRoVGl0bGU6
QCJVc2UgVHJhbnNwYXJlbnQgV2luZG93cyIgYWN0aW9uOkBzZWxlY3Rvcih0b2dnbGVVc2VUcmFu
c3BhcmVudFdpbmRvd3M6KSBpbmRlbnRlZDpOT107CisgICAgW3NlbGYgX2FkZEl0ZW1XaXRoVGl0
bGU6QCJVc2UgUGFnaW5hdGVkIE1vZGUiIGFjdGlvbjpAc2VsZWN0b3IodG9nZ2xlVXNlUGFnaW5h
dGVkTW9kZTopIGluZGVudGVkOk5PXTsKKyAgICBbc2VsZiBfYWRkSXRlbVdpdGhUaXRsZTpAIlNo
b3cgTGF5ZXIgQm9yZGVycyIgYWN0aW9uOkBzZWxlY3Rvcih0b2dnbGVTaG93TGF5ZXJCb3JkZXJz
OikgaW5kZW50ZWQ6Tk9dOworCisgICAgW3NlbGYgX2FkZEhlYWRlcldpdGhUaXRsZTpAIldlYktp
dDItb25seSBTZXR0aW5ncyJdOworICAgIFtzZWxmIF9hZGRJdGVtV2l0aFRpdGxlOkAiU2hvdyBU
aWxlZCBTY3JvbGxpbmcgSW5kaWNhdG9yIiBhY3Rpb246QHNlbGVjdG9yKHRvZ2dsZVNob3dUaWxl
ZFNjcm9sbGluZ0luZGljYXRvcjopIGluZGVudGVkOllFU107CisgICAgW3NlbGYgX2FkZEl0ZW1X
aXRoVGl0bGU6QCJVc2UgVUktU2lkZSBDb21wb3NpdGluZyIgYWN0aW9uOkBzZWxlY3Rvcih0b2dn
bGVVc2VVSVNpZGVDb21wb3NpdGluZzopIGluZGVudGVkOllFU107CisKKyAgICBbc2VsZiBfYWRk
SGVhZGVyV2l0aFRpdGxlOkAiV2ViS2l0MS1vbmx5IFNldHRpbmdzIl07CisgICAgW3NlbGYgX2Fk
ZEl0ZW1XaXRoVGl0bGU6QCJFbmFibGUgU3VicGl4ZWwgQ1NTT00gTWV0cmljcyIgYWN0aW9uOkBz
ZWxlY3Rvcih0b2dnbGVFbmFibGVTdWJQaXhlbENTU09NTWV0cmljczopIGluZGVudGVkOllFU107
Cit9CisKKy0gKEJPT0wpdmFsaWRhdGVNZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtCit7
CisgICAgU0VMIGFjdGlvbiA9IFttZW51SXRlbSBhY3Rpb25dOworCisgICAgaWYgKGFjdGlvbiA9
PSBAc2VsZWN0b3IodG9nZ2xlVXNlV2ViS2l0MkJ5RGVmYXVsdDopKQorICAgICAgICBbbWVudUl0
ZW0gc2V0U3RhdGU6W3NlbGYgdXNlV2ViS2l0MkJ5RGVmYXVsdF0gPyBOU09uU3RhdGUgOiBOU09m
ZlN0YXRlXTsKKyAgICBlbHNlIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZVVzZVRyYW5z
cGFyZW50V2luZG93czopKQorICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6W3NlbGYgdXNlVHJh
bnNwYXJlbnRXaW5kb3dzXSA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOworICAgIGVsc2UgaWYg
KGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlVXNlUGFnaW5hdGVkTW9kZTopKQorICAgICAgICBb
bWVudUl0ZW0gc2V0U3RhdGU6W3NlbGYgdXNlUGFnaW5hdGVkTW9kZV0gPyBOU09uU3RhdGUgOiBO
U09mZlN0YXRlXTsKKyAgICBlbHNlIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZVNob3dM
YXllckJvcmRlcnM6KSkKKyAgICAgICAgW21lbnVJdGVtIHNldFN0YXRlOltzZWxmIGxheWVyQm9y
ZGVyc1Zpc2libGVdID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07CisgICAgZWxzZSBpZiAoYWN0
aW9uID09IEBzZWxlY3Rvcih0b2dnbGVTaG93VGlsZWRTY3JvbGxpbmdJbmRpY2F0b3I6KSkKKyAg
ICAgICAgW21lbnVJdGVtIHNldFN0YXRlOltzZWxmIHRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlz
aWJsZV0gPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKKyAgICBlbHNlIGlmIChhY3Rpb24gPT0g
QHNlbGVjdG9yKHRvZ2dsZVVzZVVJU2lkZUNvbXBvc2l0aW5nOikpCisgICAgICAgIFttZW51SXRl
bSBzZXRTdGF0ZTpbc2VsZiB1c2VVSVNpZGVDb21wb3NpdGluZ10gPyBOU09uU3RhdGUgOiBOU09m
ZlN0YXRlXTsKKyAgICBlbHNlIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZUVuYWJsZVN1
YlBpeGVsQ1NTT01NZXRyaWNzOikpCisgICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpbc2VsZiBz
dWJQaXhlbENTU09NTWV0cmljc0VuYWJsZWRdID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07CisK
KyAgICByZXR1cm4gWUVTOworfQorCistICh2b2lkKV90b2dnbGVCb29sZWFuRGVmYXVsdDooTlNT
dHJpbmcgKilkZWZhdWx0TmFtZQoreworICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtO
U1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c107CisgICAgW2RlZmF1bHRzIHNldEJv
b2w6IVtkZWZhdWx0cyBib29sRm9yS2V5OmRlZmF1bHROYW1lXSBmb3JLZXk6ZGVmYXVsdE5hbWVd
OworCisgICAgWyhCcm93c2VyQXBwRGVsZWdhdGUgKilbTlNBcHAgZGVsZWdhdGVdIGRpZENoYW5n
ZVNldHRpbmdzXTsKK30KKworLSAodm9pZCl0b2dnbGVVc2VXZWJLaXQyQnlEZWZhdWx0OihpZClz
ZW5kZXIKK3sKKyAgICBbc2VsZiBfdG9nZ2xlQm9vbGVhbkRlZmF1bHQ6VXNlV2ViS2l0MkJ5RGVm
YXVsdFByZWZlcmVuY2VLZXldOworfQorCistIChCT09MKXVzZVdlYktpdDJCeURlZmF1bHQKK3sK
KyAgICByZXR1cm4gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZv
cktleTpVc2VXZWJLaXQyQnlEZWZhdWx0UHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpdG9n
Z2xlVXNlVHJhbnNwYXJlbnRXaW5kb3dzOihpZClzZW5kZXIKK3sKKyAgICBbc2VsZiBfdG9nZ2xl
Qm9vbGVhbkRlZmF1bHQ6VXNlVHJhbnNwYXJlbnRXaW5kb3dzUHJlZmVyZW5jZUtleV07Cit9CisK
Ky0gKEJPT0wpdXNlVHJhbnNwYXJlbnRXaW5kb3dzCit7CisgICAgcmV0dXJuIFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6VXNlVHJhbnNwYXJlbnRXaW5k
b3dzUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpdG9nZ2xlVXNlUGFnaW5hdGVkTW9kZToo
aWQpc2VuZGVyCit7CisgICAgW3NlbGYgX3RvZ2dsZUJvb2xlYW5EZWZhdWx0OlVzZVBhZ2luYXRl
ZE1vZGVQcmVmZXJlbmNlS2V5XTsKK30KKworLSAoQk9PTCl1c2VQYWdpbmF0ZWRNb2RlCit7Cisg
ICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JL
ZXk6VXNlUGFnaW5hdGVkTW9kZVByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXRvZ2dsZVVz
ZVVJU2lkZUNvbXBvc2l0aW5nOihpZClzZW5kZXIKK3sKKyAgICBbc2VsZiBfdG9nZ2xlQm9vbGVh
bkRlZmF1bHQ6VXNlUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcmVmZXJlbmNlS2V5XTsKK30K
KworLSAoQk9PTCl1c2VVSVNpZGVDb21wb3NpdGluZworeworICAgIHJldHVybiBbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OlVzZVJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpdG9nZ2xlU2hvd0xheWVy
Qm9yZGVyczooaWQpc2VuZGVyCit7CisgICAgW3NlbGYgX3RvZ2dsZUJvb2xlYW5EZWZhdWx0Okxh
eWVyQm9yZGVyc1Zpc2libGVQcmVmZXJlbmNlS2V5XTsKK30KKworLSAoQk9PTClsYXllckJvcmRl
cnNWaXNpYmxlCit7CisgICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVm
YXVsdHNdIGJvb2xGb3JLZXk6TGF5ZXJCb3JkZXJzVmlzaWJsZVByZWZlcmVuY2VLZXldOworfQor
CistICh2b2lkKXRvZ2dsZVNob3dUaWxlZFNjcm9sbGluZ0luZGljYXRvcjooaWQpc2VuZGVyCit7
CisgICAgW3NlbGYgX3RvZ2dsZUJvb2xlYW5EZWZhdWx0OlRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9y
VmlzaWJsZVByZWZlcmVuY2VLZXldOworfQorCistIChCT09MKXRpbGVkU2Nyb2xsaW5nSW5kaWNh
dG9yVmlzaWJsZQoreworICAgIHJldHVybiBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRl
ZmF1bHRzXSBib29sRm9yS2V5OlRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZVByZWZlcmVu
Y2VLZXldOworfQorCistICh2b2lkKXRvZ2dsZUVuYWJsZVN1YlBpeGVsQ1NTT01NZXRyaWNzOihp
ZClzZW5kZXIKK3sKKyAgICBbc2VsZiBfdG9nZ2xlQm9vbGVhbkRlZmF1bHQ6RW5hYmxlU3ViUGl4
ZWxDU1NPTU1ldHJpY3NQcmVmZXJlbmNlS2V5XTsKK30KKworLSAoQk9PTClzdWJQaXhlbENTU09N
TWV0cmljc0VuYWJsZWQKK3sKKyAgICByZXR1cm4gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c10gYm9vbEZvcktleTpFbmFibGVTdWJQaXhlbENTU09NTWV0cmljc1ByZWZlcmVu
Y2VLZXldOworfQorCistIChOU1N0cmluZyAqKWRlZmF1bHRVUkwKK3sKKyAgICBOU1N0cmluZyAq
Y3VzdG9tRGVmYXVsdFVSTCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNd
IHN0cmluZ0ZvcktleTpEZWZhdWx0VVJMUHJlZmVyZW5jZUtleV07CisgICAgaWYgKGN1c3RvbURl
ZmF1bHRVUkwpCisgICAgICAgIHJldHVybiBjdXN0b21EZWZhdWx0VVJMOworICAgIHJldHVybiBk
ZWZhdWx0VVJMOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMv
V0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubSBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzFC
cm93c2VyV2luZG93Q29udHJvbGxlci5tCmluZGV4IGEzYzg3MDkuLjRkYTVjNWQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzFCcm93c2VyV2luZG93Q29udHJvbGxlci5tCisr
KyBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzFCcm93c2VyV2luZG93Q29udHJvbGxlci5tCkBA
IC0yNSwxMiArMjUsMTMgQEAKIAogI2ltcG9ydCAiV0sxQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIu
aCIKIAotI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgotI2ltcG9ydCA8V2ViS2l0L1dlYlZpZXdQ
cml2YXRlLmg+CiAjaW1wb3J0ICJBcHBEZWxlZ2F0ZS5oIgorI2ltcG9ydCAiU2V0dGluZ3NDb250
cm9sbGVyLmgiCisjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2Vi
UHJlZmVyZW5jZXMuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdl
YktpdC9XZWJWaWV3UHJpdmF0ZS5oPgogCiBAaW50ZXJmYWNlIFdLMUJyb3dzZXJXaW5kb3dDb250
cm9sbGVyICgpCiBAZW5kCkBAIC00MiwxMiArNDMsMTMgQEAgLSAodm9pZClhd2FrZUZyb21OaWIK
ICAgICBfd2ViVmlldyA9IFtbV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpbY29udGFpbmVy
VmlldyBib3VuZHNdIGZyYW1lTmFtZTpuaWwgZ3JvdXBOYW1lOkAiTWluaUJyb3dzZXIiXTsKICAg
ICBbX3dlYlZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazooTlNWaWV3V2lkdGhTaXphYmxlIHwgTlNW
aWV3SGVpZ2h0U2l6YWJsZSldOwogCi0gICAgLy8gU2V0IHRoZSBXZWJWaWV3IGRlbGVnYXRlcwog
ICAgIFtfd2ViVmlldyBzZXRGcmFtZUxvYWREZWxlZ2F0ZTpzZWxmXTsKICAgICBbX3dlYlZpZXcg
c2V0VUlEZWxlZ2F0ZTpzZWxmXTsKICAgICBbX3dlYlZpZXcgc2V0UmVzb3VyY2VMb2FkRGVsZWdh
dGU6c2VsZl07CiAgICAgW193ZWJWaWV3IHNldFBvbGljeURlbGVnYXRlOnNlbGZdOworCiAgICAg
W1tXZWJQcmVmZXJlbmNlcyBzdGFuZGFyZFByZWZlcmVuY2VzXSBzZXRGdWxsU2NyZWVuRW5hYmxl
ZDpZRVNdOworICAgIFtbV2ViUHJlZmVyZW5jZXMgc3RhbmRhcmRQcmVmZXJlbmNlc10gc2V0RGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZDpZRVNdOwogCiAgICAgW2NvbnRhaW5lclZpZXcgYWRkU3Vidmll
dzpfd2ViVmlld107CiB9CkBAIC0xMzEsMTQgKzEzMyw2IEBAIC0gKEJPT0wpdmFsaWRhdGVNZW51
SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtCiAgICAgICAgIFttZW51SXRlbSBzZXRUaXRsZTpb
X3dlYlZpZXcgd2luZG93XSA/IEAiUmVtb3ZlIFdlYiBWaWV3IiA6IEAiSW5zZXJ0IFdlYiBWaWV3
Il07CiAgICAgZWxzZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVab29tTW9kZTopKQog
ICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6X3pvb21UZXh0T25seSA/IE5TT25TdGF0ZSA6IE5T
T2ZmU3RhdGVdOwotICAgIGVsc2UgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlUGFnaW5h
dGlvbk1vZGU6KSkKLSAgICAgICAgW21lbnVJdGVtIHNldFN0YXRlOltzZWxmIGlzUGFnaW5hdGVk
XSA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOwotICAgIGVsc2UgaWYgKGFjdGlvbiA9PSBAc2Vs
ZWN0b3IodG9nZ2xlVHJhbnNwYXJlbnRXaW5kb3c6KSkKLSAgICAgICAgW21lbnVJdGVtIHNldFN0
YXRlOltbc2VsZiB3aW5kb3ddIGlzT3BhcXVlXSA/IE5TT2ZmU3RhdGUgOiBOU09uU3RhdGVdOwot
ICAgIGVsc2UgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlU3VicGl4ZWxDU1NPTUVsZW1l
bnRNZXRyaWNzRW5hYmxlZDopKQotICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6W3NlbGYgaXNT
dWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkXSA/IE5TT25TdGF0ZSA6IE5TT2ZmU3Rh
dGVdOwotICAgIGVsc2UgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlTGF5ZXJCb3JkZXJz
VmlzaWJpbGl0eTopKQotICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6W3NlbGYgbGF5ZXJCb3Jk
ZXJzVmlzaWJsZV0gPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKIAogICAgIHJldHVybiBZRVM7
CiB9CkBAIC0xNjgsNyArMTYyLDcgQEAgLSAoQk9PTCl3aW5kb3dTaG91bGRDbG9zZTooaWQpc2Vu
ZGVyCiAKIC0gKHZvaWQpd2luZG93V2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbgogewotICAgIFsoQnJvd3NlckFwcERlbGVnYXRlICopW05TQXBwIGRlbGVnYXRlXSBicm93
c2VyV2luZG93V2lsbENsb3NlOltzZWxmIHdpbmRvd11dOworICAgIFsoQnJvd3NlckFwcERlbGVn
YXRlICopW05TQXBwIGRlbGVnYXRlXSBicm93c2VyV2luZG93V2lsbENsb3NlOnNlbGYud2luZG93
XTsKICAgICBbc2VsZiBhdXRvcmVsZWFzZV07CiB9CiAKQEAgLTIyNiw2NiArMjIwLDQxIEBAIC0g
KElCQWN0aW9uKXRvZ2dsZVpvb21Nb2RlOihpZClzZW5kZXIKICAgICBfem9vbVRleHRPbmx5ID0g
IV96b29tVGV4dE9ubHk7CiB9CiAKLS0gKEJPT0wpaXNQYWdpbmF0ZWQKKy0gKElCQWN0aW9uKWZp
bmQ6KGlkKXNlbmRlcgogewotICAgIHJldHVybiBbX3dlYlZpZXcgX3BhZ2luYXRpb25Nb2RlXSAh
PSBXZWJQYWdpbmF0aW9uTW9kZVVucGFnaW5hdGVkOwogfQogCi0tIChJQkFjdGlvbil0b2dnbGVQ
YWdpbmF0aW9uTW9kZTooaWQpc2VuZGVyCistIChJQkFjdGlvbilkdW1wU291cmNlVG9Db25zb2xl
OihpZClzZW5kZXIKIHsKLSAgICBpZiAoW3NlbGYgaXNQYWdpbmF0ZWRdKSB7Ci0gICAgICAgIFtf
d2ViVmlldyBfc2V0UGFnaW5hdGlvbk1vZGU6V2ViUGFnaW5hdGlvbk1vZGVVbnBhZ2luYXRlZF07
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgW193ZWJWaWV3IF9zZXRQYWdpbmF0aW9uTW9kZTpXZWJQ
YWdpbmF0aW9uTW9kZVJpZ2h0VG9MZWZ0XTsKLSAgICAgICAgW193ZWJWaWV3IF9zZXRQYWdlTGVu
Z3RoOl93ZWJWaWV3LmJvdW5kcy5zaXplLndpZHRoIC8gMl07Ci0gICAgICAgIFtfd2ViVmlldyBf
c2V0R2FwQmV0d2VlblBhZ2VzOjEwXTsKLSAgICB9CiB9CiAKLS0gKElCQWN0aW9uKXRvZ2dsZVRy
YW5zcGFyZW50V2luZG93OihpZClzZW5kZXIKKy0gKHZvaWQpZGlkQ2hhbmdlU2V0dGluZ3MKIHsK
LSAgICBCT09MIGlzVHJhbnNwYXJlbnQgPSAhW1tzZWxmIHdpbmRvd10gaXNPcGFxdWVdOwotICAg
IGlzVHJhbnNwYXJlbnQgPSAhaXNUcmFuc3BhcmVudDsKLSAgICAKLSAgICBbW3NlbGYgd2luZG93
XSBzZXRPcGFxdWU6IWlzVHJhbnNwYXJlbnRdOwotICAgIFtbc2VsZiB3aW5kb3ddIHNldEhhc1No
YWRvdzohaXNUcmFuc3BhcmVudF07CisgICAgU2V0dGluZ3NDb250cm9sbGVyICpzZXR0aW5ncyA9
IFtTZXR0aW5nc0NvbnRyb2xsZXIgc2hhcmVkXTsKIAotICAgIGlmIChpc1RyYW5zcGFyZW50KQot
ICAgICAgICBbX3dlYlZpZXcgc2V0QmFja2dyb3VuZENvbG9yOltOU0NvbG9yIGNsZWFyQ29sb3Jd
XTsKLSAgICBlbHNlCi0gICAgICAgIFtfd2ViVmlldyBzZXRCYWNrZ3JvdW5kQ29sb3I6W05TQ29s
b3Igd2hpdGVDb2xvcl1dOworICAgIFtbV2ViUHJlZmVyZW5jZXMgc3RhbmRhcmRQcmVmZXJlbmNl
c10gc2V0U3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDpzZXR0aW5ncy5zdWJQaXhl
bENTU09NTWV0cmljc0VuYWJsZWRdOworICAgIFtbV2ViUHJlZmVyZW5jZXMgc3RhbmRhcmRQcmVm
ZXJlbmNlc10gc2V0U2hvd0RlYnVnQm9yZGVyczpzZXR0aW5ncy5sYXllckJvcmRlcnNWaXNpYmxl
XTsKKyAgICBbW1dlYlByZWZlcmVuY2VzIHN0YW5kYXJkUHJlZmVyZW5jZXNdIHNldFNob3dSZXBh
aW50Q291bnRlcjpzZXR0aW5ncy5sYXllckJvcmRlcnNWaXNpYmxlXTsKIAotICAgIFtbc2VsZiB3
aW5kb3ddIGRpc3BsYXldOwotfQorICAgIEJPT0wgdXNlVHJhbnNwYXJlbnRXaW5kb3dzID0gc2V0
dGluZ3MudXNlVHJhbnNwYXJlbnRXaW5kb3dzOworICAgIGlmICh1c2VUcmFuc3BhcmVudFdpbmRv
d3MgIT0gIXNlbGYud2luZG93LmlzT3BhcXVlKSB7CisgICAgICAgIFtzZWxmLndpbmRvdyBzZXRP
cGFxdWU6IXVzZVRyYW5zcGFyZW50V2luZG93c107CisgICAgICAgIFtzZWxmLndpbmRvdyBzZXRI
YXNTaGFkb3c6IXVzZVRyYW5zcGFyZW50V2luZG93c107CiAKLS0gKEJPT0wpaXNTdWJwaXhlbENT
U09NRWxlbWVudE1ldHJpY3NFbmFibGVkCi17Ci0gICAgcmV0dXJuIFtbV2ViUHJlZmVyZW5jZXMg
c3RhbmRhcmRQcmVmZXJlbmNlc10gc3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZF07
Ci19CisgICAgICAgIFtfd2ViVmlldyBzZXRCYWNrZ3JvdW5kQ29sb3I6dXNlVHJhbnNwYXJlbnRX
aW5kb3dzID8gW05TQ29sb3IgY2xlYXJDb2xvcl0gOiBbTlNDb2xvciB3aGl0ZUNvbG9yXV07CiAK
LS0gKElCQWN0aW9uKXRvZ2dsZVN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQ6KGlk
KXNlbmRlcgotewotICAgIFtbV2ViUHJlZmVyZW5jZXMgc3RhbmRhcmRQcmVmZXJlbmNlc10gc2V0
U3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDohW3NlbGYgaXNTdWJwaXhlbENTU09N
RWxlbWVudE1ldHJpY3NFbmFibGVkXV07Ci19Ci0KLS0gKEJPT0wpbGF5ZXJCb3JkZXJzVmlzaWJs
ZQotewotICAgIHJldHVybiBbW1dlYlByZWZlcmVuY2VzIHN0YW5kYXJkUHJlZmVyZW5jZXNdIHNo
b3dEZWJ1Z0JvcmRlcnNdOwotfQotCi0tIChJQkFjdGlvbil0b2dnbGVMYXllckJvcmRlcnNWaXNp
YmlsaXR5OihpZClzZW5kZXIKLXsKLSAgICBCT09MIG5ld1ZhbHVlID0gIVtzZWxmIGxheWVyQm9y
ZGVyc1Zpc2libGVdOwotICAgIFtbV2ViUHJlZmVyZW5jZXMgc3RhbmRhcmRQcmVmZXJlbmNlc10g
c2V0U2hvd0RlYnVnQm9yZGVyczpuZXdWYWx1ZV07Ci0gICAgW1tXZWJQcmVmZXJlbmNlcyBzdGFu
ZGFyZFByZWZlcmVuY2VzXSBzZXRTaG93UmVwYWludENvdW50ZXI6bmV3VmFsdWVdOwotfQotCi0t
IChJQkFjdGlvbilmaW5kOihpZClzZW5kZXIKLXsKLX0KKyAgICAgICAgW3NlbGYud2luZG93IGRp
c3BsYXldOworICAgIH0KIAotLSAoSUJBY3Rpb24pZHVtcFNvdXJjZVRvQ29uc29sZTooaWQpc2Vu
ZGVyCi17CisgICAgQk9PTCB1c2VQYWdpbmF0ZWRNb2RlID0gc2V0dGluZ3MudXNlUGFnaW5hdGVk
TW9kZTsKKyAgICBpZiAodXNlUGFnaW5hdGVkTW9kZSAhPSAoX3dlYlZpZXcuX3BhZ2luYXRpb25N
b2RlICE9IFdlYlBhZ2luYXRpb25Nb2RlVW5wYWdpbmF0ZWQpKSB7CisgICAgICAgIGlmICh1c2VQ
YWdpbmF0ZWRNb2RlKSB7CisgICAgICAgICAgICBbX3dlYlZpZXcgX3NldFBhZ2luYXRpb25Nb2Rl
OldlYlBhZ2luYXRpb25Nb2RlTGVmdFRvUmlnaHRdOworICAgICAgICAgICAgW193ZWJWaWV3IF9z
ZXRQYWdlTGVuZ3RoOl93ZWJWaWV3LmJvdW5kcy5zaXplLndpZHRoIC8gMl07CisgICAgICAgICAg
ICBbX3dlYlZpZXcgX3NldEdhcEJldHdlZW5QYWdlczoxMF07CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgW193ZWJWaWV3IF9zZXRQYWdpbmF0aW9uTW9kZTpXZWJQYWdpbmF0aW9uTW9kZVVu
cGFnaW5hdGVkXTsKKyAgICB9CiB9CiAKIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZp
ZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooTlNEaWN0aW9uYXJ5ICopYWN0aW9u
SW5mb3JtYXRpb24gcmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBmcmFtZTooV2ViRnJh
bWUgKilmcmFtZSBkZWNpc2lvbkxpc3RlbmVyOihpZDxXZWJQb2xpY3lEZWNpc2lvbkxpc3RlbmVy
PilsaXN0ZW5lcgpAQCAtMzEyLDcgKzI4MSw3IEBAIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAq
KXNlbmRlciBkaWRSZWNlaXZlVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgZm9yRnJhbWU6KFdlCiAg
ICAgaWYgKGZyYW1lICE9IFtzZW5kZXIgbWFpbkZyYW1lXSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgW1tzZWxmIHdpbmRvd10gc2V0VGl0bGU6W3RpdGxlIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5n
OkAiIFtXSzFdIl1dOworICAgIFtzZWxmLndpbmRvdyBzZXRUaXRsZTpbdGl0bGUgc3RyaW5nQnlB
cHBlbmRpbmdTdHJpbmc6QCIgW1dLMV0iXV07CiB9CiAKIC0gKHZvaWQpd2ViVmlldzooV2ViVmll
dyAqKXNlbmRlciBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAq
KW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV2ViRnJhbWUgKilmcmFtZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29s
cy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCBhOTdi
M2QyLi40N2RjZDk3IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3Nl
cldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3Nl
cldpbmRvd0NvbnRyb2xsZXIubQpAQCAtMjgsNiArMjgsNyBAQAogI2lmIFdLX0FQSV9FTkFCTEVE
CiAKICNpbXBvcnQgIkFwcERlbGVnYXRlLmgiCisjaW1wb3J0ICJTZXR0aW5nc0NvbnRyb2xsZXIu
aCIKICNpbXBvcnQgPFdlYktpdC9XS0ZyYW1lSW5mby5oPgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2
aWdhdGlvbkRlbGVnYXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aD4KQEAgLTM3LDEwICszOCw2IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5o
PgogCiBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2Jz
ZXJ2aW5nQ29udGV4dDsKLXN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdlYktpdDJVc2VSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYUtleSA9IEAiV2ViS2l0MlVzZVJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhIjsKLQotc3RhdGljIE5TU3RyaW5nICogY29uc3QgTGF5ZXJCb3JkZXJzVmlzaWJsZVBy
ZWZlcmVuY2VLZXkgPSBAIkxheWVyQm9yZGVyc1Zpc2libGUiOwotc3RhdGljIE5TU3RyaW5nICog
Y29uc3QgVGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlUHJlZmVyZW5jZUtleSA9IEAiVGls
ZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlS2V5IjsKIAogQGludGVyZmFjZSBXSzJCcm93c2Vy
V2luZG93Q29udHJvbGxlciAoKSA8V0tOYXZpZ2F0aW9uRGVsZWdhdGUsIFdLVUlEZWxlZ2F0ZT4K
IEBlbmQKQEAgLTU1LDEzICs1MiwxMCBAQCAtICh2b2lkKWF3YWtlRnJvbU5pYgogICAgIHN0YXRp
YyBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uOwogICAgIGlmICghY29uZmln
dXJhdGlvbikgewogICAgICAgICBjb25maWd1cmF0aW9uID0gW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XTsKLQotICAgICAgICBjb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLl90
aWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGUgPSBbc2VsZiB0aWxlZFNjcm9sbGluZ0luZGlj
YXRvclZpc2libGVdOwotICAgICAgICBjb25maWd1cmF0aW9uLnByZWZlcmVuY2VzLl9jb21wb3Np
dGluZ0JvcmRlcnNWaXNpYmxlID0gW3NlbGYgbGF5ZXJCb3JkZXJzVmlzaWJsZV07Ci0gICAgICAg
IGNvbmZpZ3VyYXRpb24ucHJlZmVyZW5jZXMuX2NvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlz
aWJsZSA9IFtzZWxmIGxheWVyQm9yZGVyc1Zpc2libGVdOwogICAgICAgICBjb25maWd1cmF0aW9u
LnByZWZlcmVuY2VzLl9mdWxsU2NyZWVuRW5hYmxlZCA9IFlFUzsKICAgICB9CiAgICAgX3dlYlZp
ZXcgPSBbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpbY29udGFpbmVyVmlldyBib3Vu
ZHNdIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl07CisgICAgW3NlbGYgZGlkQ2hhbmdlU2V0
dGluZ3NdOwogCiAgICAgX3dlYlZpZXcuYWxsb3dzTWFnbmlmaWNhdGlvbiA9IFlFUzsKICAgICBf
d2ViVmlldy5hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyA9IFlFUzsKQEAgLTEz
Miw3ICsxMjYsOCBAQCAtIChCT09MKXZhbGlkYXRlTWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51
SXRlbQogICAgIAogICAgIC8vIERpc2FibGVkIHVudGlsIG1pc3NpbmcgV0syIGZ1bmN0aW9uYWxp
dHkgaXMgZXhwb3NlZCB2aWEgQVBJL1NQSS4KICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcihk
dW1wU291cmNlVG9Db25zb2xlOikKLSAgICAgICAgfHwgYWN0aW9uID09IEBzZWxlY3RvcihmaW5k
OikpCisgICAgICAgIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoZmluZDopCisgICAgICAgIHx8IGFj
dGlvbiA9PSBAc2VsZWN0b3IoZm9yY2VSZXBhaW50OikpCiAgICAgICAgIHJldHVybiBOTzsKICAg
ICAKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihzaG93SGlkZVdlYlZpZXc6KSkKQEAgLTE0
MSwxNiArMTM2LDYgQEAgLSAoQk9PTCl2YWxpZGF0ZU1lbnVJdGVtOihOU01lbnVJdGVtICopbWVu
dUl0ZW0KICAgICAgICAgW21lbnVJdGVtIHNldFRpdGxlOltfd2ViVmlldyB3aW5kb3ddID8gQCJS
ZW1vdmUgV2ViIFZpZXciIDogQCJJbnNlcnQgV2ViIFZpZXciXTsKICAgICBlbHNlIGlmIChhY3Rp
b24gPT0gQHNlbGVjdG9yKHRvZ2dsZVpvb21Nb2RlOikpCiAgICAgICAgIFttZW51SXRlbSBzZXRT
dGF0ZTpfem9vbVRleHRPbmx5ID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07Ci0gICAgZWxzZSBp
ZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVQYWdpbmF0aW9uTW9kZTopKQotICAgICAgICBb
bWVudUl0ZW0gc2V0U3RhdGU6W3NlbGYgaXNQYWdpbmF0ZWRdID8gTlNPblN0YXRlIDogTlNPZmZT
dGF0ZV07Ci0gICAgZWxzZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVUcmFuc3BhcmVu
dFdpbmRvdzopKQotICAgICAgICBbbWVudUl0ZW0gc2V0U3RhdGU6W1tzZWxmIHdpbmRvd10gaXNP
cGFxdWVdID8gTlNPZmZTdGF0ZSA6IE5TT25TdGF0ZV07Ci0gICAgZWxzZSBpZiAoYWN0aW9uID09
IEBzZWxlY3Rvcih0b2dnbGVVSVNpZGVDb21wb3NpdGluZzopKQotICAgICAgICBbbWVudUl0ZW0g
c2V0U3RhdGU6W3NlbGYgaXNVSVNpZGVDb21wb3NpdGluZ0VuYWJsZWRdID8gTlNPblN0YXRlIDog
TlNPZmZTdGF0ZV07Ci0gICAgZWxzZSBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVMYXll
ckJvcmRlcnNWaXNpYmlsaXR5OikpCi0gICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpbc2VsZiBs
YXllckJvcmRlcnNWaXNpYmxlXSA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOwotICAgIGVsc2Ug
aWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlVGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNp
YmlsaXR5OikpCi0gICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpbc2VsZiB0aWxlZFNjcm9sbGlu
Z0luZGljYXRvclZpc2libGVdID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07CiAKICAgICByZXR1
cm4gWUVTOwogfQpAQCAtMTYyLDYgKzE0Nyw3IEBAIC0gKElCQWN0aW9uKXJlbG9hZDooaWQpc2Vu
ZGVyCiAKIC0gKElCQWN0aW9uKWZvcmNlUmVwYWludDooaWQpc2VuZGVyCiB7CisgICAgLy8gRklY
TUU6IFRoaXMgZG9lc24ndCBhY3R1YWxseSBmb3JjZSBhIHJlcGFpbnQuCiAgICAgW193ZWJWaWV3
IHNldE5lZWRzRGlzcGxheTpZRVNdOwogfQogCkBAIC0yMzIsNyArMjE4LDcgQEAgLSAoQk9PTCl3
aW5kb3dTaG91bGRDbG9zZTooaWQpc2VuZGVyCiAKIC0gKHZvaWQpd2luZG93V2lsbENsb3NlOihO
U05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotICAgIFsoQnJvd3NlckFwcERlbGVnYXRl
ICopW05TQXBwIGRlbGVnYXRlXSBicm93c2VyV2luZG93V2lsbENsb3NlOltzZWxmIHdpbmRvd11d
OworICAgIFsoQnJvd3NlckFwcERlbGVnYXRlICopW05TQXBwIGRlbGVnYXRlXSBicm93c2VyV2lu
ZG93V2lsbENsb3NlOnNlbGYud2luZG93XTsKICAgICBbc2VsZiBhdXRvcmVsZWFzZV07CiB9CiAK
QEAgLTI4Myw2OCArMjY5LDM0IEBAIC0gKHZvaWQpem9vbU91dDooaWQpc2VuZGVyCiAgICAgc2Vs
Zi5jdXJyZW50Wm9vbUZhY3RvciAvPSBEZWZhdWx0Wm9vbUZhY3RvclJhdGlvOwogfQogCi0tIChC
T09MKWlzUGFnaW5hdGVkCi17Ci0gICAgcmV0dXJuIF93ZWJWaWV3Ll9wYWdpbmF0aW9uTW9kZSAh
PSBfV0tQYWdpbmF0aW9uTW9kZVVucGFnaW5hdGVkOwotfQotCi0tIChJQkFjdGlvbil0b2dnbGVQ
YWdpbmF0aW9uTW9kZTooaWQpc2VuZGVyCi17Ci0gICAgaWYgKHNlbGYuaXNQYWdpbmF0ZWQpCi0g
ICAgICAgIF93ZWJWaWV3Ll9wYWdpbmF0aW9uTW9kZSA9IF9XS1BhZ2luYXRpb25Nb2RlVW5wYWdp
bmF0ZWQ7Ci0gICAgZWxzZSB7Ci0gICAgICAgIF93ZWJWaWV3Ll9wYWdpbmF0aW9uTW9kZSA9IF9X
S1BhZ2luYXRpb25Nb2RlTGVmdFRvUmlnaHQ7Ci0gICAgICAgIF93ZWJWaWV3Ll9wYWdlTGVuZ3Ro
ID0gX3dlYlZpZXcuYm91bmRzLnNpemUud2lkdGggLyAyOwotICAgICAgICBfd2ViVmlldy5fZ2Fw
QmV0d2VlblBhZ2VzID0gMTA7Ci0gICAgfQotfQotCi0tIChJQkFjdGlvbil0b2dnbGVUcmFuc3Bh
cmVudFdpbmRvdzooaWQpc2VuZGVyCistICh2b2lkKWRpZENoYW5nZVNldHRpbmdzCiB7Ci0gICAg
Qk9PTCBpc1RyYW5zcGFyZW50ID0gX3dlYlZpZXcuX2RyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5k
OwotICAgIGlzVHJhbnNwYXJlbnQgPSAhaXNUcmFuc3BhcmVudDsKKyAgICBTZXR0aW5nc0NvbnRy
b2xsZXIgKnNldHRpbmdzID0gW1NldHRpbmdzQ29udHJvbGxlciBzaGFyZWRdOworICAgIFdLUHJl
ZmVyZW5jZXMgKnByZWZlcmVuY2VzID0gX3dlYlZpZXcuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNl
czsKIAotICAgIFtbc2VsZiB3aW5kb3ddIHNldE9wYXF1ZTohaXNUcmFuc3BhcmVudF07Ci0gICAg
W1tzZWxmIHdpbmRvd10gc2V0SGFzU2hhZG93OiFpc1RyYW5zcGFyZW50XTsKKyAgICBwcmVmZXJl
bmNlcy5fdGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlID0gc2V0dGluZ3MudGlsZWRTY3Jv
bGxpbmdJbmRpY2F0b3JWaXNpYmxlOworICAgIHByZWZlcmVuY2VzLl9jb21wb3NpdGluZ0JvcmRl
cnNWaXNpYmxlID0gc2V0dGluZ3MubGF5ZXJCb3JkZXJzVmlzaWJsZTsKKyAgICBwcmVmZXJlbmNl
cy5fY29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlID0gc2V0dGluZ3MubGF5ZXJCb3Jk
ZXJzVmlzaWJsZTsKIAotICAgIF93ZWJWaWV3Ll9kcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCA9
IGlzVHJhbnNwYXJlbnQ7CisgICAgQk9PTCB1c2VUcmFuc3BhcmVudFdpbmRvd3MgPSBzZXR0aW5n
cy51c2VUcmFuc3BhcmVudFdpbmRvd3M7CisgICAgaWYgKHVzZVRyYW5zcGFyZW50V2luZG93cyAh
PSBfd2ViVmlldy5fZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQpIHsKKyAgICAgICAgW3NlbGYu
d2luZG93IHNldE9wYXF1ZTohdXNlVHJhbnNwYXJlbnRXaW5kb3dzXTsKKyAgICAgICAgW3NlbGYu
d2luZG93IHNldEhhc1NoYWRvdzohdXNlVHJhbnNwYXJlbnRXaW5kb3dzXTsKIAotICAgIFtbc2Vs
ZiB3aW5kb3ddIGRpc3BsYXldOyAgICAKLX0KKyAgICAgICAgX3dlYlZpZXcuX2RyYXdzVHJhbnNw
YXJlbnRCYWNrZ3JvdW5kID0gdXNlVHJhbnNwYXJlbnRXaW5kb3dzOwogCi0tIChCT09MKWlzVUlT
aWRlQ29tcG9zaXRpbmdFbmFibGVkCi17Ci0gICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3Rh
bmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViS2l0MlVzZVJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhS2V5XTsKLX0KLQotLSAoSUJBY3Rpb24pdG9nZ2xlVUlTaWRlQ29tcG9zaXRpbmc6
KGlkKXNlbmRlcgotewotICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNd
IHNldEJvb2w6IVtzZWxmIGlzVUlTaWRlQ29tcG9zaXRpbmdFbmFibGVkXSBmb3JLZXk6V2ViS2l0
MlVzZVJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhS2V5XTsKLX0KLQotLSAoQk9PTClsYXllckJv
cmRlcnNWaXNpYmxlCi17Ci0gICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2Vy
RGVmYXVsdHNdIGJvb2xGb3JLZXk6TGF5ZXJCb3JkZXJzVmlzaWJsZVByZWZlcmVuY2VLZXldOwot
fQotCi0tIChJQkFjdGlvbil0b2dnbGVMYXllckJvcmRlcnNWaXNpYmlsaXR5OihpZClzZW5kZXIK
LXsKLSAgICBCT09MIG5ld1N0YXRlID0gIVtzZWxmIGxheWVyQm9yZGVyc1Zpc2libGVdOwotICAg
IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6bmV3U3RhdGUg
Zm9yS2V5OkxheWVyQm9yZGVyc1Zpc2libGVQcmVmZXJlbmNlS2V5XTsKLSAgICBfd2ViVmlldy5j
b25maWd1cmF0aW9uLnByZWZlcmVuY2VzLl9jb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlID0gbmV3
U3RhdGU7Ci0gICAgX3dlYlZpZXcuY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlcy5fY29tcG9zaXRp
bmdSZXBhaW50Q291bnRlcnNWaXNpYmxlID0gbmV3U3RhdGU7Ci19Ci0KLS0gKEJPT0wpdGlsZWRT
Y3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlCi17Ci0gICAgcmV0dXJuIFtbTlNVc2VyRGVmYXVsdHMg
c3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6VGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JW
aXNpYmxlUHJlZmVyZW5jZUtleV07Ci19CisgICAgICAgIFtzZWxmLndpbmRvdyBkaXNwbGF5XTsK
KyAgICB9CiAKLS0gKElCQWN0aW9uKXRvZ2dsZVRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJp
bGl0eTooaWQpc2VuZGVyCi17Ci0gICAgQk9PTCBuZXdTdGF0ZSA9ICFbc2VsZiB0aWxlZFNjcm9s
bGluZ0luZGljYXRvclZpc2libGVdOwotICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2Vy
RGVmYXVsdHNdIHNldEJvb2w6bmV3U3RhdGUgZm9yS2V5OlRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9y
VmlzaWJsZVByZWZlcmVuY2VLZXldOwotICAgIF93ZWJWaWV3LmNvbmZpZ3VyYXRpb24ucHJlZmVy
ZW5jZXMuX3RpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZSA9IG5ld1N0YXRlOworICAgIEJP
T0wgdXNlUGFnaW5hdGVkTW9kZSA9IHNldHRpbmdzLnVzZVBhZ2luYXRlZE1vZGU7CisgICAgaWYg
KHVzZVBhZ2luYXRlZE1vZGUgIT0gKF93ZWJWaWV3Ll9wYWdpbmF0aW9uTW9kZSAhPSBfV0tQYWdp
bmF0aW9uTW9kZVVucGFnaW5hdGVkKSkgeworICAgICAgICBpZiAodXNlUGFnaW5hdGVkTW9kZSkg
eworICAgICAgICAgICAgX3dlYlZpZXcuX3BhZ2luYXRpb25Nb2RlID0gX1dLUGFnaW5hdGlvbk1v
ZGVMZWZ0VG9SaWdodDsKKyAgICAgICAgICAgIF93ZWJWaWV3Ll9wYWdlTGVuZ3RoID0gX3dlYlZp
ZXcuYm91bmRzLnNpemUud2lkdGggLyAyOworICAgICAgICAgICAgX3dlYlZpZXcuX2dhcEJldHdl
ZW5QYWdlcyA9IDEwOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIF93ZWJWaWV3Ll9wYWdp
bmF0aW9uTW9kZSA9IF9XS1BhZ2luYXRpb25Nb2RlVW5wYWdpbmF0ZWQ7CisgICAgfQogfQogCiAt
ICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVj
dDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQg
Kiljb250ZXh0Cg==
</data>
<flag name="review"
          id="260463"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>