<?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>54335</bug_id>
          
          <creation_ts>2011-02-11 23:56:26 -0800</creation_ts>
          <short_desc>Make window.print() work with WebKit2</short_desc>
          <delta_ts>2011-02-12 20:02:24 -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>Printing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>350242</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-11 23:56:26 -0800</bug_when>
    <thetext>The problem is that async messages form UI process don&apos;t reach the Web process while it&apos;s waiting for a response to its sync window.print() message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350243</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-11 23:56:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/8895141&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350244</commentid>
    <comment_count>2</comment_count>
      <attachid>82231</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-12 00:14:05 -0800</bug_when>
    <thetext>Created attachment 82231
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350247</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-12 00:29:42 -0800</bug_when>
    <thetext>Attachment 82231 did not build on qt:
Build output: http://queues.webkit.org/results/7867873</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350250</commentid>
    <comment_count>4</comment_count>
      <attachid>82233</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-12 00:46:37 -0800</bug_when>
    <thetext>Created attachment 82233
with qt build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350345</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-12 20:02:20 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/78426&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82231</attachid>
            <date>2011-02-12 00:14:05 -0800</date>
            <delta_ts>2011-02-12 00:46:37 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>WindowPrint.txt</filename>
            <type>text/plain</type>
            <size>18659</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NDA2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMDItMTEgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0MzM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84ODk1MTQxPiBNYWtlIHdpbmRvdy5w
