<?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>46414</bug_id>
          
          <creation_ts>2010-09-23 15:04:21 -0700</creation_ts>
          <short_desc>Rename methods that refer to &quot;horizontal&quot; and &quot;vertical&quot; in InlineFlowBox</short_desc>
          <delta_ts>2010-09-23 15:22:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>46123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>283992</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-09-23 15:04:21 -0700</bug_when>
    <thetext>Rename methods that have &quot;horizontal&quot; or &quot;vertical&quot; in their names.  Replace with &quot;inline direction&quot; and &quot;block direction.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284003</commentid>
    <comment_count>1</comment_count>
      <attachid>68602</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-09-23 15:09:28 -0700</bug_when>
    <thetext>Created attachment 68602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284018</commentid>
    <comment_count>2</comment_count>
      <attachid>68604</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-09-23 15:18:57 -0700</bug_when>
    <thetext>Created attachment 68604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284019</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-09-23 15:20:50 -0700</bug_when>
    <thetext>Attachment 68602 did not build on qt:
Build output: http://queues.webkit.org/results/4100055</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284022</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-09-23 15:22:02 -0700</bug_when>
    <thetext>Fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68602</attachid>
            <date>2010-09-23 15:09:28 -0700</date>
            <delta_ts>2010-09-23 15:18:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>17215</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODIwMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMjMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjQxNCwgcmVuYW1lIGxpbmUgYm94
