<?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>139511</bug_id>
          
          <creation_ts>2014-12-10 15:32:22 -0800</creation_ts>
          <short_desc>WK2: Add initial support for immediate actions</short_desc>
          <delta_ts>2014-12-10 16:14:19 -0800</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1054326</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-12-10 15:32:22 -0800</bug_when>
    <thetext>This bug tracks adding initial support for immediate actions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054332</commentid>
    <comment_count>1</comment_count>
      <attachid>243075</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-12-10 15:49:22 -0800</bug_when>
    <thetext>Created attachment 243075
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054334</commentid>
    <comment_count>2</comment_count>
      <attachid>243075</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-10 15:56:11 -0800</bug_when>
    <thetext>Comment on attachment 243075
Patch

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

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:3611
&gt; +        NSImmediateActionGestureRecognizer *recognizer = [[NSImmediateActionGestureRecognizer alloc] initWithTarget:nil action:NULL];

How does ownership work here?

&gt; Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:84
&gt; +    if ([immediateActionRecognizer view] != _wkView)

dot notation

&gt; Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:96
&gt; +    if ([immediateActionRecognizer view] != _wkView)

dotto

&gt; Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:117
&gt; +    if ([immediateActionRecognizer view] != _wkView)

etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054341</commentid>
    <comment_count>3</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-12-10 16:14:19 -0800</bug_when>
    <thetext>Thanks Tim! We talked about the ownership stuff in person. http://trac.webkit.org/changeset/177113</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243075</attachid>
            <date>2014-12-10 15:49:22 -0800</date>
            <delta_ts>2014-12-10 15:56:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>28005</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NzEwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE0LTEyLTEwICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBXSzI6IEFkZCBpbml0aWFsIHN1cHBv