cmludCgpIHdvcmsgd2l0aCBXZWJLaXQyCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Nv
bm5lY3Rpb24uaDogQ29ycmVjdGVkIGEgdHlwbyBpbiBGSVhNRSBjb21tZW50LgorCisgICAgICAg
ICogVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnNldFBhZ2VJc1Zpc2libGUp
OgorICAgICAgICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRl
KToKKyAgICAgICAgKFdlYktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnNlbmRT
ZXRTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5OjpzaXpl
RGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5
OjpzZXRQYWdlSXNWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJCYWNrZWREcmF3aW5n
QXJlYVByb3h5Ojp1cGRhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6ZW5zdXJlV2ViUHJvY2Vzcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHQ6OnBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZSk6CisgICAg
ICAgIFVwZGF0ZWQgZm9yIHNlbmQoKSAtPiBkZXByZWNhdGVkU2VuZCgpIHJlbmFtZS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJv
eHkpOiBBZGRlZCBhIGZsYWcgdGhhdCdzIHRydWUgd2hpbGUgc2VydmluZyB3aW5kb3cucHJpbnQo
KS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwcmludEZyYW1lKTogU2V0IGFuZCB1
bnNldCBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmJlZ2luUHJpbnRpbmcpOiBGb3JjZSBtZXNzYWdlIHByb2Nlc3NpbmcgaW4g
d2ViIHByb2Nlc3Mgd2hlbiBzZXJ2aW5nCisgICAgICAgIHdpbmRvdy5wcmludCgpLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmVuZFByaW50aW5nKTogRGl0dG8uCisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcpOiBEaXR0by4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkcmF3UmVjdFRvUERGKTogRGl0dG8uCisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZHJhd1BhZ2VzVG9QREYpOiBEaXR0by4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6On5XZWJQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUHJveHk6OnNlbmRNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICBXaGVuIHdhaXRpbmcgZm9yIGEgd2Vi
IHByb2Nlc3MgdG8gbGF1bmNoLCBzdG9yZSBtZXNzYWdlIGZsYWdzLCB0b28uIFRoaXMgaXMgbm90
IHByYWN0aWNhbGx5CisgICAgICAgIGltcG9ydGFudCBmb3IgRGlzcGF0Y2hNZXNzYWdlRXZlbldo
ZW5XYWl0aW5nRm9yU3luY1JlcGx5LCBidXQgaXQncyBlYXNpZXIgdG8gc3RvcmUgZmxhZ3MKKyAg
ICAgICAgdGhhbiB0byByZW1lbWJlciBhYm91dCB0aGlzIHBpdGZhbGwuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6c2VuZCk6IEFkZGVkIGEgZmxhZ3MgYXJndW1lbnQsIG1hdGNoaW5nIENvbm5lY3Rpb246
OnNlbmQoKS4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkZXByZWNhdGVkU2Vu
ZCk6IFJlbmFtZWQgb25lIG9mIHNlbmQoKSBvdmVybG9hZHMsIGJlY2F1c2UgaXQgd2FzCisgICAg
ICAgIGNvbmZsaWN0aW5nIHdpdGggdGhlIG90aGVyIG9uZSBhZnRlciBhZGRpbmcgYSBmbGFncyBh
cmd1bWVudC4gVGhpcyBtYXRjaGVzIGEgY2hhbmdlIHByZXZpb3VzbHkKKyAgICAgICAgbWFkZSB0
byBDb3JlSVBDOjpDb25uZWN0aW9uLgorCiAyMDExLTAyLTExICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dp
YWsuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24u
aAkocmV2aXNpb24gNzg0MDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nv
bm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDcgKzEzNiw3IEBAIHB1YmxpYzoKICAg
ICBib29sIHNlbmRNZXNzYWdlKE1lc3NhZ2VJRCwgUGFzc093blB0cjxBcmd1bWVudEVuY29kZXI+
LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzID0gMCk7CiAgICAgYm9vbCBzZW5kU3luY1JlcGx5
KFBhc3NPd25QdHI8QXJndW1lbnRFbmNvZGVyPik7CiAKLSAgICAvLyBGSVhNRTogVGhlc2UgdmFy
aWFudHMgb2Ygc2VuYywgc2VuZFN5bmMgYW5kIHdhaXRGb3IgYXJlIGFsbCBkZXByZWNhdGVkLgor
ICAgIC8vIEZJWE1FOiBUaGVzZSB2YXJpYW50cyBvZiBzZW5kLCBzZW5kU3luYyBhbmQgd2FpdEZv
ciBhcmUgYWxsIGRlcHJlY2F0ZWQuCiAgICAgLy8gQWxsIGNsaWVudHMgc2hvdWxkIG1vdmUgdG8g
dGhlIG92ZXJsb2FkcyB0aGF0IHRha2UgYSBtZXNzYWdlIHR5cGUuCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRSwgdHlwZW5hbWUgVD4gYm9vbCBkZXByZWNhdGVkU2VuZChFIG1lc3NhZ2VJRCwgdWlu
dDY0X3QgZGVzdGluYXRpb25JRCwgY29uc3QgVCYgYXJndW1lbnRzKTsKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBFLCB0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBib29sIGRlcHJlY2F0ZWRTZW5kU3lu
YyhFIG1lc3NhZ2VJRCwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgY29uc3QgVCYgYXJndW1lbnRz
LCBjb25zdCBVJiByZXBseSwgZG91YmxlIHRpbWVvdXQgPSBOb1RpbWVvdXQpOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2h1bmtlZFVwZGF0ZURyYXdp
bmdBcmVhUHJveHkuY3BwCShyZXZpc2lvbiA3ODQwMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTk2LDEyICs5NiwxMiBAQCB2b2lkIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpzZXRQ
CiAKICAgICBpZiAoIW1faXNWaXNpYmxlKSB7CiAgICAgICAgIC8vIFRlbGwgdGhlIHdlYiBwcm9j
ZXNzIHRoYXQgaXQgZG9lc24ndCBuZWVkIHRvIHBhaW50IGFueXRoaW5nIGZvciBub3cuCi0gICAg
ICAgIHBhZ2UtPnByb2Nlc3MoKS0+c2VuZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlN1c3Bl
bmRQYWludGluZywgcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5pZGVudGlmaWVy
KSk7CisgICAgICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFM
ZWdhY3lNZXNzYWdlOjpTdXNwZW5kUGFpbnRpbmcsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJ
bihpbmZvKCkuaWRlbnRpZmllcikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAogICAg
IC8vIFRoZSBwYWdlIGlzIG5vdyB2aXNpYmxlLCByZXN1bWUgcGFpbnRpbmcuCi0gICAgcGFnZS0+
cHJvY2VzcygpLT5zZW5kKERyYXdpbmdBcmVhTGVnYWN5TWVzc2FnZTo6UmVzdW1lUGFpbnRpbmcs
IHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihpbmZvKCkuaWRlbnRpZmllciwgbV9mb3JjZVJl
cGFpbnRXaGVuUmVzdW1pbmdQYWludGluZykpOworICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVj
YXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpSZXN1bWVQYWludGluZywgcGFnZS0+
cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5pZGVudGlmaWVyLCBtX2ZvcmNlUmVwYWludFdo
ZW5SZXN1bWluZ1BhaW50aW5nKSk7CiAgICAgbV9mb3JjZVJlcGFpbnRXaGVuUmVzdW1pbmdQYWlu
dGluZyA9IGZhbHNlOwogfQogICAgIApAQCAtMTMzLDcgKzEzMyw3IEBAIHZvaWQgQ2h1bmtlZFVw
ZGF0ZURyYXdpbmdBcmVhUHJveHk6OnVwZGEKICAgICB9CiAKICAgICBXZWJQYWdlUHJveHkqIHBh
Z2UgPSB0aGlzLT5wYWdlKCk7Ci0gICAgcGFnZS0+cHJvY2VzcygpLT5zZW5kKERyYXdpbmdBcmVh
TGVnYWN5TWVzc2FnZTo6RGlkVXBkYXRlLCBwYWdlLT5wYWdlSUQoKSwgQ29yZUlQQzo6SW4oaW5m
bygpLmlkZW50aWZpZXIpKTsKKyAgICBwYWdlLT5wcm9jZXNzKCktPmRlcHJlY2F0ZWRTZW5kKERy
YXdpbmdBcmVhTGVnYWN5TWVzc2FnZTo6RGlkVXBkYXRlLCBwYWdlLT5wYWdlSUQoKSwgQ29yZUlQ
Qzo6SW4oaW5mbygpLmlkZW50aWZpZXIpKTsKIH0KIAogdm9pZCBDaHVua2VkVXBkYXRlRHJhd2lu
Z0FyZWFQcm94eTo6c2VuZFNldFNpemUoKQpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgQ2h1bmtl
ZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnNlbmQKICAgICAgICAgcmV0dXJuOwogICAgIG1faXNX
YWl0aW5nRm9yRGlkU2V0RnJhbWVOb3RpZmljYXRpb24gPSB0cnVlOwogICAgIAotICAgIG1fd2Vi
UGFnZVByb3h5LT5wcm9jZXNzKCktPnNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpTZXRT
aXplLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5pZGVudGlm
aWVyLCBtX3NpemUpKTsKKyAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLT5kZXByZWNhdGVk
U2VuZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlNldFNpemUsIG1fd2ViUGFnZVByb3h5LT5w
YWdlSUQoKSwgQ29yZUlQQzo6SW4oaW5mbygpLmlkZW50aWZpZXIsIG1fc2l6ZSkpOwogfQogICAg
IAogdm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eS5jcHAJKHJl
dmlzaW9uIDc4NDAzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyQmFja2VkRHJh
d2luZ0FyZWFQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBM
YXllckJhY2tlZERyYXdpbmdBcmVhUHJveHk6OnNpemVEaQogCiAgICAgbV9pc1dhaXRpbmdGb3JE
aWRTZXRGcmFtZU5vdGlmaWNhdGlvbiA9IHRydWU7CiAKLSAgICBwYWdlLT5wcm9jZXNzKCktPnNl
bmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpTZXRTaXplLCBwYWdlLT5wYWdlSUQoKSwgQ29y
ZUlQQzo6SW4oaW5mbygpLmlkZW50aWZpZXIsIG1fc2l6ZSkpOworICAgIHBhZ2UtPnByb2Nlc3Mo
KS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpTZXRTaXplLCBwYWdl
LT5wYWdlSUQoKSwgQ29yZUlQQzo6SW4oaW5mbygpLmlkZW50aWZpZXIsIG1fc2l6ZSkpOwogfQog
CiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKFdJTikKQEAgLTEwMywxMiArMTAzLDEy
IEBAIHZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5OjpzZXRQYWcKIAogICAgIGlmICgh
bV9pc1Zpc2libGUpIHsKICAgICAgICAgLy8gVGVsbCB0aGUgd2ViIHByb2Nlc3MgdGhhdCBpdCBk
b2Vzbid0IG5lZWQgdG8gcGFpbnQgYW55dGhpbmcgZm9yIG5vdy4KLSAgICAgICAgcGFnZS0+cHJv
Y2VzcygpLT5zZW5kKERyYXdpbmdBcmVhTGVnYWN5TWVzc2FnZTo6U3VzcGVuZFBhaW50aW5nLCBw
YWdlLT5wYWdlSUQoKSwgQ29yZUlQQzo6SW4oaW5mbygpLmlkZW50aWZpZXIpKTsKKyAgICAgICAg
cGFnZS0+cHJvY2VzcygpLT5kZXByZWNhdGVkU2VuZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6
OlN1c3BlbmRQYWludGluZywgcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5pZGVu
dGlmaWVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgLy8gVGhlIHBhZ2Ug
aXMgbm93IHZpc2libGUuCi0gICAgcGFnZS0+cHJvY2VzcygpLT5zZW5kKERyYXdpbmdBcmVhTGVn
YWN5TWVzc2FnZTo6UmVzdW1lUGFpbnRpbmcsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihp
bmZvKCkuaWRlbnRpZmllcikpOworICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQo
RHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpSZXN1bWVQYWludGluZywgcGFnZS0+cGFnZUlEKCks
IENvcmVJUEM6OkluKGluZm8oKS5pZGVudGlmaWVyKSk7CiAgICAgCiAgICAgLy8gRklYTUU6IFdl
IHNob3VsZCByZXF1ZXN0IGEgZnVsbCByZXBhaW50IGhlcmUgaWYgbmVlZGVkLgogfQpAQCAtMTI0
LDcgKzEyNCw3IEBAIHZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5OjpkaWRTZXQKIHZv
aWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGUoKQogewogICAgIFdlYlBhZ2VQ
cm94eSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKLSAgICBwYWdlLT5wcm9jZXNzKCktPnNlbmQoRHJh
d2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpEaWRVcGRhdGUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBD
OjpJbihpbmZvKCkuaWRlbnRpZmllcikpOworICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRl
ZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpEaWRVcGRhdGUsIHBhZ2UtPnBhZ2VJRCgp
LCBDb3JlSVBDOjpJbihpbmZvKCkuaWRlbnRpZmllcikpOwogfQogCiB2b2lkIExheWVyQmFja2Vk
RHJhd2luZ0FyZWFQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAko
cmV2aXNpb24gNzg0MDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIFdlYkNvbnRleHQ6OmVu
c3VyZVdlYlByb2Nlc3MoKQogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgIT0gbV9wZW5kaW5n
TWVzc2FnZXNUb1Bvc3RUb0luamVjdGVkQnVuZGxlLnNpemUoKTsgKytpKSB7CiAgICAgICAgIHBh
aXI8U3RyaW5nLCBSZWZQdHI8QVBJT2JqZWN0PiA+JiBtZXNzYWdlID0gbV9wZW5kaW5nTWVzc2Fn
ZXNUb1Bvc3RUb0luamVjdGVkQnVuZGxlW2ldOwotICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoSW5q
ZWN0ZWRCdW5kbGVNZXNzYWdlOjpQb3N0TWVzc2FnZSwgMCwgQ29yZUlQQzo6SW4obWVzc2FnZS5m
aXJzdCwgV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlLnNlY29uZC5nZXQoKSkp
KTsKKyAgICAgICAgbV9wcm9jZXNzLT5kZXByZWNhdGVkU2VuZChJbmplY3RlZEJ1bmRsZU1lc3Nh
Z2U6OlBvc3RNZXNzYWdlLCAwLCBDb3JlSVBDOjpJbihtZXNzYWdlLmZpcnN0LCBXZWJDb250ZXh0
VXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2Uuc2Vjb25kLmdldCgpKSkpOwogICAgIH0KICAgICBt
X3BlbmRpbmdNZXNzYWdlc1RvUG9zdFRvSW5qZWN0ZWRCdW5kbGUuY2xlYXIoKTsKIH0KQEAgLTI4
MSw3ICsyODEsNyBAQCB2b2lkIFdlYkNvbnRleHQ6OnBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1CiAK
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNvbnNpZGVyIHJldHVybmluZyBmYWxzZSBmcm9tIHRo
aXMgZnVuY3Rpb24gaWYgdGhlIG1lc3NhZ2VCb2R5IGNhbm5vdAogICAgIC8vIGJlIGVuY29kZWQu
Ci0gICAgbV9wcm9jZXNzLT5zZW5kKEluamVjdGVkQnVuZGxlTWVzc2FnZTo6UG9zdE1lc3NhZ2Us
IDAsIENvcmVJUEM6OkluKG1lc3NhZ2VOYW1lLCBXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVy
KG1lc3NhZ2VCb2R5KSkpOworICAgIG1fcHJvY2Vzcy0+ZGVwcmVjYXRlZFNlbmQoSW5qZWN0ZWRC
dW5kbGVNZXNzYWdlOjpQb3N0TWVzc2FnZSwgMCwgQ29yZUlQQzo6SW4obWVzc2FnZU5hbWUsIFdl
YkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIobWVzc2FnZUJvZHkpKSk7CiB9CiAKIC8vIEluamVj
dGVkQnVuZGxlIGNsaWVudApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAJKHJldmlzaW9uIDc4NDAzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw2ICsxMjEsNyBAQCBXZWJQYWdl
UHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwCiAgICAgLCBtX2lzVmFsaWQodHJ1ZSkK
ICAgICAsIG1faXNDbG9zZWQoZmFsc2UpCiAgICAgLCBtX2lzSW5QcmludGluZ01vZGUoZmFsc2Up
CisgICAgLCBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uKGZhbHNlKQogICAgICwgbV9p
bkRlY2lkZVBvbGljeUZvck1JTUVUeXBlKGZhbHNlKQogICAgICwgbV9zeW5jTWltZVR5cGVQb2xp
Y3lBY3Rpb25Jc1ZhbGlkKGZhbHNlKQogICAgICwgbV9zeW5jTWltZVR5cGVQb2xpY3lBY3Rpb24o
UG9saWN5VXNlKQpAQCAtMTg2MSwxMCArMTg2MiwxNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVu
T3BlblBhbmVsKHVpbnQ2NF90CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQpCiB7CisgICAgQVNTRVJUKCFtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0
aW9uKTsKKyAgICBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uID0gdHJ1ZTsKKwogICAg
IFdlYkZyYW1lUHJveHkqIGZyYW1lID0gcHJvY2VzcygpLT53ZWJGcmFtZShmcmFtZUlEKTsKICAg
ICBNRVNTQUdFX0NIRUNLKGZyYW1lKTsKIAogICAgIG1fdWlDbGllbnQucHJpbnRGcmFtZSh0aGlz
LCBmcmFtZSk7CisKKyAgICBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uID0gZmFsc2U7
CiB9CiAKICNpZiBQTEFURk9STShRVCkKQEAgLTI2NzEsNyArMjY3Nyw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpiZWdpblByaW50aW5nKFdlYkZyYW0KICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9p
c0luUHJpbnRpbmdNb2RlID0gdHJ1ZTsKLSAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OkJlZ2luUHJpbnRpbmcoZnJhbWUtPmZyYW1lSUQoKSwgcHJpbnRJbmZvKSwgbV9wYWdl
SUQpOworICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6QmVnaW5QcmludGlu
ZyhmcmFtZS0+ZnJhbWVJRCgpLCBwcmludEluZm8pLCBtX3BhZ2VJRCwgbV9pc1BlcmZvcm1pbmdE
T01QcmludE9wZXJhdGlvbiA/IENvcmVJUEM6OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSA6IDApOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZW5kUHJpbnRpbmco
KQpAQCAtMjY4MCw3ICsyNjg2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmVuZFByaW50aW5nKCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pc0luUHJpbnRpbmdNb2RlID0gZmFsc2U7Ci0gICAg
cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpFbmRQcmludGluZygpLCBtX3BhZ2VJ
RCk7CisgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpFbmRQcmludGluZygp
LCBtX3BhZ2VJRCwgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiA/IENvcmVJUEM6OkRp
c3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSA6IDApOwogfQogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoV2ViRnJhbWVQcm94eSogZnJh
bWUsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBQYXNzUmVmUHRyPENvbXB1dGVkUGFnZXND
YWxsYmFjaz4gY2FsbGJhY2spCkBAIC0yNjg4LDcgKzI2OTQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxi
YWNrLT5jYWxsYmFja0lEKCk7CiAgICAgbV9jb21wdXRlZFBhZ2VzQ2FsbGJhY2tzLnNldChjYWxs
YmFja0lELCBjYWxsYmFjay5nZXQoKSk7CiAgICAgbV9pc0luUHJpbnRpbmdNb2RlID0gdHJ1ZTsK
LSAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclBy
aW50aW5nKGZyYW1lLT5mcmFtZUlEKCksIHByaW50SW5mbywgY2FsbGJhY2tJRCksIG1fcGFnZUlE
KTsKKyAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0Zv
clByaW50aW5nKGZyYW1lLT5mcmFtZUlEKCksIHByaW50SW5mbywgY2FsbGJhY2tJRCksIG1fcGFn
ZUlELCBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uID8gQ29yZUlQQzo6RGlzcGF0Y2hN
ZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5IDogMCk7CiB9CiAKICNpZiBQTEFURk9S
TShNQUMpCkBAIC0yNjk2LDE0ICsyNzAyLDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkcmF3UmVj
dFRvUERGKFdlYkZyYW0KIHsKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNh
bGxiYWNrSUQoKTsKICAgICBtX2RhdGFDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNr
LmdldCgpKTsKLSAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRyYXdSZWN0
VG9QREYoZnJhbWUtPmZyYW1lSUQoKSwgcmVjdCwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKKyAg
ICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRyYXdSZWN0VG9QREYoZnJhbWUt
PmZyYW1lSUQoKSwgcmVjdCwgY2FsbGJhY2tJRCksIG1fcGFnZUlELCBtX2lzUGVyZm9ybWluZ0RP
TVByaW50T3BlcmF0aW9uID8gQ29yZUlQQzo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5IDogMCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkcmF3UGFnZXNUb1BE
RihXZWJGcmFtZVByb3h5KiBmcmFtZSwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBQ
YXNzUmVmUHRyPERhdGFDYWxsYmFjaz4gY2FsbGJhY2spCiB7CiAgICAgdWludDY0X3QgY2FsbGJh
Y2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CiAgICAgbV9kYXRhQ2FsbGJhY2tzLnNldChj
YWxsYmFja0lELCBjYWxsYmFjay5nZXQoKSk7Ci0gICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpEcmF3UGFnZXNUb1BERihmcmFtZS0+ZnJhbWVJRCgpLCBmaXJzdCwgY291bnQs
IGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CisgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpEcmF3UGFnZXNUb1BERihmcmFtZS0+ZnJhbWVJRCgpLCBmaXJzdCwgY291bnQsIGNh
bGxiYWNrSUQpLCBtX3BhZ2VJRCwgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiA/IENv
cmVJUEM6OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSA6IDApOwog
fQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJ
KHJldmlzaW9uIDc4NDAzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NDMsNiArNjQzLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1faXNDbG9zZWQ7CiAKICAgICBib29sIG1faXNJblByaW50aW5nTW9kZTsKKyAgICBib29sIG1f
aXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb247CiAKICAgICBib29sIG1faW5EZWNpZGVQb2xp
Y3lGb3JNSU1FVHlwZTsKICAgICBib29sIG1fc3luY01pbWVUeXBlUG9saWN5QWN0aW9uSXNWYWxp
ZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CShyZXZpc2lvbiA3ODQwMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTc3LDcgKzc4LDcgQEAgV2Vi
UHJvY2Vzc1Byb3h5Ojp+V2ViUHJvY2Vzc1Byb3h5KCkKICAgICAgICAgbV9jb25uZWN0aW9uLT5p
bnZhbGlkYXRlKCk7CiAgICAgCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3BlbmRpbmdN
ZXNzYWdlcy5zaXplKCk7ICsraSkKLSAgICAgICAgbV9wZW5kaW5nTWVzc2FnZXNbaV0ucmVsZWFz
ZUFyZ3VtZW50cygpOworICAgICAgICBtX3BlbmRpbmdNZXNzYWdlc1tpXS5maXJzdC5yZWxlYXNl
QXJndW1lbnRzKCk7CiAKICAgICBpZiAobV9wcm9jZXNzTGF1bmNoZXIpIHsKICAgICAgICAgbV9w
cm9jZXNzTGF1bmNoZXItPmludmFsaWRhdGUoKTsKQEAgLTEwOCwxMiArMTA5LDEyIEBAIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5Ojpjb25uZWN0KCkKICAgICB9CiB9CiAKLWJvb2wgV2ViUHJvY2Vzc1By
b3h5OjpzZW5kTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBQYXNzT3duUHRy
PENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4gYXJndW1lbnRzKQorYm9vbCBXZWJQcm9jZXNzUHJv
eHk6OnNlbmRNZXNzYWdlKENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIFBhc3NPd25QdHI8
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiBhcmd1bWVudHMsIHVuc2lnbmVkIG1lc3NhZ2VTZW5k
RmxhZ3MpCiB7CiAgICAgLy8gSWYgd2UncmUgd2FpdGluZyBmb3IgdGhlIHdlYiBwcm9jZXNzIHRv
IGxhdW5jaCwgd2UgbmVlZCB0byBzdGFzaCBhd2F5IHRoZSBtZXNzYWdlcyBzbyB3ZSBjYW4gc2Vu
ZCB0aGVtIG9uY2Ugd2UgaGF2ZQogICAgIC8vIGEgQ29yZUlQQyBjb25uZWN0aW9uLgogICAgIGlm
IChpc0xhdW5jaGluZygpKSB7Ci0gICAgICAgIG1fcGVuZGluZ01lc3NhZ2VzLmFwcGVuZChDb3Jl
SVBDOjpDb25uZWN0aW9uOjpPdXRnb2luZ01lc3NhZ2UobWVzc2FnZUlELCBhcmd1bWVudHMpKTsK
KyAgICAgICAgbV9wZW5kaW5nTWVzc2FnZXMuYXBwZW5kKG1ha2VfcGFpcihDb3JlSVBDOjpDb25u
ZWN0aW9uOjpPdXRnb2luZ01lc3NhZ2UobWVzc2FnZUlELCBhcmd1bWVudHMpLCBtZXNzYWdlU2Vu
ZEZsYWdzKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMTIxLDcgKzEyMiw3
IEBAIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpzZW5kTWVzc2FnZShDb3JlSVAKICAgICBpZiAoIW1f
Y29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIG1fY29ubmVj
dGlvbi0+c2VuZE1lc3NhZ2UobWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIHJldHVybiBtX2Nv
bm5lY3Rpb24tPnNlbmRNZXNzYWdlKG1lc3NhZ2VJRCwgYXJndW1lbnRzLCBtZXNzYWdlU2VuZEZs
YWdzKTsKIH0KIAogYm9vbCBXZWJQcm9jZXNzUHJveHk6OmlzTGF1bmNoaW5nKCkgY29uc3QKQEAg
LTM1Miw4ICszNTMsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5n
CiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7CiAgICAgCiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBtX3BlbmRpbmdNZXNzYWdlcy5zaXplKCk7ICsraSkgewotICAgICAgICBDb3JlSVBDOjpD
b25uZWN0aW9uOjpPdXRnb2luZ01lc3NhZ2UmIG91dGdvaW5nTWVzc2FnZSA9IG1fcGVuZGluZ01l
c3NhZ2VzW2ldOwotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRNZXNzYWdlKG91dGdvaW5nTWVz
c2FnZS5tZXNzYWdlSUQoKSwgYWRvcHRQdHIob3V0Z29pbmdNZXNzYWdlLmFyZ3VtZW50cygpKSk7
CisgICAgICAgIENvcmVJUEM6OkNvbm5lY3Rpb246Ok91dGdvaW5nTWVzc2FnZSYgb3V0Z29pbmdN
ZXNzYWdlID0gbV9wZW5kaW5nTWVzc2FnZXNbaV0uZmlyc3Q7CisgICAgICAgIHVuc2lnbmVkIG1l
c3NhZ2VTZW5kRmxhZ3MgPSBtX3BlbmRpbmdNZXNzYWdlc1tpXS5zZWNvbmQ7CisgICAgICAgIG1f
Y29ubmVjdGlvbi0+c2VuZE1lc3NhZ2Uob3V0Z29pbmdNZXNzYWdlLm1lc3NhZ2VJRCgpLCBhZG9w
dFB0cihvdXRnb2luZ01lc3NhZ2UuYXJndW1lbnRzKCkpLCBtZXNzYWdlU2VuZEZsYWdzKTsKICAg
ICB9CiAKICAgICBtX3BlbmRpbmdNZXNzYWdlcy5jbGVhcigpOwpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAkocmV2aXNpb24gNzg0MDMpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHdvcmtpbmcgY29weSkKQEAg
LTYzLDggKzYzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGUoKTsKIAotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEUsIHR5cGVuYW1lIFQ+IGJvb2wgc2VuZChFIG1lc3NhZ2VJRCwgdWlu
dDY0X3QgZGVzdGluYXRpb25JRCwgY29uc3QgVCYgYXJndW1lbnRzKTsKLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBib29sIHNlbmQoY29uc3QgVCYgbWVzc2FnZSwgdWludDY0X3QgZGVzdGluYXRp
b25JRCk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBzZW5kKGNvbnN0IFQmIG1lc3Nh
Z2UsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVuc2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MgPSAw
KTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBib29sIHNlbmRTeW5jKGNvbnN0IFUmIG1lc3Nh
Z2UsIGNvbnN0IHR5cGVuYW1lIFU6OlJlcGx5JiByZXBseSwgdWludDY0X3QgZGVzdGluYXRpb25J
RCwgZG91YmxlIHRpbWVvdXQgPSAxKTsKICAgICAKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uKCkgY29uc3QKQEAgLTEwNSwxMyArMTA0LDE2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJOZXdXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKLSAgICAKKworICAgIC8v
IEZJWE1FOiBUaGlzIHZhcmlhbnQgb2Ygc2VuZCBpcyBkZXByZWNhdGVkLiBBbGwgY2xpZW50cyBz
aG91bGQgbW92ZSB0byBhbiBvdmVybG9hZCB0aGF0IHRha2UgYSBtZXNzYWdlIHR5cGUuCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgRSwgdHlwZW5hbWUgVD4gYm9vbCBkZXByZWNhdGVkU2VuZChFIG1l
c3NhZ2VJRCwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgY29uc3QgVCYgYXJndW1lbnRzKTsKKwog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJQcm9jZXNzUHJveHkoV2ViQ29udGV4dCopOwogCiAg
ICAgdm9pZCBjb25uZWN0KCk7CiAKLSAgICBib29sIHNlbmRNZXNzYWdlKENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgUGFzc093blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+KTsKKyAgICBib29sIHNl
bmRNZXNzYWdlKENvcmVJUEM6Ok1lc3NhZ2VJRCwgUGFzc093blB0cjxDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXI+LCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzKTsKIAogICAgIHZvaWQgYWRkQmFj
a0ZvcndhcmRJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFVSTFN0
cmluZywgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0
IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIGJhY2tGb3J3YXJkRGF0YSk7CiAKQEAgLTE0Myw3ICsx
NDUsNyBAQCBwcml2YXRlOgogICAgIFJlc3BvbnNpdmVuZXNzVGltZXIgbV9yZXNwb25zaXZlbmVz
c1RpbWVyOwogICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAK
LSAgICBWZWN0b3I8Q29yZUlQQzo6Q29ubmVjdGlvbjo6T3V0Z29pbmdNZXNzYWdlPiBtX3BlbmRp
bmdNZXNzYWdlczsKKyAgICBWZWN0b3I8c3RkOjpwYWlyPENvcmVJUEM6OkNvbm5lY3Rpb246Ok91
dGdvaW5nTWVzc2FnZSwgdW5zaWduZWQ+ID4gbV9wZW5kaW5nTWVzc2FnZXM7CiAgICAgUmVmUHRy
PFByb2Nlc3NMYXVuY2hlcj4gbV9wcm9jZXNzTGF1bmNoZXI7CiAgICAgUmVmUHRyPFRocmVhZExh
dW5jaGVyPiBtX3RocmVhZExhdW5jaGVyOwogCkBAIC0xNTUsMjEgKzE1NywyMSBAQCBwcml2YXRl
OgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRSwgdHlwZW5hbWUgVD4KLWJvb2wgV2ViUHJvY2Vz
c1Byb3h5OjpzZW5kKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBjb25zdCBU
JiBhcmd1bWVudHMpCitib29sIFdlYlByb2Nlc3NQcm94eTo6ZGVwcmVjYXRlZFNlbmQoRSBtZXNz
YWdlSUQsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIGNvbnN0IFQmIGFyZ3VtZW50cykKIHsKICAg
ICBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiBhcmd1bWVudEVuY29kZXIgPSBDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI6OmNyZWF0ZShkZXN0aW5hdGlvbklEKTsKICAgICBhcmd1bWVu
dEVuY29kZXItPmVuY29kZShhcmd1bWVudHMpOwogCi0gICAgcmV0dXJuIHNlbmRNZXNzYWdlKENv
cmVJUEM6Ok1lc3NhZ2VJRChtZXNzYWdlSUQpLCBhcmd1bWVudEVuY29kZXIucmVsZWFzZSgpKTsK
KyAgICByZXR1cm4gc2VuZE1lc3NhZ2UoQ29yZUlQQzo6TWVzc2FnZUlEKG1lc3NhZ2VJRCksIGFy
Z3VtZW50RW5jb2Rlci5yZWxlYXNlKCksIDApOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgot
Ym9vbCBXZWJQcm9jZXNzUHJveHk6OnNlbmQoY29uc3QgVCYgbWVzc2FnZSwgdWludDY0X3QgZGVz
dGluYXRpb25JRCkKK2Jvb2wgV2ViUHJvY2Vzc1Byb3h5OjpzZW5kKGNvbnN0IFQmIG1lc3NhZ2Us
IHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIHVuc2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MpCiB7CiAg
ICAgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4gYXJndW1lbnRFbmNvZGVyID0gQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyOjpjcmVhdGUoZGVzdGluYXRpb25JRCk7CiAgICAgYXJndW1l
bnRFbmNvZGVyLT5lbmNvZGUobWVzc2FnZSk7CiAKLSAgICByZXR1cm4gc2VuZE1lc3NhZ2UoQ29y
ZUlQQzo6TWVzc2FnZUlEKFQ6Om1lc3NhZ2VJRCksIGFyZ3VtZW50RW5jb2Rlci5yZWxlYXNlKCkp
OworICAgIHJldHVybiBzZW5kTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQoVDo6bWVzc2FnZUlE
KSwgYXJndW1lbnRFbmNvZGVyLnJlbGVhc2UoKSwgbWVzc2FnZVNlbmRGbGFncyk7CiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFU+IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82233</attachid>
            <date>2011-02-12 00:46:37 -0800</date>
            <delta_ts>2011-02-12 14:08:06 -0800</delta_ts>
            <desc>with qt build fix</desc>
            <filename>WindowPrint.txt</filename>
            <type>text/plain</type>
            <size>21375</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NDA3KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTEtMDItMTEgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0MzM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84ODk1MTQxPiBNYWtlIHdpbmRvdy5w