IG1ldGhvZHMgdGhhdCByZWZlciBzcGVjaWZpY2FsbHkgdG8KKyAgICAgICAgImhvcml6b250YWwi
IGFuZCAidmVydGljYWwuIiAgUmVwbGFjZSB0aG9zZSB0ZXJtcyB3aXRoICJpbmxpbmUgZGlyZWN0
aW9uIiBhbmQgImJsb2NrIGRpcmVjdGlvbi4iCisKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVz
SW5JbmxpbmVEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6cGxh
Y2VCb3hlc0luQmxvY2tEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0Jv
eDo6Y29tcHV0ZUJsb2NrRGlyZWN0aW9uT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9J
bmxpbmVGbG93Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpzZXRJbmxp
bmVEaXJlY3Rpb25PdmVyZmxvd1Bvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVG
bG93Qm94OjpzZXRCbG9ja0RpcmVjdGlvbk92ZXJmbG93UG9zaXRpb25zKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tM
aW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlSW5s
aW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6Y29tcHV0ZUJsb2NrRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4pOgorICAgICAgICAqIHJl
bmRlcmluZy9Sb290SW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVC
b3g6OmFsaWduQm94ZXNJbkJsb2NrRGlyZWN0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUm9v
dElubGluZUJveC5oOgorCiAyMDEwLTA5LTIzICBBbmRyZXcgV2lsc29uICA8YXR3aWxzb25AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2ODE5Ny4KQEAg
LTQzLDYgKzY2LDI4IEBACiAKIDIwMTAtMDktMjMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUu
Y29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5l
ZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzSW5JbmxpbmVE
aXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc0lu
QmxvY2tEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6Y29tcHV0
ZUJsb2NrRGlyZWN0aW9uT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93
Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvckxpbmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVCbG9ja0RpcmVjdGlvblBvc2l0aW9uc0Zv
ckxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxk
cmVuKToKKyAgICAgICAgKiByZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSb290SW5saW5lQm94OjphbGlnbkJveGVzSW5CbG9ja0RpcmVjdGlvbik6CisgICAg
ICAgICogcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaDoKKworMjAxMC0wOS0yMyAgRGF2aWQgSHlh
dHQgIDxoeWF0dEBhcHBsZS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRlbGUgUGV0ZXJz
b24uCiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2
NDAzLCBjb252ZXJ0IHRoZSBtYXJnaW4vYm9yZGVyL3BhZGRpbmcgYWNjZXNzb3JzCkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2aXNpb24gNjgyMDApCisrKyBXZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUzLDcgKzI1
Myw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6ZGV0ZXJtaW5lU3BhY2luZ0ZvckYKICAgICB9CiB9
CiAKLWludCBJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzSG9yaXpvbnRhbGx5KGludCB4UG9zLCBi
b29sJiBuZWVkc1dvcmRTcGFjaW5nLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYg
dGV4dEJveERhdGFNYXApCitpbnQgSW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc0luSW5saW5lRGly
ZWN0aW9uKGludCB4UG9zLCBib29sJiBuZWVkc1dvcmRTcGFjaW5nLCBHbHlwaE92ZXJmbG93QW5k
RmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFNYXApCiB7CiAgICAgLy8gU2V0IG91ciB4IHBv
c2l0aW9uLgogICAgIHNldFgoeFBvcyk7CkBAIC0zMjEsNyArMzIxLDcgQEAgaW50IElubGluZUZs
b3dCb3g6OnBsYWNlQm94ZXNIb3Jpem9udGFsbAogICAgICAgICAgICAgaWYgKGN1cnItPnJlbmRl
cmVyKCktPmlzUmVuZGVySW5saW5lKCkpIHsKICAgICAgICAgICAgICAgICBJbmxpbmVGbG93Qm94
KiBmbG93ID0gc3RhdGljX2Nhc3Q8SW5saW5lRmxvd0JveCo+KGN1cnIpOwogICAgICAgICAgICAg
ICAgIHhQb3MgKz0gZmxvdy0+bWFyZ2luTG9naWNhbExlZnQoKTsKLSAgICAgICAgICAgICAgICB4
UG9zID0gZmxvdy0+cGxhY2VCb3hlc0hvcml6b250YWxseSh4UG9zLCBuZWVkc1dvcmRTcGFjaW5n
LCB0ZXh0Qm94RGF0YU1hcCk7CisgICAgICAgICAgICAgICAgeFBvcyA9IGZsb3ctPnBsYWNlQm94
ZXNJbklubGluZURpcmVjdGlvbih4UG9zLCBuZWVkc1dvcmRTcGFjaW5nLCB0ZXh0Qm94RGF0YU1h
cCk7CiAgICAgICAgICAgICAgICAgeFBvcyArPSBmbG93LT5tYXJnaW5Mb2dpY2FsUmlnaHQoKTsK
ICAgICAgICAgICAgICAgICBsZWZ0TGF5b3V0T3ZlcmZsb3cgPSBtaW4obGVmdExheW91dE92ZXJm
bG93LCBmbG93LT5sZWZ0TGF5b3V0T3ZlcmZsb3coKSk7CiAgICAgICAgICAgICAgICAgcmlnaHRM
YXlvdXRPdmVyZmxvdyA9IG1heChyaWdodExheW91dE92ZXJmbG93LCBmbG93LT5yaWdodExheW91
dE92ZXJmbG93KCkpOwpAQCAtMzUxLDcgKzM1MSw3IEBAIGludCBJbmxpbmVGbG93Qm94OjpwbGFj
ZUJveGVzSG9yaXpvbnRhbGwKICAgICByaWdodFZpc3VhbE92ZXJmbG93ID0gbWF4KHgoKSArIGxv
Z2ljYWxXaWR0aCgpICsgYm94U2hhZG93UmlnaHQsIHJpZ2h0VmlzdWFsT3ZlcmZsb3cpOwogICAg
IHJpZ2h0TGF5b3V0T3ZlcmZsb3cgPSBtYXgoeCgpICsgbG9naWNhbFdpZHRoKCksIHJpZ2h0TGF5
b3V0T3ZlcmZsb3cpOwogCi0gICAgc2V0SG9yaXpvbnRhbE92ZXJmbG93UG9zaXRpb25zKGxlZnRM
YXlvdXRPdmVyZmxvdywgcmlnaHRMYXlvdXRPdmVyZmxvdywgbGVmdFZpc3VhbE92ZXJmbG93LCBy
aWdodFZpc3VhbE92ZXJmbG93KTsKKyAgICBzZXRJbmxpbmVEaXJlY3Rpb25PdmVyZmxvd1Bvc2l0
aW9ucyhsZWZ0TGF5b3V0T3ZlcmZsb3csIHJpZ2h0TGF5b3V0T3ZlcmZsb3csIGxlZnRWaXN1YWxP
dmVyZmxvdywgcmlnaHRWaXN1YWxPdmVyZmxvdyk7CiAgICAgcmV0dXJuIHhQb3M7CiB9CiAKQEAg
LTQ3Niw3ICs0NzYsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVMb2dpY2FsQm94SGVp
CiAgICAgfQogfQogCi12b2lkIElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNWZXJ0aWNhbGx5KGlu
dCB5UG9zLCBpbnQgbWF4SGVpZ2h0LCBpbnQgbWF4QXNjZW50LCBib29sIHN0cmljdE1vZGUsIGlu
dCYgc2VsZWN0aW9uVG9wLCBpbnQmIHNlbGVjdGlvbkJvdHRvbSkKK3ZvaWQgSW5saW5lRmxvd0Jv
eDo6cGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24oaW50IHlQb3MsIGludCBtYXhIZWlnaHQsIGlu
dCBtYXhBc2NlbnQsIGJvb2wgc3RyaWN0TW9kZSwgaW50JiBzZWxlY3Rpb25Ub3AsIGludCYgc2Vs
ZWN0aW9uQm90dG9tKQogewogICAgIGlmIChpc1Jvb3RJbmxpbmVCb3goKSkKICAgICAgICAgc2V0
WSh5UG9zICsgbWF4QXNjZW50IC0gYmFzZWxpbmVQb3NpdGlvbih0cnVlKSk7IC8vIFBsYWNlIG91
ciByb290IGJveC4KQEAgLTQ4OSw3ICs0ODksNyBAQCB2b2lkIElubGluZUZsb3dCb3g6OnBsYWNl
Qm94ZXNWZXJ0aWNhbGx5CiAgICAgICAgIC8vIGxpbmUtaGVpZ2h0KS4KICAgICAgICAgYm9vbCBp
c0lubGluZUZsb3cgPSBjdXJyLT5pc0lubGluZUZsb3dCb3goKTsKICAgICAgICAgaWYgKGlzSW5s
aW5lRmxvdykKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PElubGluZUZsb3dCb3gqPihjdXJyKS0+
cGxhY2VCb3hlc1ZlcnRpY2FsbHkoeVBvcywgbWF4SGVpZ2h0LCBtYXhBc2NlbnQsIHN0cmljdE1v
ZGUsIHNlbGVjdGlvblRvcCwgc2VsZWN0aW9uQm90dG9tKTsKKyAgICAgICAgICAgIHN0YXRpY19j
YXN0PElubGluZUZsb3dCb3gqPihjdXJyKS0+cGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24oeVBv
cywgbWF4SGVpZ2h0LCBtYXhBc2NlbnQsIHN0cmljdE1vZGUsIHNlbGVjdGlvblRvcCwgc2VsZWN0
aW9uQm90dG9tKTsKIAogICAgICAgICBib29sIGNoaWxkQWZmZWN0c1RvcEJvdHRvbVBvcyA9IHRy
dWU7CiAgICAgICAgIGlmIChjdXJyLT55KCkgPT0gUG9zaXRpb25Ub3ApCkBAIC01MzMsNyArNTMz
LDcgQEAgdm9pZCBJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzVmVydGljYWxseQogICAgIH0KIH0K
IAotdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlVmVydGljYWxPdmVyZmxvdyhpbnQgbGluZVRv
cCwgaW50IGxpbmVCb3R0b20sIGJvb2wgc3RyaWN0TW9kZSwgR2x5cGhPdmVyZmxvd0FuZEZhbGxi
YWNrRm9udHNNYXAmIHRleHRCb3hEYXRhTWFwKQordm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRl
QmxvY2tEaXJlY3Rpb25PdmVyZmxvdyhpbnQgbGluZVRvcCwgaW50IGxpbmVCb3R0b20sIGJvb2wg
c3RyaWN0TW9kZSwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmIHRleHRCb3hEYXRh
TWFwKQogewogICAgIGludCBib3hIZWlnaHQgPSBsb2dpY2FsSGVpZ2h0KCk7CiAKQEAgLTU4Nyw3
ICs1ODcsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVWZXJ0aWNhbE92ZXJmCiAgICAg
ICAgICAgICBib3R0b21WaXN1YWxPdmVyZmxvdyA9IG1heChjdXJyLT55KCkgKyB0ZXh0LT5sb2dp
Y2FsSGVpZ2h0KCkgKyBjaGlsZE92ZXJmbG93Qm90dG9tLCBib3R0b21WaXN1YWxPdmVyZmxvdyk7
CiAgICAgICAgIH0gZWxzZSAgaWYgKGN1cnItPnJlbmRlcmVyKCktPmlzUmVuZGVySW5saW5lKCkp
IHsKICAgICAgICAgICAgIElubGluZUZsb3dCb3gqIGZsb3cgPSBzdGF0aWNfY2FzdDxJbmxpbmVG
bG93Qm94Kj4oY3Vycik7Ci0gICAgICAgICAgICBmbG93LT5jb21wdXRlVmVydGljYWxPdmVyZmxv
dyhsaW5lVG9wLCBsaW5lQm90dG9tLCBzdHJpY3RNb2RlLCB0ZXh0Qm94RGF0YU1hcCk7CisgICAg
ICAgICAgICBmbG93LT5jb21wdXRlQmxvY2tEaXJlY3Rpb25PdmVyZmxvdyhsaW5lVG9wLCBsaW5l
Qm90dG9tLCBzdHJpY3RNb2RlLCB0ZXh0Qm94RGF0YU1hcCk7CiAgICAgICAgICAgICB0b3BMYXlv
dXRPdmVyZmxvdyA9IG1pbih0b3BMYXlvdXRPdmVyZmxvdywgZmxvdy0+dG9wTGF5b3V0T3ZlcmZs
b3coKSk7CiAgICAgICAgICAgICBib3R0b21MYXlvdXRPdmVyZmxvdyA9IG1heChib3R0b21MYXlv
dXRPdmVyZmxvdywgZmxvdy0+Ym90dG9tTGF5b3V0T3ZlcmZsb3coKSk7CiAgICAgICAgICAgICB0
b3BWaXN1YWxPdmVyZmxvdyA9IG1pbih0b3BWaXN1YWxPdmVyZmxvdywgZmxvdy0+dG9wVmlzdWFs
T3ZlcmZsb3coKSk7CkBAIC02MDUsNyArNjA1LDcgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21w
dXRlVmVydGljYWxPdmVyZgogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHNldFZlcnRpY2Fs
T3ZlcmZsb3dQb3NpdGlvbnModG9wTGF5b3V0T3ZlcmZsb3csIGJvdHRvbUxheW91dE92ZXJmbG93
LCB0b3BWaXN1YWxPdmVyZmxvdywgYm90dG9tVmlzdWFsT3ZlcmZsb3csIGJveEhlaWdodCk7Cisg
ICAgc2V0QmxvY2tEaXJlY3Rpb25PdmVyZmxvd1Bvc2l0aW9ucyh0b3BMYXlvdXRPdmVyZmxvdywg
Ym90dG9tTGF5b3V0T3ZlcmZsb3csIHRvcFZpc3VhbE92ZXJmbG93LCBib3R0b21WaXN1YWxPdmVy
ZmxvdywgYm94SGVpZ2h0KTsKIH0KIAogYm9vbCBJbmxpbmVGbG93Qm94Ojpub2RlQXRQb2ludChj
b25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBpbnQg
eCwgaW50IHksIGludCB0eCwgaW50IHR5KQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3gu
aAkocmV2aXNpb24gNjgyMDApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE1NCwxMyArMTU0LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGRl
dGVybWluZVNwYWNpbmdGb3JGbG93Qm94ZXMoYm9vbCBsYXN0TGluZSwgUmVuZGVyT2JqZWN0KiBl
bmRPYmplY3QpOwogICAgIGludCBnZXRGbG93U3BhY2luZ0xvZ2ljYWxXaWR0aCgpOwogICAgIGJv
b2wgb25FbmRDaGFpbihSZW5kZXJPYmplY3QqIGVuZE9iamVjdCk7Ci0gICAgaW50IHBsYWNlQm94
ZXNIb3Jpem9udGFsbHkoaW50IHgsIGJvb2wmIG5lZWRzV29yZFNwYWNpbmcsIEdseXBoT3ZlcmZs
b3dBbmRGYWxsYmFja0ZvbnRzTWFwJik7CisgICAgaW50IHBsYWNlQm94ZXNJbklubGluZURpcmVj
dGlvbihpbnQgeCwgYm9vbCYgbmVlZHNXb3JkU3BhY2luZywgR2x5cGhPdmVyZmxvd0FuZEZhbGxi
YWNrRm9udHNNYXAmKTsKICAgICB2b2lkIGNvbXB1dGVMb2dpY2FsQm94SGVpZ2h0cyhpbnQmIG1h
eFBvc2l0aW9uVG9wLCBpbnQmIG1heFBvc2l0aW9uQm90dG9tLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCYgbWF4QXNjZW50LCBpbnQmIG1heERlc2NlbnQsIGJvb2wgc3Ry
aWN0TW9kZSwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmKTsKICAgICB2b2lkIGFk
anVzdE1heEFzY2VudEFuZERlc2NlbnQoaW50JiBtYXhBc2NlbnQsIGludCYgbWF4RGVzY2VudCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heFBvc2l0aW9uVG9wLCBp
bnQgbWF4UG9zaXRpb25Cb3R0b20pOwotICAgIHZvaWQgcGxhY2VCb3hlc1ZlcnRpY2FsbHkoaW50
IHksIGludCBtYXhIZWlnaHQsIGludCBtYXhBc2NlbnQsIGJvb2wgc3RyaWN0TW9kZSwgaW50JiBs
aW5lVG9wLCBpbnQmIGxpbmVCb3R0b20pOwotICAgIHZvaWQgY29tcHV0ZVZlcnRpY2FsT3ZlcmZs
b3coaW50IGxpbmVUb3AsIGludCBsaW5lQm90dG9tLCBib29sIHN0cmljdE1vZGUsIEdseXBoT3Zl
cmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJik7CisgICAgdm9pZCBwbGFjZUJveGVzSW5CbG9ja0Rp
cmVjdGlvbihpbnQgeSwgaW50IG1heEhlaWdodCwgaW50IG1heEFzY2VudCwgYm9vbCBzdHJpY3RN
b2RlLCBpbnQmIGxpbmVUb3AsIGludCYgbGluZUJvdHRvbSk7CisgICAgdm9pZCBjb21wdXRlQmxv
Y2tEaXJlY3Rpb25PdmVyZmxvdyhpbnQgbGluZVRvcCwgaW50IGxpbmVCb3R0b20sIGJvb2wgc3Ry
aWN0TW9kZSwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmKTsKIAogICAgIHZvaWQg
cmVtb3ZlQ2hpbGQoSW5saW5lQm94KiBjaGlsZCk7CiAKQEAgLTE5Miw4ICsxOTIsOCBAQCBwdWJs
aWM6CiAgICAgaW50IHJpZ2h0VmlzdWFsT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX292ZXJm
bG93ID8gbV9vdmVyZmxvdy0+cmlnaHRWaXN1YWxPdmVyZmxvdygpIDogbV94ICsgbV9sb2dpY2Fs
V2lkdGg7IH0KICAgICBJbnRSZWN0IHZpc3VhbE92ZXJmbG93UmVjdCgpIGNvbnN0IHsgcmV0dXJu
IG1fb3ZlcmZsb3cgPyBtX292ZXJmbG93LT52aXN1YWxPdmVyZmxvd1JlY3QoKSA6IEludFJlY3Qo
bV94LCBtX3ksIG1fbG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0KCkpOyB9CiAKLSAgICB2b2lk
IHNldEhvcml6b250YWxPdmVyZmxvd1Bvc2l0aW9ucyhpbnQgbGVmdExheW91dE92ZXJmbG93LCBp
bnQgcmlnaHRMYXlvdXRPdmVyZmxvdywgaW50IGxlZnRWaXN1YWxPdmVyZmxvdywgaW50IHJpZ2h0
VmlzdWFsT3ZlcmZsb3cpOwotICAgIHZvaWQgc2V0VmVydGljYWxPdmVyZmxvd1Bvc2l0aW9ucyhp
bnQgdG9wTGF5b3V0T3ZlcmZsb3csIGludCBib3R0b21MYXlvdXRPdmVyZmxvdywgaW50IHRvcFZp
c3VhbE92ZXJmbG93LCBpbnQgYm90dG9tVmlzdWFsT3ZlcmZsb3csIGludCBib3hIZWlnaHQpOwor
ICAgIHZvaWQgc2V0SW5saW5lRGlyZWN0aW9uT3ZlcmZsb3dQb3NpdGlvbnMoaW50IGxlZnRMYXlv
dXRPdmVyZmxvdywgaW50IHJpZ2h0TGF5b3V0T3ZlcmZsb3csIGludCBsZWZ0VmlzdWFsT3ZlcmZs
b3csIGludCByaWdodFZpc3VhbE92ZXJmbG93KTsKKyAgICB2b2lkIHNldEJsb2NrRGlyZWN0aW9u
T3ZlcmZsb3dQb3NpdGlvbnMoaW50IHRvcExheW91dE92ZXJmbG93LCBpbnQgYm90dG9tTGF5b3V0
T3ZlcmZsb3csIGludCB0b3BWaXN1YWxPdmVyZmxvdywgaW50IGJvdHRvbVZpc3VhbE92ZXJmbG93
LCBpbnQgYm94SGVpZ2h0KTsKIAogcHJvdGVjdGVkOgogICAgIE93blB0cjxSZW5kZXJPdmVyZmxv
dz4gbV9vdmVyZmxvdzsKQEAgLTIxNSw3ICsyMTUsNyBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIH07
CiAKLWlubGluZSB2b2lkIElubGluZUZsb3dCb3g6OnNldEhvcml6b250YWxPdmVyZmxvd1Bvc2l0
aW9ucyhpbnQgbGVmdExheW91dE92ZXJmbG93LCBpbnQgcmlnaHRMYXlvdXRPdmVyZmxvdywgaW50
IGxlZnRWaXN1YWxPdmVyZmxvdywgaW50IHJpZ2h0VmlzdWFsT3ZlcmZsb3cpIAoraW5saW5lIHZv
aWQgSW5saW5lRmxvd0JveDo6c2V0SW5saW5lRGlyZWN0aW9uT3ZlcmZsb3dQb3NpdGlvbnMoaW50
IGxlZnRMYXlvdXRPdmVyZmxvdywgaW50IHJpZ2h0TGF5b3V0T3ZlcmZsb3csIGludCBsZWZ0Vmlz
dWFsT3ZlcmZsb3csIGludCByaWdodFZpc3VhbE92ZXJmbG93KSAKIHsgCiAgICAgaWYgKCFtX292
ZXJmbG93KSB7CiAgICAgICAgIGlmIChsZWZ0TGF5b3V0T3ZlcmZsb3cgPT0gbV94ICYmIHJpZ2h0
TGF5b3V0T3ZlcmZsb3cgPT0gbV94ICsgbV9sb2dpY2FsV2lkdGggJiYgbGVmdFZpc3VhbE92ZXJm
bG93ID09IG1feCAmJiByaWdodFZpc3VhbE92ZXJmbG93ID09IG1feCArIG1fbG9naWNhbFdpZHRo
KQpAQCAtMjI5LDcgKzIyOSw3IEBAIGlubGluZSB2b2lkIElubGluZUZsb3dCb3g6OnNldEhvcml6
b250YWwKICAgICBtX292ZXJmbG93LT5zZXRSaWdodFZpc3VhbE92ZXJmbG93KHJpZ2h0VmlzdWFs
T3ZlcmZsb3cpOyAgCiB9CiAKLWlubGluZSB2b2lkIElubGluZUZsb3dCb3g6OnNldFZlcnRpY2Fs
T3ZlcmZsb3dQb3NpdGlvbnMoaW50IHRvcExheW91dE92ZXJmbG93LCBpbnQgYm90dG9tTGF5b3V0
T3ZlcmZsb3csIGludCB0b3BWaXN1YWxPdmVyZmxvdywgaW50IGJvdHRvbVZpc3VhbE92ZXJmbG93
LCBpbnQgYm94SGVpZ2h0KQoraW5saW5lIHZvaWQgSW5saW5lRmxvd0JveDo6c2V0QmxvY2tEaXJl
Y3Rpb25PdmVyZmxvd1Bvc2l0aW9ucyhpbnQgdG9wTGF5b3V0T3ZlcmZsb3csIGludCBib3R0b21M
YXlvdXRPdmVyZmxvdywgaW50IHRvcFZpc3VhbE92ZXJmbG93LCBpbnQgYm90dG9tVmlzdWFsT3Zl
cmZsb3csIGludCBib3hIZWlnaHQpCiB7CiAgICAgaWYgKCFtX292ZXJmbG93KSB7CiAgICAgICAg
IGlmICh0b3BMYXlvdXRPdmVyZmxvdyA9PSBtX3kgJiYgYm90dG9tTGF5b3V0T3ZlcmZsb3cgPT0g
bV95ICsgYm94SGVpZ2h0ICYmIHRvcFZpc3VhbE92ZXJmbG93ID09IG1feSAmJiBib3R0b21WaXN1
YWxPdmVyZmxvdyA9PSBtX3kgKyBib3hIZWlnaHQpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmgJKHJldmlzaW9uIDY4MTc0KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAko
d29ya2luZyBjb3B5KQpAQCAtMzY0LDggKzM2NCw4IEBAIHByaXZhdGU6CiAgICAgSW5saW5lSXRl
cmF0b3IgZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiwgYm9vbCBmaXJzdExp
bmUsIGJvb2wmIGlzTGluZUVtcHR5LCBib29sJiBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHksIGJv
b2wmIGh5cGhlbmF0ZWQsIEVDbGVhciosIEZsb2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJl
dmlvdXNMaW5lKTsKICAgICBSb290SW5saW5lQm94KiBjb25zdHJ1Y3RMaW5lKHVuc2lnbmVkIHJ1
bkNvdW50LCBCaWRpUnVuKiBmaXJzdFJ1biwgQmlkaVJ1biogbGFzdFJ1biwgYm9vbCBmaXJzdExp
bmUsIGJvb2wgbGFzdExpbmUsIFJlbmRlck9iamVjdCogZW5kT2JqZWN0KTsKICAgICBJbmxpbmVG
bG93Qm94KiBjcmVhdGVMaW5lQm94ZXMoUmVuZGVyT2JqZWN0KiwgYm9vbCBmaXJzdExpbmUpOwot
ICAgIHZvaWQgY29tcHV0ZUhvcml6b250YWxQb3NpdGlvbnNGb3JMaW5lKFJvb3RJbmxpbmVCb3gq
LCBib29sIGZpcnN0TGluZSwgQmlkaVJ1biogZmlyc3RSdW4sIEJpZGlSdW4qIHRyYWlsaW5nU3Bh
Y2VSdW4sIGJvb2wgcmVhY2hlZEVuZCwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAm
KTsKLSAgICB2b2lkIGNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGluZUJv
eCosIEJpZGlSdW4qLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYpOworICAgIHZv
aWQgY29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGluZUJveCos
IGJvb2wgZmlyc3RMaW5lLCBCaWRpUnVuKiBmaXJzdFJ1biwgQmlkaVJ1biogdHJhaWxpbmdTcGFj
ZVJ1biwgYm9vbCByZWFjaGVkRW5kLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYp
OworICAgIHZvaWQgY29tcHV0ZUJsb2NrRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZShSb290SW5s
aW5lQm94KiwgQmlkaVJ1biosIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJik7CiAg
ICAgdm9pZCBkZWxldGVFbGxpcHNpc0xpbmVCb3hlcygpOwogICAgIHZvaWQgY2hlY2tMaW5lc0Zv
clRleHRPdmVyZmxvdygpOwogICAgIHZvaWQgYWRkT3ZlcmZsb3dGcm9tSW5saW5lQ2hpbGRyZW4o
KTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAko
cmV2aXNpb24gNjgyMDApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjAsNyArMzIwLDcgQEAgUm9vdElubGluZUJveCog
UmVuZGVyQmxvY2s6OmNvbnN0cnVjdExpbgogICAgIHJldHVybiBsYXN0Um9vdEJveCgpOwogfQog
Ci12b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSG9yaXpvbnRhbFBvc2l0aW9uc0ZvckxpbmUoUm9v
dElubGluZUJveCogbGluZUJveCwgYm9vbCBmaXJzdExpbmUsIEJpZGlSdW4qIGZpcnN0UnVuLCBC
aWRpUnVuKiB0cmFpbGluZ1NwYWNlUnVuLCBib29sIHJlYWNoZWRFbmQsIEdseXBoT3ZlcmZsb3dB
bmRGYWxsYmFja0ZvbnRzTWFwJiB0ZXh0Qm94RGF0YU1hcCkKK3ZvaWQgUmVuZGVyQmxvY2s6OmNv
bXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJvb3RJbmxpbmVCb3gqIGxpbmVC
b3gsIGJvb2wgZmlyc3RMaW5lLCBCaWRpUnVuKiBmaXJzdFJ1biwgQmlkaVJ1biogdHJhaWxpbmdT
cGFjZVJ1biwgYm9vbCByZWFjaGVkRW5kLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01h
cCYgdGV4dEJveERhdGFNYXApCiB7CiAgICAgLy8gRmlyc3QgZGV0ZXJtaW5lIG91ciB0b3RhbCB3
aWR0aC4KICAgICBpbnQgYXZhaWxhYmxlV2lkdGggPSBsaW5lV2lkdGgoaGVpZ2h0KCksIGZpcnN0
TGluZSk7CkBAIC00ODUsMTIgKzQ4NSwxMiBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSG9y
aXpvbnRhbFBvc2l0CiAgICAgLy8gVGhlIHdpZHRocyBvZiBhbGwgcnVucyBhcmUgbm93IGtub3du
LiAgV2UgY2FuIG5vdyBwbGFjZSBldmVyeSBpbmxpbmUgYm94IChhbmQKICAgICAvLyBjb21wdXRl
IGFjY3VyYXRlIHdpZHRocyBmb3IgdGhlIGlubGluZSBmbG93IGJveGVzKS4KICAgICBuZWVkc1dv
cmRTcGFjaW5nID0gZmFsc2U7Ci0gICAgbGluZUJveC0+cGxhY2VCb3hlc0hvcml6b250YWxseSh4
LCBuZWVkc1dvcmRTcGFjaW5nLCB0ZXh0Qm94RGF0YU1hcCk7CisgICAgbGluZUJveC0+cGxhY2VC
b3hlc0luSW5saW5lRGlyZWN0aW9uKHgsIG5lZWRzV29yZFNwYWNpbmcsIHRleHRCb3hEYXRhTWFw
KTsKIH0KIAotdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZVZlcnRpY2FsUG9zaXRpb25zRm9yTGlu
ZShSb290SW5saW5lQm94KiBsaW5lQm94LCBCaWRpUnVuKiBmaXJzdFJ1biwgR2x5cGhPdmVyZmxv
d0FuZEZhbGxiYWNrRm9udHNNYXAmIHRleHRCb3hEYXRhTWFwKQordm9pZCBSZW5kZXJCbG9jazo6
Y29tcHV0ZUJsb2NrRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZShSb290SW5saW5lQm94KiBsaW5l
Qm94LCBCaWRpUnVuKiBmaXJzdFJ1biwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAm
IHRleHRCb3hEYXRhTWFwKQogewotICAgIHNldEhlaWdodChsaW5lQm94LT52ZXJ0aWNhbGx5QWxp
Z25Cb3hlcyhoZWlnaHQoKSwgdGV4dEJveERhdGFNYXApKTsKKyAgICBzZXRIZWlnaHQobGluZUJv
eC0+YWxpZ25Cb3hlc0luQmxvY2tEaXJlY3Rpb24oaGVpZ2h0KCksIHRleHRCb3hEYXRhTWFwKSk7
CiAgICAgbGluZUJveC0+c2V0QmxvY2tIZWlnaHQoaGVpZ2h0KCkpOwogCiAgICAgLy8gTm93IG1h
a2Ugc3VyZSB3ZSBwbGFjZSByZXBsYWNlZCByZW5kZXIgb2JqZWN0cyBjb3JyZWN0bHkuCkBAIC03
NjQsMTAgKzc2NCwxMCBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRJbmxpbmVDaGlsZHJlbihi
CiAKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdyB3ZSBwb3NpdGlvbiBhbGwgb2Ygb3Vy
IHRleHQgcnVucyBob3Jpem9udGFsbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlz
U1ZHUm9vdElubGluZUJveCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlSG9y
aXpvbnRhbFBvc2l0aW9uc0ZvckxpbmUobGluZUJveCwgZmlyc3RMaW5lLCByZXNvbHZlci5maXJz
dFJ1bigpLCB0cmFpbGluZ1NwYWNlUnVuLCBlbmQuYXRFbmQoKSwgdGV4dEJveERhdGFNYXApOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlv
bnNGb3JMaW5lKGxpbmVCb3gsIGZpcnN0TGluZSwgcmVzb2x2ZXIuZmlyc3RSdW4oKSwgdHJhaWxp
bmdTcGFjZVJ1biwgZW5kLmF0RW5kKCksIHRleHRCb3hEYXRhTWFwKTsKIAogICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gTm93IHBvc2l0aW9uIG91ciB0ZXh0IHJ1bnMgdmVydGljYWxseS4KLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uc0ZvckxpbmUobGlu
ZUJveCwgcmVzb2x2ZXIuZmlyc3RSdW4oKSwgdGV4dEJveERhdGFNYXApOworICAgICAgICAgICAg
ICAgICAgICAgICAgY29tcHV0ZUJsb2NrRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZShsaW5lQm94
LCByZXNvbHZlci5maXJzdFJ1bigpLCB0ZXh0Qm94RGF0YU1hcCk7CiAKICNpZiBFTkFCTEUoU1ZH
KQogICAgICAgICAgICAgICAgICAgICAgICAgLy8gU1ZHIHRleHQgbGF5b3V0IGNvZGUgY29tcHV0
ZXMgdmVydGljYWwgJiBob3Jpem9udGFsIHBvc2l0aW9ucyBvbiBpdHMgb3duLgpAQCAtODk4LDcg
Kzg5OCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKGIKICAgICAg
ICAgICAgICAgICBtX2xpbmVCb3hlcy5hcHBlbmRMaW5lQm94KHRyYWlsaW5nRmxvYXRzTGluZUJv
eCk7CiAgICAgICAgICAgICAgICAgdHJhaWxpbmdGbG9hdHNMaW5lQm94LT5zZXRDb25zdHJ1Y3Rl
ZCgpOwogICAgICAgICAgICAgICAgIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwIHRl
eHRCb3hEYXRhTWFwOwotICAgICAgICAgICAgICAgIHRyYWlsaW5nRmxvYXRzTGluZUJveC0+dmVy
dGljYWxseUFsaWduQm94ZXMoaGVpZ2h0KCksIHRleHRCb3hEYXRhTWFwKTsKKyAgICAgICAgICAg
ICAgICB0cmFpbGluZ0Zsb2F0c0xpbmVCb3gtPmFsaWduQm94ZXNJbkJsb2NrRGlyZWN0aW9uKGhl
aWdodCgpLCB0ZXh0Qm94RGF0YU1hcCk7CiAgICAgICAgICAgICAgICAgdHJhaWxpbmdGbG9hdHNM
aW5lQm94LT5zZXRWZXJ0aWNhbE92ZXJmbG93UG9zaXRpb25zKGhlaWdodCgpLCBib3R0b21MYXlv
dXRPdmVyZmxvdywgaGVpZ2h0KCksIGJvdHRvbVZpc3VhbE92ZXJmbG93LCAwKTsKICAgICAgICAg
ICAgICAgICB0cmFpbGluZ0Zsb2F0c0xpbmVCb3gtPnNldEJsb2NrSGVpZ2h0KGhlaWdodCgpKTsK
ICAgICAgICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCShyZXZp
c2lvbiA2ODE4NikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMTMsNyArMjEzLDcgQEAgdm9pZCBSb290SW5saW5lQm94OjpjaGlsZFJl
bW92ZWQoSW5saW5lQgogICAgIH0KIH0KIAotaW50IFJvb3RJbmxpbmVCb3g6OnZlcnRpY2FsbHlB
bGlnbkJveGVzKGludCBoZWlnaHRPZkJsb2NrLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250
c01hcCYgdGV4dEJveERhdGFNYXApCitpbnQgUm9vdElubGluZUJveDo6YWxpZ25Cb3hlc0luQmxv
Y2tEaXJlY3Rpb24oaW50IGhlaWdodE9mQmxvY2ssIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0Zv
bnRzTWFwJiB0ZXh0Qm94RGF0YU1hcCkKIHsKICNpZiBFTkFCTEUoU1ZHKQogICAgIC8vIFNWRyB3
aWxsIGhhbmRsZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb24gaXRzIG93bi4KQEAgLTIzNyw4ICsyMzcs
OCBAQCBpbnQgUm9vdElubGluZUJveDo6dmVydGljYWxseUFsaWduQm94ZXMoCiAgICAgaW50IG1h
eEhlaWdodCA9IG1heEFzY2VudCArIG1heERlc2NlbnQ7CiAgICAgaW50IGxpbmVUb3AgPSBoZWln
aHRPZkJsb2NrOwogICAgIGludCBsaW5lQm90dG9tID0gaGVpZ2h0T2ZCbG9jazsKLSAgICBwbGFj
ZUJveGVzVmVydGljYWxseShoZWlnaHRPZkJsb2NrLCBtYXhIZWlnaHQsIG1heEFzY2VudCwgbm9R
dWlya3NNb2RlLCBsaW5lVG9wLCBsaW5lQm90dG9tKTsKLSAgICBjb21wdXRlVmVydGljYWxPdmVy
ZmxvdyhsaW5lVG9wLCBsaW5lQm90dG9tLCBub1F1aXJrc01vZGUsIHRleHRCb3hEYXRhTWFwKTsK
KyAgICBwbGFjZUJveGVzSW5CbG9ja0RpcmVjdGlvbihoZWlnaHRPZkJsb2NrLCBtYXhIZWlnaHQs
IG1heEFzY2VudCwgbm9RdWlya3NNb2RlLCBsaW5lVG9wLCBsaW5lQm90dG9tKTsKKyAgICBjb21w
dXRlQmxvY2tEaXJlY3Rpb25PdmVyZmxvdyhsaW5lVG9wLCBsaW5lQm90dG9tLCBub1F1aXJrc01v
ZGUsIHRleHRCb3hEYXRhTWFwKTsKICAgICBzZXRMaW5lVG9wQm90dG9tUG9zaXRpb25zKGxpbmVU
b3AsIGxpbmVCb3R0b20pOwogICAgIAogICAgIGhlaWdodE9mQmxvY2sgKz0gbWF4SGVpZ2h0OwpJ
bmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAkocmV2aXNpb24gNjgxODYpCisrKyBXZWJD
b3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3
LDcgQEAgcHVibGljOgogICAgIGludCBzZWxlY3Rpb25Cb3R0b20oKSBjb25zdCB7IHJldHVybiBs
aW5lQm90dG9tKCk7IH0KICAgICBpbnQgc2VsZWN0aW9uSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4g
bWF4KDAsIHNlbGVjdGlvbkJvdHRvbSgpIC0gc2VsZWN0aW9uVG9wKCkpOyB9CiAKLSAgICBpbnQg
dmVydGljYWxseUFsaWduQm94ZXMoaW50IGhlaWdodE9mQmxvY2ssIEdseXBoT3ZlcmZsb3dBbmRG
YWxsYmFja0ZvbnRzTWFwJik7CisgICAgaW50IGFsaWduQm94ZXNJbkJsb2NrRGlyZWN0aW9uKGlu
dCBoZWlnaHRPZkJsb2NrLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYpOwogICAg
IHZvaWQgc2V0TGluZVRvcEJvdHRvbVBvc2l0aW9ucyhpbnQgdG9wLCBpbnQgYm90dG9tKTsKIAog
ICAgIHZpcnR1YWwgUmVuZGVyTGluZUJveExpc3QqIHJlbmRlcmVyTGluZUJveGVzKCkgY29uc3Q7
Cg==
</data>
<flag name="review"
          id="58157"
          type_id="1"
          status="+"
          setter="adele"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68604</attachid>
            <date>2010-09-23 15:18:57 -0700</date>
            <delta_ts>2010-09-23 15:20:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>19280</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODIwMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDktMjMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjQxNCwgcmVuYW1lIGxpbmUgYm94