cnQgZm9yIGltbWVkaWF0ZSBhY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzk1MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTUEkgbmVlZGVkIGZvciBpbW1lZGlhdGUgYWN0aW9ucy4KKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZv
cm0vc3BpL21hYy9OU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg6IEFkZGVk
LgorCiAyMDE0LTEyLTEwICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAg
ICAgICBTcGVjdWxhdGl2ZSBmaXggZm9yIGFzc2VydGlvbiAiZnJhbWUoKS52aWV3KCkgPT0gdGhp
cyIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE3NzA4NSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzE2Myw2ICszMTYzLDcg
QEAKIAkJOTMxQ0JEMTAxNjFBNDRFOTAwRTRDODc0IC8qIFNjcm9sbGluZ1N0YXRlVHJlZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFDQkQwQTE2
MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcCAqLzsgfTsKIAkJOTMxQ0JE
MTExNjFBNDRFOTAwRTRDODc0IC8qIFNjcm9sbGluZ1N0YXRlVHJlZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxQ0JEMEIxNjFBNDRFOTAwRTRDODc0
IC8qIFNjcm9sbGluZ1N0YXRlVHJlZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzMUQ3MkY2MTVGRTY5NTMwMEM0QzA3RSAvKiBMYXlvdXRNaWxl
c3RvbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzFENzJGNTE1RkU2OTUzMDBDNEMwN0UgLyogTGF5b3V0TWlsZXN0b25lcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzMjFENTkwMUEzOTA3MDQw
MDgwNTJCRSAvKiBOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzIxRDU4RjFBMzkwNkZB
MDA4MDUyQkUgLyogTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMjZEQzBDMDlE
QUQ1RDYwMEFGQzg0NyAvKiBDaGFyc2V0RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTY1ODFBQzA5RDE0RUU2MDAwRTYxRDcgLyogQ2hhcnNl
dERhdGEuY3BwICovOyB9OwogCQk5MzI3QTk0MjA5OTY4RDFBMDA2OEE1NDYgLyogSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMjdBOTQxMDk5NjhEMUEwMDY4QTU0NiAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rpb24u
Y3BwICovOyB9OwogCQk5MzI4NzFDMDBCMjBERUI3MDA0OTAzNUEgLyogUGxhdGZvcm1NZW51RGVz
Y3JpcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzMjg3MUJGMEIyMERFQjcwMDQ5MDM1QSAvKiBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDMzOSw2
ICsxMDM0MCw3IEBACiAJCTkzMUNCRDBBMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0
ZVRyZWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5n
U3RhdGVUcmVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxQ0JEMEIxNjFB
NDRFOTAwRTRDODc0IC8qIFNjcm9sbGluZ1N0YXRlVHJlZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdTdGF0ZVRyZWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTMxRDcyRjUxNUZFNjk1MzAwQzRDMDdFIC8qIExheW91dE1pbGVzdG9uZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0TWlsZXN0b25lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzIxRDU4RjFBMzkwNkZBMDA4MDUyQkUgLyogTlNJ
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0lt
bWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzMjdBOTQxMDk5NjhEMUEwMDY4QTU0NiAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMyODcxQkYwQjIw
REVCNzAwNDkwMzVBIC8qIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzJBRDcwMzE3RUZBMkMzMDAzOEY4RkYgLyogTWFpbkZyYW1l
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1haW5GcmFtZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzYzOSw2ICsxNzY0MSw3IEBACiAJCQkJ
MkQ1OUYxQkUxQTAwNDRDNjAwMUYzRDI5IC8qIERhdGFEZXRlY3RvcnNTUEkuaCAqLywKIAkJCQky
RDQxM0Y2MDFBMTg3QTNGMDA0MUE1MjEgLyogTG9va3VwU1BJLmggKi8sCiAJCQkJMUM2NDY2Mjcx
QTEyQzNGOTAwOTQ2MDNDIC8qIE5TRm9udFNQSS5oICovLAorCQkJCTkzMjFENThGMUEzOTA2RkEw
MDgwNTJCRSAvKiBOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmggKi8sCiAJ
CQkJOTM3RjRDQ0QxQTJENEIwMTAwQkIzOUY1IC8qIE5TTWVudVNQSS5oICovLAogCQkJCTJEQ0I4
Mzc3MTlGOTlCQkEwMEE3RkJFNCAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlja2VyU1BJLmggKi8sCiAJ
CQkJMkRDQjgzNzgxOUY5OUJCQTAwQTdGQkU0IC8qIE5TU2hhcmluZ1NlcnZpY2VTUEkuaCAqLywK
QEAgLTI1Mzc1LDYgKzI1Mzc4LDcgQEAKIAkJCQkxQUUwMEQ1OTE4MkRBQzhEMDAwODdERDcgLyog
S2V5ZWRDb2RpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTNCM0Q3MTE0QjE2NjYwMDFDNDI5
QiAvKiBLZXlFdmVudENvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjU1NDEzOTE0ODk4MTFD
MDAwREZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMyMUQ1
OTAxQTM5MDcwNDAwODA1MkJFIC8qIE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMTFBMEU2RTFEQTcwMEJGNjA4OCAvKiBLZXlm
cmFtZUFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUJBMTEwRTgyM0U0NzAwQjI1
OTY1IC8qIEtleWZyYW1lTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE1RkY3RDUxOEM5NTUz
ODAwRkU0Qzg3IC8qIEtleXByZXNzQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL05TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29n
bml6ZXJTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFj
L05TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJl
UmVjb2duaXplclNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZiBfX2hhc19pbmNsdWRl
KDxBcHBLaXQvTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5oPikKKworI2ltcG9y
dCA8QXBwS2l0L05TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaD4KKworI2Vsc2UK
KworQGludGVyZmFjZSBOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyIDogTlNHZXN0
dXJlUmVjb2duaXplcgorQGVuZAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3
NzEwOCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQ1IEBACisyMDE0LTEyLTEwICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXSzI6IEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIGltbWVkaWF0ZSBhY3Rpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk1MTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgZW51bSB0
byB0cmFjayBpbW1lZGlhdGUgYWN0aW9uIHR5cGVzIGFzIHdlIGFkZCB0aGVtLgorICAgICAgICAq
IFNoYXJlZC9BUEkvYy9XS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmg6IEFkZGVkLgorCisgICAgICAg
IENyZWF0ZSBhbiBOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyIGlmIHBvc3NpYmxl
IGFuZCBhIGNvbnRyb2xsZXIuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
OgorICAgICAgICAoLVtXS1ZpZXcgZGVhbGxvY10pOgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdp
dGhGcmFtZTpjb250ZXh0OmNvbmZpZ3VyYXRpb246d2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tW
aWV3IF9kaWRQZXJmb3JtQWN0aW9uTWVudUhpdFRlc3Q6dXNlckRhdGE6XSk6CisKKyAgICAgICAg
VGhpcyBiYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgY29udHJvbGxlciB3aWxsIHVzZSB0aGUg
ZGVsZWdhdGUgbWV0aG9kcyB0byAKKyAgICAgICAgcGVyZm9ybSBhbiBBY3Rpb25NZW51SGl0VGVz
dCB3aGVuIHJlbGV2YW50LiBGdXR1cmUgcGF0Y2hlcyB3aWxsIHBhdGNoIAorICAgICAgICBfdXBk
YXRlSW1tZWRpYXRlQWN0aW9uSXRlbSB0byB1c2UgdGhlIGhpdCB0ZXN0IHJlc3VsdCB0byBkZXRl
cm1pbmUgaWYgdGhlcmUgaXMgYW55IAorICAgICAgICBpbW1lZGlhdGUgYWN0aW9uIHRoYXQgc2hv
dWxkIGJlIHRha2VuLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyIHdpbGxEZXN0cm95VmlldzpdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXSk6CisgICAgICAgICgtW1dL
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBkaWRQZXJmb3JtQWN0aW9uTWVudUhpdFRlc3Q6dXNl
ckRhdGE6XSk6CisKKyAgICAgICAgRG9lcyBtdWNoIG9mIHRoZSB3b3JrIGRvbmUgaW4gQWN0aW9u
IE1lbnXigJlzIHByZXBhcmVGb3JNZW51LgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNv
bnRyb2xsZXIgaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcldpbGxQcmVwYXJlOl0pOgorCisgICAg
ICAgIERvZXMgbXVjaCBvZiB0aGUgd29yayBkb25lIGluIEFjdGlvbiBNZW514oCZcyBtZW51TmVl
ZHNVcGRhdGUuCisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbW1lZGlh
dGVBY3Rpb25SZWNvZ25pemVyV2lsbEJlZ2luQW5pbWF0aW9uOl0pOgorCisgICAgICAgIERvZXMg
bXVjaCBvZiB0aGUgd29yayBkb25lIGluIEFjdGlvbiBNZW514oCZcyBkaWRDbG9zZU1lbnUuCisg
ICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbW1lZGlhdGVBY3Rpb25SZWNv
Z25pemVyRGlkQ2FuY2VsQW5pbWF0aW9uOl0pOgorCisgICAgICAgIERvZXMgbXVjaCBvZiB0aGUg
d29yayBkb25lIGluIEFjdGlvbiBNZW514oCZcyB3aWxsT3Blbk1lbnUuCisgICAgICAgICgtW1dL
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyRGlkQ29t
cGxldGVBbmltYXRpb246XSk6CisKKyAgICAgICAgVG8gYmUgZmlsbGVkIGluLgorICAgICAgICAo
LVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX3VwZGF0ZUltbWVkaWF0ZUFjdGlvbkl0ZW1d
KToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTQt
MTItMTAgIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeCB0aGUgYnVpbGQuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tJ
bW1lZGlhdGVBY3Rpb25UeXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLSW1tZWRpYXRlQWN0
aW9uVHlwZXNfaAorI2RlZmluZSBXS0ltbWVkaWF0ZUFjdGlvblR5cGVzX2gKKworI2luY2x1ZGUg
PHN0ZGludC5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisK
K2VudW0geworICAgIGtXS0ltbWVkaWF0ZUFjdGlvbk5vbmUgPSAwLAorfTsKK3R5cGVkZWYgdWlu
dDMyX3QgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9Cisj
ZW5kaWYKKworI2VuZGlmIC8qIFdLSW1tZWRpYXRlQWN0aW9uVHlwZXNfaCAqLwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkocmV2aXNpb24gMTc3MDg1
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC01OCw2ICs1OCw3IEBACiAjaW1wb3J0ICJXS0FjdGlvbk1lbnVDb250cm9sbGVy
LmgiCiAjaW1wb3J0ICJXS0FjdGlvbk1lbnVJdGVtVHlwZXMuaCIKICNpbXBvcnQgIldLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKKyNpbXBvcnQgIldLSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlci5oIgogI2ltcG9ydCAiV0tQcmludGluZ1ZpZXcuaCIKICNpbXBvcnQgIldLUHJvY2Vzc1Bv
b2xJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tTdHJpbmdDRi5oIgpAQCAtODcsNiArODgsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2Fs
aXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9va3VwU1BJLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL05TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTlNWaWV3U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0
b3J5TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CkBAIC0yNTksNiAr
MjYxLDcgQEAgQGludGVyZmFjZSBXS1ZpZXdEYXRhIDogTlNPYmplY3QgewogI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCiAgICAgQk9PTCBfYXV0b21hdGljYWxs
eUFkanVzdHNDb250ZW50SW5zZXRzOwogICAgIFJldGFpblB0cjxXS0FjdGlvbk1lbnVDb250cm9s
bGVyPiBfYWN0aW9uTWVudUNvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPFdLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlcj4gX2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXI7CiAjZW5kaWYKIAogI2lm
IFdLX0FQSV9FTkFCTEVECkBAIC0zMTIsNiArMzE1LDcgQEAgLSAodm9pZClkZWFsbG9jCiB7CiAj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKICAgICBbX2RhdGEt
Pl9hY3Rpb25NZW51Q29udHJvbGxlciB3aWxsRGVzdHJveVZpZXc6c2VsZl07CisgICAgW19kYXRh
LT5faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciB3aWxsRGVzdHJveVZpZXc6c2VsZl07CiAjZW5k
aWYKIAogICAgIF9kYXRhLT5fcGFnZS0+Y2xvc2UoKTsKQEAgLTM2MDIsNiArMzYwNiwxMyBAQCAt
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyCiAgICAgICAgIHNlbGYuYWN0
aW9uTWVudS5kZWxlZ2F0ZSA9IF9kYXRhLT5fYWN0aW9uTWVudUNvbnRyb2xsZXIuZ2V0KCk7CiAg
ICAgICAgIHNlbGYuYWN0aW9uTWVudS5hdXRvZW5hYmxlc0l0ZW1zID0gTk87CiAgICAgfQorCisg
ICAgaWYgKE5TQ2xhc3NGcm9tU3RyaW5nKEAiTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2du
aXplciIpKSB7CisgICAgICAgIE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKnJl
Y29nbml6ZXIgPSBbW05TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGlu
aXRXaXRoVGFyZ2V0Om5pbCBhY3Rpb246TlVMTF07CisgICAgICAgIF9kYXRhLT5faW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlciA9IGFkb3B0TlMoW1tXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIg
YWxsb2NdIGluaXRXaXRoUGFnZToqX2RhdGEtPl9wYWdlIHZpZXc6c2VsZl0pOworICAgICAgICBy
ZWNvZ25pemVyLmRlbGVnYXRlID0gX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmdl
dCgpOworICAgICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpyZWNvZ25pemVyXTsKKyAg
ICB9CiAjZW5kaWYKIAogICAgIHJldHVybiBzZWxmOwpAQCAtMzczNiw2ICszNzQ3LDcgQEAgLSAo
dm9pZClkaWRDbG9zZU1lbnU6KE5TTWVudSAqKW1lbnUgd2l0aAogLSAodm9pZClfZGlkUGVyZm9y
bUFjdGlvbk1lbnVIaXRUZXN0Oihjb25zdCBBY3Rpb25NZW51SGl0VGVzdFJlc3VsdCYpaGl0VGVz
dFJlc3VsdCB1c2VyRGF0YTooQVBJOjpPYmplY3QqKXVzZXJEYXRhCiB7CiAgICAgW19kYXRhLT5f
YWN0aW9uTWVudUNvbnRyb2xsZXIgZGlkUGVyZm9ybUFjdGlvbk1lbnVIaXRUZXN0OmhpdFRlc3RS
ZXN1bHQgdXNlckRhdGE6dXNlckRhdGFdOworICAgIFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNv
bnRyb2xsZXIgZGlkUGVyZm9ybUFjdGlvbk1lbnVIaXRUZXN0OmhpdFRlc3RSZXN1bHQgdXNlckRh
dGE6dXNlckRhdGFdOwogfQogCiAjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEwMDAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyX2gKKyNkZWZpbmUgV0tJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyX2gKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEwMDAKKworI2ltcG9ydCAiQWN0aW9uTWVudUhpdFRlc3RSZXN1bHQu
aCIKKyNpbXBvcnQgIldLSW1tZWRpYXRlQWN0aW9uVHlwZXMuaCIKKyNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2Vu
dW0gY2xhc3MgSW1tZWRpYXRlQWN0aW9uU3RhdGUgeworICAgIE5vbmUgPSAwLAorICAgIFBlbmRp
bmcsCisgICAgVGltZWRPdXQsCisgICAgUmVhZHkKK307Cit9CisKK0BjbGFzcyBXS1ZpZXc7CisK
K0BpbnRlcmZhY2UgV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIDogTlNPYmplY3QgPE5TR2Vz
dHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4geworQHByaXZhdGUKKyAgICBXZWJLaXQ6OldlYlBhZ2VQ
cm94eSAqX3BhZ2U7CisgICAgV0tWaWV3ICpfd2tWaWV3OworCisgICAgV2ViS2l0OjpJbW1lZGlh
dGVBY3Rpb25TdGF0ZSBfc3RhdGU7CisgICAgV2ViS2l0OjpBY3Rpb25NZW51SGl0VGVzdFJlc3Vs
dCBfaGl0VGVzdFJlc3VsdDsKKyAgICBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlIF90eXBlOworCisg
ICAgTlNQb2ludCBfZXZlbnRMb2NhdGlvbkluVmlldzsKK30KKworLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooV0tWaWV3ICopd2tW
aWV3OworLSAodm9pZCl3aWxsRGVzdHJveVZpZXc6KFdLVmlldyAqKXZpZXc7CistICh2b2lkKWRp
ZFBlcmZvcm1BY3Rpb25NZW51SGl0VGVzdDooY29uc3QgV2ViS2l0OjpBY3Rpb25NZW51SGl0VGVz
dFJlc3VsdCYpaGl0VGVzdFJlc3VsdCB1c2VyRGF0YTooQVBJOjpPYmplY3QqKXVzZXJEYXRhOwor
CitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMDAwCisKKyNlbmRpZiAvLyBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXJfaApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0JKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgiCisKKyNpZiBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAw
CisKKyNpbXBvcnQgIldLVmlld0ludGVybmFsLmgiCisjaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMu
aCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgorI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2Fn
ZXMuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29yZS9OU0lt
bWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworQGltcGxlbWVudGF0aW9uIFdLSW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlcgorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihX
ZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooV0tWaWV3ICopd2tWaWV3Cit7CisgICAgc2VsZiA9IFtz
dXBlciBpbml0XTsKKworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAg
IF9wYWdlID0gJnBhZ2U7CisgICAgX3drVmlldyA9IHdrVmlldzsKKyAgICBfdHlwZSA9IGtXS0lt
bWVkaWF0ZUFjdGlvbk5vbmU7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZCl3aWxs
RGVzdHJveVZpZXc6KFdLVmlldyAqKXZpZXcKK3sKKyAgICBfcGFnZSA9IG51bGxwdHI7CisgICAg
X3drVmlldyA9IG5pbDsKKyAgICBfaGl0VGVzdFJlc3VsdCA9IEFjdGlvbk1lbnVIaXRUZXN0UmVz
dWx0KCk7Cit9CisKKy0gKHZvaWQpX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGUKK3sKKyAgICBf
c3RhdGUgPSBJbW1lZGlhdGVBY3Rpb25TdGF0ZTo6Tm9uZTsKKyAgICBfaGl0VGVzdFJlc3VsdCA9
IEFjdGlvbk1lbnVIaXRUZXN0UmVzdWx0KCk7CisgICAgX3R5cGUgPSBrV0tJbW1lZGlhdGVBY3Rp
b25Ob25lOworfQorCistICh2b2lkKWRpZFBlcmZvcm1BY3Rpb25NZW51SGl0VGVzdDooY29uc3Qg
QWN0aW9uTWVudUhpdFRlc3RSZXN1bHQmKWhpdFRlc3RSZXN1bHQgdXNlckRhdGE6KEFQSTo6T2Jq
ZWN0Kil1c2VyRGF0YQoreworICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIHVzZSB0aGUgV2Vi
S2l0MiBjYWxsYmFjayBtZWNoYW5pc20gdG8gYXZvaWQgb3V0LW9mLW9yZGVyIHJlcGxpZXMuCisg
ICAgX3N0YXRlID0gSW1tZWRpYXRlQWN0aW9uU3RhdGU6OlJlYWR5OworICAgIF9oaXRUZXN0UmVz
dWx0ID0gaGl0VGVzdFJlc3VsdDsKKworICAgIFtzZWxmIF91cGRhdGVJbW1lZGlhdGVBY3Rpb25J
dGVtXTsKK30KKworI3ByYWdtYSBtYXJrIE5TR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZQorCist
ICh2b2lkKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJXaWxsUHJlcGFyZTooTlNJbW1lZGlhdGVB
Y3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIKK3sKKyAg
ICBpZiAoW2ltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIgdmlld10gIT0gX3drVmlldykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgX2V2ZW50TG9jYXRpb25JblZpZXcgPSBbaW1tZWRpYXRlQWN0aW9u
UmVjb2duaXplciBsb2NhdGlvbkluVmlldzpbaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplciB2aWV3
XV07CisgICAgX3BhZ2UtPnBlcmZvcm1BY3Rpb25NZW51SGl0VGVzdEF0TG9jYXRpb24oX2V2ZW50
TG9jYXRpb25JblZpZXcpOworCisgICAgX3N0YXRlID0gSW1tZWRpYXRlQWN0aW9uU3RhdGU6OlBl
bmRpbmc7CisgICAgW3NlbGYgX3VwZGF0ZUltbWVkaWF0ZUFjdGlvbkl0ZW1dOworfQorCistICh2
b2lkKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJXaWxsQmVnaW5BbmltYXRpb246KE5TSW1tZWRp
YXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCit7
CisgICAgaWYgKFtpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyIHZpZXddICE9IF93a1ZpZXcpCisg
ICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChfc3RhdGUgIT0gSW1tZWRpYXRlQWN0aW9uU3Rh
dGU6Ok5vbmUpOworCisgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gYmUgYWJsZSB0byBjYW5jZWwg
dGhpcyBpZiB0aGUgZ2VzdHVyZSByZWNvZ25pemVyIGdvZXMgYXdheS4KKyAgICAvLyBGSVhNRTog
Q29ubmVjdGlvbiBjYW4gYmUgbnVsbCBpZiB0aGUgcHJvY2VzcyBpcyBjbG9zZWQ7IHdlIHNob3Vs
ZCBjbGVhbiB1cCBiZXR0ZXIgaW4gdGhhdCBjYXNlLgorICAgIGlmIChfc3RhdGUgPT0gSW1tZWRp
YXRlQWN0aW9uU3RhdGU6OlBlbmRpbmcpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24g
PSBfcGFnZS0+cHJvY2VzcygpLmNvbm5lY3Rpb24oKSkgeworICAgICAgICAgICAgYm9vbCByZWNl
aXZlZFJlcGx5ID0gY29ubmVjdGlvbi0+d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybUFjdGlvbk1lbnVIaXRUZXN0PihfcGFnZS0+
cGFnZUlEKCksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTAwKSk7CisgICAgICAgICAgICBp
ZiAoIXJlY2VpdmVkUmVwbHkpCisgICAgICAgICAgICAgICAgX3N0YXRlID0gSW1tZWRpYXRlQWN0
aW9uU3RhdGU6OlRpbWVkT3V0OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKF9zdGF0ZSAh
PSBJbW1lZGlhdGVBY3Rpb25TdGF0ZTo6UmVhZHkpCisgICAgICAgIFtzZWxmIF91cGRhdGVJbW1l
ZGlhdGVBY3Rpb25JdGVtXTsKK30KKworLSAodm9pZClpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVy
RGlkQ2FuY2VsQW5pbWF0aW9uOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICop
aW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcgoreworICAgIGlmIChbaW1tZWRpYXRlQWN0aW9uUmVj
b2duaXplciB2aWV3XSAhPSBfd2tWaWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBbc2VsZiBf
Y2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07Cit9CisKKy0gKHZvaWQpaW1tZWRpYXRlQWN0aW9u
UmVjb2duaXplckRpZENvbXBsZXRlQW5pbWF0aW9uOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVS
ZWNvZ25pemVyICopaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcgoreworICAgIGlmIChbaW1tZWRp
YXRlQWN0aW9uUmVjb2duaXplciB2aWV3XSAhPSBfd2tWaWV3KQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIHRoZSB0eXBlcyBvZiBmdW5jdGlvbmFsaXR5
IHByb3ZpZGVkIGluIEFjdGlvbiBtZW51J3Mgd2lsbE9wZW5NZW51LgorfQorCisjcHJhZ21hIG1h
cmsgSW1tZWRpYXRlIGFjdGlvbnMKKworLSAodm9pZClfdXBkYXRlSW1tZWRpYXRlQWN0aW9uSXRl
bQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCit9CisKK0BlbmQKKworI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE3NzA4NSkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA5Miw2
ICsxMDkyLDkgQEAKIAkJOTA5ODU0RUMxMkJDNEUxNzAwMEFEMDgwIC8qIFdlYk1lbW9yeVNhbXBs
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTA1
NjIwRTgxMkJDMjQ4QjAwMDc5OUI2IC8qIFdlYk1lbW9yeVNhbXBsZXIuY3BwICovOyB9OwogCQk5
MDk4NTRFRDEyQkM0RTE4MDAwQUQwODAgLyogV2ViTWVtb3J5U2FtcGxlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTA1NjIwRTkxMkJDMjQ4QjAwMDc5
OUI2IC8qIFdlYk1lbW9yeVNhbXBsZXIuaCAqLzsgfTsKIAkJOTA5ODU0RUUxMkJDNEUxODAwMEFE
MDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIubWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTA1NjIwRTUxMkJDMjQ3NjAwMDc5OUI2IC8qIFdlYk1lbW9y
eVNhbXBsZXIubWFjLm1tICovOyB9OworCQk5MzIxRDU4NjFBMzhFRTNDMDA4MDUyQkUgLyogV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzIxRDU4NTFBMzhFRTNDMDA4MDUyQkUgLyogV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLmggKi87IH07CisJCTkzMjFENTg4MUEzOEVFNzQwMDgwNTJCRSAvKiBX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzIxRDU4NzFBMzhFRTc0MDA4MDUyQkUgLyogV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyLm1tICovOyB9OworCQk5MzIxRDU4QTFBMzhGMTk2MDA4MDUyQkUg
LyogV0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTMyMUQ1ODkxQTM4RjE5NjAwODA1MkJFIC8qIFdLSW1tZWRpYXRl
QWN0aW9uVHlwZXMuaCAqLzsgfTsKIAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0
aW9uTWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBl
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkz
NUVFQjlCMTI3NzYxN0MwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVFQjk4MTI3
NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzVFRUI5RTEyNzc2MUFD
MDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RUVCOTUxMjc3NjE2RDAwMzMyMkI4IC8q
IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmNwcCAqLzsgfTsKQEAgLTMxNzQsNiArMzE3Nyw5IEBA
CiAJCTkwNTYyMEU1MTJCQzI0NzYwMDA3OTlCNiAvKiBXZWJNZW1vcnlTYW1wbGVyLm1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViTWVtb3J5U2FtcGxlci5tYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MDU2MjBFODEyQkMyNDhCMDAwNzk5QjYgLyogV2Vi
TWVtb3J5U2FtcGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJNZW1vcnlTYW1wbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTA1NjIw
RTkxMkJDMjQ4QjAwMDc5OUI2IC8qIFdlYk1lbW9yeVNhbXBsZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVtb3J5U2FtcGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzIxRDU4NTFBMzhFRTNDMDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzIxRDU4
NzFBMzhFRTc0MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzIxRDU4OTFBMzhGMTk2
MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0ltbWVkaWF0ZUFjdGlvblR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzNEI3MjQzMTlGNUI5QkUwMEFFOTZENiAvKiBXS0FjdGlvbk1lbnVJdGVt
VHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tBY3Rpb25NZW51SXRl
bVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjhGMTI3NzYxNUQw
MDMzMjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjkwMTI3NzYxNUQwMDMzMjJC
OCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNjcyNSwxMiArNjczMSwxNCBAQAogCQkJCTUxRDEzMDU3MTM4
MkYxMDUwMDM1MUVERCAvKiBXZWJQcm9jZXNzUHJveHlNYWMubW0gKi8sCiAJCQkJODY4MTYwQ0Qx
ODc2M0Q0QjAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24uaCAqLywKIAkJCQk4Njgx
NjBDRjE4NzY0NTM3MDAyMUU3OUQgLyogV2luZG93U2VydmVyQ29ubmVjdGlvbi5tbSAqLywKLQkJ
CQkyRDA3MzBBMDE5RjlDN0RBMDBFOUQ5QzQgLyogV0tBY3Rpb25NZW51Q29udHJvbGxlci5tbSAq
LywKIAkJCQkyRDA3MzBBMTE5RjlDN0RBMDBFOUQ5QzQgLyogV0tBY3Rpb25NZW51Q29udHJvbGxl
ci5oICovLAorCQkJCTJEMDczMEEwMTlGOUM3REEwMEU5RDlDNCAvKiBXS0FjdGlvbk1lbnVDb250
cm9sbGVyLm1tICovLAogCQkJCUUxQUVBMjJEMTQ2ODdCREIwMDgwNDU2OSAvKiBXS0Z1bGxLZXli
b2FyZEFjY2Vzc1dhdGNoZXIuaCAqLywKIAkJCQlFMUFFQTIyRTE0Njg3QkRCMDA4MDQ1NjkgLyog
V0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLm1tICovLAogCQkJCUNEQ0E4NUM3MTMyQUJBNEUw
MEU5NjFERiAvKiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggKi8sCiAJCQkJQ0RDQTg1
QzYxMzJBQkE0RTAwRTk2MURGIC8qIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gKi8s
CisJCQkJOTMyMUQ1ODUxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlci5oICovLAorCQkJCTkzMjFENTg3MUEzOEVFNzQwMDgwNTJCRSAvKiBXS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIubW0gKi8sCiAJCQkJMEZDQjRFNUMxOEJCRTNEOTAwMEZDRkM5IC8qIFdL
UHJpbnRpbmdWaWV3LmggKi8sCiAJCQkJMEZDQjRFNUQxOEJCRTNEOTAwMEZDRkM5IC8qIFdLUHJp
bnRpbmdWaWV3Lm1tICovLAogCQkJCTBGQ0I0RTVFMThCQkUzRDkwMDBGQ0ZDOSAvKiBXS1RleHRJ
bnB1dFdpbmRvd0NvbnRyb2xsZXIuaCAqLywKQEAgLTY3ODksNiArNjc5Nyw3IEBACiAJCQkJQkND
OEIzNzMxMjVGQjY5MDAwREU0NkE0IC8qIFdLR2VvbWV0cnkuaCAqLywKIAkJCQlCQ0NGNkFDMDEy
QzkxRjM0MDA4RjlDMzUgLyogV0tJbWFnZS5jcHAgKi8sCiAJCQkJQkNDRjZBQzExMkM5MUYzNDAw
OEY5QzM1IC8qIFdLSW1hZ2UuaCAqLywKKwkJCQk5MzIxRDU4OTFBMzhGMTk2MDA4MDUyQkUgLyog
V0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5oICovLAogCQkJCUJDNDA3NUUxMTI0RkYwMjcwMDY4RjIw
QSAvKiBXS011dGFibGVBcnJheS5jcHAgKi8sCiAJCQkJQkM0MDc1RTIxMjRGRjAyNzAwNjhGMjBB
IC8qIFdLTXV0YWJsZUFycmF5LmggKi8sCiAJCQkJQkM0MDc1RTMxMjRGRjAyNzAwNjhGMjBBIC8q
IFdLTXV0YWJsZURpY3Rpb25hcnkuY3BwICovLApAQCAtNzM4Myw2ICs3MzkyLDcgQEAKIAkJCQlF
MTUyNTUxQjE3MDExODE5MDAzRDdBREIgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxQ0JCQTEwMTY1MjE5QjYwMDVCRThGRCAvKiBOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFERjYzMTMxOEUw
QjdDODAwM0EzRTJBIC8qIERvd25sb2FkQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzIx
RDU4QTFBMzhGMTk2MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0M4NUZEN0MxOTM0MTVBODAwMDE3N0M0IC8qIFdlYlByZWZlcmVuY2VzRGVm
aW5pdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODI5REE2MTYzN0M3MEMwMDA5NTNENiAv
KiBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUEy
RUM1NjE0ODk5QzA5MDA4MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBp
biBIZWFkZXJzICovLApAQCAtNzcwMSw2ICs3NzExLDcgQEAKIAkJCQlCQzU3NDRGMDEyNjM4RkIz
MDA2RjBGMTIgLyogV2ViUG9wdXBJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTNDQzE4RDE5
QjA2NDE5MDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRDNCOTQ4NDcxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTMyMUQ1ODYxQTM4RUUzQzAwODA1MkJFIC8qIFdLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1NzRFNjMxMjY3RDA4
MDAwNkYwRjEyIC8qIFdlYlBvcHVwTWVudVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzhF
QjExNzE4REI2QTE5MDA3OTE3QzIgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUM1OENERjJBMTg4NzU0OEIwMDg3MTUzNiAvKiBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC05NDA1LDYgKzk0MTYsNyBAQAogCQkJ
CUJDMTExQUU0MTEyRjVDMjYwMDMzN0JBQiAvKiBXZWJQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBMDQzQTBBMTI0RDExQTkwMEZGQkZCNSAvKiBXZWJQcm9jZXNzQ29ubmVjdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTA0M0Y2OTEyNTE0RDhCMDBGRkJGQjUgLyogV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTMy
MUQ1ODgxQTM4RUU3NDAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSBp
biBTb3VyY2VzICovLAogCQkJCTFBMDAyRDQ4MTk2QjM0NUQwMEI5QUQ0NCAvKiBTZXNzaW9uU3Rh
dGVDb2RpbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzMwNjgyNTEyNUE2Qjk0MDBFNzEyNzgg
LyogV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
Rjc1MDZCMDE4NTkxNjJDMDBFQzBGRjcgLyogV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQu
bW0gaW4gU291cmNlcyAqLywK
</data>
<flag name="review"
          id="267926"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>