cmludCgpIHdvcmsgd2l0aCBXZWJLaXQyCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Nv
bm5lY3Rpb24uaDogQ29ycmVjdGVkIGEgdHlwbyBpbiBGSVhNRSBjb21tZW50LgorCisgICAgICAg
ICogVUlQcm9jZXNzL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnNldFBhZ2VJc1Zpc2libGUp
OgorICAgICAgICAoV2ViS2l0OjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRl
KToKKyAgICAgICAgKFdlYktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnNlbmRT
ZXRTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6VGlsZWREcmF3aW5nQXJlYVByb3h5OjpzaXplRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYktpdDo6VGlsZWREcmF3aW5nQXJlYVByb3h5OjpzZXRQYWdlSXNWaXNpYmxl
KToKKyAgICAgICAgKFdlYktpdDo6VGlsZWREcmF3aW5nQXJlYVByb3h5Ojp0YWtlU25hcHNob3Qp
OgorICAgICAgICAoV2ViS2l0OjpUaWxlZERyYXdpbmdBcmVhUHJveHk6OnJlbW92ZVRpbGUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHk6OnNpemVEaWRDaGFuZ2Up
OgorICAgICAgICAoV2ViS2l0OjpMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHk6OnNldFBhZ2VJ
c1Zpc2libGUpOgorICAgICAgICAoV2ViS2l0OjpMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHk6
OnVwZGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjplbnN1cmVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dDo6cG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKToKKyAgICAgICAgVXBkYXRl
ZCBmb3Igc2VuZCgpIC0+IGRlcHJlY2F0ZWRTZW5kKCkgcmVuYW1lLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6IEFkZGVk
IGEgZmxhZyB0aGF0J3MgdHJ1ZSB3aGlsZSBzZXJ2aW5nIHdpbmRvdy5wcmludCgpLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByaW50RnJhbWUpOiBTZXQgYW5kIHVuc2V0IG1faXNQ
ZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6YmVnaW5QcmludGluZyk6IEZvcmNlIG1lc3NhZ2UgcHJvY2Vzc2luZyBpbiB3ZWIgcHJvY2Vz
cyB3aGVuIHNlcnZpbmcKKyAgICAgICAgd2luZG93LnByaW50KCkuCisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6ZW5kUHJpbnRpbmcpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZyk6IERpdHRvLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRyYXdSZWN0VG9QREYpOiBEaXR0by4KKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpkcmF3UGFnZXNUb1BERik6IERpdHRvLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6fldlYlByb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6c2VuZE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZEZp
bmlzaExhdW5jaGluZyk6CisgICAgICAgIFdoZW4gd2FpdGluZyBmb3IgYSB3ZWIgcHJvY2VzcyB0
byBsYXVuY2gsIHN0b3JlIG1lc3NhZ2UgZmxhZ3MsIHRvby4gVGhpcyBpcyBub3QgcHJhY3RpY2Fs
bHkKKyAgICAgICAgaW1wb3J0YW50IGZvciBEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHksIGJ1dCBpdCdzIGVhc2llciB0byBzdG9yZSBmbGFncworICAgICAgICB0aGFu
IHRvIHJlbWVtYmVyIGFib3V0IHRoaXMgcGl0ZmFsbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5k
KTogQWRkZWQgYSBmbGFncyBhcmd1bWVudCwgbWF0Y2hpbmcgQ29ubmVjdGlvbjo6c2VuZCgpLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRlcHJlY2F0ZWRTZW5kKTogUmVuYW1l
ZCBvbmUgb2Ygc2VuZCgpIG92ZXJsb2FkcywgYmVjYXVzZSBpdCB3YXMKKyAgICAgICAgY29uZmxp
Y3Rpbmcgd2l0aCB0aGUgb3RoZXIgb25lIGFmdGVyIGFkZGluZyBhIGZsYWdzIGFyZ3VtZW50LiBU
aGlzIG1hdGNoZXMgYSBjaGFuZ2UgcHJldmlvdXNseQorICAgICAgICBtYWRlIHRvIENvcmVJUEM6
OkNvbm5lY3Rpb24uCisKIDIwMTEtMDItMTEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCShyZXZpc2lv
biA3ODQwMykKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNyArMTM2LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2Vu
ZE1lc3NhZ2UoTWVzc2FnZUlELCBQYXNzT3duUHRyPEFyZ3VtZW50RW5jb2Rlcj4sIHVuc2lnbmVk
IG1lc3NhZ2VTZW5kRmxhZ3MgPSAwKTsKICAgICBib29sIHNlbmRTeW5jUmVwbHkoUGFzc093blB0
cjxBcmd1bWVudEVuY29kZXI+KTsKIAotICAgIC8vIEZJWE1FOiBUaGVzZSB2YXJpYW50cyBvZiBz
ZW5jLCBzZW5kU3luYyBhbmQgd2FpdEZvciBhcmUgYWxsIGRlcHJlY2F0ZWQuCisgICAgLy8gRklY
TUU6IFRoZXNlIHZhcmlhbnRzIG9mIHNlbmQsIHNlbmRTeW5jIGFuZCB3YWl0Rm9yIGFyZSBhbGwg
ZGVwcmVjYXRlZC4KICAgICAvLyBBbGwgY2xpZW50cyBzaG91bGQgbW92ZSB0byB0aGUgb3Zlcmxv
YWRzIHRoYXQgdGFrZSBhIG1lc3NhZ2UgdHlwZS4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFLCB0
eXBlbmFtZSBUPiBib29sIGRlcHJlY2F0ZWRTZW5kKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0
aW5hdGlvbklELCBjb25zdCBUJiBhcmd1bWVudHMpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEUs
IHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGJvb2wgZGVwcmVjYXRlZFNlbmRTeW5jKEUgbWVzc2Fn
ZUlELCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBjb25zdCBUJiBhcmd1bWVudHMsIGNvbnN0IFUm
IHJlcGx5LCBkb3VibGUgdGltZW91dCA9IE5vVGltZW91dCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94
eS5jcHAJKHJldmlzaW9uIDc4NDAzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NodW5r
ZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTYsMTIgKzk2
LDEyIEBAIHZvaWQgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHk6OnNldFAKIAogICAgIGlm
ICghbV9pc1Zpc2libGUpIHsKICAgICAgICAgLy8gVGVsbCB0aGUgd2ViIHByb2Nlc3MgdGhhdCBp
dCBkb2Vzbid0IG5lZWQgdG8gcGFpbnQgYW55dGhpbmcgZm9yIG5vdy4KLSAgICAgICAgcGFnZS0+
cHJvY2VzcygpLT5zZW5kKERyYXdpbmdBcmVhTGVnYWN5TWVzc2FnZTo6U3VzcGVuZFBhaW50aW5n
LCBwYWdlLT5wYWdlSUQoKSwgQ29yZUlQQzo6SW4oaW5mbygpLmlkZW50aWZpZXIpKTsKKyAgICAg
ICAgcGFnZS0+cHJvY2VzcygpLT5kZXByZWNhdGVkU2VuZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3Nh
Z2U6OlN1c3BlbmRQYWludGluZywgcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5p
ZGVudGlmaWVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgLy8gVGhlIHBh
Z2UgaXMgbm93IHZpc2libGUsIHJlc3VtZSBwYWludGluZy4KLSAgICBwYWdlLT5wcm9jZXNzKCkt
PnNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpSZXN1bWVQYWludGluZywgcGFnZS0+cGFn
ZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5pZGVudGlmaWVyLCBtX2ZvcmNlUmVwYWludFdoZW5S
ZXN1bWluZ1BhaW50aW5nKSk7CisgICAgcGFnZS0+cHJvY2VzcygpLT5kZXByZWNhdGVkU2VuZChE
cmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlJlc3VtZVBhaW50aW5nLCBwYWdlLT5wYWdlSUQoKSwg
Q29yZUlQQzo6SW4oaW5mbygpLmlkZW50aWZpZXIsIG1fZm9yY2VSZXBhaW50V2hlblJlc3VtaW5n
UGFpbnRpbmcpKTsKICAgICBtX2ZvcmNlUmVwYWludFdoZW5SZXN1bWluZ1BhaW50aW5nID0gZmFs
c2U7CiB9CiAgICAgCkBAIC0xMzMsNyArMTMzLDcgQEAgdm9pZCBDaHVua2VkVXBkYXRlRHJhd2lu
Z0FyZWFQcm94eTo6dXBkYQogICAgIH0KIAogICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHRoaXMt
PnBhZ2UoKTsKLSAgICBwYWdlLT5wcm9jZXNzKCktPnNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNz
YWdlOjpEaWRVcGRhdGUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihpbmZvKCkuaWRlbnRp
ZmllcikpOworICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFM
ZWdhY3lNZXNzYWdlOjpEaWRVcGRhdGUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihpbmZv
KCkuaWRlbnRpZmllcikpOwogfQogCiB2b2lkIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5
OjpzZW5kU2V0U2l6ZSgpCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBDaHVua2VkVXBkYXRlRHJh
d2luZ0FyZWFQcm94eTo6c2VuZAogICAgICAgICByZXR1cm47CiAgICAgbV9pc1dhaXRpbmdGb3JE
aWRTZXRGcmFtZU5vdGlmaWNhdGlvbiA9IHRydWU7CiAgICAgCi0gICAgbV93ZWJQYWdlUHJveHkt
PnByb2Nlc3MoKS0+c2VuZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlNldFNpemUsIG1fd2Vi
UGFnZVByb3h5LT5wYWdlSUQoKSwgQ29yZUlQQzo6SW4oaW5mbygpLmlkZW50aWZpZXIsIG1fc2l6
ZSkpOworICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCktPmRlcHJlY2F0ZWRTZW5kKERyYXdp
bmdBcmVhTGVnYWN5TWVzc2FnZTo6U2V0U2l6ZSwgbV93ZWJQYWdlUHJveHktPnBhZ2VJRCgpLCBD
b3JlSVBDOjpJbihpbmZvKCkuaWRlbnRpZmllciwgbV9zaXplKSk7CiB9CiAgICAgCiB2b2lkIENo
dW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5
ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5LmNwcAkocmV2aXNpb24gNzg0
MDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVBy
b3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEsNyArODEsNyBAQCB2b2lkIExheWVyQmFja2Vk
RHJhd2luZ0FyZWFQcm94eTo6c2l6ZURpCiAKICAgICBtX2lzV2FpdGluZ0ZvckRpZFNldEZyYW1l
Tm90aWZpY2F0aW9uID0gdHJ1ZTsKIAotICAgIHBhZ2UtPnByb2Nlc3MoKS0+c2VuZChEcmF3aW5n
QXJlYUxlZ2FjeU1lc3NhZ2U6OlNldFNpemUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihp
bmZvKCkuaWRlbnRpZmllciwgbV9zaXplKSk7CisgICAgcGFnZS0+cHJvY2VzcygpLT5kZXByZWNh
dGVkU2VuZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlNldFNpemUsIHBhZ2UtPnBhZ2VJRCgp
LCBDb3JlSVBDOjpJbihpbmZvKCkuaWRlbnRpZmllciwgbV9zaXplKSk7CiB9CiAKICNpZiAhUExB
VEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oV0lOKQpAQCAtMTAzLDEyICsxMDMsMTIgQEAgdm9pZCBM
YXllckJhY2tlZERyYXdpbmdBcmVhUHJveHk6OnNldFBhZwogCiAgICAgaWYgKCFtX2lzVmlzaWJs
ZSkgewogICAgICAgICAvLyBUZWxsIHRoZSB3ZWIgcHJvY2VzcyB0aGF0IGl0IGRvZXNuJ3QgbmVl
ZCB0byBwYWludCBhbnl0aGluZyBmb3Igbm93LgotICAgICAgICBwYWdlLT5wcm9jZXNzKCktPnNl
bmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpTdXNwZW5kUGFpbnRpbmcsIHBhZ2UtPnBhZ2VJ
RCgpLCBDb3JlSVBDOjpJbihpbmZvKCkuaWRlbnRpZmllcikpOworICAgICAgICBwYWdlLT5wcm9j
ZXNzKCktPmRlcHJlY2F0ZWRTZW5kKERyYXdpbmdBcmVhTGVnYWN5TWVzc2FnZTo6U3VzcGVuZFBh
aW50aW5nLCBwYWdlLT5wYWdlSUQoKSwgQ29yZUlQQzo6SW4oaW5mbygpLmlkZW50aWZpZXIpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICAvLyBUaGUgcGFnZSBpcyBub3cgdmlz
aWJsZS4KLSAgICBwYWdlLT5wcm9jZXNzKCktPnNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdl
OjpSZXN1bWVQYWludGluZywgcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5pZGVu
dGlmaWVyKSk7CisgICAgcGFnZS0+cHJvY2VzcygpLT5kZXByZWNhdGVkU2VuZChEcmF3aW5nQXJl
YUxlZ2FjeU1lc3NhZ2U6OlJlc3VtZVBhaW50aW5nLCBwYWdlLT5wYWdlSUQoKSwgQ29yZUlQQzo6
SW4oaW5mbygpLmlkZW50aWZpZXIpKTsKICAgICAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJl
cXVlc3QgYSBmdWxsIHJlcGFpbnQgaGVyZSBpZiBuZWVkZWQuCiB9CkBAIC0xMjQsNyArMTI0LDcg
QEAgdm9pZCBMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHk6OmRpZFNldAogdm9pZCBMYXllckJh
Y2tlZERyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZSgpCiB7CiAgICAgV2ViUGFnZVByb3h5KiBwYWdl
ID0gdGhpcy0+cGFnZSgpOwotICAgIHBhZ2UtPnByb2Nlc3MoKS0+c2VuZChEcmF3aW5nQXJlYUxl
Z2FjeU1lc3NhZ2U6OkRpZFVwZGF0ZSwgcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8o
KS5pZGVudGlmaWVyKSk7CisgICAgcGFnZS0+cHJvY2VzcygpLT5kZXByZWNhdGVkU2VuZChEcmF3
aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OkRpZFVwZGF0ZSwgcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6
OkluKGluZm8oKS5pZGVudGlmaWVyKSk7CiB9CiAKIHZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJl
YVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMp
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJl
YVByb3h5LmNwcAkocmV2aXNpb24gNzg0MDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VGlsZWREcmF3aW5nQXJlYVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsNyArODMsNyBA
QCB2b2lkIFRpbGVkRHJhd2luZ0FyZWFQcm94eTo6c2l6ZURpZENoYW5nCiAgICAgbV9pc1dhaXRp
bmdGb3JEaWRTZXRGcmFtZU5vdGlmaWNhdGlvbiA9IHRydWU7CiAKICAgICBwYWdlLT5wcm9jZXNz
KCktPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+c3RhcnQoKTsKLSAgICBwYWdlLT5wcm9jZXNzKCkt
PnNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpTZXRTaXplLCBwYWdlLT5wYWdlSUQoKSwg
Q29yZUlQQzo6SW4obV9zaXplKSk7CisgICAgcGFnZS0+cHJvY2VzcygpLT5kZXByZWNhdGVkU2Vu
ZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlNldFNpemUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3Jl
SVBDOjpJbihtX3NpemUpKTsKIH0KIAogdm9pZCBUaWxlZERyYXdpbmdBcmVhUHJveHk6OnNldFBh
Z2VJc1Zpc2libGUoYm9vbCBpc1Zpc2libGUpCkBAIC05OSwxMiArOTksMTIgQEAgdm9pZCBUaWxl
ZERyYXdpbmdBcmVhUHJveHk6OnNldFBhZ2VJc1ZpcwogCiAgICAgaWYgKCFtX2lzVmlzaWJsZSkg
ewogICAgICAgICAvLyBUZWxsIHRoZSB3ZWIgcHJvY2VzcyB0aGF0IGl0IGRvZXNuJ3QgbmVlZCB0
byBwYWludCBhbnl0aGluZyBmb3Igbm93LgotICAgICAgICBwYWdlLT5wcm9jZXNzKCktPnNlbmQo
RHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpTdXNwZW5kUGFpbnRpbmcsIHBhZ2UtPnBhZ2VJRCgp
LCBDb3JlSVBDOjpJbigpKTsKKyAgICAgICAgcGFnZS0+cHJvY2VzcygpLT5kZXByZWNhdGVkU2Vu
ZChEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OlN1c3BlbmRQYWludGluZywgcGFnZS0+cGFnZUlE
KCksIENvcmVJUEM6OkluKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8gVGhl
IHBhZ2UgaXMgbm93IHZpc2libGUuCi0gICAgcGFnZS0+cHJvY2VzcygpLT5zZW5kKERyYXdpbmdB
cmVhTGVnYWN5TWVzc2FnZTo6UmVzdW1lUGFpbnRpbmcsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBD
OjpJbigpKTsKKyAgICBwYWdlLT5wcm9jZXNzKCktPmRlcHJlY2F0ZWRTZW5kKERyYXdpbmdBcmVh
TGVnYWN5TWVzc2FnZTo6UmVzdW1lUGFpbnRpbmcsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJ
bigpKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVxdWVzdCBhIGZ1bGwgcmVwYWludCBo
ZXJlIGlmIG5lZWRlZC4KIH0KQEAgLTIzMyw3ICsyMzMsNyBAQCB2b2lkIFRpbGVkRHJhd2luZ0Fy
ZWFQcm94eTo6c2V0S2VlcEFuZENvCiB2b2lkIFRpbGVkRHJhd2luZ0FyZWFQcm94eTo6dGFrZVNu
YXBzaG90KGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IEludFJlY3QmIGNvbnRlbnRzUmVjdCkK
IHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7Ci0gICAgcGFnZS0+cHJv
Y2VzcygpLT5zZW5kKERyYXdpbmdBcmVhTGVnYWN5TWVzc2FnZTo6VGFrZVNuYXBzaG90LCBwYWdl
LT5wYWdlSUQoKSwgQ29yZUlQQzo6T3V0KHNpemUsIGNvbnRlbnRzUmVjdCkpOworICAgIHBhZ2Ut
PnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpUYWtl
U25hcHNob3QsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpPdXQoc2l6ZSwgY29udGVudHNSZWN0
KSk7CiB9CiAKIHZvaWQgVGlsZWREcmF3aW5nQXJlYVByb3h5OjppbnZhbGlkYXRlKGNvbnN0IElu
dFJlY3QmIGNvbnRlbnRzRGlydHlSZWN0KQpAQCAtNTQyLDcgKzU0Miw3IEBAIHZvaWQgVGlsZWRE
cmF3aW5nQXJlYVByb3h5OjpyZW1vdmVUaWxlKGMKICAgICBpZiAoIXRpbGUtPmhhc0JhY2tCdWZm
ZXJVcGRhdGVQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKICAgICBXZWJQYWdlUHJveHkqIHBh
Z2UgPSB0aGlzLT5wYWdlKCk7Ci0gICAgcGFnZS0+cHJvY2VzcygpLT5zZW5kKERyYXdpbmdBcmVh
TGVnYWN5TWVzc2FnZTo6Q2FuY2VsVGlsZVVwZGF0ZSwgcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6
OkluKHRpbGUtPklEKCkpKTsKKyAgICBwYWdlLT5wcm9jZXNzKCktPmRlcHJlY2F0ZWRTZW5kKERy
YXdpbmdBcmVhTGVnYWN5TWVzc2FnZTo6Q2FuY2VsVGlsZVVwZGF0ZSwgcGFnZS0+cGFnZUlEKCks
IENvcmVJUEM6OkluKHRpbGUtPklEKCkpKTsKIH0KIAogSW50UmVjdCBUaWxlZERyYXdpbmdBcmVh
UHJveHk6Om1hcFRvQ29udGVudHMoY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHJldmlzaW9uIDc4NDAzKQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDQsNyArMjA0LDcgQEAgdm9pZCBXZWJDb250ZXh0OjplbnN1cmVXZWJQcm9jZXNzKCkKIAog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpICE9IG1fcGVuZGluZ01lc3NhZ2VzVG9Qb3N0VG9Jbmpl
Y3RlZEJ1bmRsZS5zaXplKCk7ICsraSkgewogICAgICAgICBwYWlyPFN0cmluZywgUmVmUHRyPEFQ
SU9iamVjdD4gPiYgbWVzc2FnZSA9IG1fcGVuZGluZ01lc3NhZ2VzVG9Qb3N0VG9JbmplY3RlZEJ1
bmRsZVtpXTsKLSAgICAgICAgbV9wcm9jZXNzLT5zZW5kKEluamVjdGVkQnVuZGxlTWVzc2FnZTo6
UG9zdE1lc3NhZ2UsIDAsIENvcmVJUEM6OkluKG1lc3NhZ2UuZmlyc3QsIFdlYkNvbnRleHRVc2Vy
TWVzc2FnZUVuY29kZXIobWVzc2FnZS5zZWNvbmQuZ2V0KCkpKSk7CisgICAgICAgIG1fcHJvY2Vz
cy0+ZGVwcmVjYXRlZFNlbmQoSW5qZWN0ZWRCdW5kbGVNZXNzYWdlOjpQb3N0TWVzc2FnZSwgMCwg
Q29yZUlQQzo6SW4obWVzc2FnZS5maXJzdCwgV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2Rlciht
ZXNzYWdlLnNlY29uZC5nZXQoKSkpKTsKICAgICB9CiAgICAgbV9wZW5kaW5nTWVzc2FnZXNUb1Bv
c3RUb0luamVjdGVkQnVuZGxlLmNsZWFyKCk7CiB9CkBAIC0yODEsNyArMjgxLDcgQEAgdm9pZCBX
ZWJDb250ZXh0Ojpwb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdQogCiAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBjb25zaWRlciByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIGZ1bmN0aW9uIGlmIHRoZSBt
ZXNzYWdlQm9keSBjYW5ub3QKICAgICAvLyBiZSBlbmNvZGVkLgotICAgIG1fcHJvY2Vzcy0+c2Vu
ZChJbmplY3RlZEJ1bmRsZU1lc3NhZ2U6OlBvc3RNZXNzYWdlLCAwLCBDb3JlSVBDOjpJbihtZXNz
YWdlTmFtZSwgV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9keSkpKTsKKyAg
ICBtX3Byb2Nlc3MtPmRlcHJlY2F0ZWRTZW5kKEluamVjdGVkQnVuZGxlTWVzc2FnZTo6UG9zdE1l
c3NhZ2UsIDAsIENvcmVJUEM6OkluKG1lc3NhZ2VOYW1lLCBXZWJDb250ZXh0VXNlck1lc3NhZ2VF
bmNvZGVyKG1lc3NhZ2VCb2R5KSkpOwogfQogCiAvLyBJbmplY3RlZEJ1bmRsZSBjbGllbnQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiA3
ODQwMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjEsNiArMTIxLDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHko
UGFnZUNsaWVudCogcAogICAgICwgbV9pc1ZhbGlkKHRydWUpCiAgICAgLCBtX2lzQ2xvc2VkKGZh
bHNlKQogICAgICwgbV9pc0luUHJpbnRpbmdNb2RlKGZhbHNlKQorICAgICwgbV9pc1BlcmZvcm1p
bmdET01QcmludE9wZXJhdGlvbihmYWxzZSkKICAgICAsIG1faW5EZWNpZGVQb2xpY3lGb3JNSU1F
VHlwZShmYWxzZSkKICAgICAsIG1fc3luY01pbWVUeXBlUG9saWN5QWN0aW9uSXNWYWxpZChmYWxz
ZSkKICAgICAsIG1fc3luY01pbWVUeXBlUG9saWN5QWN0aW9uKFBvbGljeVVzZSkKQEAgLTE4NjEs
MTAgKzE4NjIsMTUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bk9wZW5QYW5lbCh1aW50NjRfdAog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogeworICAg
IEFTU0VSVCghbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbik7CisgICAgbV9pc1BlcmZv
cm1pbmdET01QcmludE9wZXJhdGlvbiA9IHRydWU7CisKICAgICBXZWJGcmFtZVByb3h5KiBmcmFt
ZSA9IHByb2Nlc3MoKS0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhmcmFt
ZSk7CiAKICAgICBtX3VpQ2xpZW50LnByaW50RnJhbWUodGhpcywgZnJhbWUpOworCisgICAgbV9p
c1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiA9IGZhbHNlOwogfQogCiAjaWYgUExBVEZPUk0o
UVQpCkBAIC0yNjcxLDcgKzI2NzcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YmVnaW5QcmludGlu
ZyhXZWJGcmFtCiAgICAgICAgIHJldHVybjsKIAogICAgIG1faXNJblByaW50aW5nTW9kZSA9IHRy
dWU7Ci0gICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpCZWdpblByaW50aW5n
KGZyYW1lLT5mcmFtZUlEKCksIHByaW50SW5mbyksIG1fcGFnZUlEKTsKKyAgICBwcm9jZXNzKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkJlZ2luUHJpbnRpbmcoZnJhbWUtPmZyYW1lSUQoKSwg
cHJpbnRJbmZvKSwgbV9wYWdlSUQsIG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gPyBD
b3JlSVBDOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgOiAwKTsK
IH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmVuZFByaW50aW5nKCkKQEAgLTI2ODAsNyArMjY4Niw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjplbmRQcmludGluZygpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIG1faXNJblByaW50aW5nTW9kZSA9IGZhbHNlOwotICAgIHByb2Nlc3MoKS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6RW5kUHJpbnRpbmcoKSwgbV9wYWdlSUQpOworICAgIHByb2Nlc3MoKS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RW5kUHJpbnRpbmcoKSwgbV9wYWdlSUQsIG1faXNQZXJm
b3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gPyBDb3JlSVBDOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkgOiAwKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmNvbXB1
dGVQYWdlc0ZvclByaW50aW5nKFdlYkZyYW1lUHJveHkqIGZyYW1lLCBjb25zdCBQcmludEluZm8m
IHByaW50SW5mbywgUGFzc1JlZlB0cjxDb21wdXRlZFBhZ2VzQ2FsbGJhY2s+IGNhbGxiYWNrKQpA
QCAtMjY4OCw3ICsyNjk0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbXB1dGVQYWdlc0ZvclBy
aW50aQogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwog
ICAgIG1fY29tcHV0ZWRQYWdlc0NhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2suZ2V0
KCkpOwogICAgIG1faXNJblByaW50aW5nTW9kZSA9IHRydWU7Ci0gICAgcHJvY2VzcygpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZyhmcmFtZS0+ZnJhbWVJ
RCgpLCBwcmludEluZm8sIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CisgICAgcHJvY2VzcygpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZyhmcmFtZS0+ZnJh
bWVJRCgpLCBwcmludEluZm8sIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCwgbV9pc1BlcmZvcm1pbmdE
T01QcmludE9wZXJhdGlvbiA/IENvcmVJUEM6OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSA6IDApOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMjY5NiwxNCAr
MjcwMiwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZHJhd1JlY3RUb1BERihXZWJGcmFtCiB7CiAg
ICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CiAgICAgbV9k
YXRhQ2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5nZXQoKSk7Ci0gICAgcHJvY2Vz
cygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEcmF3UmVjdFRvUERGKGZyYW1lLT5mcmFtZUlE
KCksIHJlY3QsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CisgICAgcHJvY2VzcygpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpEcmF3UmVjdFRvUERGKGZyYW1lLT5mcmFtZUlEKCksIHJlY3QsIGNh
bGxiYWNrSUQpLCBtX3BhZ2VJRCwgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiA/IENv
cmVJUEM6OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSA6IDApOwog
fQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZHJhd1BhZ2VzVG9QREYoV2ViRnJhbWVQcm94eSogZnJh
bWUsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUGFzc1JlZlB0cjxEYXRhQ2FsbGJh
Y2s+IGNhbGxiYWNrKQogewogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2Fs
bGJhY2tJRCgpOwogICAgIG1fZGF0YUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2su
Z2V0KCkpOwotICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RHJhd1BhZ2Vz
VG9QREYoZnJhbWUtPmZyYW1lSUQoKSwgZmlyc3QsIGNvdW50LCBjYWxsYmFja0lEKSwgbV9wYWdl
SUQpOworICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RHJhd1BhZ2VzVG9Q
REYoZnJhbWUtPmZyYW1lSUQoKSwgZmlyc3QsIGNvdW50LCBjYWxsYmFja0lEKSwgbV9wYWdlSUQs
IG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gPyBDb3JlSVBDOjpEaXNwYXRjaE1lc3Nh
Z2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgOiAwKTsKIH0KICNlbmRpZgogCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiA3ODQwMykKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpA
QCAtNjQzLDYgKzY0Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQ2xvc2VkOwogCiAgICAg
Ym9vbCBtX2lzSW5QcmludGluZ01vZGU7CisgICAgYm9vbCBtX2lzUGVyZm9ybWluZ0RPTVByaW50
T3BlcmF0aW9uOwogCiAgICAgYm9vbCBtX2luRGVjaWRlUG9saWN5Rm9yTUlNRVR5cGU7CiAgICAg
Ym9vbCBtX3N5bmNNaW1lVHlwZVBvbGljeUFjdGlvbklzVmFsaWQ7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gNzg0MDMpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCkBAIC03Nyw3ICs3OCw3IEBAIFdlYlByb2Nlc3NQcm94eTo6fldlYlBy
b2Nlc3NQcm94eSgpCiAgICAgICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwogICAgIAog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wZW5kaW5nTWVzc2FnZXMuc2l6ZSgpOyArK2kp
Ci0gICAgICAgIG1fcGVuZGluZ01lc3NhZ2VzW2ldLnJlbGVhc2VBcmd1bWVudHMoKTsKKyAgICAg
ICAgbV9wZW5kaW5nTWVzc2FnZXNbaV0uZmlyc3QucmVsZWFzZUFyZ3VtZW50cygpOwogCiAgICAg
aWYgKG1fcHJvY2Vzc0xhdW5jaGVyKSB7CiAgICAgICAgIG1fcHJvY2Vzc0xhdW5jaGVyLT5pbnZh
bGlkYXRlKCk7CkBAIC0xMDgsMTIgKzEwOSwxMiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y29u
bmVjdCgpCiAgICAgfQogfQogCi1ib29sIFdlYlByb2Nlc3NQcm94eTo6c2VuZE1lc3NhZ2UoQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgUGFzc093blB0cjxDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXI+IGFyZ3VtZW50cykKK2Jvb2wgV2ViUHJvY2Vzc1Byb3h5OjpzZW5kTWVzc2FnZShDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBQYXNzT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5j
b2Rlcj4gYXJndW1lbnRzLCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzKQogewogICAgIC8vIElm
IHdlJ3JlIHdhaXRpbmcgZm9yIHRoZSB3ZWIgcHJvY2VzcyB0byBsYXVuY2gsIHdlIG5lZWQgdG8g
c3Rhc2ggYXdheSB0aGUgbWVzc2FnZXMgc28gd2UgY2FuIHNlbmQgdGhlbSBvbmNlIHdlIGhhdmUK
ICAgICAvLyBhIENvcmVJUEMgY29ubmVjdGlvbi4KICAgICBpZiAoaXNMYXVuY2hpbmcoKSkgewot
ICAgICAgICBtX3BlbmRpbmdNZXNzYWdlcy5hcHBlbmQoQ29yZUlQQzo6Q29ubmVjdGlvbjo6T3V0
Z29pbmdNZXNzYWdlKG1lc3NhZ2VJRCwgYXJndW1lbnRzKSk7CisgICAgICAgIG1fcGVuZGluZ01l
c3NhZ2VzLmFwcGVuZChtYWtlX3BhaXIoQ29yZUlQQzo6Q29ubmVjdGlvbjo6T3V0Z29pbmdNZXNz
YWdlKG1lc3NhZ2VJRCwgYXJndW1lbnRzKSwgbWVzc2FnZVNlbmRGbGFncykpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTEyMSw3ICsxMjIsNyBAQCBib29sIFdlYlByb2Nlc3NQ
cm94eTo6c2VuZE1lc3NhZ2UoQ29yZUlQCiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBtX2Nvbm5lY3Rpb24tPnNlbmRNZXNzYWdlKG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uLT5zZW5kTWVzc2Fn
ZShtZXNzYWdlSUQsIGFyZ3VtZW50cywgbWVzc2FnZVNlbmRGbGFncyk7CiB9CiAKIGJvb2wgV2Vi
UHJvY2Vzc1Byb3h5Ojppc0xhdW5jaGluZygpIGNvbnN0CkBAIC0zNTIsOCArMzUzLDkgQEAgdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZwogICAgIG1fY29ubmVjdGlvbi0+
b3BlbigpOwogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wZW5kaW5nTWVzc2Fn
ZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbjo6T3V0Z29pbmdN
ZXNzYWdlJiBvdXRnb2luZ01lc3NhZ2UgPSBtX3BlbmRpbmdNZXNzYWdlc1tpXTsKLSAgICAgICAg
bV9jb25uZWN0aW9uLT5zZW5kTWVzc2FnZShvdXRnb2luZ01lc3NhZ2UubWVzc2FnZUlEKCksIGFk
b3B0UHRyKG91dGdvaW5nTWVzc2FnZS5hcmd1bWVudHMoKSkpOworICAgICAgICBDb3JlSVBDOjpD
b25uZWN0aW9uOjpPdXRnb2luZ01lc3NhZ2UmIG91dGdvaW5nTWVzc2FnZSA9IG1fcGVuZGluZ01l
c3NhZ2VzW2ldLmZpcnN0OworICAgICAgICB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzID0gbV9w
ZW5kaW5nTWVzc2FnZXNbaV0uc2Vjb25kOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRNZXNz
YWdlKG91dGdvaW5nTWVzc2FnZS5tZXNzYWdlSUQoKSwgYWRvcHRQdHIob3V0Z29pbmdNZXNzYWdl
LmFyZ3VtZW50cygpKSwgbWVzc2FnZVNlbmRGbGFncyk7CiAgICAgfQogCiAgICAgbV9wZW5kaW5n
TWVzc2FnZXMuY2xlYXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgJKHJldmlzaW9uIDc4NDAzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw4ICs2Myw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgdGVybWluYXRlKCk7CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFLCB0
eXBlbmFtZSBUPiBib29sIHNlbmQoRSBtZXNzYWdlSUQsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQs
IGNvbnN0IFQmIGFyZ3VtZW50cyk7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBzZW5k
KGNvbnN0IFQmIG1lc3NhZ2UsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpOworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGJvb2wgc2VuZChjb25zdCBUJiBtZXNzYWdlLCB1aW50NjRfdCBkZXN0aW5h
dGlvbklELCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzID0gMCk7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVT4gYm9vbCBzZW5kU3luYyhjb25zdCBVJiBtZXNzYWdlLCBjb25zdCB0eXBlbmFtZSBV
OjpSZXBseSYgcmVwbHksIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIGRvdWJsZSB0aW1lb3V0ID0g
MSk7CiAgICAgCiAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIGNvbnN0CkBA
IC0xMDUsMTMgKzEwNCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVUZXh0Q2hlY2tlclN0
YXRlKCk7CiAKICAgICB2b2lkIHJlZ2lzdGVyTmV3V2ViQmFja0ZvcndhcmRMaXN0SXRlbShXZWJC
YWNrRm9yd2FyZExpc3RJdGVtKik7Ci0gICAgCisKKyAgICAvLyBGSVhNRTogVGhpcyB2YXJpYW50
IG9mIHNlbmQgaXMgZGVwcmVjYXRlZC4gQWxsIGNsaWVudHMgc2hvdWxkIG1vdmUgdG8gYW4gb3Zl
cmxvYWQgdGhhdCB0YWtlIGEgbWVzc2FnZSB0eXBlLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEUs
IHR5cGVuYW1lIFQ+IGJvb2wgZGVwcmVjYXRlZFNlbmQoRSBtZXNzYWdlSUQsIHVpbnQ2NF90IGRl
c3RpbmF0aW9uSUQsIGNvbnN0IFQmIGFyZ3VtZW50cyk7CisKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgV2ViUHJvY2Vzc1Byb3h5KFdlYkNvbnRleHQqKTsKIAogICAgIHZvaWQgY29ubmVjdCgpOwog
Ci0gICAgYm9vbCBzZW5kTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQsIFBhc3NPd25QdHI8Q29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyPik7CisgICAgYm9vbCBzZW5kTWVzc2FnZShDb3JlSVBDOjpN
ZXNzYWdlSUQsIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiwgdW5zaWduZWQg
bWVzc2FnZVNlbmRGbGFncyk7CiAKICAgICB2b2lkIGFkZEJhY2tGb3J3YXJkSXRlbSh1aW50NjRf
dCBpdGVtSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
dXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJl
bmNlJiBiYWNrRm9yd2FyZERhdGEpOwogCkBAIC0xNDMsNyArMTQ1LDcgQEAgcHJpdmF0ZToKICAg
ICBSZXNwb25zaXZlbmVzc1RpbWVyIG1fcmVzcG9uc2l2ZW5lc3NUaW1lcjsKICAgICBSZWZQdHI8
Q29yZUlQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogCi0gICAgVmVjdG9yPENvcmVJUEM6
OkNvbm5lY3Rpb246Ok91dGdvaW5nTWVzc2FnZT4gbV9wZW5kaW5nTWVzc2FnZXM7CisgICAgVmVj
dG9yPHN0ZDo6cGFpcjxDb3JlSVBDOjpDb25uZWN0aW9uOjpPdXRnb2luZ01lc3NhZ2UsIHVuc2ln
bmVkPiA+IG1fcGVuZGluZ01lc3NhZ2VzOwogICAgIFJlZlB0cjxQcm9jZXNzTGF1bmNoZXI+IG1f
cHJvY2Vzc0xhdW5jaGVyOwogICAgIFJlZlB0cjxUaHJlYWRMYXVuY2hlcj4gbV90aHJlYWRMYXVu
Y2hlcjsKIApAQCAtMTU1LDIxICsxNTcsMjEgQEAgcHJpdmF0ZToKIH07CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIEUsIHR5cGVuYW1lIFQ+Ci1ib29sIFdlYlByb2Nlc3NQcm94eTo6c2VuZChFIG1lc3Nh
Z2VJRCwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgY29uc3QgVCYgYXJndW1lbnRzKQorYm9vbCBX
ZWJQcm9jZXNzUHJveHk6OmRlcHJlY2F0ZWRTZW5kKEUgbWVzc2FnZUlELCB1aW50NjRfdCBkZXN0
aW5hdGlvbklELCBjb25zdCBUJiBhcmd1bWVudHMpCiB7CiAgICAgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4gYXJndW1lbnRFbmNvZGVyID0gQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
OjpjcmVhdGUoZGVzdGluYXRpb25JRCk7CiAgICAgYXJndW1lbnRFbmNvZGVyLT5lbmNvZGUoYXJn
dW1lbnRzKTsKIAotICAgIHJldHVybiBzZW5kTWVzc2FnZShDb3JlSVBDOjpNZXNzYWdlSUQobWVz
c2FnZUlEKSwgYXJndW1lbnRFbmNvZGVyLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIHNlbmRNZXNz
YWdlKENvcmVJUEM6Ok1lc3NhZ2VJRChtZXNzYWdlSUQpLCBhcmd1bWVudEVuY29kZXIucmVsZWFz
ZSgpLCAwKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWJvb2wgV2ViUHJvY2Vzc1Byb3h5
OjpzZW5kKGNvbnN0IFQmIG1lc3NhZ2UsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCitib29sIFdl
YlByb2Nlc3NQcm94eTo6c2VuZChjb25zdCBUJiBtZXNzYWdlLCB1aW50NjRfdCBkZXN0aW5hdGlv
bklELCB1bnNpZ25lZCBtZXNzYWdlU2VuZEZsYWdzKQogewogICAgIE93blB0cjxDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXI+IGFyZ3VtZW50RW5jb2RlciA9IENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
cjo6Y3JlYXRlKGRlc3RpbmF0aW9uSUQpOwogICAgIGFyZ3VtZW50RW5jb2Rlci0+ZW5jb2RlKG1l
c3NhZ2UpOwogCi0gICAgcmV0dXJuIHNlbmRNZXNzYWdlKENvcmVJUEM6Ok1lc3NhZ2VJRChUOjpt
ZXNzYWdlSUQpLCBhcmd1bWVudEVuY29kZXIucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gc2VuZE1l
c3NhZ2UoQ29yZUlQQzo6TWVzc2FnZUlEKFQ6Om1lc3NhZ2VJRCksIGFyZ3VtZW50RW5jb2Rlci5y
ZWxlYXNlKCksIG1lc3NhZ2VTZW5kRmxhZ3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiAK
</data>
<flag name="review"
          id="73877"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>