IG1ldGhvZHMgdGhhdCByZWZlciBzcGVjaWZpY2FsbHkgdG8KKyAgICAgICAgImhvcml6b250YWwi
IGFuZCAidmVydGljYWwuIiAgUmVwbGFjZSB0aG9zZSB0ZXJtcyB3aXRoICJpbmxpbmUgZGlyZWN0
aW9uIiBhbmQgImJsb2NrIGRpcmVjdGlvbi4iCisKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVz
SW5JbmxpbmVEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6cGxh
Y2VCb3hlc0luQmxvY2tEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0Jv
eDo6Y29tcHV0ZUJsb2NrRGlyZWN0aW9uT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9J
bmxpbmVGbG93Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpzZXRJbmxp
bmVEaXJlY3Rpb25PdmVyZmxvd1Bvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVG
bG93Qm94OjpzZXRCbG9ja0RpcmVjdGlvbk92ZXJmbG93UG9zaXRpb25zKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tM
aW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlSW5s
aW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6Y29tcHV0ZUJsb2NrRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4pOgorICAgICAgICAqIHJl
bmRlcmluZy9Sb290SW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJvb3RJbmxpbmVC
b3g6OmFsaWduQm94ZXNJbkJsb2NrRGlyZWN0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUm9v
dElubGluZUJveC5oOgorCiAyMDEwLTA5LTIzICBBbmRyZXcgV2lsc29uICA8YXR3aWxzb25AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2ODE5Ny4KSW5k
ZXg6IFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCShyZXZpc2lvbiA2ODIwMCkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTMs
NyArMjUzLDcgQEAgdm9pZCBJbmxpbmVGbG93Qm94OjpkZXRlcm1pbmVTcGFjaW5nRm9yRgogICAg
IH0KIH0KIAotaW50IElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNIb3Jpem9udGFsbHkoaW50IHhQ
b3MsIGJvb2wmIG5lZWRzV29yZFNwYWNpbmcsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRz
TWFwJiB0ZXh0Qm94RGF0YU1hcCkKK2ludCBJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzSW5Jbmxp
bmVEaXJlY3Rpb24oaW50IHhQb3MsIGJvb2wmIG5lZWRzV29yZFNwYWNpbmcsIEdseXBoT3ZlcmZs
b3dBbmRGYWxsYmFja0ZvbnRzTWFwJiB0ZXh0Qm94RGF0YU1hcCkKIHsKICAgICAvLyBTZXQgb3Vy
IHggcG9zaXRpb24uCiAgICAgc2V0WCh4UG9zKTsKQEAgLTMyMSw3ICszMjEsNyBAQCBpbnQgSW5s
aW5lRmxvd0JveDo6cGxhY2VCb3hlc0hvcml6b250YWxsCiAgICAgICAgICAgICBpZiAoY3Vyci0+
cmVuZGVyZXIoKS0+aXNSZW5kZXJJbmxpbmUoKSkgewogICAgICAgICAgICAgICAgIElubGluZUZs
b3dCb3gqIGZsb3cgPSBzdGF0aWNfY2FzdDxJbmxpbmVGbG93Qm94Kj4oY3Vycik7CiAgICAgICAg
ICAgICAgICAgeFBvcyArPSBmbG93LT5tYXJnaW5Mb2dpY2FsTGVmdCgpOwotICAgICAgICAgICAg
ICAgIHhQb3MgPSBmbG93LT5wbGFjZUJveGVzSG9yaXpvbnRhbGx5KHhQb3MsIG5lZWRzV29yZFNw
YWNpbmcsIHRleHRCb3hEYXRhTWFwKTsKKyAgICAgICAgICAgICAgICB4UG9zID0gZmxvdy0+cGxh
Y2VCb3hlc0luSW5saW5lRGlyZWN0aW9uKHhQb3MsIG5lZWRzV29yZFNwYWNpbmcsIHRleHRCb3hE
YXRhTWFwKTsKICAgICAgICAgICAgICAgICB4UG9zICs9IGZsb3ctPm1hcmdpbkxvZ2ljYWxSaWdo
dCgpOwogICAgICAgICAgICAgICAgIGxlZnRMYXlvdXRPdmVyZmxvdyA9IG1pbihsZWZ0TGF5b3V0
T3ZlcmZsb3csIGZsb3ctPmxlZnRMYXlvdXRPdmVyZmxvdygpKTsKICAgICAgICAgICAgICAgICBy
aWdodExheW91dE92ZXJmbG93ID0gbWF4KHJpZ2h0TGF5b3V0T3ZlcmZsb3csIGZsb3ctPnJpZ2h0
TGF5b3V0T3ZlcmZsb3coKSk7CkBAIC0zNTEsNyArMzUxLDcgQEAgaW50IElubGluZUZsb3dCb3g6
OnBsYWNlQm94ZXNIb3Jpem9udGFsbAogICAgIHJpZ2h0VmlzdWFsT3ZlcmZsb3cgPSBtYXgoeCgp
ICsgbG9naWNhbFdpZHRoKCkgKyBib3hTaGFkb3dSaWdodCwgcmlnaHRWaXN1YWxPdmVyZmxvdyk7
CiAgICAgcmlnaHRMYXlvdXRPdmVyZmxvdyA9IG1heCh4KCkgKyBsb2dpY2FsV2lkdGgoKSwgcmln
aHRMYXlvdXRPdmVyZmxvdyk7CiAKLSAgICBzZXRIb3Jpem9udGFsT3ZlcmZsb3dQb3NpdGlvbnMo
bGVmdExheW91dE92ZXJmbG93LCByaWdodExheW91dE92ZXJmbG93LCBsZWZ0VmlzdWFsT3ZlcmZs
b3csIHJpZ2h0VmlzdWFsT3ZlcmZsb3cpOworICAgIHNldElubGluZURpcmVjdGlvbk92ZXJmbG93
UG9zaXRpb25zKGxlZnRMYXlvdXRPdmVyZmxvdywgcmlnaHRMYXlvdXRPdmVyZmxvdywgbGVmdFZp
c3VhbE92ZXJmbG93LCByaWdodFZpc3VhbE92ZXJmbG93KTsKICAgICByZXR1cm4geFBvczsKIH0K
IApAQCAtNDc2LDcgKzQ3Niw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZUxvZ2ljYWxC
b3hIZWkKICAgICB9CiB9CiAKLXZvaWQgSW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc1ZlcnRpY2Fs
bHkoaW50IHlQb3MsIGludCBtYXhIZWlnaHQsIGludCBtYXhBc2NlbnQsIGJvb2wgc3RyaWN0TW9k
ZSwgaW50JiBzZWxlY3Rpb25Ub3AsIGludCYgc2VsZWN0aW9uQm90dG9tKQordm9pZCBJbmxpbmVG
bG93Qm94OjpwbGFjZUJveGVzSW5CbG9ja0RpcmVjdGlvbihpbnQgeVBvcywgaW50IG1heEhlaWdo
dCwgaW50IG1heEFzY2VudCwgYm9vbCBzdHJpY3RNb2RlLCBpbnQmIHNlbGVjdGlvblRvcCwgaW50
JiBzZWxlY3Rpb25Cb3R0b20pCiB7CiAgICAgaWYgKGlzUm9vdElubGluZUJveCgpKQogICAgICAg
ICBzZXRZKHlQb3MgKyBtYXhBc2NlbnQgLSBiYXNlbGluZVBvc2l0aW9uKHRydWUpKTsgLy8gUGxh
Y2Ugb3VyIHJvb3QgYm94LgpAQCAtNDg5LDcgKzQ4OSw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6
cGxhY2VCb3hlc1ZlcnRpY2FsbHkKICAgICAgICAgLy8gbGluZS1oZWlnaHQpLgogICAgICAgICBi
b29sIGlzSW5saW5lRmxvdyA9IGN1cnItPmlzSW5saW5lRmxvd0JveCgpOwogICAgICAgICBpZiAo
aXNJbmxpbmVGbG93KQotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SW5saW5lRmxvd0JveCo+KGN1
cnIpLT5wbGFjZUJveGVzVmVydGljYWxseSh5UG9zLCBtYXhIZWlnaHQsIG1heEFzY2VudCwgc3Ry
aWN0TW9kZSwgc2VsZWN0aW9uVG9wLCBzZWxlY3Rpb25Cb3R0b20pOworICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8SW5saW5lRmxvd0JveCo+KGN1cnIpLT5wbGFjZUJveGVzSW5CbG9ja0RpcmVjdGlv
bih5UG9zLCBtYXhIZWlnaHQsIG1heEFzY2VudCwgc3RyaWN0TW9kZSwgc2VsZWN0aW9uVG9wLCBz
ZWxlY3Rpb25Cb3R0b20pOwogCiAgICAgICAgIGJvb2wgY2hpbGRBZmZlY3RzVG9wQm90dG9tUG9z
ID0gdHJ1ZTsKICAgICAgICAgaWYgKGN1cnItPnkoKSA9PSBQb3NpdGlvblRvcCkKQEAgLTUzMyw3
ICs1MzMsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNWZXJ0aWNhbGx5CiAgICAg
fQogfQogCi12b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVWZXJ0aWNhbE92ZXJmbG93KGludCBs
aW5lVG9wLCBpbnQgbGluZUJvdHRvbSwgYm9vbCBzdHJpY3RNb2RlLCBHbHlwaE92ZXJmbG93QW5k
RmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFNYXApCit2b2lkIElubGluZUZsb3dCb3g6OmNv
bXB1dGVCbG9ja0RpcmVjdGlvbk92ZXJmbG93KGludCBsaW5lVG9wLCBpbnQgbGluZUJvdHRvbSwg
Ym9vbCBzdHJpY3RNb2RlLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYgdGV4dEJv
eERhdGFNYXApCiB7CiAgICAgaW50IGJveEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQoKTsKIApAQCAt
NTg3LDcgKzU4Nyw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZVZlcnRpY2FsT3ZlcmYK
ICAgICAgICAgICAgIGJvdHRvbVZpc3VhbE92ZXJmbG93ID0gbWF4KGN1cnItPnkoKSArIHRleHQt
PmxvZ2ljYWxIZWlnaHQoKSArIGNoaWxkT3ZlcmZsb3dCb3R0b20sIGJvdHRvbVZpc3VhbE92ZXJm
bG93KTsKICAgICAgICAgfSBlbHNlICBpZiAoY3Vyci0+cmVuZGVyZXIoKS0+aXNSZW5kZXJJbmxp
bmUoKSkgewogICAgICAgICAgICAgSW5saW5lRmxvd0JveCogZmxvdyA9IHN0YXRpY19jYXN0PElu
bGluZUZsb3dCb3gqPihjdXJyKTsKLSAgICAgICAgICAgIGZsb3ctPmNvbXB1dGVWZXJ0aWNhbE92
ZXJmbG93KGxpbmVUb3AsIGxpbmVCb3R0b20sIHN0cmljdE1vZGUsIHRleHRCb3hEYXRhTWFwKTsK
KyAgICAgICAgICAgIGZsb3ctPmNvbXB1dGVCbG9ja0RpcmVjdGlvbk92ZXJmbG93KGxpbmVUb3As
IGxpbmVCb3R0b20sIHN0cmljdE1vZGUsIHRleHRCb3hEYXRhTWFwKTsKICAgICAgICAgICAgIHRv
cExheW91dE92ZXJmbG93ID0gbWluKHRvcExheW91dE92ZXJmbG93LCBmbG93LT50b3BMYXlvdXRP
dmVyZmxvdygpKTsKICAgICAgICAgICAgIGJvdHRvbUxheW91dE92ZXJmbG93ID0gbWF4KGJvdHRv
bUxheW91dE92ZXJmbG93LCBmbG93LT5ib3R0b21MYXlvdXRPdmVyZmxvdygpKTsKICAgICAgICAg
ICAgIHRvcFZpc3VhbE92ZXJmbG93ID0gbWluKHRvcFZpc3VhbE92ZXJmbG93LCBmbG93LT50b3BW
aXN1YWxPdmVyZmxvdygpKTsKQEAgLTYwNSw3ICs2MDUsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6
OmNvbXB1dGVWZXJ0aWNhbE92ZXJmCiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgc2V0VmVy
dGljYWxPdmVyZmxvd1Bvc2l0aW9ucyh0b3BMYXlvdXRPdmVyZmxvdywgYm90dG9tTGF5b3V0T3Zl
cmZsb3csIHRvcFZpc3VhbE92ZXJmbG93LCBib3R0b21WaXN1YWxPdmVyZmxvdywgYm94SGVpZ2h0
KTsKKyAgICBzZXRCbG9ja0RpcmVjdGlvbk92ZXJmbG93UG9zaXRpb25zKHRvcExheW91dE92ZXJm
bG93LCBib3R0b21MYXlvdXRPdmVyZmxvdywgdG9wVmlzdWFsT3ZlcmZsb3csIGJvdHRvbVZpc3Vh
bE92ZXJmbG93LCBib3hIZWlnaHQpOwogfQogCiBib29sIElubGluZUZsb3dCb3g6Om5vZGVBdFBv
aW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQs
IGludCB4LCBpbnQgeSwgaW50IHR4LCBpbnQgdHkpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxv
d0JveC5oCShyZXZpc2lvbiA2ODIwMCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dC
b3guaAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDEzICsxNTQsMTMgQEAgcHVibGljOgogICAgIHZv
aWQgZGV0ZXJtaW5lU3BhY2luZ0ZvckZsb3dCb3hlcyhib29sIGxhc3RMaW5lLCBSZW5kZXJPYmpl
Y3QqIGVuZE9iamVjdCk7CiAgICAgaW50IGdldEZsb3dTcGFjaW5nTG9naWNhbFdpZHRoKCk7CiAg
ICAgYm9vbCBvbkVuZENoYWluKFJlbmRlck9iamVjdCogZW5kT2JqZWN0KTsKLSAgICBpbnQgcGxh
Y2VCb3hlc0hvcml6b250YWxseShpbnQgeCwgYm9vbCYgbmVlZHNXb3JkU3BhY2luZywgR2x5cGhP
dmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmKTsKKyAgICBpbnQgcGxhY2VCb3hlc0luSW5saW5l
RGlyZWN0aW9uKGludCB4LCBib29sJiBuZWVkc1dvcmRTcGFjaW5nLCBHbHlwaE92ZXJmbG93QW5k
RmFsbGJhY2tGb250c01hcCYpOwogICAgIHZvaWQgY29tcHV0ZUxvZ2ljYWxCb3hIZWlnaHRzKGlu
dCYgbWF4UG9zaXRpb25Ub3AsIGludCYgbWF4UG9zaXRpb25Cb3R0b20sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50JiBtYXhBc2NlbnQsIGludCYgbWF4RGVzY2VudCwgYm9v
bCBzdHJpY3RNb2RlLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYpOwogICAgIHZv
aWQgYWRqdXN0TWF4QXNjZW50QW5kRGVzY2VudChpbnQmIG1heEFzY2VudCwgaW50JiBtYXhEZXNj
ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF4UG9zaXRpb25U
b3AsIGludCBtYXhQb3NpdGlvbkJvdHRvbSk7Ci0gICAgdm9pZCBwbGFjZUJveGVzVmVydGljYWxs
eShpbnQgeSwgaW50IG1heEhlaWdodCwgaW50IG1heEFzY2VudCwgYm9vbCBzdHJpY3RNb2RlLCBp
bnQmIGxpbmVUb3AsIGludCYgbGluZUJvdHRvbSk7Ci0gICAgdm9pZCBjb21wdXRlVmVydGljYWxP
dmVyZmxvdyhpbnQgbGluZVRvcCwgaW50IGxpbmVCb3R0b20sIGJvb2wgc3RyaWN0TW9kZSwgR2x5
cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmKTsKKyAgICB2b2lkIHBsYWNlQm94ZXNJbkJs
b2NrRGlyZWN0aW9uKGludCB5LCBpbnQgbWF4SGVpZ2h0LCBpbnQgbWF4QXNjZW50LCBib29sIHN0
cmljdE1vZGUsIGludCYgbGluZVRvcCwgaW50JiBsaW5lQm90dG9tKTsKKyAgICB2b2lkIGNvbXB1
dGVCbG9ja0RpcmVjdGlvbk92ZXJmbG93KGludCBsaW5lVG9wLCBpbnQgbGluZUJvdHRvbSwgYm9v
bCBzdHJpY3RNb2RlLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYpOwogCiAgICAg
dm9pZCByZW1vdmVDaGlsZChJbmxpbmVCb3gqIGNoaWxkKTsKIApAQCAtMTkyLDggKzE5Miw4IEBA
IHB1YmxpYzoKICAgICBpbnQgcmlnaHRWaXN1YWxPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1f
b3ZlcmZsb3cgPyBtX292ZXJmbG93LT5yaWdodFZpc3VhbE92ZXJmbG93KCkgOiBtX3ggKyBtX2xv
Z2ljYWxXaWR0aDsgfQogICAgIEludFJlY3QgdmlzdWFsT3ZlcmZsb3dSZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9vdmVyZmxvdyA/IG1fb3ZlcmZsb3ctPnZpc3VhbE92ZXJmbG93UmVjdCgpIDogSW50
UmVjdChtX3gsIG1feSwgbV9sb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQoKSk7IH0KIAotICAg
IHZvaWQgc2V0SG9yaXpvbnRhbE92ZXJmbG93UG9zaXRpb25zKGludCBsZWZ0TGF5b3V0T3ZlcmZs
b3csIGludCByaWdodExheW91dE92ZXJmbG93LCBpbnQgbGVmdFZpc3VhbE92ZXJmbG93LCBpbnQg
cmlnaHRWaXN1YWxPdmVyZmxvdyk7Ci0gICAgdm9pZCBzZXRWZXJ0aWNhbE92ZXJmbG93UG9zaXRp
b25zKGludCB0b3BMYXlvdXRPdmVyZmxvdywgaW50IGJvdHRvbUxheW91dE92ZXJmbG93LCBpbnQg
dG9wVmlzdWFsT3ZlcmZsb3csIGludCBib3R0b21WaXN1YWxPdmVyZmxvdywgaW50IGJveEhlaWdo
dCk7CisgICAgdm9pZCBzZXRJbmxpbmVEaXJlY3Rpb25PdmVyZmxvd1Bvc2l0aW9ucyhpbnQgbGVm
dExheW91dE92ZXJmbG93LCBpbnQgcmlnaHRMYXlvdXRPdmVyZmxvdywgaW50IGxlZnRWaXN1YWxP
dmVyZmxvdywgaW50IHJpZ2h0VmlzdWFsT3ZlcmZsb3cpOworICAgIHZvaWQgc2V0QmxvY2tEaXJl
Y3Rpb25PdmVyZmxvd1Bvc2l0aW9ucyhpbnQgdG9wTGF5b3V0T3ZlcmZsb3csIGludCBib3R0b21M
YXlvdXRPdmVyZmxvdywgaW50IHRvcFZpc3VhbE92ZXJmbG93LCBpbnQgYm90dG9tVmlzdWFsT3Zl
cmZsb3csIGludCBib3hIZWlnaHQpOwogCiBwcm90ZWN0ZWQ6CiAgICAgT3duUHRyPFJlbmRlck92
ZXJmbG93PiBtX292ZXJmbG93OwpAQCAtMjE1LDcgKzIxNSw3IEBAIHByb3RlY3RlZDoKICNlbmRp
ZgogfTsKIAotaW5saW5lIHZvaWQgSW5saW5lRmxvd0JveDo6c2V0SG9yaXpvbnRhbE92ZXJmbG93
UG9zaXRpb25zKGludCBsZWZ0TGF5b3V0T3ZlcmZsb3csIGludCByaWdodExheW91dE92ZXJmbG93
LCBpbnQgbGVmdFZpc3VhbE92ZXJmbG93LCBpbnQgcmlnaHRWaXN1YWxPdmVyZmxvdykgCitpbmxp
bmUgdm9pZCBJbmxpbmVGbG93Qm94OjpzZXRJbmxpbmVEaXJlY3Rpb25PdmVyZmxvd1Bvc2l0aW9u
cyhpbnQgbGVmdExheW91dE92ZXJmbG93LCBpbnQgcmlnaHRMYXlvdXRPdmVyZmxvdywgaW50IGxl
ZnRWaXN1YWxPdmVyZmxvdywgaW50IHJpZ2h0VmlzdWFsT3ZlcmZsb3cpIAogeyAKICAgICBpZiAo
IW1fb3ZlcmZsb3cpIHsKICAgICAgICAgaWYgKGxlZnRMYXlvdXRPdmVyZmxvdyA9PSBtX3ggJiYg
cmlnaHRMYXlvdXRPdmVyZmxvdyA9PSBtX3ggKyBtX2xvZ2ljYWxXaWR0aCAmJiBsZWZ0VmlzdWFs
T3ZlcmZsb3cgPT0gbV94ICYmIHJpZ2h0VmlzdWFsT3ZlcmZsb3cgPT0gbV94ICsgbV9sb2dpY2Fs
V2lkdGgpCkBAIC0yMjksNyArMjI5LDcgQEAgaW5saW5lIHZvaWQgSW5saW5lRmxvd0JveDo6c2V0
SG9yaXpvbnRhbAogICAgIG1fb3ZlcmZsb3ctPnNldFJpZ2h0VmlzdWFsT3ZlcmZsb3cocmlnaHRW
aXN1YWxPdmVyZmxvdyk7ICAKIH0KIAotaW5saW5lIHZvaWQgSW5saW5lRmxvd0JveDo6c2V0VmVy
dGljYWxPdmVyZmxvd1Bvc2l0aW9ucyhpbnQgdG9wTGF5b3V0T3ZlcmZsb3csIGludCBib3R0b21M
YXlvdXRPdmVyZmxvdywgaW50IHRvcFZpc3VhbE92ZXJmbG93LCBpbnQgYm90dG9tVmlzdWFsT3Zl
cmZsb3csIGludCBib3hIZWlnaHQpCitpbmxpbmUgdm9pZCBJbmxpbmVGbG93Qm94OjpzZXRCbG9j
a0RpcmVjdGlvbk92ZXJmbG93UG9zaXRpb25zKGludCB0b3BMYXlvdXRPdmVyZmxvdywgaW50IGJv
dHRvbUxheW91dE92ZXJmbG93LCBpbnQgdG9wVmlzdWFsT3ZlcmZsb3csIGludCBib3R0b21WaXN1
YWxPdmVyZmxvdywgaW50IGJveEhlaWdodCkKIHsKICAgICBpZiAoIW1fb3ZlcmZsb3cpIHsKICAg
ICAgICAgaWYgKHRvcExheW91dE92ZXJmbG93ID09IG1feSAmJiBib3R0b21MYXlvdXRPdmVyZmxv
dyA9PSBtX3kgKyBib3hIZWlnaHQgJiYgdG9wVmlzdWFsT3ZlcmZsb3cgPT0gbV95ICYmIGJvdHRv
bVZpc3VhbE92ZXJmbG93ID09IG1feSArIGJveEhlaWdodCkKSW5kZXg6IFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suaAkocmV2aXNpb24gNjgxNzQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNjQsOCArMzY0LDggQEAgcHJpdmF0ZToKICAgICBJbmxp
bmVJdGVyYXRvciBmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImLCBib29sIGZp
cnN0TGluZSwgYm9vbCYgaXNMaW5lRW1wdHksIGJvb2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5s
eSwgYm9vbCYgaHlwaGVuYXRlZCwgRUNsZWFyKiwgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZy
b21QcmV2aW91c0xpbmUpOwogICAgIFJvb3RJbmxpbmVCb3gqIGNvbnN0cnVjdExpbmUodW5zaWdu
ZWQgcnVuQ291bnQsIEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKiBsYXN0UnVuLCBib29sIGZp
cnN0TGluZSwgYm9vbCBsYXN0TGluZSwgUmVuZGVyT2JqZWN0KiBlbmRPYmplY3QpOwogICAgIElu
bGluZUZsb3dCb3gqIGNyZWF0ZUxpbmVCb3hlcyhSZW5kZXJPYmplY3QqLCBib29sIGZpcnN0TGlu
ZSk7Ci0gICAgdm9pZCBjb21wdXRlSG9yaXpvbnRhbFBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGlu
ZUJveCosIGJvb2wgZmlyc3RMaW5lLCBCaWRpUnVuKiBmaXJzdFJ1biwgQmlkaVJ1biogdHJhaWxp
bmdTcGFjZVJ1biwgYm9vbCByZWFjaGVkRW5kLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250
c01hcCYpOwotICAgIHZvaWQgY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25zRm9yTGluZShSb290SW5s
aW5lQm94KiwgQmlkaVJ1biosIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJik7Cisg
ICAgdm9pZCBjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZShSb290SW5saW5l
Qm94KiwgYm9vbCBmaXJzdExpbmUsIEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKiB0cmFpbGlu
Z1NwYWNlUnVuLCBib29sIHJlYWNoZWRFbmQsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRz
TWFwJik7CisgICAgdm9pZCBjb21wdXRlQmxvY2tEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJv
b3RJbmxpbmVCb3gqLCBCaWRpUnVuKiwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAm
KTsKICAgICB2b2lkIGRlbGV0ZUVsbGlwc2lzTGluZUJveGVzKCk7CiAgICAgdm9pZCBjaGVja0xp
bmVzRm9yVGV4dE92ZXJmbG93KCk7CiAgICAgdm9pZCBhZGRPdmVyZmxvd0Zyb21JbmxpbmVDaGls
ZHJlbigpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQu
Y3BwCShyZXZpc2lvbiA2ODIwMCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyMCw3ICszMjAsNyBAQCBSb290SW5saW5l
Qm94KiBSZW5kZXJCbG9jazo6Y29uc3RydWN0TGluCiAgICAgcmV0dXJuIGxhc3RSb290Qm94KCk7
CiB9CiAKLXZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVIb3Jpem9udGFsUG9zaXRpb25zRm9yTGlu
ZShSb290SW5saW5lQm94KiBsaW5lQm94LCBib29sIGZpcnN0TGluZSwgQmlkaVJ1biogZmlyc3RS
dW4sIEJpZGlSdW4qIHRyYWlsaW5nU3BhY2VSdW4sIGJvb2wgcmVhY2hlZEVuZCwgR2x5cGhPdmVy
Zmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmIHRleHRCb3hEYXRhTWFwKQordm9pZCBSZW5kZXJCbG9j
azo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGluZUJveCog
bGluZUJveCwgYm9vbCBmaXJzdExpbmUsIEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKiB0cmFp
bGluZ1NwYWNlUnVuLCBib29sIHJlYWNoZWRFbmQsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0Zv
bnRzTWFwJiB0ZXh0Qm94RGF0YU1hcCkKIHsKICAgICAvLyBGaXJzdCBkZXRlcm1pbmUgb3VyIHRv
dGFsIHdpZHRoLgogICAgIGludCBhdmFpbGFibGVXaWR0aCA9IGxpbmVXaWR0aChoZWlnaHQoKSwg
Zmlyc3RMaW5lKTsKQEAgLTQ4NSwxMiArNDg1LDEyIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1
dGVIb3Jpem9udGFsUG9zaXQKICAgICAvLyBUaGUgd2lkdGhzIG9mIGFsbCBydW5zIGFyZSBub3cg
a25vd24uICBXZSBjYW4gbm93IHBsYWNlIGV2ZXJ5IGlubGluZSBib3ggKGFuZAogICAgIC8vIGNv
bXB1dGUgYWNjdXJhdGUgd2lkdGhzIGZvciB0aGUgaW5saW5lIGZsb3cgYm94ZXMpLgogICAgIG5l
ZWRzV29yZFNwYWNpbmcgPSBmYWxzZTsKLSAgICBsaW5lQm94LT5wbGFjZUJveGVzSG9yaXpvbnRh
bGx5KHgsIG5lZWRzV29yZFNwYWNpbmcsIHRleHRCb3hEYXRhTWFwKTsKKyAgICBsaW5lQm94LT5w
bGFjZUJveGVzSW5JbmxpbmVEaXJlY3Rpb24oeCwgbmVlZHNXb3JkU3BhY2luZywgdGV4dEJveERh
dGFNYXApOwogfQogCi12b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlVmVydGljYWxQb3NpdGlvbnNG
b3JMaW5lKFJvb3RJbmxpbmVCb3gqIGxpbmVCb3gsIEJpZGlSdW4qIGZpcnN0UnVuLCBHbHlwaE92
ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFNYXApCit2b2lkIFJlbmRlckJs
b2NrOjpjb21wdXRlQmxvY2tEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJvb3RJbmxpbmVCb3gq
IGxpbmVCb3gsIEJpZGlSdW4qIGZpcnN0UnVuLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250
c01hcCYgdGV4dEJveERhdGFNYXApCiB7Ci0gICAgc2V0SGVpZ2h0KGxpbmVCb3gtPnZlcnRpY2Fs
bHlBbGlnbkJveGVzKGhlaWdodCgpLCB0ZXh0Qm94RGF0YU1hcCkpOworICAgIHNldEhlaWdodChs
aW5lQm94LT5hbGlnbkJveGVzSW5CbG9ja0RpcmVjdGlvbihoZWlnaHQoKSwgdGV4dEJveERhdGFN
YXApKTsKICAgICBsaW5lQm94LT5zZXRCbG9ja0hlaWdodChoZWlnaHQoKSk7CiAKICAgICAvLyBO
b3cgbWFrZSBzdXJlIHdlIHBsYWNlIHJlcGxhY2VkIHJlbmRlciBvYmplY3RzIGNvcnJlY3RseS4K
QEAgLTc2NCwxMCArNzY0LDEwIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxk
cmVuKGIKIAogICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm93IHdlIHBvc2l0aW9uIGFsbCBv
ZiBvdXIgdGV4dCBydW5zIGhvcml6b250YWxseS4KICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICghaXNTVkdSb290SW5saW5lQm94KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1
dGVIb3Jpem9udGFsUG9zaXRpb25zRm9yTGluZShsaW5lQm94LCBmaXJzdExpbmUsIHJlc29sdmVy
LmZpcnN0UnVuKCksIHRyYWlsaW5nU3BhY2VSdW4sIGVuZC5hdEVuZCgpLCB0ZXh0Qm94RGF0YU1h
cCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcHV0ZUlubGluZURpcmVjdGlvblBv
c2l0aW9uc0ZvckxpbmUobGluZUJveCwgZmlyc3RMaW5lLCByZXNvbHZlci5maXJzdFJ1bigpLCB0
cmFpbGluZ1NwYWNlUnVuLCBlbmQuYXRFbmQoKSwgdGV4dEJveERhdGFNYXApOwogCiAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBOb3cgcG9zaXRpb24gb3VyIHRleHQgcnVucyB2ZXJ0aWNhbGx5
LgotICAgICAgICAgICAgICAgICAgICAgICAgY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25zRm9yTGlu
ZShsaW5lQm94LCByZXNvbHZlci5maXJzdFJ1bigpLCB0ZXh0Qm94RGF0YU1hcCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBjb21wdXRlQmxvY2tEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKGxp
bmVCb3gsIHJlc29sdmVyLmZpcnN0UnVuKCksIHRleHRCb3hEYXRhTWFwKTsKIAogI2lmIEVOQUJM
RShTVkcpCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTVkcgdGV4dCBsYXlvdXQgY29kZSBj
b21wdXRlcyB2ZXJ0aWNhbCAmIGhvcml6b250YWwgcG9zaXRpb25zIG9uIGl0cyBvd24uCkBAIC04
OTgsOCArODk4LDggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYgog
ICAgICAgICAgICAgICAgIG1fbGluZUJveGVzLmFwcGVuZExpbmVCb3godHJhaWxpbmdGbG9hdHNM
aW5lQm94KTsKICAgICAgICAgICAgICAgICB0cmFpbGluZ0Zsb2F0c0xpbmVCb3gtPnNldENvbnN0
cnVjdGVkKCk7CiAgICAgICAgICAgICAgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNN
YXAgdGV4dEJveERhdGFNYXA7Ci0gICAgICAgICAgICAgICAgdHJhaWxpbmdGbG9hdHNMaW5lQm94
LT52ZXJ0aWNhbGx5QWxpZ25Cb3hlcyhoZWlnaHQoKSwgdGV4dEJveERhdGFNYXApOwotICAgICAg
ICAgICAgICAgIHRyYWlsaW5nRmxvYXRzTGluZUJveC0+c2V0VmVydGljYWxPdmVyZmxvd1Bvc2l0
aW9ucyhoZWlnaHQoKSwgYm90dG9tTGF5b3V0T3ZlcmZsb3csIGhlaWdodCgpLCBib3R0b21WaXN1
YWxPdmVyZmxvdywgMCk7CisgICAgICAgICAgICAgICAgdHJhaWxpbmdGbG9hdHNMaW5lQm94LT5h
bGlnbkJveGVzSW5CbG9ja0RpcmVjdGlvbihoZWlnaHQoKSwgdGV4dEJveERhdGFNYXApOworICAg
ICAgICAgICAgICAgIHRyYWlsaW5nRmxvYXRzTGluZUJveC0+c2V0QmxvY2tEaXJlY3Rpb25PdmVy
Zmxvd1Bvc2l0aW9ucyhoZWlnaHQoKSwgYm90dG9tTGF5b3V0T3ZlcmZsb3csIGhlaWdodCgpLCBi
b3R0b21WaXN1YWxPdmVyZmxvdywgMCk7CiAgICAgICAgICAgICAgICAgdHJhaWxpbmdGbG9hdHNM
aW5lQm94LT5zZXRCbG9ja0hlaWdodChoZWlnaHQoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBpZiAobGFzdEZsb2F0KSB7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
SXRlbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0u
Y3BwCShyZXZpc2lvbiA2ODE3NCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVt
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQgUmVuZGVyTGlzdEl0
ZW06OnBvc2l0aW9uTGlzdE1hcmtlcigKICAgICAgICAgICAgIG1fbWFya2VyLT5pbmxpbmVCb3hX
cmFwcGVyKCktPmFkanVzdFBvc2l0aW9uKG1hcmtlclhQb3MgLSBtYXJrZXJPbGRYLCAwKTsKICAg
ICAgICAgICAgIGZvciAoSW5saW5lRmxvd0JveCogYm94ID0gbV9tYXJrZXItPmlubGluZUJveFdy
YXBwZXIoKS0+cGFyZW50KCk7IGJveDsgYm94ID0gYm94LT5wYXJlbnQoKSkgewogICAgICAgICAg
ICAgICAgIGlmIChtYXJrZXJYUG9zIDwgYm94LT5sZWZ0TGF5b3V0T3ZlcmZsb3coKSkgewotICAg
ICAgICAgICAgICAgICAgICBib3gtPnNldEhvcml6b250YWxPdmVyZmxvd1Bvc2l0aW9ucyhtYXJr
ZXJYUG9zLCBib3gtPnJpZ2h0TGF5b3V0T3ZlcmZsb3coKSwgYm94LT5sZWZ0VmlzdWFsT3ZlcmZs
b3coKSwgYm94LT5yaWdodFZpc3VhbE92ZXJmbG93KCkpOworICAgICAgICAgICAgICAgICAgICBi
b3gtPnNldElubGluZURpcmVjdGlvbk92ZXJmbG93UG9zaXRpb25zKG1hcmtlclhQb3MsIGJveC0+
cmlnaHRMYXlvdXRPdmVyZmxvdygpLCBib3gtPmxlZnRWaXN1YWxPdmVyZmxvdygpLCBib3gtPnJp
Z2h0VmlzdWFsT3ZlcmZsb3coKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChib3ggPT0gcm9v
dCkKICAgICAgICAgICAgICAgICAgICAgICAgIGFkanVzdE92ZXJmbG93ID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICB9CkBAIC0yNzgsNyArMjc4LDcgQEAgdm9pZCBSZW5kZXJMaXN0SXRlbTo6cG9z
aXRpb25MaXN0TWFya2VyKAogICAgICAgICAgICAgbV9tYXJrZXItPmlubGluZUJveFdyYXBwZXIo
KS0+YWRqdXN0UG9zaXRpb24obWFya2VyWFBvcyAtIG1hcmtlck9sZFgsIDApOwogICAgICAgICAg
ICAgZm9yIChJbmxpbmVGbG93Qm94KiBib3ggPSBtX21hcmtlci0+aW5saW5lQm94V3JhcHBlcigp
LT5wYXJlbnQoKTsgYm94OyBib3ggPSBib3gtPnBhcmVudCgpKSB7CiAgICAgICAgICAgICAgICAg
aWYgKG1hcmtlclhQb3MgKyBtX21hcmtlci0+d2lkdGgoKSA+IGJveC0+cmlnaHRMYXlvdXRPdmVy
ZmxvdygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJveC0+c2V0SG9yaXpvbnRhbE92ZXJmbG93
UG9zaXRpb25zKGJveC0+bGVmdExheW91dE92ZXJmbG93KCksIG1hcmtlclhQb3MgKyBtX21hcmtl
ci0+d2lkdGgoKSwgYm94LT5sZWZ0VmlzdWFsT3ZlcmZsb3coKSwgYm94LT5yaWdodFZpc3VhbE92
ZXJmbG93KCkpOworICAgICAgICAgICAgICAgICAgICBib3gtPnNldElubGluZURpcmVjdGlvbk92
ZXJmbG93UG9zaXRpb25zKGJveC0+bGVmdExheW91dE92ZXJmbG93KCksIG1hcmtlclhQb3MgKyBt
X21hcmtlci0+d2lkdGgoKSwgYm94LT5sZWZ0VmlzdWFsT3ZlcmZsb3coKSwgYm94LT5yaWdodFZp
c3VhbE92ZXJmbG93KCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoYm94ID09IHJvb3QpCiAg
ICAgICAgICAgICAgICAgICAgICAgICBhZGp1c3RPdmVyZmxvdyA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAJKHJldmlzaW9uIDY4
MTg2KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0Nyw4ICsxNDcsOCBAQCB2b2lkIFJvb3RJbmxpbmVCb3g6OmFkZEhpZ2hsaWdodE92
ZXJmbG93CiAgICAgLy8gSGlnaGxpZ2h0IGFjdHMgYXMgYSBzZWxlY3Rpb24gaW5mbGF0aW9uLgog
ICAgIEZsb2F0UmVjdCByb290UmVjdCgwLCBzZWxlY3Rpb25Ub3AoKSwgbG9naWNhbFdpZHRoKCks
IHNlbGVjdGlvbkhlaWdodCgpKTsKICAgICBJbnRSZWN0IGluZmxhdGVkUmVjdCA9IGVuY2xvc2lu
Z0ludFJlY3QocGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5jdXN0b21IaWdobGlnaHRSZWN0KHJl
bmRlcmVyKCktPm5vZGUoKSwgcmVuZGVyZXIoKS0+c3R5bGUoKS0+aGlnaGxpZ2h0KCksIHJvb3RS
ZWN0KSk7Ci0gICAgc2V0SG9yaXpvbnRhbE92ZXJmbG93UG9zaXRpb25zKGxlZnRMYXlvdXRPdmVy
ZmxvdygpLCByaWdodExheW91dE92ZXJmbG93KCksIG1pbihsZWZ0VmlzdWFsT3ZlcmZsb3coKSwg
aW5mbGF0ZWRSZWN0LngoKSksIG1heChyaWdodFZpc3VhbE92ZXJmbG93KCksIGluZmxhdGVkUmVj
dC5yaWdodCgpKSk7Ci0gICAgc2V0VmVydGljYWxPdmVyZmxvd1Bvc2l0aW9ucyh0b3BMYXlvdXRP
dmVyZmxvdygpLCBib3R0b21MYXlvdXRPdmVyZmxvdygpLCBtaW4odG9wVmlzdWFsT3ZlcmZsb3co
KSwgaW5mbGF0ZWRSZWN0LnkoKSksIG1heChib3R0b21WaXN1YWxPdmVyZmxvdygpLCBpbmZsYXRl
ZFJlY3QuYm90dG9tKCkpLCBsb2dpY2FsSGVpZ2h0KCkpOworICAgIHNldElubGluZURpcmVjdGlv
bk92ZXJmbG93UG9zaXRpb25zKGxlZnRMYXlvdXRPdmVyZmxvdygpLCByaWdodExheW91dE92ZXJm
bG93KCksIG1pbihsZWZ0VmlzdWFsT3ZlcmZsb3coKSwgaW5mbGF0ZWRSZWN0LngoKSksIG1heChy
aWdodFZpc3VhbE92ZXJmbG93KCksIGluZmxhdGVkUmVjdC5yaWdodCgpKSk7CisgICAgc2V0Qmxv
Y2tEaXJlY3Rpb25PdmVyZmxvd1Bvc2l0aW9ucyh0b3BMYXlvdXRPdmVyZmxvdygpLCBib3R0b21M
YXlvdXRPdmVyZmxvdygpLCBtaW4odG9wVmlzdWFsT3ZlcmZsb3coKSwgaW5mbGF0ZWRSZWN0Lnko
KSksIG1heChib3R0b21WaXN1YWxPdmVyZmxvdygpLCBpbmZsYXRlZFJlY3QuYm90dG9tKCkpLCBs
b2dpY2FsSGVpZ2h0KCkpOwogfQogCiB2b2lkIFJvb3RJbmxpbmVCb3g6OnBhaW50Q3VzdG9tSGln
aGxpZ2h0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBoaWdobGlnaHRUeXBlKQpAQCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgUm9vdElubGlu
ZUJveDo6Y2hpbGRSZW1vdmVkKElubGluZUIKICAgICB9CiB9CiAKLWludCBSb290SW5saW5lQm94
Ojp2ZXJ0aWNhbGx5QWxpZ25Cb3hlcyhpbnQgaGVpZ2h0T2ZCbG9jaywgR2x5cGhPdmVyZmxvd0Fu
ZEZhbGxiYWNrRm9udHNNYXAmIHRleHRCb3hEYXRhTWFwKQoraW50IFJvb3RJbmxpbmVCb3g6OmFs
aWduQm94ZXNJbkJsb2NrRGlyZWN0aW9uKGludCBoZWlnaHRPZkJsb2NrLCBHbHlwaE92ZXJmbG93
QW5kRmFsbGJhY2tGb250c01hcCYgdGV4dEJveERhdGFNYXApCiB7CiAjaWYgRU5BQkxFKFNWRykK
ICAgICAvLyBTVkcgd2lsbCBoYW5kbGUgdmVydGljYWwgYWxpZ25tZW50IG9uIGl0cyBvd24uCkBA
IC0yMzcsOCArMjM3LDggQEAgaW50IFJvb3RJbmxpbmVCb3g6OnZlcnRpY2FsbHlBbGlnbkJveGVz
KAogICAgIGludCBtYXhIZWlnaHQgPSBtYXhBc2NlbnQgKyBtYXhEZXNjZW50OwogICAgIGludCBs
aW5lVG9wID0gaGVpZ2h0T2ZCbG9jazsKICAgICBpbnQgbGluZUJvdHRvbSA9IGhlaWdodE9mQmxv
Y2s7Ci0gICAgcGxhY2VCb3hlc1ZlcnRpY2FsbHkoaGVpZ2h0T2ZCbG9jaywgbWF4SGVpZ2h0LCBt
YXhBc2NlbnQsIG5vUXVpcmtzTW9kZSwgbGluZVRvcCwgbGluZUJvdHRvbSk7Ci0gICAgY29tcHV0
ZVZlcnRpY2FsT3ZlcmZsb3cobGluZVRvcCwgbGluZUJvdHRvbSwgbm9RdWlya3NNb2RlLCB0ZXh0
Qm94RGF0YU1hcCk7CisgICAgcGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24oaGVpZ2h0T2ZCbG9j
aywgbWF4SGVpZ2h0LCBtYXhBc2NlbnQsIG5vUXVpcmtzTW9kZSwgbGluZVRvcCwgbGluZUJvdHRv
bSk7CisgICAgY29tcHV0ZUJsb2NrRGlyZWN0aW9uT3ZlcmZsb3cobGluZVRvcCwgbGluZUJvdHRv
bSwgbm9RdWlya3NNb2RlLCB0ZXh0Qm94RGF0YU1hcCk7CiAgICAgc2V0TGluZVRvcEJvdHRvbVBv
c2l0aW9ucyhsaW5lVG9wLCBsaW5lQm90dG9tKTsKICAgICAKICAgICBoZWlnaHRPZkJsb2NrICs9
IG1heEhlaWdodDsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgJKHJldmlzaW9uIDY4
MTg2KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBpbnQgc2VsZWN0aW9uQm90dG9tKCkgY29u
c3QgeyByZXR1cm4gbGluZUJvdHRvbSgpOyB9CiAgICAgaW50IHNlbGVjdGlvbkhlaWdodCgpIGNv
bnN0IHsgcmV0dXJuIG1heCgwLCBzZWxlY3Rpb25Cb3R0b20oKSAtIHNlbGVjdGlvblRvcCgpKTsg
fQogCi0gICAgaW50IHZlcnRpY2FsbHlBbGlnbkJveGVzKGludCBoZWlnaHRPZkJsb2NrLCBHbHlw
aE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYpOworICAgIGludCBhbGlnbkJveGVzSW5CbG9j
a0RpcmVjdGlvbihpbnQgaGVpZ2h0T2ZCbG9jaywgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9u
dHNNYXAmKTsKICAgICB2b2lkIHNldExpbmVUb3BCb3R0b21Qb3NpdGlvbnMoaW50IHRvcCwgaW50
IGJvdHRvbSk7CiAKICAgICB2aXJ0dWFsIFJlbmRlckxpbmVCb3hMaXN0KiByZW5kZXJlckxpbmVC
b3hlcygpIGNvbnN0Owo=
</data>
<flag name="review"
          id="58158"
          type_id="1"
          status="+"
          setter="adele"
    />
          </attachment>
      

    </bug>

</bugzilla>