pax_global_header00006660000000000000000000000064140262775150014523gustar00rootroot0000000000000052 comment=caa4c5e055c44c2e48c317656ed0096f9a54b566 red-data-tools-unicode_plot.rb-b4b6a31/000077500000000000000000000000001402627751500200325ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/.github/000077500000000000000000000000001402627751500213725ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/.github/workflows/000077500000000000000000000000001402627751500234275ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/.github/workflows/ci.yml000066400000000000000000000020251402627751500245440ustar00rootroot00000000000000name: CI on: push: branches: - master pull_request: types: - opened - synchronize - reopened jobs: test: name: ${{ matrix.os }} ${{ matrix.ruby }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-20.04 - ubuntu-18.04 - ubuntu-16.04 - macos-latest - windows-latest ruby: - 3.0 - 2.7 - 2.6 - 2.5 - 2.4 - debug include: - { os: windows-latest , ruby: mingw } - { os: windows-latest , ruby: mswin } exclude: - { os: windows-latest , ruby: 3.0 } - { os: windows-latest , ruby: debug } steps: - uses: actions/checkout@v2 with: fetch-depth: 1 - name: Setup Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} - run: bundle install --jobs 4 --retry 3 - run: bundle exec rake - run: bundle exec rake build - run: gem install pkg/*.gem red-data-tools-unicode_plot.rb-b4b6a31/.gitignore000066400000000000000000000001531402627751500220210ustar00rootroot00000000000000Gemfile.lock pkg/ tmp/ *~ # to prevent yard documentation from accidentally being checked in .yardoc/ doc/red-data-tools-unicode_plot.rb-b4b6a31/.yardopts000066400000000000000000000001231402627751500216740ustar00rootroot00000000000000--output-dir doc/reference --markup markdown --no-private lib/**/*.rb - doc/text/* red-data-tools-unicode_plot.rb-b4b6a31/CHANGES.md000066400000000000000000000017621402627751500214320ustar00rootroot00000000000000# 0.0.5 - Add stairs support [GitHub#38][GitHub#17] [Patch by @nanobowers] - Add block canvas support [GitHub#39][GitHub#19] [Patch by @nanobowers] - Add stemplot support [GitHub#40][GitHub#30] [Patch by @nanobowers] - Add an example of animation [GitHub#33] [Patch by @mrkn and @kojix2] - Fix interpolation bug of lineplot [GitHub#37][GitHub#32] [Patch by @nanobowers] [Reported by @Nakilon] - Support `color:` option in `render` method [GitHub#45] - Add `canvas_types` method [GitHub#44][GitHub#42] [Reported by @kojix2] - Use appropriate message for invalid border types, and add `border_types` method [GitHub#43][GitHub#41] [Reported by @kojix2] # 0.0.4 - Fix error by requiring `stringio` [#22] - Use enumerable-statistics >= 2.0.1 to avoid a bug of histogram [#28] # 0.0.3 - Add histogram support - Add barplot! method - Add scatterplot support - Add densityplot support # 0.0.2 - Add boxplot support # 0.0.1 - Add barplot support - Add lineplot support red-data-tools-unicode_plot.rb-b4b6a31/Gemfile000066400000000000000000000002511402627751500213230ustar00rootroot00000000000000source "https://rubygems.org/" gemspec # Temporary use this for module_function decorator support gem "yard", github: "mrkn/yard", branch: "module_function_decorator" red-data-tools-unicode_plot.rb-b4b6a31/LICENSE.txt000066400000000000000000000020751402627751500216610ustar00rootroot00000000000000The MIT License (MIT) Copyright © 2019 Kenta Murata Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. red-data-tools-unicode_plot.rb-b4b6a31/README.md000066400000000000000000000034731402627751500213200ustar00rootroot00000000000000# UnicodePlot - Plot your data by Unicode characters UnicodePlot provides the feature to make charts with Unicode characters. ## Documentation https://red-data-tools.github.io/unicode_plot.rb/ ## Install ```console $ gem install unicode_plot ``` ## Usage ```ruby require 'unicode_plot' x = 0.step(3*Math::PI, by: 3*Math::PI / 30) y_sin = x.map {|xi| Math.sin(xi) } y_cos = x.map {|xi| Math.cos(xi) } plot = UnicodePlot.lineplot(x, y_sin, name: "sin(x)", width: 40, height: 10) UnicodePlot.lineplot!(plot, x, y_cos, name: "cos(x)") plot.render ``` You can get the results below by running the above script: ## Supported charts ### barplot ```ruby UnicodePlot.barplot(data: {'foo': 20, 'bar': 50}, title: "Bar").render ``` ### boxplot ```ruby UnicodePlot.boxplot(data: {foo: [1, 3, 5], bar: [3, 5, 7]}, title: "Box").render ``` ### densityplot ```ruby x = Array.new(500) { 20*rand - 10 } + Array.new(500) { 6*rand - 3 } y = Array.new(1000) { 30*rand - 10 } UnicodePlot.densityplot(x, y, title: "Density").render ``` ### histogram ```ruby x = Array.new(100) { rand(10) } + Array.new(100) { rand(30) + 10 } UnicodePlot.histogram(x, title: "Histogram").render ``` ### lineplot See [Usage](#usage) section above. ### scatterplot ```ruby x = Array.new(50) { rand(20) - 10 } y = x.map {|xx| xx*rand(30) - 10 } UnicodePlot.scatterplot(x, y, title: "Scatter").render ``` ## Acknowledgement This library is strongly inspired by [UnicodePlot.jl](https://github.com/Evizero/UnicodePlots.jl). ## License MIT License ## Author - [Kenta Murata](https://github.com/mrkn) red-data-tools-unicode_plot.rb-b4b6a31/Rakefile000066400000000000000000000004171402627751500215010ustar00rootroot00000000000000require "bundler/gem_helper" require "yard" base_dir = File.expand_path("..", __FILE__) helper = Bundler::GemHelper.new(base_dir) helper.install desc "Run test" task :test do ruby("test/run-test.rb") end task default: :test YARD::Rake::YardocTask.new do |task| end red-data-tools-unicode_plot.rb-b4b6a31/example/000077500000000000000000000000001402627751500214655ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/example/animation.rb000066400000000000000000000011361402627751500237720ustar00rootroot00000000000000require "unicode_plot" require "stringio" N = 1000 M = 50 out = StringIO.new def out.tty?; true; end shift = 0 continue = true Signal.trap(:INT) { continue = false } while continue out.truncate(0) xs = 0...N ys = xs.map {|x| Math.sin(2*Math::PI*(x + shift) / N) } UnicodePlot.lineplot(xs, ys, width: 60, height: 15).render(out) lines = out.string.lines lines.each do |line| $stdout.print "\r#{line}" end $stdout.print "\e[0J" $stdout.flush sleep 0.2 if continue n = lines.count $stdout.print "\e[#{n}F" shift = (shift + M) % N end end $stdout.print "\e[0J" red-data-tools-unicode_plot.rb-b4b6a31/example/ex_canvases.rb000077500000000000000000000007311402627751500243150ustar00rootroot00000000000000#!/bin/env ruby $LOAD_PATH << "#{__dir__}/../lib" require "unicode_plot" # example of line plots using different canvases UnicodePlot.lineplot([1, 2, 7], [9, -6, 8], title: "Default Lineplot").render UnicodePlot.lineplot([1, 2, 7], [9, -6, 8], title: "Ascii Lineplot", canvas: :ascii).render UnicodePlot.lineplot([1, 2, 7], [9, -6, 8], title: "Dot Lineplot", canvas: :dot).render UnicodePlot.lineplot([1, 2, 7], [9, -6, 8], title: "Block Lineplot", canvas: :block).render red-data-tools-unicode_plot.rb-b4b6a31/example/ex_staircase_plot.rb000077500000000000000000000012441402627751500255260ustar00rootroot00000000000000#!/bin/env ruby $LOAD_PATH << "#{__dir__}/../lib" require "unicode_plot" # single plot at a time UnicodePlot.stairs([1, 2, 4, 7, 8], [1, 3, 4, 2, 7], style: :post).render # pre: style UnicodePlot.stairs([1, 2, 4, 7, 8], [1, 3, 4, 2, 7], style: :pre).render # Another single plot with title UnicodePlot.stairs([2, 3, 5, 6, 9], [2, 5, 3, 4, 2], title: "My Staircase Plot").render # Two plots at a time. # Using an explicit limit because data for the 2nd plot is outside the bounds from the 1st plot plot = UnicodePlot.stairs([1, 2, 4, 7, 8], [1, 3, 4, 2, 7], title: "Two Staircases", xlim: [1,10] ) UnicodePlot.stairs!(plot, [0, 3, 5, 6, 9], [2, 5, 3, 4, 0]) plot.render red-data-tools-unicode_plot.rb-b4b6a31/example/ex_stemplot.rb000077500000000000000000000017041402627751500243620ustar00rootroot00000000000000#!/bin/env ruby # coding: utf-8 $LOAD_PATH << "#{__dir__}/../lib" require "unicode_plot" fifty_floats = 50.times.map { rand(-1000..1000)/350.0 } eighty_ints = 80.times.map { rand(1..100) } another_eighty_ints = 80.times.map { rand(1..100) } three_hundred_ints = 300.times.map { rand(-100..100) } UnicodePlot.stemplot(eighty_ints) UnicodePlot.stemplot(three_hundred_ints) UnicodePlot.stemplot(fifty_floats, scale: 1) UnicodePlot.stemplot(fifty_floats, scale: 1, divider: "😄") UnicodePlot.stemplot(eighty_ints, another_eighty_ints) # Examples with strings words_1 = %w[apple junk ant age bee bar baz dog egg a] words_2 = %w[ape flan can cat juice elf gnome child fruit] UnicodePlot.stemplot(words_1) UnicodePlot.stemplot(words_1, words_2) UnicodePlot.stemplot(words_1, scale: 100, trim: true) UnicodePlot.stemplot(words_1, scale: 100, trim: true, string_padchar: '?') floats = (-8..8).to_a.map { |a| a / 2.0 } UnicodePlot.stemplot(floats, scale: 1) red-data-tools-unicode_plot.rb-b4b6a31/example/issue32.rb000077500000000000000000000003671402627751500233200ustar00rootroot00000000000000#!/bin/env ruby $LOAD_PATH << "#{__dir__}/../lib" require "unicode_plot" ys = [261, 272, 277, 283, 289, 294, 298, 305, 309, 314, 319, 320, 322, 323, 324] xs = ys.size.times.to_a UnicodePlot.lineplot(xs, ys, height: 26, ylim: [0, 700]).render red-data-tools-unicode_plot.rb-b4b6a31/img/000077500000000000000000000000001402627751500206065ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/img/barplot.png000066400000000000000000000427141402627751500227670ustar00rootroot00000000000000PNG  IHDR6f| iCCPICC ProfileHPTW{mޖ{K/ҫ(,tX`"6$"" * EbAD$(1X$1||g;{@a&''$rҸ>Nv:n@4l厌~ ]-^?&ȎLey!Ne%"܃=+FX!3-ǪHoq:ޥE3?YL&7bg::u9Xb0H45xljDf_5x[0#)!Kwḡ.3-Ą?9q)I q.wddD`"Xd DvZdV#)y+76:&nb$֤݅|\]?뮲$FdTW7cs3s@]2@^ c`lp-b@"w&A>(aPIN\Wup QLi,` D8$ )A>d YA;CP4āҡhT@P @7a4 Aoea, +:)l ~f8NKR`AkC HFF{z>s[LMMLMi^E70fvf;.}476O3?kEE 6LY[2-k,'VV'&嬙ֵll663jql_q{}CSGyh'#mN=g7..,&W}nd7_ g\nJ9;=!'^*^)^?yc+R}|}=WO  h X ,  t;X"86+RaMӡFcU6gmEbK–aa̰sU'Qb^mإHȒș(˨hCs11e1؊qqqK k m!Nddd lUߺoLcXzsrvLn^wμӻv5&snnI={vM}MK>_>7|o~;`}  u WXEQ;h}D$dǡRziAaoU!I?2Q^uT聣1vmURU9Z-]]X|"Zڲؓ'o}SD}aNDOc_ISSTsq ܒ2w*i]Z5m"mg3/~asZT^ulX >zۢ'.](|Rޥٗ{{D_ }t5>knn\w~߶ n<VmF?>hHxaÕGc<xRTi/jMO\xk審N=RM?/.ϬdV?}ZZ2"PQQi uU|MYW(뾘1Hᩛ 8qOD/R i9kmmu\$%Ӣdad@ZgXDAш];i`9 pHYs%%IR$(iTXtXML:com.adobe.xmp 2 5 144 1 144 822 1 157 2019:06:20 11:06:46 Pixelmator 3.8.4 9 v>7$IDATxp]y A(VQl%j.*eg";xlNqf'M63L2IٴIȖ[l˶Ubu%Jl @ w{@s}9zڎ  @@r )Jni9 @  ' @H45APx@H4>n>JnB)P$DCH@ @h:sNl"hTȇnY%kTA,4.B  0&PLsl<<"O5IK) ;{i 1-Mn>K;*k6j$@@>|l2xp@F nQVQ^*NfNK:Hy{!qmF5_;{VgxlcRTPueݯGLkd|qqq}@k@2yVʢ93K'__υ)oB8p\Nr Ugɴ)URV-UAî/]4[c'eҨV#Һꥶzrv @ _ɗӎD )䅌`cYTӅv5O{AܶW+tl5KSw,U&7w0sTMBM`vffiAΎ.yiNgNkߞ,B~j]m8 'fǀ@26Ҧ~5؝՜2#ل):{F}}ҺHFv!@ ;;ZA @lˎYIPvBݷ8033]?Un[L/_7Z7yavc/bδJz꬜X.KΑeo3cj 9=.x@:'{ ?X@@r7Ijjj&OV]9IsQ-M3kn(pffBOiIjmĵ,])ܹ;w˸]733q@CM- 0 2pb;:'/l˗~#2ܱ2Sg[6ktcND ܤ!s%b f 3IF /&'?( 5s?uV~{A'ܘ'Y=QզCo?!-2+qd&LFz$@H @y@HI2ELkfB_~̙9-l]ggt]a 5ff&h*T6&`akCeJ! 146y<84 @TXıxԱRՠ\b9qpg[.}ihmr  |%DE] δ2EENseEͤtqb'✥%ox==2r @H}>6A@0ba)Λ@3yRL$Sk&˒ q2 )Ѳ73O.ϝwfi^woXu+g.Eֱ)VZf8L#T E@&A랬q #qΨpckؘN]&%-s@E@l kL  @#E @(G)' @f\= @@@cS8cIO @ 0n Iq;t @B`z`V I7 @ 0^ #O!@ PPLgC @ h$zh< @ `@ @I'Ї&CH!@ ]@ @ ul= @P46< @@ I|@ @9 @NMC @hlx @  Ʀ.@ @`f? @@oBIt.@ @ vCӯ}lvl? j̓,E&Ob8-M?oYi[S @@e[8a?se^46y7&Ѡ.}H;.[]uD" @(,%Er׍׻N[JR;=*eF47>Ko]uKKJdY339 @(lekNC?G)_#'ϨZ,-D4*h5ԇl;g4dm)+)'B EEfɢ=>˳^:EQ`S?M>s+ @@m< $kTD4F@PS &N8 @J@1@ @1<4s€ Ml05ߚ@P @@M  @ب1M>i}z$NXB @F͈# @~eH7Į^Od+0E @;46  @0q}sg@cSOqZȇ>A 046# !@ TI8އ& Pۨظkp*>C $AcA @~PZR*.).h}M| (YO6yE> @ Eyin ++rk΀{ڎ`a==O e9_!@9^ E@ׅ)Z2FjH4i32sڐ @ 0)))ʟ?ɟ斔"0US @QmD=A ;HII |$PAk~c/}?ibT$ @!םǓ@!c~3CKp%ȦEɖ{=imk/~n] ikd @׶B͒ rR?FTa_/ >i?wUL!0 v#ejkv̙1ULonw]=uay-׆L7 5)暹3sy^yg?Mg}j @  ߾8=yֱ.Ґu2V]=@uD[)N#cqzUsM+/?U״2s׶l j2̵me9xƙY^a6* ${#؜xI 3Pُ{Ir-Dg6U:ȖLaÂ)[uC([ mrC._rX!'k;*,MWrkklk+2@>︯yX=_dVmk;?{5Hn?vRG}jRzi SW2 gg @`L )ڳ+5O~3jڛ_ݪ3Eo 1}nn-ݥi5URW[%K3kcv匚iʛIȴ)eٲBDrm㙭r&;)6mzE".vf|֣u:7quPSxz*+-'~TMz{,tӭA3vI5'>?:jr%Gٖx=p,z|_6g>ug֕0PO{yeWD╘3:INNGl+mܺfi?Y+[;dD&߬ uܱ~Y6OZj|Y{![@` \h?5*w<2͵;Ν.=]*DM(/uC'\MX@(9̚v\{z4Olf}=O7 i=3|~j+֤N9~Y#(32DN|.(P_+3jSr\N:'~׍t*عMN{4ձtll{F5Wɢ k0oW]i?|^57>o0S̯b*xWNA@ j?Z% dݲE}`)>Mwp#4;2XE%v @cF@ WxO&ab.ZӞJ-U ]Gs^'ݪ9tVM&Z"ݴ~uiUW^mއCʿȅtM :'U`ɮd'Oa2r4wJ? 53t/^et"GdqOQr(L- @` `3r?ޛ+E@ΨPʪA5,R_7Oku>Z~Όi.,~+<۪RQ._ш|H\e lX h fQv3{^ 4;^Tcίe>7Ngnv~-j~fW^;GJW]o9Q){r%? @`P3T85ȧl?ᵈ~V)af^'D-{~ߤlC !e&ʾ@(>[ 8r6V5w7Ukְ^AF@t8] BھIVj(TΩ&&Xglr7~$'& :LhrV@` ܢ;9M'?Lˊ2juVeNmRUY!E2)-T)}@X_T},1>:{u YY&]ê ]6^lj򜼵 2_uݮhk. ?6 om jnف "ܟF#q+/hX^uήܮ͛s|} q8Ӛ ,]|f[@e3oWIOAryE:}yk$"s}ƘxI^y{[/ҝrFr4ߘ-&xu_pbNc/ϛ "d@@@Ρ£Zj:"ON褿dazֵqR2!eɂ٪kؗNk,9q:x̭嫹}2-~,[@H{?R`{߭k4Y1?c7u1`rIE<-Yd{o]aa휭gcηO5}0ݕ1t[Ӓ٦ʏ,O(j> mA31+i~)r ~}m\T_8zwޒ JM -!@ `c tV]h`?ʗɇn^k5'fc&g7NßþBݳgrfM V{߭NSj$7gS5iwjk3> n@F@AjlJfk4ǙL2`Bk /Yp/hKiGX [nE*DuUE8uP[.wT4% uGˌ O& MI_=oS[9We?~uaiqvrVy6fZ>$1 @`;d6qN((f f/ck=B:|֪z]Z|"x#WzHaw;3>ߌ5R5лe? 1&Pej?Std95ԭn&nqz2dcyERºǩ:]t'-JkW?8O7]Kz|XgmםzQضXs{v mA]<(Uҟ}zr:TU/W_rKŗmyY._{mcn @" AfNLso#A @ ;$G @wLwPݛgj @#f9= @@@cSpCP[{Sي=s@ @cܱݶB޾`;`2@ @ $tl 7mKKÐ΃)G@ $  $eCglJ˃.%:f_޲K?*=)Pז,l-Z_eDL#K$GOp$/l!N,@}XsJO8@OϾ6ہ'nD\mIK(|Mewzr-A]6Xjۯ|~u_fdy˷9[g,fm} /RǾcr為|}u>/֖T>reQ`m: ;]\#hg~?z*frf?Niy B Y?xƦG:4gN3c,hiK5DiIhY9tF8-gΝM j҅eAt4'Xwٰz{}Gd/U+7ofܼjQi{#5&^UA&|IK+C0`a/q>G~eum +|㗪'O3`cV:VCNaxS](oX()9ٌ RTN8o?'qa?5-wRG0e[LMϐ-Gg/oquja}ݽ%#P/z8TJ UPqVב [P&? @H,ao}XoT1<*Ԝ̄8~kdy枭joy>xܝ_fmfTBcT'oIB0XƋ#ӺXĤd ;gZ.HgX?mjN2ϴwBɔJSsIe4Mj},"soy3嚹3F{oڶiL#c`PShE-9Y_4Y$#ZݻquFgsH)l]-[/!2gΌ_+Õn4); *Zk9L8oYq\Q"ѣ/lQTxm- o0I3G^v n,?Ӽs1H\TIMd՗v$h?9[HjkP.4>S)i Tk mH1nnNBۚk:77᚝&mrRqǺR~)$''לG1,ߴ24iky]րUf6fb5@fogX,GY*hEVk- S&͙!׫*Bg Ni:%DB~ Ꮲa (?[:':w5fƂGYj>uSxiRߒtb~,_O&cO`D] l!Мߪ}q-;аq U=]w8渮jfa(i0VL,B%df6?IMIUή20Z;-:pc-I?? ϥDEϱ@ 0תk2&ovjX>[4p6?4N`]4ԫBsY-C'ªmOfo!~;1B* L(v lgtYxǚdCjZTrфp:G3;w9IAU4_fU<&vC E G0 \V8&ܱ~N74MN1-ZZ 6XCmi>e9Hͩ[˦C?Z>ԶQ5%:/A3%Y-r%6 kk<6GcA7$ijaY bZ -?ڹn~>E':]jg}C @OZy**XPʮ_~\ 6?Qw+2 n\nע'Yyd-Ji^εɣ선8+|W?TDn$@ .#c>1d.>E-im*4in|BakX6 P Sy3)~1A6_ŢR]P?CU~Ͳr܌U]w?&O:5ي„Tg#>[r3]活ooP(p @ lw$cMH~DdK9-㧜5mHq#Q 4 SPddnU.tQRi{TWb0ejCǥ'ئ l4 @`H+ۻڅO5SK.L2&=\0{4ԥ}zu6o}RwjhKacu$FQYĉѩLSa6B<_qF\pby,C sg9atkRVVR!=xsȦŭo @(X5\.JؙW}}T>G&^?otxvJ<,:%徍kd~ ͓ɾ-.%SnڶJ4 t}sSuwܲkSay}9uU Ϯdfkk.ԇC:k4'blԑ+ZA @(,u>{o9cT9ijo,4* 0Ck4\'k/t᠛[/(h3M#6@3ۭ8MD0TlsZ*xt-s2ְ}/4A䣷*yOWXd CbQ)l$qm:͚!qR~4Q 2PRttu92iZ,栃IlqwVYN~S3A]nR=5w?sOF7Y*[2br9]r7\Q%TcO/fN}ES$GV@` 5Ա J\Rq*_²+mK1l/ma;s1W; .{ez6tz†ymK-6c}[>?1~}άkRX>Ѫw>{} ӯ| A2䶥♅},gݠa|KjkVAK@@Jcsei[,(P 8W)|hg|hfM[%:i4)2iY (ac}y2 *J-u=?:l l;ۡ9u>/]uϱ2 +Փav66:|%{ RaWXgx=cosxT1;}>_.ji)9s=~?U6շROOjBFjlH@CZvv~C uOM pw%uh͖ @@Z@  d]~5Q" Uz-L @ƌ|1ٶ[֧u;i2*oE-hR A @` O|{O(>]GcO1mCcM T<;dREaDzFDT@ #)XO `i[GUW+_zcR+ @ PV#뗛.Uo  @ki5AG4K @((/2(pPCcX>@ '0!edQTL#> @H4658-m  @ QIS @OM0{"{8 @ 0:R6 Gc3:Ow @F;UG#Dz @ 9s$4- @ @HoK8ְIp4 $ilR6I[ D:p@  }[KŢKC됗ˆHyKGwSyxGXwΨ  @^ߕΆb9#'7HՆfI'϶׿TN[}xw5v @ ]d$ҠC>B%//#@ PxnYD7ԧmb[e3J*y467vɼT>LJ A ;D#Z](&hl5\orBFDC~k&RrB $Es߇lvd^6EA @H]dž@ @ LI;a$/ @،Ӂ @($EPƦF@ @`(Jڊp2 @ 0462 @ ?.XMTz IENDB`red-data-tools-unicode_plot.rb-b4b6a31/img/boxplot.png000066400000000000000000000474671402627751500230250ustar00rootroot00000000000000PNG  IHDR,j iCCPICC ProfileHPTW{mޖ{K/ҫ(,tX`"6$"" * EbAD$(1X$1||g;{@a&''$rҸ>Nv:n@4l厌~ ]-^?&ȎLey!Ne%"܃=+FX!3-ǪHoq:ޥE3?YL&7bg::u9Xb0H45xljDf_5x[0#)!Kwḡ.3-Ą?9q)I q.wddD`"Xd DvZdV#)y+76:&nb$֤݅|\]?뮲$FdTW7cs3s@]2@^ c`lp-b@"w&A>(aPIN\Wup QLi,` D8$ )A>d YA;CP4āҡhT@P @7a4 Aoea, +:)l ~f8NKR`AkC HFF{z>s[LMMLMi^E70fvf;.}476O3?kEE 6LY[2-k,'VV'&嬙ֵll663jql_q{}CSGyh'#mN=g7..,&W}nd7_ g\nJ9;=!'^*^)^?yc+R}|}=WO  h X ,  t;X"86+RaMӡFcU6gmEbK–aa̰sU'Qb^mإHȒș(˨hCs11e1؊qqqK k m!Nddd lUߺoLcXzsrvLn^wμӻv5&snnI={vM}MK>_>7|o~;`}  u WXEQ;h}D$dǡRziAaoU!I?2Q^uT聣1vmURU9Z-]]X|"Zڲؓ'o}SD}aNDOc_ISSTsq ܒ2w*i]Z5m"mg3/~asZT^ulX >zۢ'.](|Rޥٗ{{D_ }t5>knn\w~߶ n<VmF?>hHxaÕGc<xRTi/jMO\xk審N=RM?/.ϬdV?}ZZ2"PQQi uU|MYW(뾘1Hᩛ 8qOD/R i9kmmu\$%Ӣdad@ZgXDAш];i`9 pHYs%%IR$iTXtXML:com.adobe.xmp 812 362 :iDOT(!Kh!aIDATx 000@PD aT4F9E 1&] Y,Aǚh<]EL(:^F%( 0rιUttv}yv:ޣ>~(߳Rx    dX SB@@O @@ [&  ^   `01@@ @@@c,Ɩ!    +@`14L @@,@@@Xab   @`5   X- C@@ @@0Vbli  Xx   cK@@@k@@ [&  ^   `01@@ @@@c,Ɩ! voѺE39W75iӢ9@ \p՛ER*PPF2}X&@ /@ J`q'qXr$##iSc@,"6 T ,'st+%%eQ|3)/]]O6|@%@ T ,7_1Zzvw+䅷G'S/&9·ݨWϾ,[+Ҧus1O]23Tk@,א+@+^L/O?TN?ҷoӖmr{ Rmodur3_.]c:kw͉}\;q|},Yos.λ<-7g@@E;"+_Oy>ۮ'];nxDwyҠALw#zWϾvtl#3MIi'eߏs@ @үgWж˦Ț _|eU>Ǿ%2Oʆ/|մѼi|KLc9yϿh5 Wן@XjGt#Osy0 #NJ/,ns9Mcמ}2'x.i=/+/s?V6ҢYvtO@ X׀ i+p(eLj65z[vͽ}[kKc];m }|F<ݾr;w`|@&@`F @ J`q5~i8ù?:+B w\|O%qFwWF#O|])Ȧ߳ λ;<@ Wf@?k\ꄐꢥվ_r'3{U_8dvʱ>|yop?u=scΏUs@,Մ!i#P5pTU~}\YiKݿu{U_ӫW./w ,tӲ̘2N2;.>D6@C,i (P5pT ,5?;ʻG/?#]U۟2_w﮸>xDľǿ fX̨@RjXIq/% dϾ^;ɯ/qt}RͲ˃\;糍WTG6?|.Ev/ !C 4@t+b|Fٷί}㆟+?{ޮV; ^=,9B^<,oKwW6{ҮMK9g@@E;"X8`ۺm;vUrtNλEYjW}V==?Q\)>^-eK=-m_& v2۞BK8L>6@ X3: UK}.cϒA3ߗnH 48>̺fw=Y'?DNۄ ,HwC ,_~qޏGƺWȬǞ~1vs[ɴKGI^Vޡ❻_J_}rLn.fbw`~7u|)c@ ԛ3"  7W`кE3iբe3Nʗ6}UK{K~H= #b8j޴IW o/nO_w>1e diس GǝQ@سw|5iwT6J7  @`J@@ XBZx.@@,6T9"  RKH e#  `ņ*1G@@B*@` il@@l P%  @H,!-<  @@%@@AbC#  ! \6  6XlsD@@ F@@ Ub  Ts   @`J@@ XBZx.@@,6T9"  RKH e#  `ņ*1G@@B*@` il@@l P8slyʅ{8G?|ֿ-@@X3*6 Xl^`SД1@x4%RM%/ ''W1:E>X3*6 Xl^`SД1@x4%RM%/ ''W1:E>X3*6 Xl^`SД1@x4%RM%/ ''W1:E>X3*6 Xl^`SД1@x4%RM%/ ''W1:E>X3*6 Xl^`SД1@x4%RM%/ ''W1:E>X3*6 Xl^`SД1@x4%RM%/ 6zW?.C*/JKf,W.>{tԷ̐߻\!UH%¡RTJ+Jyv{{#sRz,UL|YA;^s\sSHHb^* ~,zQ ,UK>gtl:|V"UoH6O W7ITrgܿll!@M+ծA yb/gA`}jFQg/t36 XXf=,]!*ޥc;޹8YKY2nc<._${XS-~p| l-ޠ}*FBQo3: XX/Koyn)R2CzWRNfN k:%ԋؓ[zO_8ku+ڷϼ=puF}n}"_Ͽ>C[ұIھSy?bT('o _ɳMUR%85e{-^ӗ%˲fWqսLwn,vi' &aYc0RbpqR ; ,pTV`q34gLs <%3=Z5o*3Ͳ}m̀ |E`W>{#sRz ,_Heyxg@nrm[=>pitߙi'|_ˣdžz2(> י,}*FBQo3: XXbawI!oWMO7_{ȔIiYwAdˆS}=ܛBxv}},j@`gbd_*O?#`@(G/xq↑}*ڶS>فϝsϑ 7!Yv;6gսqnuު Ȕ1j<,MS#Tj'>h~P[&Ͽ]y|w[wۺl{{σ;村_4 e@`I?-,s ߕYr!qsd忽cq>Wק{u ygd/jM8KN`gbd_*O?#`@(λ+9ﲸNymd5ŭYe˶ޱ=K{}4d\gxl}5 W12/zןM eڍ2mq t {<_VR?辛-=vvj|`W>{#sRzBXJJd>,M)YzJJwlnӪҨa׉a_AXՀ^ܿT(^FG6P(,XN>:}Wd'dw=QOuf "`EP?m ,zy/jc_2Rfxw%rr~L_%XՀ^ܿT(^FG6+˞}%[rmWTTʼ7~Wx؈ӎs {(>@,av̵`hzʂ ^ܿT(^FG6mS4_|Ea)% ܿ4@ ! رʂ9 wwT>{#sRz,UL|YA;^s\sSHHb^* ~,zQ ,UK>gtl V1Eld6ȒуnOQ3GpRi^&^\fH%+zgrڱ7*nR!p|Wݻu+=/2"_.\rdezHWKVZzF Gt?V)_j0[eUuʋ wүDžuIe{p|cd7vw kR}K;C.}&G XB]0,DK|40+='Nq!H}5̘'" P_K}< %'W1:E>X3*6 Xl^`SД1@x4%RM%/ ''W1:E>X3*6 Xl^`SД1@x4%RM%/ ''W1:E>X3*6 Xl^`SД1@x4%RM%/ ''W1:E>X3*6 Xl^`SД1@x4%RM%/ ''W1:E>X3*6 Xl^`SД1@x4%RM%/ ''W1:E>X3*6 Xl^`SД1@x4%RM%/ fd؀;kLNk<Ɓ6o[.=/^<{X9aqk$W:{Xp_,ٍsdʘe5X̫ 3BtJX0[n#s @`ݬ?!`${Zۿ >WҪydI1 "@OSSM x:g^v9j=nJ>V10۬I[9j|s@~5 @@H[Kږ C@@~5 @@H[Kږ C@@~5 @@H[Kږ C@@~5 @@H[Kږ C@@~5 @@H[Kږ C@@~5 @@H[Kږ C@@~5 @@H[]G!IDAT ?+粜"(",`$Q@ȫQX0TL<$B4 %*"F0Cp ! Ӎ3ٙ{`L ,jK?m ,o0qkd/#!:l;/ˍri'١ri\8>M6l.+myWK^~{[n/X? ӥY ZԜ=%Ŀh(aQ9$ri{:Emiѻ󟑁sSe; }-ζ'79p޷RJ}&Q~p %Ώ@yŏGXNl\OnbIU#m;wUsu F[R=츱4 jWHӆQ5<ۓG_|1iբ)ic;SS랻c6-D!^՗];Mz{:Nfϖr%Zd_^yO&j;_qSEEhy3տZ c^&@,RrB-bw퉼 H^ }je7p`q~P!E afwXO4X7ՏRzxٵ{WNb&ևw#{Qbyy숨ÅYO+`SFjӂ]) ,j+?m ,NqˆϨ_o~ $#3۝|ʭc2jאӥNR!P:"VwX7;o/ؕ*V-~zwnJ4H,esmށ؞XU93hybyA`Q[+UϿd\`qk7~/G+6tYa{PX97Z 8|3oڍDv;VS,^ ` %lv,j+?m ,GjUu߻0Ur{ýH`q~sqÇ"yQ&~KG`PX/!XOXPL@V ShmZo_ENNk9yHx a'P? bk6|-7S9 H~ڶexRI%$, `6lQq0xxj߰Tw~+zCwGn\N}1d˶ng> [~ `_B~bp ,j? ,A(&bvG WD}Lqir~EJx82#dź.ߪU*KۖMK3;w8UF 9s˴w.<[.1^ Y,fk6.^&#Z zq37,^uSeC‹]*Z*C.q9e]iIП~XsRB2ڸ`_cw@`Q[I?Angl` ഁv `_wlv,j+?m,A<9F `U.ڸ`{BhjēC ` Q '; ,j?m,A<9F `U.ڸ`{BhjēC ` Q '; ,j?m,A<9F `U.ڸ`{BhjēC `&KU/J5~;yv]#GFZC~bIKOV=펹s rnF>}vQFMoɪ9:wK.[q+M"@a%_U[t]'Hf˾Zs!n)BcJ4G ̙.twj`üN2yvoٹgU v&¿t8岤#J}F%'|4XeY}X3Cfv;P`1\ :[Xb@ $/E} %'@X['|c 3pK a#A#u"p+`olbN`1l`5w_xCcl-X ,1 mXu `8%İMX غ~X}bu7`1'ĀI`Q_0;[/KO !N,f6 , F`Q_xG`E`:0V ؂ b&E},kl],>1\ :[Xb@ $/E} %'@X['|c 3p`V_zws-*mJpg붼/K׾p9ޞ\4y l[I3gCV-]//<'`E`YdD `['&p`IZt@ X+żg#O6ʚMoi~Ԯg\LK2+,Ub޳ʈ@?g]R?MtйH̒N+qJ}~WOxg1EK%   !a  "@`ѥ@@X@@t R Ɓ  E,EH؁  Xt@@@""$@@@],Tq   @Kv   .]*8@@@ ;@@@@.`   PDR   EJsg MvNNWs:  ,2G6Ȑ&5bDV!ieK==  t0RVl5ecI`ѳ.R*'  Xb@L%q %U+}X4, CB@4 h^T%ɽ   $Ǚ^B@@ X+q XB@@ZOXoN  +h ," X4) Pe@V' @`)C  Ov&BUD@R[,Z  FX(Sj u.@@d Xmy_(Lsc=X1  ; {SCIv'k&{N*|T1 Kig:S8  BWXJ%\ %5j]?Yvq0fxp  @ Roa:A IU`    )@`da'   @`ѡ @@<,,D@@,:T1   œ   E*0@@ x@@t Pƀ  Ov"  @@@SN@@AC  x X́kf<) !*"#-"ۺ V2RF(NC5~yo2^x˕}Ek~Ò&@ W^Oou,yu\GP,l6`  `W gۋEMy\*WnXO r;fYȡG{{areO)~pm8#,)s/#$D(xIO-7{=JJթUkUD`Q%_O@.G#ÓҬݱ^v92偛M``(Un_mrUƣ+'XTW ,qq%P~Oψl;/{uٶk?K~~.9/<6@DX+]wJs~Eʔ2.K)@F(XsCN/霋X!p{2Ʒ'Pg)alp8)#@`IRr# X`߁Ҵܑ| CZҩ]+Y>[LYiɄ"ml;ٽodC-4 T,A ,_QxKɉw^' q|L|UƾP76_W6~ΐ;c @~|<5m{iժw&I@`1TO!wyJF{'O\NBL5~yo2|r|;H'Km_޳rȄF ,]@@-@`MH   (Kdi@@| X|  $J(YE@@߄4   $Jv@@@7!   @,]@@-@`MH   (Kdi@@| X|  $J(YE@@߄4   $Jv@@@7!   @,]@@-@`MH   (Kdi@@| X|  $J(YE@@߄4  h}4WIENDB`red-data-tools-unicode_plot.rb-b4b6a31/img/densityplot.png000066400000000000000000002517161402627751500237060ustar00rootroot00000000000000PNG  IHDRD iCCPICC ProfileHPTW{mޖ{K/ҫ(,tX`"6$"" * EbAD$(1X$1||g;{@a&''$rҸ>Nv:n@4l厌~ ]-^?&ȎLey!Ne%"܃=+FX!3-ǪHoq:ޥE3?YL&7bg::u9Xb0H45xljDf_5x[0#)!Kwḡ.3-Ą?9q)I q.wddD`"Xd DvZdV#)y+76:&nb$֤݅|\]?뮲$FdTW7cs3s@]2@^ c`lp-b@"w&A>(aPIN\Wup QLi,` D8$ )A>d YA;CP4āҡhT@P @7a4 Aoea, +:)l ~f8NKR`AkC HFF{z>s[LMMLMi^E70fvf;.}476O3?kEE 6LY[2-k,'VV'&嬙ֵll663jql_q{}CSGyh'#mN=g7..,&W}nd7_ g\nJ9;=!'^*^)^?yc+R}|}=WO  h X ,  t;X"86+RaMӡFcU6gmEbK–aa̰sU'Qb^mإHȒș(˨hCs11e1؊qqqK k m!Nddd lUߺoLcXzsrvLn^wμӻv5&snnI={vM}MK>_>7|o~;`}  u WXEQ;h}D$dǡRziAaoU!I?2Q^uT聣1vmURU9Z-]]X|"Zڲؓ'o}SD}aNDOc_ISSTsq ܒ2w*i]Z5m"mg3/~asZT^ulX >zۢ'.](|Rޥٗ{{D_ }t5>knn\w~߶ n<VmF?>hHxaÕGc<xRTi/jMO\xk審N=RM?/.ϬdV?}ZZ2"PQQi uU|MYW(뾘1Hᩛ 8qOD/R i9kmmu\$%Ӣdad@ZgXDAш];i`9 pHYs%%IR$iTXtXML:com.adobe.xmp 836 672 .!iDOTP(PPdR!L@IDATxw;z瀣7DWX-vcbL4/1QcIQƆQE@zvpp+9f}g,/nwg3735Jm.#,      j JB     "t%(i] BHZh8"%(i] BHZh8"%(i] BHZh8"%(i] BHZh8"%(i] BHZh8"%(i] BHZh8"%(i]@r6g)=#oZieU/.WGY}:E#W%  &(΁i  `Jg@{t=MuSԳSү+ըQõ^}yTxrJDh$%DIv4@ Y= Rtnׂnl45ͩ'ԶQ4OD E$%(If$Z]'=~5Y+TB{ Qh]A@Z V89%PqIa{Ɯz,;vg-rU+~8rWy   ZB: U>]5nmU@NM-^q `񻯦u2#NYY-Zm%>zͤMi`J,-\ .=-涤]h&ZaeefPn˦tfmՄ )5@5@@T̀qzI*O?7_*~oF4_\qFʮW]>dOpJJK:v[.GD| ,[ͪhg/|ou^a7ն~e+s,`2kj:kؖ?zen{Ep:{ovtӜ|Y԰^(6{ =^5T<г(|=u;@@ V7h֝}֣'FGOʓ-=N.WW¿'znwvt??^~+.ߨ* f4o B';O^"رv?xvztU ~31oc.׋dN!6@@jŋ]Dؚ@_DtJ {JAM9.?,y5~!2*`'5 g;-屧Z)7wK_Yƃki,-?K<[\# @ kh% /ϳ֊ۺ,hc8PsK +Y?gSek{E!v5+^5۵}!gV@fSo:v^2eզ^ WkxX@@GQXCĝ@U?>M%%'R3E36@ j;|% 6?!ٕ=;E"_-{G \uηQk%z  `@UOID%:enrD}<諹K ?tkf8_?|- z7όяT'3+}z'AyF4 RB[/Kg7?I \D|"/_Soܶ M?1:"tJ=o7S.<Ǟ՛~Us*hDZ  P=UW@A zV<`h?ڴc7}ռ׸c_\I ꖧV'"JiٽC+)u YW"`3*~_>9gۉd8-[6~ؠ @&EQUTs goWFLsovGk6ekzØ 3UPHxhbDdnqv x|SU=ؚqޡ5eyҍmwmVU?Dm=eÞ6a?Dg  7^"G|'\=h1\QkqӲI6= xַS-W7dLOZ}-Q=#IC*%l@ ?sh% JgpԬ`^}^W[f,]ŮOg|ޣM|JKYtRrh߁CȋShcRRY@'Zo~mh'j8@@P vo/vJԫS4}Zj <_}/>Z8/ۥ=(ms΄ t9L?w8|㍏g՛wO2Ĭ?9M&Bm3^ǎWyV(<Rm7|qY~e5W?8tS̟Q;  @@;R@":z8fy2UZx ¿W3fIYy2 c"6+jƒ'HOxP=|Hsux]_i}"6@@jC@9,rRdIerӈ@@DC3@aOI jPzSG>@@@T}lqf$'ltn86ve  q$( @@ T וntH"\DZD ,H-HݸA=ޱ5j`(A|f-$H@@@@@OQ}h@@ b     '(>D @@@@@4 1@@~     i@ M4A @@@@@ ߇h&D      ~C@@@@@@"Mp?D!Z     I&8-$HmzCGm    !$S.:1o2"J@@@@ ! :VD'YjKDitA/^zvjz,B._ZVFRBȃ?p!/6T:~{! :"T[2 ׵~PcA@@@u/haD@&oVD"P `$@@TI(JM0@@@EQEw $%B&    ";UdDp@@@T*2 E P F@ DQ(#A@@@ PUtLBQ(n    (*QE&(A@ 7HD݁"P `$@@TI(JM0@@@EQEw $%B&    ";UdDp@@@T*2 EI?PFZMy4z`P #A@&0kS4oUW)\K߯xVm=n,jCe ն7mWᕿ*+9z]wj=j0!] W$5Wֆx+rDALvūCe(f+*.9*֩)n4ߦٙU/RǗk(--2g)[p(/)=NyϡzN].74|Sk1?f:ըQSK/ /8^?SMϪM- OSfgi]_|7,9;RF9״~OYY)尧Ͳ{Zn/Nh_ o7omy ^QP=S]:ՓY5}HrzEXZX~wz5qG}n7҈~yiˮ9.c̀Ķ?tC7AdTuxEmd]ۍE;3 &컓E |ׯ ذߍjCRkM퇼]muDWbVW_dʠ_\Du2k))-[|^_*++P Gf״`C$ cc$ ciu)81o*o >r~د^lۯ?/: i[.Gc[uD-^O?:gx-el]@~+>Q޻S;u䬾 ?պl?-ZQІx;rr@T >Ԭl=&]>LV1pNㆉ1@S0o* b:dS׏׾E7K.W^rfT@JP' 2ߔs,ZRI1ml܏MC$Uzױ7Z~l?V?IU倿O~؋ZjJ UQ0/nj:81gqg.s)CԿ[GgxuhuP m9ĬӾ[S.ױY52\i.K.._r[ ܖCM] 7w5CM~\?nr2=z~%&?!ҹM7eڱwwվq?bbVP=!אmceZgޚ ]ۓOJߢ?br狗٫bq1:z(?{4;&4O[iƊ|4{@m7"vlM}vxgFQ^3&Ǯ5+#`T2b-ߏǏydL>yhҾMMվk(z ! :xOj ~Dbelѳs;oaՙ?瘺1ӌEѭKa_աk3 i#3ߋ W}(6ǶʼceZys/iO:KdN;V^4 zE2|еF.һL%]2Lz󯿒}mCo1Bh؁uZG};6X&7vZs'A?8}"IZWHa /tȘe S)ZԿg^&׏};K팆l}NpR+JCgVc~7h z?q_;Bv_Q#/OGS-]0tg؍˟\3n"ȉ֫C[>~ni_}җoBQǘ:jXÞcNjHOڱ( ڸѺlPuŨvv\it_ic OAS_}B~ܼc#lۯiOEt`˔䩻ȋq_;Av_zQ:,y_<_ nA+7Oz,s?QM_[FxCQ޹mKZ?"cC{n)?sy:~ݞϔ)xW"/ׯu@-lۯ?%OݵW! % rK?JA]'u@vth?ymZWNfz:헟Gg"&iU+s>ڷo>VuV^#PF$&SUVtd7ElRRn/0^? z#_㩺g,|+N&4ɢN(-5Ɔv]"0o*_]S: bzJ>rz-v׋e\lήVeWֶ?cT\GG3u^y:r\0?K/?JA]'m@m^{i79NWț]Fn{-ҊwEIz/Eٰ~ ^z{l4N1چ¢m4oDQԣe]siؗtwn6生fe!uy^4.&IMOZeSO^s(^{'KzNHyl:qM{M_ƧS֣دFN0aҹuDm^-ǶceZўhʙU;>{O4g~gc:fs_3h*.3^;]Ga:K$mnPze^~9S~_گ{.--fsW{F]|۠~];v;{hβ5'ulXm: ]Δ)׏Zyl_iԶx 5M5d#2?kX'U@'M ϩ5 ]͚5hgS}ɨkD o^ן]EEj_աk35\#?rHW ~z^翄xQbKKb/dRx6:b#Y vi{uk~!&`T^6q:ׯ|cik W[ elq>O57ߔµtP>ٰ_LivOtפa7YL`^Ul^U '`_5~LP˓& s ]G/?OMIas ~8|`YqugN7\Eorv~,ē4T-_$¢aG]ڞOY,xhf;g_aHq Z?N'?ؙߊ}?ƢO:mk[:ocbzrIO$Ie |?ן.3/oƏ Y4э4Nώ0\XWlt-;]n?OWꛃ+աT HLx:nܜНΔ)xc@^/ׯ<f?1n3(b؄\c_׿:?ƎWW*/i[u8 ?K?JA]'M@\:=OX>F/Elܷ؟>ury᏷ ղա\mI{ ˿*::%Gi)vce3`9eեZKv{Ћ ݷDMMS7*ԯNjnylRk'67-\Oڰߍi?D!$^߶~ [G? rHɜ'd2//\wM*u ~кG~qӵ/~Smbۀ[;%Oܺlq9a:1o*/a]Ob_ʛm7v ?KƏRP*Lt@$ z,oܰ/'@U:^O¸h LF ĪbmAszQUœER{o)n.h 85 /ErY0_]RN 2\ WA L&hM"!+ϓѨm9"^쵝eO.kQtPo6˖sĬ~5!Y,&egtIPjӻ\&f#u~P"S-VbS׏[߻gH^*-nWbgEĬI$^&%H+09@=nJ")_dvoUOfc[e2A-G@TTaW:KkU?=?ӺgQli7EyMs'LQZjSjWBLW[Mn_&I677}dۢ :C' {3aa[ekX# g+^Veuv jAM 1I^_ʛm7v ?KƏRP*z?S馿<-jt4ἡUH0WjbxgRhդ?M./>DN4CˑnM%SyfFnlOuEZW?8P~؉;D $;"D\_Gw L6$0} wE&uq*>Q5 Weu; ņߊP ? ;CE00u}96 ;x(L}߳٫Nώ29u7(9iO#d)6;Kw~EL'~Gj4-~eO]v3 {.>y14&ss |):t]ՓYkx&6u),FOyؿ!,ITbT^V~/kkq,)ڲk멸?4B|e6BCa(LGwdܹ:. Hg'9۫K ϴZSyF["ݴӦLeu_ځc-ƏA@%Ёw L@_bԴaw*.=F{Ў=YzQ_Di{Yѽ약ʬ)"׫ԯ˵'~G[@tӶ= 6CM]ڞORO+PN+-~N&>ah^؏/0]%m^`N ;CE00 ,XN6L-ʬJ%OR) T:tO"*Wu>7w3/wLm9a_PVnX4G~7(K Lן]R~*?A@%Ёw L>EV, \{'ѪmoecR08nuv7ae}oxMr=]v\Y3M, #?/ۏaX`N ;CE00xݲgwMz5LsYjiuuC;.vs}79~p uS:1+6ۜb7X `cP'?F@%Ёw L6$K</_7=OW*Y]2jgdk]*ye}&Ш-ߘe\۵o?%c@dTބGf?N'¸5"w./E``]9.ԅj"U!ۦYt6^L l4XF'd?kNJ[O]# rq+ 'n 3"w./E``ذc}iѲJ 괎h呣轙wPYi tXQΞkg{ow$!}5?w<'b = Zvوdj3W?CTJB}R{V:'DY1ykr<ђuo:Єs&GY;LG fyR39xQhӓknE뺙ͩ~V+ڲkND?gMD;tw8P3Q! rRt& ۧ_CN1gڬ¢mlG*Hj][wͥ;g /=\m)?,\CRj|:ul=:̋|^s(^{+w]^oMrQcGyЍ;-xѝ2"w./E``P2L;m%LW$mqӳ+w5gzeeR]~~7_e'~-xѝ2"w./E``ʀt@+׀fW0416̺rIf$b1~t*"w./E``]`s|"^D+-oLR]p#&;,]8!mR^tK݈xY&Ƈųɥ$ɺ|")%%C*ay6oŽ׍nL.}-2fzgч>sLߴp]^@_O[ `N;CE00׮j֨)ƅE[iÎe]ڞOYtX`2Laن"B+ ]wQ:%Tmܤ~Y#gMֱ_#? 80~t'ȝKKѡ"V hMR_ov,=#"<+`6:FHڄ ?;;CE00 s@P_+::%Gi)vce3`9eեZ[)^ ӑnuoCǓlTs- :QZjmdPmmI{ z:shkb>Sqj ;TD\_x$`k@bQtK^nOp{qxM`sM/ˤL奱/]۱ZJGw rRt&>-R35޿5Ee߮9;;,bSv\ Z]^~~n~PA%(0~t"w./E``|kkEKx9>񩺬_zkDѹg>BYײe61kī_9-$vp_:=MN&u[Y[$̋|77n?i]JwTN9{^J^QNcg.׳YF| ؼķO?F@%Ёw LSxO̪OƏ|=*=~b>N׾)nJW;/x{[so~M#J}a2T6۞ɾQKK͔3Շa b ;$D\_x `s@궕L!l2>wP4gb㇮S VbaNX<~T%hJGwbܹ:. @`׾Ŀ JIImDZ JkVhY 6~gR͇P̦M!Aaѱ"zguiwA /Xv.^Tl ׼AٷO|l&Rȋ/{Y%#¿ҕ(ds{ o3/]۱ZJG @IDATw r3nΗ&7f6 %D"gE!ҪI0]:^|٩yوԡHRSC7fM%SyĤ/!ld\_:E^^bYnܠ W>qƘ/'ڔrKvQV/G/H6怟gdP}TP5 Peu7/iPD~~#mO5%I.cus# Wb)ml[ (]SNg@k*ύSu@o|2}҇:><8◞E_(طal \i{2/'cyQH=k{ymƊԔZtAZuoLMD2=ByW!֯oy0$/~бbզOh5K͗,]7KK,FeԳx6oзfQοWk}esꖕy"<ۓn,lO~.gO:o4KQVcD|Km<̩ߑZ4: ~/8^~Ä]dqT:~GΎfDvk WOg-_sއ,W-Ei> 3;o[l{@Oi/SyinEm|iXwm7%EA[v͉(;~ք}7kL-ǻR\o_l/{@P;~Lt! u;ݎՆT^?6fǞEt֝GH$zZ~dni.?)kK{Bam?v?E7zyR}jڰ;=WSF}`1{D,F;QF=|t/{e52k7rʼs@:^N\r[ )}Y 29R6==; Ӳ S5@r",i]$;t<ݫm~ƹu=:śʻY>ѱOn犥,: gUbvMTmLc ^A%D!czҧćk/S"ZmK<+_7=OW*Y]2jgdk]*e}&Ш-oa~~ h?eVz}Ȧ9{8%dP1|  PX;|m2wᐧ=.U>_G~3d[0n_Vf,am bWL&7|m,ı"l&/>mns!Ō*!+)hS !a nӢici#G{3J)m[?.ـ=ǗknH{hϝ'$'j͇PώZ*r[,/M^7_FMZKYjg4d!K;Nl?Jo|sdߏG~w{?n8M.='L8O))WyO _ӹM7/_7YuڷBpѾP,Vo,oҰ,XfZ h-yx}KLqgAD6 B+@uc򵓚lNh+m1SK)=5+8}ن"B+:d Ȃ_gA,ajq Z?:_'7lV?0=B~oPxmQ?" p:T:~AN(T:il`L<Q]n/53lb[mq.A[vaOIB%cĭnPIjye&.*'ȽkeW""֑ihfg#X-&fmNToy?I"uH-b:vh^L@GVamUa;uW"zQg|qZMQ^vS4}dۢLG ~_`k^SM [LطKԞH2[eHۓy ~^?{BX;m!uc69(BN'K<VձT?{FYZCWort|% BBfT'#ݹޝ~6mKclU^=1ټ(Cڷ7A))Ե86AaM Ljؾ4)M-~=_ r{RDL9i7'D3=Ngr>^gOETӹ?c[R ˶x]wmw![m_W?hOx?ovP1QU{UE(u;"ZG%ZuQ-hADiڰ;4DOE/kKqu ~vDzXCNh[H ~Pmf zSy Kv<>Krk jqinɾA1ѽ(ж/HCnlsPjt@k*/a+ 4?R>׺_sKDCe@@TDz^w +c8Qw`(V9ÌW:S4qtǶ~Sm˃m|hk6H2w,k6_P{ ; e*0:D^?¿ҕ(dΓG%l,C#T]K~x<ۿ~Vbmb n]~/{@P;~Lt! T/O _pPזv#K+.WU4at=:ce#&R##RK7fMunOjNm~aۖ7a7`uL*DǶZ#Oܐ ?9oE*{ݴ~Xր~9!Sm|San;l.XǏmAXzVYcи!W+|2}w:;"E_(M`[&O৞yx;?щ-?R+=A@@Rڡe_mB^%G:5=~m&4;S|ST~}ϐ~bޢB6}BYjm,f5XZZf+Ƴy7rK^s(#S v3 {71> tkuj5Fg-/S˯'KY޶YZp3~ uԙBxS%;<&:~ Ec|40y*p$xV>$I] |"oț^Œ8;+KƱ;hˮ9& /m*LOW eۖ,H:M-%tǏmql# Sjv蠤} $1h^w ΃ϫ|t@⧫?}SmnpjU(5t;4nȁtg܌㆚zyҲ}jڰ;=WSF}hǞ,}(/XJw4=-rZ-}Y@<2ԥ)Y+ʛD-cLĔ_\2O&Vhk?VE83`zgrZa7 Y+'B7O ' :t<]0!ϗj@b#?~yh妏 Eۖɷg?A@wX ڡg-}|Y|T|PzjVmoecO[8pO H{io ﱏRё]rfT6*ZRI1mсC;?~ {7߶kJBSI M#XǏq4) ލC0N*_i?@-{QzzĬiINM]4V^/-Qn!a~nr2ՅgzږYL@sB c@̍_EvhܐDkHT^;!{məe\?JoP7C^r[ڍi*~^gjmyϒum?Y?kEΆ(x>"1MJ\$ÞcNji'hv#Kd2f.z6FW%WzMlgͥ:MVxGHɵWKسH9:H҆-m G@wx$"[(Ght;4nȡqq W Vד,s~i׀FɵWy"o[^d]OVnhtǏZ! ObHCf/ UEGvӫ\!*oyWr$:'DY159~hɺEyMh9v',-5өeC/$Z쾃eQĺnfsՊQ.wGD^_}{S,/~^gjmyُum?Y?kEΆ(x>ɢX;Ӊ usDUPXS4QpYIl뮹ylat +Z ڜS~FYyФd)[G7NP u?~k}ek7'2~m4=!DM'4"pb?j6Q5ڡտq,i,iOXe;$>]踳N"kR+#JKd$Z_U&6~mǓUub`S :~ K7^k 90.bo{zHy|/ :C޷;3HT?XǏoI4 ?b&-_E,nSeȽ$8vMo=YyQp}z,/9B}k7"^ɾjtZS6O1OHu[Ѯ}+\ѾP3Voxğ47i؍v,#ĸD@\hzږ33 1!< RX;|mfbUX6)ҥEG 6 /0Y$Uhո{C [<=ay1OEϺ<)оazl>0G_ MSdad:I IB@R?vh }2 d Q} j*ꗕ7Cw˞Ekt`s%Gϋ~CTqSmA: ϓhBQrHO c87I߯,e.kۿڍf[>ZK|nuoUyG(^M6MϤ=k ~ {7߶|tJ}S &8gE@_xDC sUT7)@t@z[;T~?]0,o[@4?1(FPAk0/B)5өQ<11XsjP^T*(:~GQ=7DŔ]7je4ZaXXկ"/~ j.?B/ir7OKv~: d&3%V D!g`LYďv/Ef,C-;簉Y'^jC!|IX79q+?xF ԺwM'GFޥ}|@գGZzE-vkkee%v:FUi'qx3~m˫}%M'#3 :~~KQ5vh:Pl*o-*{uW"zQQO[b>N׾)nJW;YlgoR3:a~.-X@~:5dL' %8b?X(>}k w:!o]*{yi ϨFYZCWQMo:9SC[> BDB5d͖NFs>L;9?:c Sm[Pb?&Tch  Jz׾Ŀ JIImDZMM֜M Lؾ4xb'`gxslN"zgu]oOf.z6|+F.s<`פ#?f!+vmw!_u?}|IXˏ t,m/ׯmyl7o~OL Ql}DC/b|]mל5S{ 7?~[. LQܰn[ZRmˉGA\fFu9'a- k=g-p=Cӆ)A'ZJ^wZ&LLySO6^ho?V59+“%i?=aNfI(XyG(ZWhu_tGsojmy[܂הP;M@wVWm=n 9QPG(k@q*vU:nM_qPE,2ǐ5ӳ<# ]O'^_suПo2&.%uj58Xxe{MӁDZn>/Zva.^T}~Ikޠ?g&XKZ+G?8>Pɼ<#6_Yg6zQZN+*_Rz/~97߶-nAk?(&;~ wQՌYL nW0f2{'1@΁ҪI0]:^|qe#&R#IMݘD׏*~~4IFO;PD\_Gw00QoGD*{ݴ9tX[=?~*kn>Ex!a/c*xѝ6"w./EzC>ڏjWu@Ϲ6ذۀl0fSy[J/Əs |):t]$ !ymƊ⒣bR?HNm)*?^ƾ'I?1o8hym_ZR{e1Km(--fQټGE9'9^ϩzv6;Kײ~'^勮n}#oŸ? umy7@4?&OcSs |):t]jՓYkWX@CGg#xw~;+˝үo%7]yI;tT^Gw rRtdOO$:_x@] lg&E<A_Z]__m_W+?i `n^cD\_x(7TP/ Z^ iT\z_M{%<`)5߉Ҳ\W˩_kX/p:|@1^^m/&'x ^?nL֪?E@%Ёw; Ӳ Sı]oZ9xZoK<-_7AOW:Y]2jgdk]*#et]VMWӘ^vMs^&ןLߨL??|=Aܹ:..^-xe!O{H]v[E_|(a&7Ch0%mA_]~ un~?]~~Ogbb%`Mc30~t'ȝKKѡ"W7A-yZ;ԠNzGfAe%Իӕԥþ{!=/M: {>C=ܖ#(v#W=~1l$bwx\* oz{2+c;CEt=i V_^.,;^DoO;F{@Y"Q4sq7'լFWzMlgͥ:M|{ Y;İ-yŨx׏'c2Əps |):t]j !*DD~?u@~/]] o^ ȼ_.BK7~c1u0~tȝKKѡ"WWn}3Te#^aW?CTJB}R~폟Հ ^? K0G59}hɺEyMh9v'+-5өZҦYB/!1l$bwx\* oz{2+c;CE ۧ_CNN0hh( RDu\ڼs5_{=)/+Z ڜS~FYk}e} Uaua $ *(q!rkTh5Ҹ+n+(Ⱦ2,3 0l:x>{߹۷Os~ϼ50co L0֟1̿0LPǡҫtG58 |+;&8~۪eLQ>{2ONl߶Ta?S²_P{sF?U+Qo8qBM}֟" jSԀě'5L>@Tz:Ó׏z8 |+;&bV> ͚-Ba~'Wf]%.ѣ0Qae.tHMs ?q6mDV$u:V~-[:Y^_$®j0%F G(/ (32:1 a(N]Qo8 p4o\.8mUs31W GbAWn)*u-o􋆢gY(fXMOVi5A ѾuoK܉li8 |+;& HM4B?~xFﱗ󬬃c1# J3:] ?Og@}6u>^~ԣ[١7V@v5 >_5M"viǧPܪ`[hX#(h e;ţ4'_.a6, i\Q dAm/ sF A:t`g^?HΛH+ Y;hYD[)~aWu r2 ?O>360OV*73HΛH x^WZ4ϗaa]֊g͠[phԮ}Kګv/{ꡤM9w ѧ]K_Sae)3o[*a|N͌"@c|Q:Dz\oevDRxm9yYzl/xd۳֝Ea֦«,zw+,|ֈ_m­7\۹`YR0^q(?GmOxQ_QܟHF8>YWyDz\oevDR@uc7f]"[u6z4u`Ā#m*oq:x>獽_&5Xﲽu.pԙe ׽$oyEA.o[ J j bk?GBVHΛH /tgfU7M{AYPOtTMcП1Ыm@P}8E3(^?HΛH Xw -aPiesD }Cy߷h]%#{b_3]zS&M>ߟ IB4w#zl"WN~LC5qL:\Ms'8ʚ)϶64wdN]=x Dz\oevDZג.캋ޅ%8{c,:q=0~ ϣ~g{o=M6u: FEmp*> JA훼)> |1)}%ҸA}m4L]@6y"=.ηC;o"qI۩U.F֟ns8wE@1t߿̗ޔb.aeI3_=PlgFJƱ}qqyiV4Y8 2ǔ>.d S{>Qo8z#/#෷^, WK(  ;&{<,yX27e\߰v=t~eO3e}m-0_zC-aW`G?L_a񷭿).S3#`Sd{>Qo8ԛ=.|; ':/3 =ԍ+MkOHm5U~ ZCzpqi*W1 >]|ϲSiu"\&s9Ba~;xK{|e{IiN+Db6پee~@QDz\o<7Q, ͟jDz4m:FJUT#=Dahg Շ+#^?1HΛ(^O5"U~ JՀD!T5՟bag`mڡ0d~bdу,&EϿ٫#undB@׏z9 |+;&^b[2Sע?͖{7(]26sɛ($SgA_icHc44ԋ*X0tQw wRh8{^mH7Ow>AcGݍP>Ԁ,0#^76 Twζ̟HD׏xxwyHD1D%f{]OZ:uv^6}rsStb[E'#Ǔ18b) fx&}ܬ63ϒM aPa?UaD?u͗|k;s O}mZe"ؘGd,^?j@MqqyR@ F9pXyǮХo8nGBe" ^]:-~/S]qvHB];ؾ{Ga&*z_Omz-3Di0C׏z8 |+;&;kWoI KĴ_, 4v97@B?}f{XIr1S$=N?6@m8Q#Dz\oevDpފ`ᚿM_>'}Bm|OSol-?EuAn:mxVm~[$XuGjC-D!ܵm{Ǭ46dYY1.8b!8 l@B?˕O*^q(zkr} Djhx=Tq_l(q MkC2g(%XF ^?&-Dz\oevD6Si?{e3[d~~WЪ^r(uh?1$QPOh01"١#f5l~<1Cꁯ| 7g6UWkTzOf,s)^ʓLQU{ _9Sf-X},z5U.aͿ"~"=.ηC;oX j|q۔q{&y^x{pF JfJ@͟(>PB_\(nQgw&W~''d}\ƅ׽UA!{P{MO&濇spg"G=qqyR@igm*z,Y{0\z_:xmwiH1.}\m.WN~I^)E]|sD(u ?9 b8uvHΛ(^O5*U j@de.Y\矌s@~a;ςl`<2s@VvhMKlyWz@vŹbuGv_"5!¨ר׶SHټzm?> A`|_ |MSY0,loݪ3\}Ly],L+:4.tQa=XMQ7hW\[kkg> ׂ\?P3 "G=qqyB;>_:sʚ)b붋:Eɦ8)@R\o"JCBfTJ㋅T_aPY~Ɛ[D(iq1h490W+4!uf@TӶm (϶̟8~#[١7Q,TMOՁ*?ޓ4%Q S놆z=m꧵ݧOP6a_qĀAEN_tfY6HΛ(^O5"U~*'TS"{C!sX/zqF׏zr@VvhM ~Z)TnRʬd?z_zcm)◅g ޮ=G`ODz펀mEbPYamMkYg닄X_3W ׭6l 5{Wk}U~}ޥd(/M;w ;kW_P)/b9HΛ(z4o\.mtJ*z_yp~y_ ԍ"3eRN~$l' /o[ve7;MoJLQ_(ؤŤ(G(kgyS?I&!IDAT?3x"G]9 |+;&O5*U v:L!޺ /._|B;4 DA]V1ɯ 8uU_"G8 |+;&SJ?}.aR50@׮?q6[ulkUP"^ ~-@^^lǾxTCD^GHB-&%Z 1 LDHΛ(^O5*U~S : D~ҷCa랝>6=Df0Qs@VvhM 侺Тy>tl?PܵoЭt+⿚ڦ MU=DPҦ ړp͟$ ʏ4 J}ڵdGr@tQzet1:&23 # ^?HΛ(~կkR faۿՏMS?#:6.T)[wY ~A_,yֈ_F+܊| `վ^1|qzō0oPGc"BYhh2,Z_k'?OL{j2l<t%8b!Wn.ܤT(*-z7} :xɾ"獽MCe.[L)XxK:HjWeruLPsF,#p2~<lHΛ(^O5"U~ JkeM#P*So`o aS:ׅP3k-I8TEogě:0bǑV}8G^yV QoZ8b!`5{ZȇAYsW㷺55E%v$<`m)(^w\yfDM:x} Zc$!R=Oc+'S&RQGɧ}8ҾPi9qPC(kbg28b)RZջ%uwkɰ=1Nh8?mD1oo}v/z6a{`HnŇ\QA)} :4.tSjhv.@irS+ɝMO&2پq?x3 G=qqyR@igm*)iqb]@:B꽩GU_;QoW8b)mTR7hڋ9;`G/5 ٘Dw_"&Zf:K+Qoi8z#/#෷^,`޳o|]*2nP\1A)ܣ2g^]%tEp+#$ }OL@?sۋ嗉z_g\7v9'*zF/Ox+Dz\o}Ypr>ߝp2vTJDWyu!uOGmf ȯҚzMQfUߟ65x:gs~=&%h'8m'/bg?U~T?c:.DZ&\ITj#uOGh%TЫiӥrCO6=?*}Ow)I!WMTj#uO?xv_~V~߲>Y_XTݵ¥hS~OdAezUvpVMC 6@:ؙ>S~WUˤ+]#T{Vʽ{M֟8*.aWrOHFA/ n"7խI ?-T?T)u.\7o { (;a|QoR2n5]aU_ yEo˜<?nt*~OOwx*s@Q˚:u3yM@]w?kmDZ3p؝ ϩ M!u{Q}עgؔ_gAKx(np>wn_X/,iASN~)TS}XY >] mTmS҇1,I!CSӆRSŏc@*z nv/Mud'(Mr@?1`%I0Yz OS~WUˤ+]VQ3IIO?9QTztCu=˕O ky^q(z5t; }(~68G}Sa `Sdw>S~WUˤ+]NH*} 5qPң{p@Atx<))=A^{槷6UA r%mt1)xOZ*~TLa1S]"W-Bt{_kjBM{*/=?T)n^87ktw3rylu1.FxŁ3gvO0n'dBŏJ)]?fr@eReЛO{hߺg#GsƆ0bU2cځJ׹@*z,ʷqUA!+'<7O:MuoS~Q/q.(Mgw3&W~''}G6QtWUˤԡi)1G C?.m5!2M G=m6U~ gfF{DSx~WUˤ+]^i&jbRm+mQZ~Ys*}`|sDS-6lʓ@}O `]ɏ}agJ1ŀV4mʏQuϗ~VZ[:8~lHH*t:[uHXb9F.~PmTmSgJt׏jrk7EMk6\5W^"+#p!!u^v />_|Bk ^,mAɯ{mO?8 ' (OVڮkP#?*}XP8jr:4uBRSŏc@*zuA!:D٪Cԫxؽt50@׮?q6[ulkUP"^ ~-@^^lǾxTCD^:@A2EQtWUˤԡJB-~s?T"LgFZ[ZO4=;!` =6-/NT{4#`jV5R҇1,I!WEm#cޮ}k͠[ph6eq*m_nڽT!6R }aA8#@?Cmk:{Arѧ]keG]0(w78 23 8~Q ~~tْl!2t_JYpzl/xdR*:_Q=+`ǮE2W 3ك_-Z/$?u|;2gS~bo9_fm*ɢ?=k/a~o h7¬is?Tlo>S~WUˤ+]V%6 Pن*?:D\ ߪ' 0ߙ㼱Cɢx#le[V]3uc2s~؏ mTmSgJt׏jr IO?9QzR{꯰j=a:}w;aY"7og:0bǤ¤ )?`2*;g JWCQ2HhQ3ELwu\\L u蚽khzOA/طh]%9>8DS?.\S~WUˤԡ.9u ]K%p:ph<8Yu{`;S㛜C C?}N?5 |d`)pp[8ݻa+75-ə٦TN?fMнt4[曬C0a=^V sEM?H^P6ۦGKcX]"W-B.S}ҧPU \Fm<uQ{`3<1,fo2M1o mo>,M׏awu\L L:!)1G C?=Dv(A'zbU ۦGKcX]"W-By}.zU {˛qCoŽ t%WszuJ0QA1[Azw3Eu;`񺗼DW*~'ollꦴ;/)ާʦTD "&Ag* V=-Z`*ZY.wd9A_*tSMOŏJǰ:DZ&\O9 n W_81En>v5KnZ#Z۴Z_mW?8s~=&%$͒}l I XGşJSg=Lџ7,ZQ?>SQ,Dz\o<3_HIϽش4m:T>(/xCf9{xF/<+<:1_ *&(:FP6 .TO`mm ȈDşJ)xG"=.ηCg"Wғ{QiwT7׫h,-Ej{&QңAD*{Y!aږ6p8T׏zd9 |+;tz&#d{Vw"OpAظmuSQ[)=^=laHM2W44ԋ*`0tQ wR~=/~_л#bu19Jc?T*~-&SQ_6%,HGSO/TklrrGgr@Vvh3-Y7ޛw$fRuq$ 6 c(>⃀-˖& &BT֚!q>vn_X ?OSϦSEo[~1P҇Hr@Vvh3Lz"`a-hmo. 2D6S{ԳTaۖ6p8TaG=qqD|!ITTiEk_رk1t0}[ǑP{HoBW׮@K닺&ΦTuѵS߁fPF /'jʚeڶ.1 {+-UG+~ρj%LOџ_WGI CԴ-m:Lr?>,yG"=.ηChg*X-IM*Tzb?=)gaږ6p8T׏zd9 |+;tz&RQLTش/W>vz 0aX~߆v,?XTWXG0ɏN֝j2l#c?6ox…mm'@ R*TLG=qq:=܋McfL39?W:3?E} J/{^ȸVw5^B.D#^ O1~)؜r?lo?ȓSg @^?H{mkxc_en"=C*:ѿvYzw=S'_z8T%G csX}qne+O\i4ږ64 u*TLG=qqDSڷ0Б{wBc 1**Dlx;|&W~''|}:<q6xտzc* ^<^qd;. {vO76=~=΅b!'?Q_'ճmmWk*T0I8mf"W^ITTi5 }2W8v^}?<&ܥ7U"(rKM9.Ϧ>S Uou<:zV~ A)"UOi% m ` *}XQ$Dz\oe63+_Hf3l_ Ltͦ:AT=:Ӏ? zOg~j@d"׻Ÿ"ΌwXT0I8mf5[{W,Twd%Qr+x#@6.K^ Q0%֭:̔ŢNV˼"6^{Ct-Zރ^S¹MQ7hW\[k'7gql#c-_Wa[~ȹ[*T`=CR@IDAT Uŵ6'hfjA! ʍq Fc'D/!79EpdflfjZu6T}N:6Zkk}ΩZtݎFpu <;{.|?˯ clHv߲e\<'l[S[ KeCE0]K`E#2?ͻ>U_x Zu޲WBAV_>*9y yJ:_{^n O_:ďO'17-?L;O'o~ fRЉyE:<<}kpv΅W˦= uwb7Q3oM}6p2 >\6 ^;ˡ:~,?rQ߆z8Y_ V<K=+O{ M]bo@?kXyTDϴiTdڏ̺Q0//uBJL{w-!tUnxP!5~W7-?*T|u`f](ȗNEbNYğ_{3/`HnL;K= ;zNSʏ!U`Y~Ba]v 9m!;/{q;p1~pͻyrq?}'2`3߁p X&h?&3QdZK$*>Y,c0CKK]@'"1leaUS Y彯6pd ?c 6ؾ_(h/1AH2`%GÌ+_gCjYW Iɾ_Q:NcROI~*<|xT⿯v/5[Ob9y?7-@]Z@wlۛZõuy| h=}(崃Vŭ4[٩y wHDw^;*[ ,|< oyyNvkˮj{<x4^]M!)~9qLoZ~wJ埊p~ fuy| h=E兤CQ0IbR۔B>ClaRV){vp=n~*X]Qx^~ܰ7-?,m?o̤RЉCpv'dqQwlHJ#W}0ָC>44CARh11AH26h F6oPH5Hl?['*ϟj܉MoZ!ST(?\18](ȗNE8_ —yʇaw]f-=Rq kbVx;y\KA| ^-~h؆8,nنDo_\t>[r9Q.Z2tϟ/4OLoZ&miO'H~ fuy| \$Km–Y:&/_OzBY Ͼ5S`+U۶ L͏?[߰|KC$oaWy&(t״/STdڏ̺Q0//uBJL{wef 밭Ak<,^49Eΐ3x+OmuPџ*MA~07-? m?,\1Y! %.sQ ۫>M݃kg1:-Ygl% SutS{`U# rȒdZ> SgSk`t 3:ϣfB@NݙuH7m.P~Kc27x.o7\/{\qlblhE0FFEa_C8"l ̌Rgj\dմ԰])ȗ:i0*!JAaȧr@|\y&9~ fuy| ԸH~4ȨZOvi)e2et? h]gd74 P洁=)sJ$ )C!X D ȱM&}̮RЩqHs;zMBO{pQزk?m6{i4Y\n9;bK71PVju>GwrRJm^Rرe*xذȖV9]1! %.͸hYc [t+Suؿ l7N=1-xʧf)B h$T[&|?4b^+'>z#al"+S''xݫEuv8 D)XpG:D~>9smUfoH5Ϳ|2uUعٳ:J>I|$SAةҦ_NShڏ u|XsڌLoH5ͿKɃCN$?`U,i^^up u9l>؉<-t~"L6*-4ԠUu;-ܿg 2jˆԜp~R:$aOg,SO%WNe^~)TOak? &{!a͙ h3{p-TlÅx*)k|OY:cLwfZ~XiUӬ37UzT2b5Cj)7ţ_v}Sڏ u|Xs:5||b5Nʾw 7Op徥0yc%SOL˧o;4d*> SGͯmo kxu9KelG=<' )򩶇? e w`f\(ȗN䗚N_Soy_xs巳YM2&קxXRK޻sbs`WG`i%PR(:( )Sag&/F}6Ǽk?3:DDtj\dմ԰])Ǵ٘N?} ` bpNϥ] E:^z>gF̀R? T(*t(OPC>~*6 Supd /̌RЩqvC9q z$ܰ /ۚǦK>5;T)x1 a -[dڠ.f9OS䓍Cp pL?ߵq`^"_ڌY_~ 2?c۞>E8o.N7S'շn=.6,Cno=섑æ{ BѿIB{vCOƇ Aϟ RRm:au g.4'r;6;(;/Su& Q?c`M;qߩ*/,\1I! %.͸tVͰW/]ni8y^w& Ag@&•W{>Dd&K> vt,hW m:bPd̟ݭC4K9>cg"~6xrxNWGS{GQS9 5V`¿w"?֜6*a=:RM"_nЧKm*x?C:D"1p.\uSc0CKK]@qo9CoyI};ײu`Ȳ[cX^iUwhW}/hOzBt%HT V<۶3fei؆ӕ㏊Aϟ ^Oޭp(CGw"߾]~wЦvV/IAN(3 wt޿aOak? &{!a͙ Ըjq~%Vuf!n<$߫slZ1?E%c"s s?⧰yׇ w,s@п2v \a؇z;ŀgs,c03CKK]@EbI ȏd)u㐌ˮ1Rz:Ĵ|MO?’uqԱme=ak,v`Y>0\nN[Ζr=RWYYy^U< .} {vPGny<>.Іgyq{ש]: +@TS|WG2@}"sgsc03CKK]@EbIK& 6kjw= WCnv8~:uŶ9smU* Ukێ7Ϳ|^*>,/:Dz@6,vҷ4=\..hP~ Cd4i`*!*`¿w"?֜Npõ;!e.u, [; o A#W}06ẰC>)}lQ=+VyIOR> K> (W]eXi F]OSHçޟͱڏ̸Q0//ug\fÅ+moES=Y&ʹ0m.Sܻ-[xez"la­xAw|o\de* ʿf'[b?ʢ2O CJoְl rqhj0BE:cxRߟ͹q`^"_:5.'FYSyYwr/[=/Lf> 6mn:/Voy(d:t6<T;e~L? g)‚0Bu4b@=St`f\(ȗN䗚NiTmǛ"_ښeNAq=Gku_#0qNnQ:$aO >T_U1 3 ǞW+c~ fuy| Ըz9AYY04@bK&Ix aoQƾ'@T-M˧o;4K?]䮻&O-6v-!ZQ^9/E@oWYlG`![+LjPy~̟!&_u?aO(s;D:_L}6k?3:DDdÊ^.֫߆nC} >/:q0nȏ|ש'SoŅ#9sQߩ]o0~Rm["+޾1>߷}e*,e*=*CeRe=cUlnr_8i0v[g">TO?*EQ(pU5@&SM?(]χ5g.͸tVͰוOrDŇA]||Pj[HĒ;e *Ok? &{!a͙ h3RiP%c ͰוO@B u!R/?GݽpfSڏ u|Xsv3᱿ïp5۬hՁ,k܄C~mZ9 V<‡ `kzuN=1-xdž! ~,vny}ea*?c䰵w^}ln8dz畅G~!ZqbtGjw/b~HlX 춾{TN6*̓R < T''ۮg7l]1Q! %ϼ1\u̸jbu6<1YL/va✒8zUQ0%]FÌ)é:xxy7^6Kmݙu(7m."_aQ ;tTu:\tߵ#uy|31Q_hT|bZ&.T<2#9vVC ?*vmM?Yc0CKK]@'" OLE՟ZfZ>EuUeД:>B>^`%~n/DLtҁP(}ӡT *4>(B ܭ +lV:DDtb./qnDY)Tgg–]ynF6"-̸-JLdeTM/!Gڴ36mKWPCC=[ū= qJY+!/={,wn>XѥLO_S? S'=?Qߵuy| h=8 }|U$%o5#M`1SQr]&STMW?C446)^XcFm +˒⢑,23FD(LO2Ĵ|2x.cpQ0//u"jU*^OPTx%!R]&?]|X"a͎*t Ai TʨMUl P,q҅~ Rz.Шx=CQ⩖PS߂3mF彯IJFFAipAnnkPp݋FXzӼ(0r|*q/NP̨:DQ2TtM90¿k?GRz.{p-Tlc }aZV XC?K半2qL՟lZA"<vʟ `Xdݤ |ʏ'ݧ_o/z_ڏ:DDtb.||b5Nw 7Xo)n^vŘT2'TxɦS_XMc })lBx GBE~: P jTF)RWn ` ]wg"! %.s(1lbV6So]u}I og fye8LO񰄥&7CG{t_fQF}~x77m?U~U\13CKK]@'" OLE՟ZfZ>U N?} ` [Fsљ] E:^z>:{Շ!A(WR6f|+ s7@ڏgQ0//uİ2 =$o8T + 'eY&STM˧/[ÓՅزE LCD及FfbQ6_HM{x]*4^ء+b +CKK]@h۞'8xm{*:~hl8 3~7Pr]&STMW_vQZub@,,;r;zssDbOO_2hӺ~s 0~ش}/ ^xk:D 0v`d-e U*ji*uywmJ`gb~=~X Hʟ Cs]A~0} ,8LS/X*/oۺ ̸r6?n ו/*a^(LO73-_葩tߵ#uy| \m|8 a?kȚJNL^4ߍguxYcTS!3!m_ؠ>?TGo/Sוp1ҕ~ p! %.s6ӂ+YJ> $ܛy5=CJ]}8OSM6-ny[+?f鵋BnN[N+y~ӁN('ΡTt<5~ʟk?{uy| \$ʹdk`vl۳{_ m~Ǯ7d f %G5SzaOxLnr~&]ԍj%ڽl}e,VK/ ?S3?|&]p*CKK]@빈6:<U*ji*upރEœUaV~lASVC/ʟ ^N{!/οCw?vۥ֍tQڏp`^"_ZEux(T<Uپ0 58eǪaK]l iu^27 6|rAvv+^Vg -~Tul#B@?!r"0K[ 1 ! %.\D}QzZOS-1-_E~?P ˜XՀW@.xͿ jݤ ?Cd;APŸ?!Mu8c ]w`Q0//upõ;!e.u, C;[@aU\++ПO޳%CTJy9*cb&.o;x*(/ :Z/ÊMT)ojF>RNL돪 &nO2xcp0Q0//u_ >,sm᭼h긇`8k/e☪?Oٴ|U}xb@i|}CJoְl 9AN参߹w1[5E7²ɼ\8N|oN+>G(TۃQ{hP`M +CKK]@'"[z0 >gCfnιc|G T|iY/c^`³oM8|пd2[QXompU 7ďu_?7GTE\O`ڧaW `:x\"hBD参Y:TPLQC9TAR٤RF_Elҕ~pNPVV. =-ؒ-DE1vmSiSTL˧/CQcU䮻W-6v-\(l"7MwLYS,R,7W4۩U+Pb ]w0p`^"_ZE+ٰ?omV0WёcGwUf?O5ٴ|:De=cUlnv @ؐ1j<^?Aw@qHœw{tj&6TbV A7~ŝχ꥞\<1'*EgZ| tߵuy| h=QfRzZOS-1-_Ee.C"?(_н*n2\1CKK]@빈BE՟ZbZCtA:D1TTt/Ui|M*eTUd{f ]wdz}%CKK}t&<׷?znQPjX5!?6|j+CM]}8OSM6-_E-ʏ=_>R˜]l:Rz=[/dž!`~%O.K>˲0rA/>6xUclxҁa^(LO73-_葩tߵ#uy|3o̅;_3-j&TZÀi.IGI0cpu7^6Kmݙu7mo 'T[EQw|a{Tilן~*9m?6Or!ԳI}xKuj71`˧o/IMG!mB mCԙuH|g{dVG >dz2:NC_3Tilן~*9m?6Or!Գ4-שĀi.I,[ALG!mPm5u ; 4X洁=x]X2ք|a{C/ Q폂 Sh9|M4|l~Y)'>;8u{uĮ72L.[Xr+ [R@mO}~L7¦sS= lFo:[738|t/Ne= mll`)xj{QGcGgI.t_HvE{7߷wohG) ?K?9Dۏ!<VU:DV댲b,ƭW05V7MrԫFuc0S7f_\4*->4Tc^+'>ұpDS_~/}˿ۮ?7T_(w"K=ԴTt;0S76<*RX/CdZ~TOC!ۮ?7T_(w"K=nvo|ė_ N߽o9t4N{سKOW\E@#=v2< 03S?CݩoA<_5F彯IJۖƟT}S/wȂj?o3G>]CdguzPmz; UL?Akgt1ݫQr]>LvTS?Xo'RI`|eş&}Py4W?~*vMOO/m? |]R&ПyO ѷ]fY\o)n^vŘX }שx_e:LvTM*>  U_dIi@@s ڗB˖l! EnۼOśvQ?cst-w"K=h@jRFFmjP ]>Uy_xs巳YM2&קxXRK޻sbs`WG`i%PRTPG}5uZv߽.Y:: ? CśvQ?cst-w"K=h@S(*RzM clL۟>`cs? ٟ܅E|u^ | (/6^dYIH_*1CD3XW}h'NC)S%R㇊"m_ڳOşQ$cst-w"K=h@a8d\{HpNb3D˲ܱ} ƋfS]'tqKxd}mer.fkeutB)]%_a۞?h+o/GoNDۏӵu,n@o۳Xzm{8~hl8 37Pr]>LvTS/qap{s`wƄæ{ ZѿIZ{vCOƛ3@\TrKG*Zub@,NV9Gaϟxl;OśvQGO׽YY݀m-۩Āi.*rhr%OS3i >K2| )Q`gaÎwyJm~W^G/'tPYZcQ_ / ş&仴@P_]:TxnQu:DzV7o)N&LvTS:Y:(>t* [t;Da񧫿 Ql ?U;,SyO uۏ{!Գ~lo7^<_LQ>xk:D 0v`d-e. ̝Xǀi.*U-hOzBt%H‹[&xVoymf\9=^# ['-';?* ݻ|Q۷ڔžrxt7!?G'*OśvQGO׽YDzq~׼MdECxVec0S7Uv]ă繌SؼCQW~XN [r_ SMcF,xzΣ`@++y%$"@śvQ?cst-w"K=h@VTӮ"5T:0S7n11zzOῡe㿞-Yl.˒oVk]%_ĦcJTilן~*9m?6Or!Գ4-שĀi.ixt =RR!VĴT=,yòC׵[SB}x\N4ŰlO_RY?ɾCqf/v$ `7xdGᩡğ]߄|?Sjr_oulXMMH[JS]>UT: t?*zpރEœȷǬ؂ZOxNt7!?(tM6d?o+G>]Cdgu@QnbmO?^]MǪaK]l iu^k;߇v݊j{0< .3 VSߩ!R]('5e?,T?*:#~*=mTSBu,n@S(*RM N&<*up5[ذ9&a].sGa?!LECbZ.n*^cjoTިSBu,l Y-sc_Xq нp4q ;瓢_CAR^Nh)Nmd?T.9@半r1`˧osb0klՏ=/.<~=M,܊/t'|o\dLA¬dՁ5{2BIaH mxA.g ^_N%P)=,>MśvQ?cst-w"K=h@¬:۠n|&lx/̵[=^>}Vm/oۺ+2u6_0*/#0Qu#sD) ul/jTm7!_n^P7͝SO7Z:Dz6р>PT:0S7ed66hqGku_OӴ@@IDAT#S!z#t(XŇ-dU(pD? 6PtO7{Z:Dz6р>pNPVV. =-גYdu aoQ'@T:0S7 ]y AKakkn-\(l"7M+[6l;W?e/ds:Yq%~~*4Oj?ߜçkYY݀^Ɇ[~ 1pn7W}'°~ERO;K}GUE}kPqTl͋OE0?A?'[TxӼٮ??T_(w"K=ԴTt;0S7fv[u"ѡ?]N /1]*oTxnQu:DzV7o)N&LvTM r*>* Ctf%?۾OśvQGO׽Y{ -o~j5~!?6|8#`#|6WױT2wbo|A|%Kݧ|}%keY{z79l흗a*-ye?.n46fsቓ5|gyq'4TT cu {Tilן~*^~tݻ}捹po?{`U-IV@aTT|J15$JS^S!<7^6Kܹyis=7-_II;CZvOWQTps^+';鱅U|Q}'U*^V's?u8 L7c!t"eD4@O[Vn1 ǮŦ W!'{*d\Hfet2hVtv"]  hB5*]mu>2քuUf3|oohJ%fi/{0?a[|YOʟ4NP|xUA5R*Y, ۮ Lt*j2hQzkaCd ARuK/5[[gg–]ynFmZH$G_rt6l6ԸbqnHCC=CMg|NAY+!/w/↲ս}C̞M;cCLF alZPr\Cq^L.XƗV?tLy6C:CLm?&S(:DQJ:􊍳>n䭦uؿ l4f sʧôHƿ E#r2EL#{`gb_8Q6T"m+ {?t'E=^m?V> 6FOp a5Ht߄0Ns' {!3?Q /moN`tۏOYK݀6@O[n ,K}ˡkPp݋Fx f,:: 6F܋&mU~gJ_ NXQg*u;-ܿ0V6a}5S/:BV*;RN,B%^LݢE.2GW ⿠uxI&y 1~Lror"K{msc } `ZV p{ӽQSar dLjVlU kRsk"]uO*js^A_T|NQ-OQEg@H\(iVD58kށ6:+-ٟˮ/wzBOSwxǀ.a4H(oZͯmo(kxu KelӧOj{tG ?*2>8B,^fo?VJ7D&5:D.р_:iKPST1/_TZ^eS}~Mغ?"HνaρUTQpi%PROW7JSm/J|8]0h "3\R?'Ц?xKN0m1B7t?ٟ_ ns>i?nv/ƀe3`Ԏ!LPTQ?/J|8]0h "3\R?'b 7PÞ3DO˶cǀ)tj& m=U\o@ ETQ+컕}X|BMw0h1ECd{uz۞'S'tlͅ@ci>fw*'x737ai^8yx^Ѡ`/qapL-Z–ʏPĆ ցXڻt_ܴ!UiS=} ?]J}~QD<(tKcu鴣TTvj[Ȁ<\UnZxuޙ4c}%2 W>_[ْu n?.hW mz֫Ŀڴ|a:B'y*[Yذ]:i?Y <$Xv;> }pqԚuB5*D$:YĿ!2-_آڡ8WŇ!O_wOokp*:D2>̀nn^{!z"yn@63nӍ= =^|ZQYv||LOœ p8d@n'~!:&_Հ0-򶭻+g6l|~RVocMt+ 8,ȷo:)Ջ}D!J% V<|P, _ ⿠/**xR'+y Q4jvhAYDzq~Vof!n<$߫sLO00Uv]īh*q?ͻ>U_xee=}_1Yˢ;7͟lαKQ؎;j8jDDۏ4)]>q hTTuj ܒgޚ 7Lp٨g}sre Y [7ˏC_ܞ?7\*^|KxUzxP<syc~m[AlVGҖ'~Ls2u΢ĎD:6liB)xyE\ )NL>ʧ  |엍8oT!a;l͝|0q/O7dCi=e+_}h] }'2`w-K.K`PJi¸1?05G{_ ^gG}Sg)dQA?ѕQ&~(RCd h1l֚]lNnuyk 7 8Y:.f>BU~SSlwf@vZ7ٶg!Tl};3Ђƾ>St{uMsL s:*f{MumqϯL_;N/m?_o}=GC7iKdPST1(,s,\L}X5*W2m>c)[ؽ(4[Hu)D/wȄ_``?mxJk.Ϩs`<`\@V8z|/KJ͊s%Q2? 9ytۏ7 4 pgLy Jp6xr^&:*&A{хlms|SL2[+M*>CO譻ʏ ^xnzxQm{jf ]W]R&Np C;ٮZ@alP7aC>1 PЮZu$1D'Sw`@4HaIO0ܷ,sX5jb˰bˌ3012MPD˃eΏ}Eksg3hv;Uw"U"r>ǎߊ+~gogS=Y,̍*Wc@{Yc ~Aͧh2 g_m,]: sn״@fMz!7a68lAOGf* 59R` [_.U:x%e#v3=~%N&m?faCd hyb[Rg;d@~^`³lM"]>` V< 6mn:aƗkZ^G6[^4:#7GϜ|me? P]h@hZM4cߐ=ϭS=~!:*]I,Ctv,ܙNC,\,%M˯e,:,x o;FӦ9Cp-_s٪?*2>xB+쭔JfTd f\R%Շֳͫ|904A 8~0[}~޷x<~ՕQ|*:H ȍTV/ƃW{"߅C>UiduOa 1_A_TKԏNm?&Vw X_pgLyutQST1@"Y߹e%[oPƿ ZN>](o?X1BLe(Ǻ/dRTf ]W]R|*Rw;-gHaflԿ_«n,:DQSϻ`|ƿ OMwCDx]q/E=?xKW}uۏʇu}t&<׷?znNȂkGcڴ*NWY)ЫXu U>O: `C  Yzw%keY-saB[/l%[>Cpt߄|xXPŶa^LÍI%/?|WjաM EQW5,iD[Da(C?d9n֍Q%/m[~LW>]C$ls>~W&F9Ӎ\VT|ߑ/?]f2I3 Jzu/ zLbYbqMˏ)QS񞑚aɗWKci;Wsm61?]s d/~L&AuQ+gT_v3Ye2%Y}dVG76#.ݖPBAȧ=#5’/4W%!j:D_6Q#ѝ82Lli?&]( l طԿD oLE`igrցa"0#/_:D__^l*?=ҋ{*P?ZWYsdž 㐶=xNt7?4ȴ|w1`QjQI--R:HelNRc#@㜅pQزk?mӄٍYy|(Ӫvm*ng6~ٺC;OA[4/{ CYݾQ}~T~7`=N^vκ:x;f]0q}xQk` Śk›Cq`Z>>s8@T-TuRxHl g??5n '!:Hh0gٮi.3GOSNW~܁,7&_^8:w*g-?~LI,K^6fY_4%iMOiZȀ6W!>!gĒs[ȸX^Og'Q jL/=7.V[h lj9?a)?Ž4y|X[ :H1óߌ~jZ;p d ϒ’Ǥ!U:D6Qy!vu I-XN}гpIwx#t/{C L\aq/!soW᯴R8vc'-!ugO'! P_Imy *]jxj%%h߶$4S?4d示? e@1>Jfk1\ŭEvt[^`ZXmgz;7uLK?iDzodf4ɟaH7KYszW#?<*_ipEGMܑc {qq$[5L[on㡲z)̞7/ W_rwc@nRVDzŧn>k~~̩O2FWٗ/o_VC@(h_Mb!XC[LOK@TS6CjCgK@ˍu8BTO6f=+6bebb֧x^bvv/SCDlӿ(qiSj;( ^-zAb 7?մ|}1?[ڏJ/qCTcᰠ_K&)O7SSs.=y\x㓻xu^ | uXՇ!|m( C0_I!! C*=xn0|bLoM| rƆu`Y& FbC&bp`*hW21&-їߗ v$'x9# -bq3WbGY-sU^=sԧ-C3ܭ`([>Lt.;thÛԂcPwsFcܻ]uRul my#]<'l㡦2 ac: ]7}b?s bw]hwT3<[ZiDz,NAC 7jlqDwcP,5(M>GY¨8:Ou$'+li~umשi@r]c -TQ}!$Od1۠JVWU [U+ߴL i@T?li?:<\(Ռ$ϖ`QSЂ+"2soE\ )^lvMa#|ɺ ܸS8[+?|67YZlrsuĽą]qhC bkq]u/} {VR; WoDyl^%~_OpM#[O?~~L](Ռ$ϖnhgֱ[EM.ضg!gՀ '?YXW6ؾ/h/$]=Ce2_!W 9ؚ_kƒ3CJ$Qxq&OfǖcuRxHl 訤u. xUSK}v,ss|/+'Eo?Sd|52~2@&3۩!J=HtPhT$*/4e#$>]_,vl\jPr9ԟ>[wmXjm,kW ݸ}i٭x9ދ[yi0<׫8_cu GCtA{$p@:8^[uaVLyC²? ߴnq -*ϟ> \("uBQД Sӝ?)]?|*~b5[ذ99BV\+_0S|;2?llm?C|}Cψ%lڝ2pn.Lr ^8 ٿ8I{dsꡠ])m%o;y@A=M0]AOSPW>U.~3-_G;ld Ss!J5!ɳ%cVc9\xR6^V^4uC05ٮi.3{Yc ~AH[vnŋ ۥ >>?a LY'/([],+2aq6 {E糅Y/׶ߴL˧s;p X@T?li?CjCgK@“2v&0O=’2&ǶJde2I/_Hkٷ&{T]> V< 6mn:aƗC?ðz˫\lTNv>CU?['/___~CM˧_p[adlK1:DAXPfK@Gm?Q;u_&'ۮLCUȧ1Ek<,^4"L  uúdR(GT(29Lv V,(% {Oc Ld661܂At[o 6iWخ!fgؚ\ڼ=FBp声s^4=vޢ_zt/YglG`![G,LjPWpS|nli?CjCgk@dÂ^­W 9R},_uaܐ>]_8PTps Ԯ7Lq?lb©x|ot=(.I߷x" mN=8x1e=cU{KkPqTl Y Tt$:2?[ۏ!J6IրJI]خa2?,i J]xjʏ_W =L/*nDt6Q<#Qy!vu ޠK8ҕ/uffmƔסhEl'gew}܉c 短d%$3᱿kn_$I ڪYxcڴ* 9 V<‡ `[zunvfCl?nX>.s-Y,/T#~ʁ^}ln8d~t* <БN.CtGjw{Rz=[/asek1lsxF,9_f\51)U$ia`tSKpu7^6ħ;yM֑D v}O&Wj?&ӆd:D`5u'Oi)peRE_Oi1Cuf+_YU=3ءudE_}/s/cms;p d(3Hmj?&Kd:Db6*M?Ц'ٍIv2]i,ޗ,}Y$ss;בOiP2V~NȀ ?EYڏ?YQMr h6­?}ﳳZSGaˮyWq|NPz#۴>k el婻u? ~3{7 }[ lFo:[738|t/6e=x< CqgTRhN x{(K9޻7:???%v1`~~hUCXD7+6΂~~g֫ 'p!o$Lu_O_e,>ƒ쁝Ջ/s|tX^n"K\G?*j?U~XxQ;2#,L?YQMr-m òT=S6Tk]EJءo~w d2GXܙj?qd1zMڴ$5_O__Z|);y}ˡkPp݋FؐӼ(0r| qPw/;-ܿRwLq˚i۳٢Nǘ- uu06OMu|D*x*_Ld@OcuQ=Ԍ~zPmj; UOCL?Ak(gx>b $XPiBDA}Q,XWTD/µ7`*"UQ)"5T:䝙>O6ɳ3cvwvΜ33y3 ET8Э_d__Wʍ߉+RbՋ@UNȫm]lBG~F@wb_A 9ޢ+?/q(>tE[v-3e]/R^q^@~Uu_W5 (-_ K 2˥PѢql!UBs*Tn;lA T^q+W{."znA h?:F=o>njU<9F;/[-ZY[=g^Rjtb 曋ZXfu1YEǩ<whiON/%?z/F@h Zp*/_EgO!?K,32RɄD^Ɠ//JMi~U,}+xW"7_@1 jehT ͂c/| k:E|!?CD wt5AvU*oy,g|' F[-e̴F7YڱDž#2?bP@unu{&Qmo^]%PvDG~N o"*(֯hv w"R3f盙c_Z5~4i?+XBgvJ&Tda2w>Ͽx)_|^ԼAOiF@e鄟ωuo# FN/]G=}_WyH݋揽]}:~"O;&wD*i4{HڰWQ( jnJ/E6}qm8]V/#u'M2f~visȫm]Mpr{y?\5u_к_Wy\5˛qDe ['&4NU[6WNް[#-fnU;"qʍS;CϋyX̣]!:MmKSoV׭_:ۯ'KפX>Kp19j֢WiL*l8+Ҭw%5'XC"ʍSҵXfyFتꗑKu֊Ǖ2mqD^noG.G@wb_A [g?Ӯ#bI2uƈfo Y/cd/_E~3Ki\1Y0=6Ln_ش?2Wu͓;5+FDQڗI˧־Փ~IC  K5^ fA hi#u/Wz"njU)eÛxRlQFSEd`$կ*ղVbBۼ j^k_PZ[G+f/_UrCШ%q-[_mnׄ=j4_chn{T\DO"ʮd$5K!n:ۯ_~‡ٻ/Һ-YzJJwlci<\|2b2᣻DB(\4zW#I՛~>%:E]M'Bob}yn_?({_!&r{^yA,}IhaxbQ119o-zxNW? ą~HP=_fV֯bd/W(to:J c,moGUU2f񧓿nݸȃNSn}/cnZȯ.]ZwHqO_Wyմvght=]kgu+4V2v:gvډ*&@X8~tgD~P.к/hsqG`/߉|k<'Ou[gP钕LHdJZ#%/Kqq%D9sߊ鵝CTEPK6p[}V~gf^xuinQZyp+?ya{ ֺ.a ND3b;Rz,UYe ^F6fEZJ&'nO7N%?z/F@h\$voMTnm_&싎/_E*# q&f.4h-sQ^dUD_c7?bY&txц<mp' SylBLz ;VPG/EZmԀ}A_TE~[ee@O+6L"ΐΐm%V(_~n UV0^2+jWd=n}+TX<5N(,zuwEDEU@eJU8A~Uu_Wq+NJ!3]&R&}99o|hqQ1)Shvoެ_Fް&{_=S|@ T/?3Ћc1S~ s<[ m[=q^@~Uu_WE5Z!̡[l2uh5ְT­$|TBYBgvRk_NlFU+6 )}]#wjt{ED0 ?y7߮GlA \^^?~9"{(t hi#u):ۯYy,ou ~~SW~v0PL-jWd=nW׀}A[=o>njee'♧V#=ޝ^YfoY%o-3]GD^#O' -@{߾g)8h~*]R^EGcTmq^@~Uu_W<|K?Yډu/%ʊTܭgEk.C\2Ė؎>&NX4Kwֈf.|NtDyn&So~v0PL-jWd=n=/-}!X @~|igL+n}•Edޓ$.rd:RHFYOgIkaI߿TݜNv|+?TGIPJc*HG\nWr>O/cKuhgݜ'D7m2UKjѥ[m{Ig:?tO~UOگ+ѼΒ"lOc~?mOt3Y1GV^ZӖ]b+O~Y[U| eM?Cݼľy'5_/SOӽCߥ_ľ9Q5]AٷEss@v@%<Ҟn֯gYuO(u-6hG*?<8ܶ{!*T-o@PюV~Y!W8e rE]P~hƭ&)iGv;GJf3jtp>:J7<h\@ A[؟RR:r|PuBZ)<}v_M+b%싑S|eT|C*ާ19=rZJdIt$ڲ{ :'Jz쬗ѿ9o]D^\g9wEX ciˍ1#$w/K BB/OvXHܐk7B>z}~_:H,_n7>m?2,Yeon{#;w]N&].*U")D(4džѷ3G`GD-z=Ln-&^2JCR; ^C:,{K_Q|\-[v-3e]/B j]qz nUw31!U__߰GQѝH,BEƱX~!dXr:xxHJ s?n3Xq3U^Ȃ'1l^ M@yo+W,G;DxҔEco CC̲9cMn:"iOw?Ub?5M8la#hgfLn4~x݌h۞%fq)5: EgΜ¬]whiP:Dܖ 7~TY__Gaن& jtf6׭u8 ;8Q_3u?d%DQR7~="y&ܖn֯[ylNF{9)b~~TY__Gaن& Zj7.l֐_x> DEhD3Gh;>:Z\nws0m<[~.| /!+[ܲ_w.]'N#|'EY'3N5|ڱ#s2Sx\?2ȓo}gUrZqAu6/& sJ^ʕ.E_@ї?&Ƶ^H_ߺ,T1{Y%z< }5mwClVm^].!]c'6'Mas+vP٭~Y!W8e r"&Ih͂C7]I-֥;AuˏӌڸɢQrMJZD7d_.H7Y-ӭ_NNw_𷛐:WgVVцS~tږ̾n26C?O_@ԼÔ.;Ff+etKӪh)?C.ۮ٭y_n~{#/ҔY˙;/=n)ɹkD]~ch+;;SUiń7sod S;ω^ڟ#sd;dkv-kX9S4F5cZO@tW%bfnzӎ„_ 5Mɴogڴw¦Yd[yԠeeA7;'ӰvWJbGRk_AIϓMO\_lj3 ~J7pu6& ѡ4fQU;Œ: n*}lWH<6_4KvaK鸯c ~3={իk;Gsj^u4\1H?Yܲ?Y_hdof*^[giEWu,jeS,a,?UWgGnY 7Xa^`"k̶{cOJT%|u"w4Os?|ٶyk9ш}mQhDنn^q~ـB A]:vdƄ^e"7Ig}zQ8Xab`"cD|8|#aBѢEhǏcg~̤*i}BEKJvV 6Bs1K[..IRn8tO~U*5 ٻu/Һ-YzJJwLcq<\|2b/._TX4GwS Pܷjtd}N՛~=_bڱ7d?:;Fo<.i:E|\c*HOrX2~BuA/cDD+7l&=4¸ƴc3~Ͳ_Nujn:651?27mُ|%Ǖfy{"B-:}tO~U*o:J#KEetl$[USLxLF^nY~nWƿ?*sC?lI/cؼy<wً%^";jUI%cnmݕH_ViޭAĕh}1ӭ1('mS@#3o` _|~O(>[Xxʨ䄿]e'3lnem8gȩOau넟m/c3d ?c}OBSٷ&vhlR=5n+c3i7̲}&xegۯ4JYu˫s `G/] sYh"i.Zn3KBE֤Vg{>M[ Y‘_/~#] d|C@tW;汅Y^0hZ=X= kݚ|aZ]Z$j'"i`;RzUY8~de38n߳}qHa'-e ^`U?*z! __ǰyQ@=뀶Ylӭ_c*[e=|~aͤQL.` x#h_2%ҭ&̅i,RߖI<ݧǥa_ow:* Z$޹V\1LЭ~>pzv Z:~Cd!c?:d'2 u: h^^fnUҥ[?_f 4obd[Wwbx:㝡J db  2[m!TB8Xa"z<sJ+OdEY[hbLИ:R V& rwI_Nku~/DrMiE]GkB!ovNP [UFWm2[Ǐі6,?Ge_~__`wn="|!!;z:@ϕSZb<ޚV,ڱ@qn֯J߉7j$*ybdj a[I\$֭ǂ{EIڗ#ٻ1 ORRn86^7*;owq"TQ\b_Ǐ ?;G8p2~/a2D ?c!rmWbKG[Wdj/cB*k4ovd_~۲T-?C^u:TC>2d珅{a 2ص:@~J]yNvdʫяH%:DƨöPAv~ȯǮK;tH8,em~*]RGb֢W#s 1u8tO~USѮ[XgQOqNq8SJN"}}(_۱t3 ˟f)7 {)QEdlG 7ڑ/k7 L۟of{/W5u2Vhǯd /0@@@@UOgQ^ӊT,:z4Os?|9    I ݄Fv[@@@AQN? $%&    "(;dDp_@@r2 D @ F D9Q #A@@@WtLQ(n    +rQN&(A@7HD9݁('@ `$@@I JM0@@@|EQNw $%&    "(;dDp_@@r2 D @ F D9%UQ?W\@#_کʗSZ/L'F@Pa6FG@tE]0@@@|EYw :"P{C{%7Py$?E-SU-s?\??y~/E;X>;+1<)@DQ@p     k@@@@@ ( 8D5z      EQ="( A@@@@CQx|D@@     !(Q֬~Z4ny>N}CߣDYYY9 =+V,9M]~#T{D7m5{46-HntWiҌy"gQӸ f=M],bTHd9Fi=CsQ,O'рcLS:㏧L9KV?҇y9qs" =y40v% jaJ_IȶhXf~)UB:|9^/G?    0z!"ב{KM4rs~q_@Ut0e{iڶyw~=8,3vߤyg0sK6"Yrkt{CQ=/#z_@_3u?R%"9v:FǎQ    -vV*5 Ucm肦4嵧ɿ/-z_@[_|'^ܢ ]OѬŹnF?q0sLF ,]TLJQ|_O^_w4'hݖ4ߎ;L$Q'^nr}c%A@@@0gK NNw?E3Oijռ=x\Ų)aӘI?G~yy_F@ `y:xVn,MW2w7#8iƂtzmdQ(&-@@@@ `&./IDy)\P{Sn?otIsAFi?NMզ%kD8ȓoy>H] vE2돘^߹-}1<:'2ޭWvwWmUiń7sod S;ω    N7uv- òJmU35N.(k?x}lE^Ki$dž7zO_x<HMZ "b*טmdJJT%|u\P mԦq}˶m} K_#wF k[     `Y,bT8^p"=GBѢEhǏcb2T̤*i}Ӣoo6@@@@ `&./IDy)\P+7l&=4i:nL<;J1,[Zy5MQnd ayVV٫Q_D8nRa#*BEXn;E+DaJiab1V^c7~]4}A$`(M^bj|ԑ~kvc]s3>$R*Mxeyw~;>YVr"oD3ctUpN7d$P oF/5$GN<6r, &EG } {V SOLq     'IDwC/@OiLF֩N_,oJ+'n}Q-9E@%[n3_խI+==%칠@@@@@ "=D\P      Bdt@@@@@"{.(D!p2     `O=8]'Ȟ JA@@@@B@Q.@@d     ! (NFA@@@@ R@@'     sA)@ E{칠@@@@@ "=D\P      Bdt@@@@@"{.(D!p2     `O=8]'Ȟ JA@@@@B@Q.@@d     ! (NFA@@@@ RቕyYIENDB`red-data-tools-unicode_plot.rb-b4b6a31/img/histogram.png000066400000000000000000001446571402627751500233320ustar00rootroot00000000000000PNG  IHDRAō iCCPICC ProfileHPTW{mޖ{K/ҫ(,tX`"6$"" * EbAD$(1X$1||g;{@a&''$rҸ>Nv:n@4l厌~ ]-^?&ȎLey!Ne%"܃=+FX!3-ǪHoq:ޥE3?YL&7bg::u9Xb0H45xljDf_5x[0#)!Kwḡ.3-Ą?9q)I q.wddD`"Xd DvZdV#)y+76:&nb$֤݅|\]?뮲$FdTW7cs3s@]2@^ c`lp-b@"w&A>(aPIN\Wup QLi,` D8$ )A>d YA;CP4āҡhT@P @7a4 Aoea, +:)l ~f8NKR`AkC HFF{z>s[LMMLMi^E70fvf;.}476O3?kEE 6LY[2-k,'VV'&嬙ֵll663jql_q{}CSGyh'#mN=g7..,&W}nd7_ g\nJ9;=!'^*^)^?yc+R}|}=WO  h X ,  t;X"86+RaMӡFcU6gmEbK–aa̰sU'Qb^mإHȒș(˨hCs11e1؊qqqK k m!Nddd lUߺoLcXzsrvLn^wμӻv5&snnI={vM}MK>_>7|o~;`}  u WXEQ;h}D$dǡRziAaoU!I?2Q^uT聣1vmURU9Z-]]X|"Zڲؓ'o}SD}aNDOc_ISSTsq ܒ2w*i]Z5m"mg3/~asZT^ulX >zۢ'.](|Rޥٗ{{D_ }t5>knn\w~߶ n<VmF?>hHxaÕGc<xRTi/jMO\xk審N=RM?/.ϬdV?}ZZ2"PQQi uU|MYW(뾘1Hᩛ 8qOD/R i9kmmu\$%Ӣdad@ZgXDAш];i`9 pHYs%%IR$iTXtXML:com.adobe.xmp 976 432 Y2wiDOT(]v@IDATx|T z H itPC@tQФ7 HG# Ui{|s&fݻ{ϺogLG#A@[L F;@@ E@@@@@@@P@@@@@@ ;@@ E@@@@@@@P@@@@@@ ;@@ E@@@@@@@P@@@@@@ ;@@ E@@@@@@@P@@@@@@ ;@@ E@@@@@@@P@@@@@@ Ќ݇i FM1H(ݑ籴}QZuQWD  ~@&CkXUBRt5wq Eԁ)(m@ʓ#3ΝR$OfTͻtm5_VsDL % :a| ɜqŋht5q>?ʘ65ΑKI1L`[?GG\ɩpTR/~ASEӥN%TBCPjz+7_;txzdIWɹcz !pÜ۫y{U{dF[oѷ۰JxpnZF׬3Uی--Wio&vf>]}L3ϣf-uJjm).@=1ʷG@|Yd\+[0uPm(V Cq ŨXaN3[Ҥ S xP2MAo+FۄdߋYh%|A- +SX@_L3    * [vhS]\~eBWTgqyeZp 褁/n ZvsCϾEV_s fû63mAQ"yeN˜LG@z}$YfdqGC,ψߺ@:cN84gя ď+'6CK_Mgџɺ mʠNB ^ qHA"O =qv<ƞYp*Yv:EzVi6HbW^_~'vv+Ltؖ]Fl2b\m"_42կV\HK:N-  0,7F ptvIqx<4[fg-8*MW =4 _wѾ?ͥ)%N+i#+q[_+_95lblnIrِ!ďזvs~\6۸V%y͕~0"X#`*dLKߋO`(8ݒsV@9+ mh?yܮ^ ˙ZJjfXT@kXW(nTf4FiWg {}بKYql oWF5+*ŭHlIf2E5!M  @@"|H-y;3';z69LO^P˔>~iwU@[Y5̝)zEt̫%MBSL|{0xj[}!mOhν-J|s#hj^jt\ لC>oh^A_O?  DZ qa-{v$sh}*\pa=CY^$o߱a2u4J 0Y0akwF*3L;$9mQ-mN5`1]A7]g,=+,_:4zۢVb ! <+hy@@^R@;{xKahY* +mq+lNӰV-Hkog VM_;;r(YyUˍG=[Fȴ5/o1zyW:-y90S@->kUOn{hjx:oUmTehq@@Lh)߾G=F4遨hynYhʔ!H-idz *[c\H*%]BMn0{3jZBfbB)0E2Yxf,'_+x|F0(=q{U6,kٝmڬg0@@3O~V(     U>*+SO,~͑9}ه۟bm0u="=FWjY)ܺϞ게𼲽T(X+C9xIosZ -/^gX׾zl;ѷ3~ `*cc_7!Z`}ڽG35*+Sl?w6JZf>r" D+~Ua mV(  i@@_4)!g`ٽfᕍFN^*4Bu&z;#mYaK»P3u9z<}&*ۼ}!'Aif cQ2#4Sy[4ߝT9u` j3h3+-IJQbyitPyӀN+Qx^ {GͰYU7ex]l]ONӗn4ȗo׾:erQ¡ȠGmT@|/l/'ݧgόEtti35Uq݇BL,dӦ `Qdr6籱*mdI( q5Sm>z.Fߢl3TB0r~ڴ<ǹm40,k-B4-R< ,YRJ'eϔx@@@pD+   ~L@P/4+Uw0gϔ^TGߺGK7sW;rϳcA@@@{ݔ _#h{N@zpnl{Fv/_   жΏ. @|N `9+)Fٶ ;ךzzq篽e<@@<h\    s^MW#b NF?lC0. uNA@@@@@|Ѕ.)      ;:5о6c@@@@@@@к`G      Ff BZ@@@@@@@@ڌ^]@@h_1       h]S_#k3{A@@@@@t! vt       k }m`/. uNA@@@@@|ڜ>~j݋mAC |#ɘ6 E1f9_*K[A = ݁ #ɒRa;>Eڧ ƂWi &i@@@|!F h' 9h?`  u1npP@ @@tЉN- A@@@ @@f @@ )ǀA4    vʃ$ b1(hFg B ѭ{(yҤTH^6m;@@@@@){ ta/9>sUQ @ x)Uh՛HӦ?f&!c|    .x=yNIP`.]!k>` x` &@@, R@OY:h#{QoX-L"h @@@@@ @nN:dztUA&E )*߲i0S/Sl c3ujM5+ գk#/Gޫq*Wx$x-Dw&s,_5x'NAoлy.emrKS$KJӆ|l3<65N'/\&l>*(9.ױnW:6~2>Zl_GL]JGN_/)$‘S+PT)]H4w{3{;w5E9c2EP4iԻGպ|mjm\nZj3}4hDzcHq]P@@@h%]et-fߧ$" h+pZuYUZ gV +SXƷE篪yFT*q-_1҆P@h6ͥ LN-cNbL*1vZl=hP@@@ C@;Hr|.ƝЍ;yzyj\ǃ gf?̡n29ӠoY y!rCCdQ=[gѻl;y0Z٦5of/cԯZ]Tv$T|=}12MEҤwG~5a{?XdIrHl<)V7h.,K׃Ѩ鿩iC4!YԸ+zZS@蛔~'y%@?g .ځ  oжo:BŒ3~J٪|K -q"}]h߲&-U'Jfrƙ8x<תHUDo|2ߺGKZ|BjqJ},WD~ޢIKE9e(͵;ޯYJk~ܶ9BB\[?ܖ6h@@@ C@׫7;} ]Eknvh6v]+,ç۵SLNlG3)E57P(wvN>^cN$ݿ&k^ŖV:,U(n]ܸM!ᯮbݽX{m^R(   O<%'.#)ō^C 5*#Ў3XѿЕe~ʥpO^QF3h2=[]FeݿvkY/gM qY䅫SWw|UϿ"&j;滨o޽OӦ?fõnW:6+^:@@@@ !J@kWZ 촸S%l9@X~*jQJ.ڨ{w,q@ȜC2FY3z*MYeX:%ܿCr&Zi6MD(   GZ}}*e}A>![2y2պ>ɓCI« f ?r̮RkXzIw?iY2ͭ4P$oP>j'곓7vqQw)m)]i#    Z h[ֹuXxGo?k)|+[-C@["DعkeͲEg_[J,)uWOrJ.8[*z"K1=ҷ}*?TC?rS_9C@2"U[=8b""d!O hW>yFL]ΐFZ-<92ӰMͶ>`|:}-W5[Dw^=}ǒr&k51]>~JAU_]7m Y<%)Wvl|~q@BEpsZy/[]汧I;{6 ,:L/^Ifᕩ^E~ֻ `ES ;69.N2{IJ&fgܝО)@@@xJ@kq;תD vZ쁛=1+kpX;1Fފ,+w[S ťgoKe?Ӵeqsd@&|!Y-MK7R{9n1_hpoTuu:Uh=!v& _#AOgDS](y<~br~-B@kAm$4Zh_Yk\q߾GVT)bΝAclm$x͘Rƣ5gXw%g$ܾM< ]=vժX,} =kۈ~.hOړR@ʘaXՏ}tt繌_};8fN-«Z-;'B|u"tv.j˨)bߧ^ֿѪ Ux¯ jg1B o9 J{;ho!   h='s @ @@{8@@^n!utN [,izc~?Og~{d&Tp0HM b` t#g.;1KF  h4 $`k 'mA_     'h=o>0I0@@@@#t=u1*_G5ްZ |Otyx3@@@@@nN:tUA&E`STUo}a9^w ff:Ї@Bft^A@' ^@+ڽW#zUQLy-טAUh(|!t1ŋ4m&ڼ0g7v ޢĉw髟 ЏQ!Y2Ҩ-lyl,k܍N^*ǻ}HXͱuS18s{   L8u-LE""V)aݴp_Fi"ڱU H4w{en\Vm- = Ys;w5E9cuen)xzj=ZkUAcY<#@@A}p>p}37#QDUtޤKK^Rv33LZDT1Jhʭjrf2e|[Q:q>nE>WyM--O)KW.{ײXWO"3jU*+P#)]"{F< ç.vZw,{1qD4o[J&* -q.P@ܹVs[Bl49<FŖWnȸ=T?_V]A^ǯuZJ}͑3PjyZ6g#+h#G   %#b*(dn=zw҅sZc4 `7hQWPO}R.@5Rɂ8?<~FMfh&7$Q=#Ӗn;&JIvnwGoRŋ(@Y?g '(=g.F w\3QҀ'3;8toQ*{ax*K7E#J">l|Չq3O籲\Z4|sMʹ S|i0[3-@Ю3SזV*zyWjjb|:|];U4^l[O)B1Fz]_qB۫tcw/V= @@|i%Rā:=nqN.\wD+ ]g.o;Y}?V(7Λbu(5䪰wѿЕe3u*&=yF0$mlwZ#Zvz{zvw]7ާiP3=OQfKG@&޾MV ͚xrpV@􄺌F_iY_r\%*AO>b o91 쥙]{,pJ~ϡKqWXg4*MGwgjIw__Pi@@@h!?ܺҿc#*"଀_~"ᣌ4vpNٔƉisK鋲ivЮau1j&ݹPeɘV6[ȴ"yCdž9^ꈀ{?[g8@@{_B@O\^Fi:F,_Iݔm/.|] h-(:EIз}*?T:v`9Eg;bw %O +h￧e_U*и#ZMIݐgnΪ<6[-B'-t>cTxU//Rq~XNu^9pD(YQ94aG"y8@Юs.nw,)'?iR*Mpȓ#3 l|d3!z]?|rzmmDZ@;B2nOW)nr.M V=Sm2@NvҪحjs< 'VlKVo5I;{6 ,:L/^Ifᕩ^EgL^r^'ND1;DA@{4"}:|=ys^2Ԭno^Mӳhߴt.Ƀ:jx8uᚸ ,~mo6% (Q cXΨa㰟ioqsd@&|!Y ͟NY:(9.F~V榍C@A@@@ h!;'Y":K)8T(M>Wš vK6Y,"V ")w*e+;IQBl %i6{#Jy><"yRO\D^Ҥ!]qgIgؾ8u4{a%|pԿ}cNsD@Z_o C'ЌdkW[%#N@@@h!m Q'bϗ PnЬ4lu|pC6{:w>h:s)ZmX١p>lb|WqUez[CJ`߅]?3%tj\ o)\v?j^֎hnܹOĶs%JȜ!-liQQ͟w@ہ޼#VNAWh`F'   sM@r4WضAuSMh@ZJZI3A Ԩ4 3GEJ39σ0j>_ѡYIV븒p_ln`/j9~ofGEt.yӿOۖQ!h@H`M@^8 )'KƋ)%0 5cb;tu uPBP䫭yv+C,4&6E/eVXqV`ҤNIU^b6;q(U_-_4?=kzXi_însA{f! pݚVh@@|'Ӗ?'KFm{jT,aחc/w|Q}ڴŲg @@;KJ;ItAۺ#WT^WS9e!b;v>AZ՚թBsp ʻ:~=Mv籔BoN, 0!=Mo ҟ$x͓*0ޜgI piѴ~gvcPJ}r7p}Y~mЏ_A@{6!;sK#CS沐C'YtuVm2 |<@ucc)[pz:xLၞw R@@@ A$H}9uVs杷@h6e=3$=]q[bhR+n/r| stfѷҏ~U+!;ӎu 6@@@  t›S6)m%!ɴbз#,Na ]>I'3F?y#;bVK#k A^B%Pg@@k̀@#&ñ]P@ƷZѝ)Y$xx AOOWB£'q`d?~~R>?'+ -`HJ:N,{-MzБ3)CPjabHO:O1۵Q@@@@|,]@@x!),]OGLבq7A&8$p>}AL % ۷SN!ݩExUe z{Uh[vߴvE멗)6]hﱙهA@Bf /Gޫh*({&^Koݥ&,!Y2Ҩ-e4}Fsa2Ũ]8q"Ӫ_AF?w6Z%ʦ |!,L-?b W ۧ% :cul@՟ˠSFMi[Q|Y;&e^C,wOsVѩ vтdLk6  M OW?/7ubyk(j=sen)isNݿӆTtmjm\|%96GH2,YD >A%n'VE~+;63g,O^)EЫ9+*U(άZa߶(< ֫Baexл- C=SzߜMSP*\JӒrqX=fժT%  5t*U(LӥO!5Uޫ^^g1utr% 䤂SttCׁt "  3 M :r$ŶpC$]vS):XjOrYЁSun^7Ln3ۑͬwimi>nrЖ @@Z OM7J7^{pCFHy~MXu7i(a4{fZݺd3O֢9ix-6m\\QPxydTu6|=XXTs($s +ֻt#e[ZTԻ;JTWwr6-vbM쵷h{IAIDATZ5n}SZ9x'h∀|/tmbʥvɋ0LJt%Z}L&ZWK2FYs?z`[pn:ӰpĎ^?thşJ^a{kvX;1t}ʘ6 E13uSԱYґ  n}e>e g1Eg}Q`mG C!TR(~Шwnk*4o1_8C/9HNC'_YxeW +ֻt#i:rZF٘ƒ8q4%-t1;vTB@; Ah:s)Z}|١ؾ>͟{Gs@Woޑ-/E35խqhE .J@3ÿF/##MI^!_ɔ>t_s>qXwmQMx ewJMȕ[i}+LZF^:-cO0:eoDaLgWL24IgW hkF1+PfGNBғU5΄(Д-##ȪhxDB4:&^sHn&|vI(]3;Z-j)۵2ARR7R*e$ոϏtY7$3 Uѭ4E q(U_6]h~{(_]ϿO_Iv8|~;(_hxqo߬`viРMhwF &*vVѷ sw4mT')y>]-WpDRH峗XWv>AZ]7S -wwvI$`.Kƴ#h*ܰ WeCО&@!vO{~LNC,0Erʑ9e@@xnUmy fZ3Cӕq篛 SƴmAwΎ8wYzmZU NA@L $Hm:Hĝ#ɴbз#;0AԂNӈA@%`$F=y# aVK#_  A@ N8s[@@+ЈF ] „B 2Պ}AL % ۷SN!ݩExUe z{Uh[vߴvE멗)6]hﱙهAlTPH\|@֫Rg4]jB%#"^[ sWm[ >ӆ|l6/K7ҟ{9Po/FTĉڕ۴Eom=AGT-C%KS=~-KwJۧ% eD[+vcp.y@ #g>-Y8׵c15EDխRF@@@w$xIpۻ3rct=:r6ZնN.t7g1i5insen)isٺ3ƮA7#ײ96GxxfGփ:ts68~QVa@DD@@@|ib4|uO)⨀Ξ)=ϙUn:0bEd}4gV)?2mQ:y>nE>W^SzÃ"PB(W`ʘ. ]}u>~ٸV%zzy5z_c_'_c\=fժTh@@{2pڕ1<}C_)? i@@||~YAQGΘ9*_.^)m)砏[/sŪ+7d= Jo.$Vg^apCtJP"?uoQל^ƫ:}~KѷmK“_m3wp ~2dB@{3:qVMp_uz0x V6u 4A@$j-JMۼD5y5\YV(}(|2|]Wٞf,D,9ʝ]l/|_Ȋ{ij7>OeQz]_qB_]{:fO<@@{2pG?Ӗ?'fZ֫Ju<G@3&h(v"v~*]87]i كtJ8 Wv|*|>rlN^'/èF3hC6qwZȱ3i%W;q(+Y`y+~ ;qow5;,]jy>eL)nW:60 Q";F毕c#?#78ڣo t  n#mgTl-{`)V' )L9u{s7JQلí5FGdz>4*mk7s l[t4KS LT3R:|##" x~ Oпc##Z!Wm6Qm9䋝M)a\v\r*%K鋲 v\Ӯau1jݹHeΐFJJo:"ӊ ԯ;+߾O\(r?SO>BDnKѷ!C@͸czAOY:(_`MZ֒&roG,o}qSʡBr)U(*HB6&^7:DUyrkycĎfbc_<[ٛ+V S j):I& ҄2M-7o߾sۺR-a%|pԿ]cKݻ>ubxKGv 4cF4~V+G0xegSaQ*B&yϿ9bκq>g%J`=[F(Q)XrȒ1ΞӧVMg.Ee6/;4לivKㄓ׵yr;It%oEL הb_^v?5_/Ek 4-Y7j\'#77Jrz'#՛w8Џ"<-J@o -B m2O E66I5M{hZmF\*+PcaufEJ3W?UxYF ݆њ^%ήdTFˈն-ϞzG>\bȑ9#^nZD[ vָ mB>hyZi_$|b%;{YoR]RҕW|~;(_h%+>1.d!6)z,;Zm]8JI,Kuط}$8pu//5J>Wb}O oԱ2DB@{ 5:rVڕ[=ms,潷F @@@ Cc>z>_#K'M @ۺWT^WS9n޽OoK '`Ѱ Ժ֬N3MVɟp.^S$OF''COhOGJ@;/ʃ/yJy4R4qpiѴ~zUI)DA08_}|l&"ЙA@@67tUe!%NP~ܕ2%txhX   @8GfuZS fZ3Cӕq篛 SƴowΌ?]in^Z/^B9W $H*ԏ#ɴbз: }3;ㆀ    }}hg1ɒ4 }`4   ")|N G utN [΃,izc~xyP7jQE@:t*%GԤve=as$Wmvn1-!լ0 @@@@.W4yȺUQL,_6>L\dIPd2TZYJ,2O>Qk鯝m/FmTĉI{Mht. ֬,DK76k2k7eG:Il,kԕ$GypXs Gz~N5"PTD_I_O7ܓY2҈ ?vL $xqݫӠT"yS߶XG+h'Sh^,& [Lwu?{&ZѱN.Th=Z>yd"ڈmu 0F@@U\ *U( [j~{ZQJTzy57YK6isf/M{v9U(KjY=9_lL[ iRUe'اO..1-ժTڭŧ2t|7 )GSO(pU@   #m!҅1(}HRGr q=[32}?]i?FQ@ū2ߙ?Lw"btN nwkt7+v;9So_E}̒W<-[;n1#0^_|?s >tbB|_c1h$NE+6K6ZAӌaꀱgߦsq~ 6scʛ#wu6EPzۉ)LC(\ϝ-N]()'̥SȑeZu{+VQh%\">AQxdp?^.@@@h>||5YbEXVhbGHi|lv8!U(5Si­wwkNTvğ hkMwkVv#)K7zYMBWM65A@{ -։^sR ɓѺ-M͓?C ]`d.|ZL޶s={QwkСW%{=!Wl;eQs6eLLѫ[Z>E:@[|I@-@@17ŽyRqt4sJ"I^Rw~& 0)>Mn'ӳg@_IF?vTY΃0Ԗ6M*f)d IkgQ. 4O N!"0h# BnA@@ @@;X ʵ[dT)hQV!Ðѡdr2E;թit=9CZiK+q!V$o7x A%W;hJfںؗm#Vn{X}[˄ hGh=oC;ҹ1TdIoZm{QfU"[BXfVXB=)U*U:7c9ӌ;*l䝇MQY<wSڄ>z, zSl=na4О1z ? h+@a󉳗e ~XO6jcz9O4Ke+<.ߕnQr&ݿW>>5}Gw?j\߫S@!UCV#bV ɧO-   }$?+sKWSl/hD'J~.84xV+kY:(_nޡ.çEo( nGk+m }^zU;<7n_QУE%xGm   >El9YEtW]MHi=&Ȫeba6]w9͑ujbWt+?w;LM/yҍ?rر_3 gj/RJk,WsJ]7Sf 0ZG7qI$!XwZەɟ׽pVS$OFǢ MJ@/jc}K h˻E`drɈ. 53Vo'sjU,mV QOh?DX@=ߥA5D7ۄv &K`@@@B@[c8cP7jQZҞv(3ȔʥIC N=}~"vBc(M^ٲ hK&H-о $d R@s ruT WOX R@~3Y]DӋuU_$ |'|^rDMjWCz6:Gz/hב醍Olf#H\|V)G2YZ}ڴ0]rݢ'%*en2"y22smv['o)>2O%S8HϬZbԦ8qb+& ENO(I zBqjF N`?b7ONK:_O':+G`\{TtMr|y瞜z,iDv1mqd Ǎ"htN/vޣ*[$Ovۮt-X@'zOh)(S$umAI:Joq8|Yw)IPIYg}_.^Ln2WoE E[@߾{_KWoP~@@@l6; 梜a(c4tmZ~sZQJTzy5Z-sz*fDRJN#(QޗoCnT+3+U.SXygԼEU^Re8 Xp M,u[p_z:Lfk F_cIb5ۅ^6 ]v^y fDOc:)N}]p\EA@@B C'+ c/Q4&7nߥ?U ݚ foVȪeL=Yt5 oGsx 0(Dw;,ŗ碅Ԕ.8EytYdؤ׻g,>g9֫Zm2_oD AٿK@g.zƙ+w{0zovM{i VC:qŒd ZMW ֻ5+RD2}q2qY||ԽE$]vSrE4ì YBԭңx' i6f}~wgoRTK7z djWMWwh`N cJ&ppŧvۯ h0~|ZAi#-U(j]b|wFєکS&i;-;ttl-qw6jĥ;5*T^/\Xh!=E6ᴫRS@;    `5*V:OÄkPh^.ehRT8ovFpܧ%6;3֐jI\ypJ6is1r˔¤/DݼCZ`gF2d=OϟS?;+]޲(y2 Msd~H.LA@@K rcnҗ-!9dIR$#z( uM"4H܉~$BҤYoBfkR V4ǖ>Mn'ӳg@_I_/ؙl'|[Xp]w~a=ad(f=[ab K{ڭ)MDоI ;V30'mND-v>L\( W K,)iۀ̪)ڣ^nxpQwTG?GmC(;[gOXB=)U*U:7cEK>x, L{T6!ޕ ze$hs2+|Q@{[/A@@gS&F'^%$ OѰrڨ\2_nwWƵȳr9O4K~1W:y.n^|WEVj"FSv`=) w]FA5o6@@[ o/bCpĻsX7Ǩ_u%JVRO[ֆ{Bu<>SM#^j3cժDEnFS;v4)o -~ޅ/ hO~2a   :6ȾBG;SJXz._|E@{ۿW ЃI _;TԤ6Um8Uqle{TlJ-{Є(6Lrd;|y\wm3ev4scʐ6-߾q;}>4>cצJ[*ePlm@?~֊BeI<-^#]D=[+Y^y fDOvpoq}v[U߽ sَ.=w>Yɜ=4ao_/~翴bSzrm H}9chQWwMB@@@l6cYEtW]4VOl2oխZjZJ2Wz7[YNh@5~ۑ^zފ-NqȚ)=}۳IYwMB@@@lƝ;H{CN*_=ۢHrq1xG􅸣s6].ǐM`j ;Ǩ҇euЬݝr},gKnh*Ngb|آqkmן^f/yACRXYCy. 08֤HZm_P`?D^ܷ I?uèA@@\'QֲGxET.]O>^ pJ:'Xz:p}o/ Cv-F   );ChDޠavzftQXӍkUQkKӾp|<9k7釹.+A5sQ_hY+@@@= R@GL%wqJ2t-x< h    rټ3h6B\ЁYR(    }1~0hNC@'E@@@"&%t]J4 ]m${xMJ?]o,?^S­l0A@@@ N8kG:uNྲgFA@@@@@@*a ` GG *ntG # )'E&%Ԩ+v @@omܝ<+}G$     ;o9ufE15j 2A(-zԮL0j(_Ю# :w -!լ0fP@@@ $x]H>jSR֭Re;lr:y>}fQ$ 7*oT)y)MZGw$kVi:%Nj}wߝβMtnC`S}\| Il,kԍ(ypX`|vG;+G`\mh0ps?_X'#KFѣSsq~Nl<[{sʒ1|$x@7ѽ:Mtgߥ$AA&e=~B,݇NGC]EPR񇐞ݝg/D6:Ʌ'YFI//H[ woC@ *xtJY}E~RUx =6@@@Kڌw, b)4],qZ*vPzyjT7YK7irfe ݇Լ#PDԸF2aV:Urj.+N2kU|fvjW* 9=Gi({⻞8#.޽P%Z@N*;e MGWߢ-ًW+h@@@ h<-ݦtrxwqAYt53,|Ԉ0⏣H;‹0TEެLUXSzz"3zniޞv!mAF!{l3%&NޯWjRʂk (   e.߸MJJ*CO܉?bB`+oSɂ| 6scʛ#wu6О.: ;',ҥ.шK@OZ+N*Pg"dǹ98Ϟ=OG$wjeiīj[x .=GhܯZ|y:jvZo5oҗhb=~+ժHW{.Tǟ1R@{iwnM@3D M@/Ra*'Mm#}eb̯l">LC|F  HڅEgC&FlCxPa #x ǷLà 2fۯirhts5V:_xV*Q <|L)X\2QT)R\:eM^Ĺrqx.ot'g.\=K@(^L^FRp$8N?Z&N}6woӁK1qaadl@@@vQ:6tG;gn'7Ǩ55|%hb{Hr/%j劊iYKiǁ\[7&z7o Ҥ<n͊Qn<]Var:l֦4hE>B@/Qnhpe謀s>x$Rlvg-eΐ>n\ i@@@Osy|Ng.YfV; N29 M[\;,=1纎~BW.u[쎅F %rJ@OeuZNmuω'/:+O:, gw"Ш0 $ \r]y4 V~$>uVl+2o{0)߈wŇ?3g&Bp$ܹODžKmtQBwkSJwOS+zf۾u۔1m0Eni~H! zĮhTKXN%~|t.z; 8A@@@d9s}J> Tr>zT$Ov^͒G9s>M+q=3g?y_>bt_[?>0Ԗ6M*msd5ee8IIzx[;0=!7t!"S ߊS g>%ûJX~yI%w@@@{ ]`WI ̍weOZఁC'ɼ*ePwSY2-4cPD0k|v;Z?ӷ yOݚݔCvueP5BȣeeAWSſ)q?v8^Ж3g@@02lrZZ\XL0z pT>->iYm՞Cw3ЮOrJMgw_;Sg֮߭3$T6!ޕ zSlt@D ?'  ! /v#Nѷ^+G뼢d@@@   );삊]QqnsiH&V[g_ߕnQr&ݿoy[i@3lUU)w?!zB@[y1+P^My31sW}q?3B#xt{[яQ|A@?W4>2Y0RR<&H=xH]OS !~ܤ6ZID@@@Z+]i]M4{0?}@|]!G>YH=,_n<4z6rf U)sѢ#AGX%C鳧tbOJ&A@@0 8MGh:54R U4{FZqIy$jjQYXY5ygKl[ճ7Z\³%?i۳ޠX<7^ִwز" #' -ۛyzE{F@/?3!CH4 1{&.M?~yA@@-nZ aT]flP'M$ه Ǻ+H/FSw:'EgȕQZh× %ma$ָSHN3í=K ^@CR!ݼ~b~p]jg$޶Ov/V~0rz iG/|A{svޤ @@@>ԍGT8J|+2r"~S>?txÎlB@{aх ŏA@@$HeF 7@x2#-]z]:k\2_[ˮ@G_I?CvQ\ ! "~E[?)Y|cGL%wq1( z;c~xGe)\4q}.o}gA@@_ @@a %^n #mzt   ~G zKy.%Koբ]m${2O%S8HfZbԦ8qb]F#c=v<2Y>==Kug/ɩm:*(מ@ޏvq1-:9ps?_X'#KFѣ͹/Zj3ZQk   @Ǎ"htNuaS; B;KIL^mt, ='4zr}ɸ#e䡮"(pMaߑ3MYR@==l=}0`7gFh#O"}ϗP1xB@ըXR    @@12]b\,_8 %n{@kCWoVkԯ^ժA+eNOLHTɩyd%{hҍj{rfe ݇q;?KjY_|x1}lrl hg$BQ_PJM8x# ß );o(:ő>xmž#ĉ>)]pj{U   `F smjTљWe-ك:56iA+m< :G>~|M3,|Ԉ8H2YǀeG`׻>cf׫Zmqh#F~N@/? "=Gv¹1|>ho}&[%k% DhH}\._ ~J̥DghǡwnLysd1)+Snj~seDIqyN5m=Sd$X<³zu !@qK஀UݾF|CoR3^@@@'<+Yr#4?3>wtԚ`&}فq]ObeF*R/Nc~(sg3[FSWП>(OZQuT^ō^3H\T8O6ZI]48#cRИXC2x 2򐉿ѱ".@@@5vxNw# Fn'Ǩ55|%6h6]ywkVʥuw#e㲫Qt-Z_ JLҎ'd9>G|)D_) nyh-)mTTK7zYMBWMrA@{7:Cz hK1הɓ:P}Y& )ahצ[   :hXaS;5*Ž`BW.ڝelq)XqloڢN &G2j"uRc6fo{WSX>{ч?S@k9%]A[M%u3=9    @@sbVШ0"ؼ^* N̝6;GrWXștuLWK[ី`Iߏç1rFXm}$ IDAT&ehgHSƳ88FS)S?;7]ξcnަi)ztڗ#?k E4`<{ѢQR   ?6/ΙK6PlS}.b܅֣"y#z(cVyw(!$MJ߯yx{}7K5j;n$u :yNڼS7Kƴbܕfw\Aڿ#~0m7WJNM ɑ6z?vk M>|Y@lvG68   .;x\cK xp[1[j}{wϭlѼI˺Ć:Eɓ%"8nIT%!T; U{}x2yQj!i8?z [@N*' %;*!7SڄTO6ʶZ=vA6M"yd   n<6u=Y]@+(g߁ng4)7?n\^>|Lqȓ=3 j_28_ZxfU7zROh{aD䁀 h>1!]p*էjS   ?F*:̍uk喬EsoYl)-ok'ӧqiīTZYmÞFS;v4)ׅ <[ -_ 44t =x~rn2!Rw*aZ˚/h5ÂSj,D)N,|Aťemm-p%h%tiAKP}c4JcX},]n[48K3euSYmw+}ߑ3򨰭F~wcp+{>.8xbFyMZEMG*]0| H%z4*R6F#@@@#=JoVy .?JV>XFmJ"҅>n{~ز7v5m lݏ(RIe}k/',/ȬtiPj]bm#磯QHS+;4~mYimih&CJW!1_*eóN1a @@|f-AWn)҇P\a9CZtai3*-|=[j ]x;[f)mթst|ZXޮ&=b|jԋζAXf]-F̔ o+|r5^.EoGӝzh }@|]!.EV.QC@AL %Wc=\qk7J<znQԏ/NJnP]`R+@@@  5ZlN)MjV@VX<7^|J$ѝiaf/H7VxpI n6ܺWYBT3Z[vSd)?ylS m @49KOXܲO6,i+N.J̙fQ@@@h #Cb53kB0J)E.ן_R /< WMkZ{۽.EqCYhw$z,b7Ď2CpTZ9yL9 lll˾T}?Y|#UHWS?m:ըXf?z7[Yγh@6 hOE ^z[&lW|+lXX N??JBԩImkŐ   VKWoЕν:7ǹ3ļl/p6hǥ& BnJ~k*W{ 8)TkǨ҇euЬ]nhYwo$;XJ!>7km&^@ H5$u*5Z X>#iնG}A*Y@ۺ! /hoڛї?UØA@@ ~B@[C3cP7jQZҞv5;\"S*.B' /8%NX MO1o!]@@(V @@[łDH rkT qݳ}uh^ @@"`   %^(8h_ @3 =@B&WsI&d m A6脽x'M'K%@A@Y3);+el!@@@@ XeI?bnަi)zt1#Q콳q3 (QO;:*|D |Cv@脴 GZ?h @ tڿ2(    p4ddHG;ﰜ?nZ-@@@@@@0ІG      DڟV c0a1?XA@@@@@ #mzt       O i0V@@hZ-@@@@@@0ІG      DڟV c0a1?XA@@@@@ #mzt       O i0V@@hZ-@@@@@@0ІG      DڟV c0a1?XA@@CR˳Ry@:!"  nv XfL@@ rR6+$MZ7xf>2@@@ N+y zD#KFj(Xg@@pW@_u\"ȗ# NI._m+ng)}ZzHʛ#ݱ:M\E<AiR[3\BDg/PtiPlc&mr'K"~yw?dbwht=:t<:y>zLY3R9)gP{e:p,ܸMw=iR !TP.ʞ9Sm%hK&H#஀r+-ZCr,B-B6[V_KXdP5{9=r"עí?yKM{[&]ʼnߤ %: (&'L@nޡ.ç$?o͖_?Udcf$6֤$AAԪkZb&i%tEms1oj}Fѳ ywW35.S%JDw@t`3f   v )KOgF*Q-3f ںIz"ӶQ¹MqdwS堭BR-"y|ASӧr{} vփ?a~jx08q"969jUՔ/笠ǭOBW̋   t_bL@@S@+cܵ^-E>ا8_;R7*X;JJ + R i˴lq$$I3cnS;Jyu:E#+V(oTCɖH~{ʸ.vQ/sσ8ּ)= BhDUqie~iBvVٜehݲb[| p']&9}MX)?J+?xz:V~9*gs&}Yy+v˻ĶBa4 ݚ٪n4ϭ2-E{tYq!ڸZ}ܤ|f+ݿ);ZALHS@;~ =ʟ3:~x:}:rL{6t yD kL\ 磯QfUF~ڒqnW7=[PL(A@ @@rc   `V@vs@u68{m縳eygv4dBwwY@[ -][qx~LGYoO#Ys|ڕd_o?|zG\jA@ !NH@< )]=Ř_hFr|z hwc jwj۞+*k\ bdJTb?ڋx@$9=4bWU6e S͊%VM7~0oϧ X>h9h6 lg$s?uW@kj( NW/0R@/M\Z2(av6)~磸ejT[ֆOOV~A=zH|_j~l.?7ꮀdشW-TݡN"s!ƭ/<,@DA@@6#t}9RsQu(;C& C[l!L #cѩjysŴi~?k6%JHOz ,wW@8{Ug|5;zF? FbŠ˹jYVH'+<|vQ5+8Z(nj$AtAY|\M(o_ _<%q>]Uz&T'E6 ?6E҅rS۴vUpk!{ ľ9X_c5縵H@;N%NLĽr7:@`   |Xy-FdLvүnu~zK‡N"p1Vt왩B|TR)J"RMy_w֜'_+W WLN5sig/[Ԏv2,3&} bq1]tѾw]F17nS b+su>u6S?}lQkǗ9CZ1{aytKHyg˺#@t,5&   Cw_&}VEkfqٙ]P6&w*u&! G hBuș}ڗwE8? |[mݸ}3[.Sܗ.cfTMf@t.:   H\<{&ZqLz! H:Ws$m{?ЖGNY؂wr/P0*7>@@L @@@ @@@@@@       `Jڔb       `U,HSЦ< bA"6X%m A@@@@@@)@@@@@@@*hX       My       V @@[łD0%m1J*$)hSUV @@@@@@L @@@ @@@@@@       `Jڔb       `U,HSw=IENDB`red-data-tools-unicode_plot.rb-b4b6a31/img/lineplot.png000066400000000000000000001114001402627751500231370ustar00rootroot00000000000000PNG  IHDRsyj iCCPICC ProfileHPTW{mޖ{K/ҫ(,tX`"6$"" * EbAD$(1X$1||g;{@a&''$rҸ>Nv:n@4l厌~ ]-^?&ȎLey!Ne%"܃=+FX!3-ǪHoq:ޥE3?YL&7bg::u9Xb0H45xljDf_5x[0#)!Kwḡ.3-Ą?9q)I q.wddD`"Xd DvZdV#)y+76:&nb$֤݅|\]?뮲$FdTW7cs3s@]2@^ c`lp-b@"w&A>(aPIN\Wup QLi,` D8$ )A>d YA;CP4āҡhT@P @7a4 Aoea, +:)l ~f8NKR`AkC HFF{z>s[LMMLMi^E70fvf;.}476O3?kEE 6LY[2-k,'VV'&嬙ֵll663jql_q{}CSGyh'#mN=g7..,&W}nd7_ g\nJ9;=!'^*^)^?yc+R}|}=WO  h X ,  t;X"86+RaMӡFcU6gmEbK–aa̰sU'Qb^mإHȒș(˨hCs11e1؊qqqK k m!Nddd lUߺoLcXzsrvLn^wμӻv5&snnI={vM}MK>_>7|o~;`}  u WXEQ;h}D$dǡRziAaoU!I?2Q^uT聣1vmURU9Z-]]X|"Zڲؓ'o}SD}aNDOc_ISSTsq ܒ2w*i]Z5m"mg3/~asZT^ulX >zۢ'.](|Rޥٗ{{D_ }t5>knn\w~߶ n<VmF?>hHxaÕGc<xRTi/jMO\xk審N=RM?/.ϬdV?}ZZ2"PQQi uU|MYW(뾘1Hᩛ 8qOD/R i9kmmu\$%Ӣdad@ZgXDAш];i`9 pHYs%%IR$iTXtXML:com.adobe.xmp 468 896 1 e@IDATx ŝccc8K@@@E0(xDc< G0MljtcF7n&ܨ%"(pH@Fa_3O?x5S=tԬCn `QtE~      (s@F      nPMiE@ @K7Q     2d     &e.Dh@ʜQtE~      (s@F      nPMiE@ @K79Ϗ@@@@@ BoGOD1@%݇tg@@@@,FԙvBYbUDu@\ EV{(8    1 ded< e}@@@@@LHSFk4gxd bfEt}mAz~:}!ZPIwM̒` {iҶioS~NXs{]+IѴ1G2ao[1bTFcT @l@ʜ{jWjqvo._r.j›h]^iҋYԳ}jڼvst˕/5 DŽpix(-#;(< #wz5HT+-?:^Y',~/ϵ?}vBGU/ݴzuB9n>j)U/COQŵ57OJ>ϔ7TxtV{zeUkk? C sAYX2a o[!TDT @@s^_y'R#6\IM.@C ꄲ6VmW\K+smtJF:T($WTB楒%<ȬY8(ɕ7Ypxe-(-abpQ^N枲ea˄A@2޿NoSJˏS5[zOEVq:4"Kd|i0Yu{{hvB&S"z+_S;c!z .Q e46KYvWd{H`q/:23)ÕE#+UӾKnWX=aj^&  "wzK5F}WZ~* $h^Txi>f1Uj.⁣o}}ڔG yVS > g(;OPe4q.:G=UBG nl1ڍQM^IaU/n=2^ kr>1?vutm2'XVMHo˼=f̢ 6:ʾy;r#Al*)3fqMC ӚLxe,[ eE˶2'DP|lqtS6|@2lί{|rS&iKQ~=w!(篢߾(iL9Z4hҥKb-?:2)+ʫ/y3 evv~H[n,4P{ UQ #hzý(iwHKg㏲7Yte;@)^_4y$o\l?SzkpFɫ5RjT f`W7'N-}K &={*rv7诿G[44c%s~B_o\M$|7`Lۯ5 heLNgߦ8`[#fTL(xϢ-e'8xϰBVyDOS1|xhǢ?j:/M''v: ]t`gBoe. {M20['_HF.fʖFfg ߪMwmxҿlJW׮}29B6Ê.#m/𩳟}Dž̮px^jJ<3*9ў g/lMS̛wTU:] KLdIxi=gəd!%uSf(Fftv1]xfqf,!'f_a1;$Cረܬ|dz_\8bl\w^>)7QQQ[5Z61 T8&<'?PO_\GwN̢. ʔr7dg}VUa34u_ oI*͎S#r.F:".￵SK[0+MΖPh/+Ö<pye8M:^2|R $rl̰LN[B3ɗ%YQR̕,3_Kg 2&fɆw0ivA@ qf]~fughH?8H6sJHzn/3OWJ)L Z*K?Ý+dHrP>˕)J+&,!KrܟY!c\,"ɲD$'2L* ,6/F̖t%` /N~HǛi'WPuItXH1*Cb2 I["uKt;zA@ i."QSҙ A0~ .f+>=?lTX%_]K?%sɣB,ߢX^pQ1b~Q/w{@̧߉8nq_d0NԔOy]ʕF pS!r7贗L^m(POujxzm5m;p 0v}t5exO;R'sLu*sQ.3uv/N}]Sfdh0]Jn#.츉n`oju}?tQ=ܲ.xӈ+IK.NM2qP=Ƴj^ SozO{7+KäY5d'rT:_Ng9+/ߌ.7px }z5i>I bV¼hwx @<d(CLQv`<`сg}?|^V]     ^Ϗ|p-uéy|bRnǍ着;yNnf> >;uV>zٷj_-֢(ôv۽^ήvӗU$܉3;= 7y8$R#*~%+v?e씚zȪq|&Nj-=ϥ(.kXF[>Of6yt?9݌qDBKS!>|:ݷ>;MJ"kf75{_ˇf1X>"3w BzsPz3wIC?1~(gH`i 5&\{QL΋ۼ|7UEeNU |U9_m[~2X? }~B,P2%O}t&ca'JdGg_(|%j:(sjҵXޙ.qs:aqY98QR:n9`1~ۺ?%0j?\npr?hUA ۪%/y!Z|i&[f2wۂU¶ uK%-~ICdH+ c0~`?nj2Y;=~M%ciɜ-JGjQ D@o|r\)?SA,igh>&9    x~w@PD uUbfk!O     !e.J 8C_>2Q^(s29`saA|:.)ٔO0FiΧmWӼ V I~NI+fPIy& rJJ _$]Iʜ9M7`+t{?:F# hf鰄Q>lqմy3b==+_ L{jW8Q7D^?pII k?l6Eyk GeSR>a1J#3rRwK =idK]v,3M>?ǦFGPU"S ||< *r&g9U23^5E}*>V{̩IׂydjP\( 8ٗJP\2QF@``QK*'`?#yɦ,17:^~MݢbKp.]-)7hSlTjh̹~ utMU9MtŚjMu't*.9+Җ72,hۉUo)^w-4u4s?z=wm}+,w5#2bES3鹭v Ц#~F̩҄ʹ&?~pY=J[lzjph_zrD. `.fFS>uֲJJkYW3Ì{z7"0Z>ڐEoVeN-@@@@@@F`Ok6Ӊ^aCdR2rߟ{ٙ ǰwӴ 7qE'#74-l[114Ael)J7M,s9Kmz˻n:b걄=x}c9K 3sZR&p-,pN{^JVf!9ih_d9KrQZ7B|'onYUnzƂ~romg\,7)svw.$;tӡ8Pf߳ᭃ>A2ppxn{.*NW q@ZSzW:Ŗ_|i&ځw۴KIKL_&ݓYfi)؉7[+^_vu=|o&4ᖍ@,ſ:ON/%8$M?^&% }]GOV1pX%aE^Ǹ(SX$3r_bOzU.BW ȡBr!v/xsbv[*`*t;lz|6Ma䫷Ж{1/tY0B%-Oh_'.߃~~smX[''Ȗ6H Ȉ¼iR3.|M?Ѥ!"m dD}Q%mVqR<u!|E\;&dWnB0Co~3ݽO#Ec}wn$="UTtAtt|B`z0akv!YS6}irA0߸R:v0~h:VI?bQ1>v|Ò"gL(Z؞A깨 G1E-;oj6>nT”*y'̠Y!Qx}Iu ߼8\UpCSq#O}؜akTKS'gW|6{zjik*8Odv!0}$T؎m,v0~h:VI?bQ1rpdeF&q#@&7eюW0{ofw;}VC&vo;YUfSȔ'o0/&{m¿3i|IhOHbet0̑|O\`*b+#Ӈ‘p /vC>åb6T2줊UX|Ӑ~9SDeN7$mH}6#M*s\C}8CLT/:Ai[G>$pKN $fS \`KnHNr*yiT?YMI ;v%<es A:ٷltΨ2⥓ˈ>X\jrkx\$X@3m< &# CL: &;?6L:tdz+JA񰋷9IXߪRZO]$.yS:w|ygcn30v|#Xޅ_ER7|06P:S+cXf =VPFCG 5Kopв%oSqA~dА~/>׿VᝦM(q~Ml3}JggS*|deXXWnd.O096 f BK nҥC[>ϳ{f_"ɏ/z;p!?)FI4Eށ)*J`Ǚs"{]Q!j9]PMb:$dgmVȭȭ.٦Mw|lpˆt){Z+N; '_>϶C.~@eoz2٣ 3jgpǕZZ@?6?sxb.I|P5958`E X Sސ暝Yh M z F18#=c`Г6e_E=#o]@ }+;o2EeO}-|-7戭6>61юόIh>n.v?G~VbOi4)Wg]z=ξ⎜c*sRHMSI4 E`"/86*pТOO.WU\F'J p u {fiq'1~L z>+"~N3-I盂lekj3s;rIf%_c\]ϗIcR1E)zG>m} ;-ؔ7eaxnv[4bΗxekM,#9gcj!H6t#_"2+8qTAS,ɦ_-.hwl `U0?8#5cKX*alJ6q3#To}LzOuWƅU["3]|5e.G7]2N'{u]& lΝb>fX+zǾ;}4_3M jOnvԄ/w.OG`F {v֨ae4yB\Z0"krT`;79=BJE;NhŴo,hǏ}vʈUL3bՃ2"Q_ߧF"3hۼè̩Iׂy_DLX} NM +}?9LT/uN9)uJ?mt˲9qPF wyoLS+,2&] ]A6W|f.QɾT>r/6+]9_Os,2.vd ; / Z]Z#-Mj&yˇ5^fi1̊lvP&l;V?D`T]AcWÓCCutۂ/n)9ZEG`Ւ|z}; hl19KVra66dm#iք@@#jYQER.Ri FB@IXZ2i[ff-m GJ++MAm]ᦙ5T N=x{k9    x~w@PD uUbfk+E?<     cQhP梉F! /HH(9@@@@@@9I3)~ڴi6*ʯyM9bVRFU/ic%ztĬD!Fk@1 ?O?~zצlpF) M\4 re.(唉a):^,P+r 0;2MkMAa Ҩ%J0FU`P2a06"FHU'|n:vj ќd^[,:htb,&;?Xm ‘4]p0fZe@2>!v"@웹oNI6 W kh`K`Q[bP/n=B^ kKlΚT7Sa,6F1ZT]ɲ7: khNu%N@_~w[{̜~ Y~)(r\8W7YZ'~M+h6gҙI  `P,Ґ骆)a`*]M|nL@`. O@FH]z?`ɇ `UPڲ)֫l9շoN1ɮ(H8v Ւe]P̨ dT[::~tϊֻ=JD%@mlD5TU:==(E]l)\8nXJ7yG!>*fgn%lgh-[YzpA#=9Z-I ipzX;,HSQW07̙ =hJ Ѿ#k)RPi( @N%۶ӐZY@saw]we5ENo5@N\L7Modpв%oS1t⸩u ,cl/ǚ5t}Y_3)߸C;186aӸNzT30~h:0~ @`PEd-<|r6gɀqyށ:#4EBdc XEMv@60#=޺UT<yKS0~h;0~$ A aPFe!aBCU,+]ʁ2zW*V}o(l󬲳\rxiQ]@KK_Qvf1И4z39w,pң8 㰂$j\*vpfr fȩ9taZv(v|;c_Y,k $v?bsQH(sh<$vѥCJ f@ƗbXCOەIF?zAڝ䋯 ì#%t9'ҖZ0~hMىڬ-x|nj[j8ek;O~m2ru?FٔX$^%vl%9TGp'!aP0/(s6kⱴdӆM-Ψ dcTn+=F mz`ٯ=I҈Y@Z ״5kd&𱰗7GAx@@@@@@BϏH܀hwJltm@@@@bc,*8M\444BY@@@@x~4{U(sjE      "l"\=iΧmWӼߦR=DQ}mAz~:}!ZPIwMRd@빽QՋhژ{bGQH'jbV:i*;P?UE2K@!#"e. ك{9G\6g.j3,hF2Wkծk6, 5x9Zr,N{jWD={]kmafcӇtf&Wfn{zeGft9;^iF!+0 yIp}KylF?={e[ep27æ*-vɰFY쁒\ym`M4/LV^0 @iԒ %uW3i~b`XOK=]*KiY<ʲ8ϢnP5fs,^csU?c7?>33< bߞwqjyY+0 nSfrqƔl36?cw\?>3353@hc{F(P߮V"7KzuZ[> J|/TA XyH iHOC(6wَCYD7}+E"V/=C9oRVߔOn6f IT_Gs3§WeV*}~v~%A 5KaS엂"ƦVT/w лl^#(r $eGy%`.=W>`O_(R#e.5nMrgAk)3ngd7/ UK4<ԥq~K@j̥ͰjfY=;fʚ`WEUn3hnm$QA.I^::3b&EV)bA MJ~Ա/ALD3-MްZښ8J/,Xo**rjyb5_'"ce.~jU@ZNo<|rp0~`з+G<:8goP,!a"0~uQ]"5ސ0`vf"<o`!w-JʜQ[&Ef4Gç+ʯ~7Ŝ̙YXf',pң8-E3b)15itbIt'W&Ct 9~nݽ zᰟ^Wo-^ɠSnb-mLq "7a]oK$3C {Ӿ=ՖiIi"W@)q?) ANʜ[@ Xf^$tPnp3W))ٽ\mKr2)*F>qf'}9r93b5MҐn Ϸ{)M}̮vӗ&1XFH?Kʜy.[>]E}A8w h+cƵ_4&Pm'lw'ɳbUMX m~J4PЉ& DNtwߖkhp7+qҨ@GZ oKyw2)KbW(2NOPv10+q-G<8.#9E&']s_?駍:7sihH5ay8V>ʝ'T?EM˶ruMV7ݶeKnj[ ed-TUK^o[_ɖYBS4>~c_>#9jF%eμmSrM3?ܲ)P%ciɜ*Rh68aUr}`=C]ݼk[CK1Qx27 h3][)X E2MDCbA4ʦ@IDAT! P0?##ߞjʜZd/HW[v'^DܣF1s_[N_g],[W#V ׈Lc$\$~ 7qVz iΧnۨ(M6! M @lXF/m|}^4j(&9,_E-}7 Hf*\Z5?VY?}ן2zմy3b1st˕/ax@D- ٌ\L3'fp{P_e*6pAvӯ0~(g9xzeٷ2gu8\S&lxYJr]FKY45Qv.? rCAn,K5U `}Z֫^b_YL%LV}}|za:zBpd&M.%ejIxeӷMp)ک'|n:vj ќjA$kfH\!uݬO25ENz<1#k#OV?2~j3/. לI2      0 (s1_'uu2%hзEx `J!5dzXQhZ2~ZPB!ZF ehpO(U Jw,|29 {z-FhRVߔOn3!pv"qsT_1A p^*rЏͣ9'D M`P2~j6aoT3jĐ7 DP閶cġp a@Qq\;>񢽾G:H"S%ʞA&C+?ҥ@1~(gf?ԤLʜ['lN-w # D`fn TwEoʀ. b.yBO@FH_?ک1~M9L N7Z()Wax'pu]D6FƒF Ԕ"#{|jH`Fe$љiY)!C ?3T3jEF&yj2M$pgh꘿$*B<xrQ91&(S]qԖϦ{oXϖ7Qq~ UN7pdP3+T 4 1B0e1~(vjjFF%֨-3\<f\u1p$9 H㇒V6i1~hdA4      lt;s-1;vRP˾[( -)r||>i)Ѿ#kۚ&?ԥ!Wd!8mI#eN; txm24wң E$u , ;~&b ׏Q[O5Ko>%oS1{ij.?R%tf'ek[EEّ &q2 *r )'HӘaZNo<|rG9 C =53(skސ0SvV$8^y ۥ!=+̾7$7ݐJD 82gdF}T1| 9ؿjjw &Źgr5}'=: K,lq-i,\?ghc̜M1И4zqGNo'/|3%݋ߠP1!x4IZ@!bƫU,Y$i1vSMq :h?%xV#m- EN߆"/}+-׏RHof}t @Ӟ9JR1fzicӓҶӕSC[r7[ʪ-v#riX[L'줏@`ǾC[7_u950(3#2\Y4r]5vEXO@78W(Lp1utuW" IT:njM[ LypPAj3ٹawEMy!{.ˡ,ԁ+MoCWWiz=Giz7{a2Ϗ4k?`Q11P/n=r^ kѤ27)_j4j}2Ʌ'1N % -N=="ǫy,^cT7@q[ڶ6OL.iM=OUy*@VI c~߆AʜQi d+n~R{Ce ULfحnnd,1̡@NdߛKEll-A׌imF}T1| 9ؿjjw5)*39܌Qe%i[-3QLy9%4f1^l b#D `KfΖ͎JJ1p$[Fw/~B^r8*V*sҫP/[kLq 5 fV 6R(Մ|]Kp8+*܄ղ^_>g;'8|;>EM/Ol-yA d$+Y9#5]a^La0 T0sR77P I+fPIޙ'KZI=NU(i"Ǿ =C-Ϥ&fiR. I@Ov>vcFE4o)?4Ĉez?L߄Bʜ.QU zVm rg˷juMW5 }5x9G/_E-}7 Hf~* LwW=ψzz-W(6n_")"_[8ϔ73 L3VYb3rRwSCo]&B[YkaE@@-P"|mI4jIz#):^r6b*ɕ`PM^[.a0&ځZYkK_Em;j7ؒQ+}U/elRF,ʒiFU>^桎-I1:L'|n:vj ќ)df$ÌA@oH`!|SBPUf=e%W"'=vu^r[3f_iV( 2 i " _sc*!,ؗ9=j"!{| KCuRWdX*.7KzoGKKUBPB!4mU6,C,-ӔmߗIT_Gs3 d`>Sz) ç _ }k|~a'T7S 3n6wَCYD7}+B6?\$#̜[2+{zEWo2#ibE?AukiN{ۊՌY;OqqP;>ҽGR Gׯa@3LS@+pk Kϒ= qn|3s@\QˠuׯD @K@fTfKrU-@*DъbQ94*1lu˫",976zPYtD~_Ćd&%5LZ F"0MoQHOٙz .1# sc|.`63 $<(E]l)\8jgӽ7gK8JG8H;\7C!B@}Έ~@^0_FdZ8 &0' Y      f!9[}27nSl`G%nko>N5)kۥr'[o4i Vd 'eM EzBBYy^:t|P/lT\PYjM I [9^w$voa? [W\m[ 2 ҃@pb7A)!a5f`Gd&V_u"w0+(sfm9m:|'ϥl g6ȠkF hcA1И4zū^=MU8Y%^8MIE0~(‡ `if͋ c2!0a-VuyNz6Ķ*OQ/ A?qڮ8\krT"0!@,EPc􊕦/zhuWw jO\g. ߠ.OPͽͯS*:F@G " (,hâZ# 肟w| ˊ=qP6z+}q }, D@dp@hD ]9m0i?b *dʇ5FT0sR7/h#ElaiΓeIbs˦@3j#%s6x0~ D@&G'!^*oŃ%0ѤDC]J"XTp,h"*3Oi@% HhTP"|A@@@@@@EEE k [= тLkbVtu$ӦO,QQ~5͛m)Q3r?CMl7˪B'C%yxgc^s4\Fh2=shcuQKgaG4my.CtW=ψxz-W(/rg7ؖ2 aӊiãڶ'W%.6#'uT axze8ϔ7~ u W/r2gԖ\$P+`4P\[.aQK*'`W63{ђJ?\gA 0қ eC=!Z82&4RNu't*.9+$ޠ|e|uCD7sߜ3hDH@Nzu m lDI]gf_K>i] 7d7f?o{׿//r@A@@@@@T̙ ,l#PoQ-C"c4[mF(V  ,LقeotRs{/f9ќ E p^]8DٙEt稾baq!G#-<& a4 :0r ׀ 0 (sld_.y=y!u YPXʴ)"܍542&A`Fe$Wљy$Hl9oN0ܬ_\]Q6¹ &;Λ!j<i@J`f޼v R6\i$3|#LD&#Y,,8΀fhۥp'[fYS&P="Ѿ#k),RP||Óed#p  ?8 `>PfVlzxfkly^:t| t;-y j5ķE3G˽q{!UCӌo޽[׬(ȒpdR @xN"d@TXZ'D-j>I X;o D\l-2K-jP@@0bB)!aBMeBwn~$A$`!*95D>{&gQcNztXhcYLy9%4f1^xO|o~.e;h81pDk^6H@HyjXVǫ൭V^[[{sϭUmji}pXzZ{) < f;Gll%D#rC%wNuG#o߹T|~x;NEؼ#"6G䏞4"_l\_B h.`0gtD9⻉C8+g["ݝ)YʹHQ}a^YD~2e(ӔR.{$;_'}ԏ@o?za>H}HPo/ϗ6{Mmբ2,̙.f3^JksLIMR\8NL-]?-;tie![Ɏi{V6V7vJG`?nǖT!ڇN`r&A~C17YR4I.peon sJ?Y^` `=kz~KxZ;wLk3I   QAWs$nAU( #4 @@z'u`0UĀK(>c@]  `}!#ǏO"`0g,"   pq):ǒfC(wCU&+fHI٘u=}H2o-@$&AS  k%`CfLW-2Jyܬ7z3*'g++Ȉ<,1Cbr7`c取QQ-u ?Rh1 p3 cܢRO@r0Z ń8׉  G@@#95" ^z =` 1m rRyÆ<3.@`?Ldž*`P^ G nEjTvK^z33V?t䴿|//dׁu!Y~RTPtG *Q1 T@rU|V%EΪUrY KuC'a#J:|mz-Oz`ѻ KHd#`@ǚfE>Ħ8*p,ƧA:cݔYˑD2'`.yԌʠl M/͐cyYpT!Cg-9\(/&.=>,8zL(_d^ԄXh͜X21SSrWŔcń ݌-0C3sf(S   `s 8@@@ .4C:H >ybG2\rAy\Y"-G3ڕ;Tjv \szgEYkCѸ(jm;-C*qW%#0ɫ=O*92$l9m@I`0tD }o[{JBկʤ2ĝز5;v3ŶAyQQW_XLZBoA$VvYS ^ħjV.Kl%̲ 3SƯ;yv{Fn^TǽsTLǻ}L9peoGd46p!#`@wc/F 03RH!LKϕS/~8r9M<("_&+˳tϕsK937$ď@ ")rWp)>:x[}y<#mo\f`.}t|e-MǤ _nSnSe\HG*U9=@ \?-;tie![62JFMFA LP=o h%7M;~;dÒIr܇-a"`[91|&8sթ s"}~{:L  8~aU\4[PU9J+lBH-M@@8~Iy]u1 \yM.}FK@@N!#Ǐ."EzC@@,! P,M4s:fC(w#U&+fHID?!keP~̟=)zǯ$Q Ͽ$69KwG nꍞPD=AeƥiyۣP[1'<ۇ)矑ml,`ܮe͡~:n>ǭ& Woi1TS W\N7 @b ϠfQ,S';~ #Vm@ ].Zb{bx rGT2b<ۇ)矑ml,`#VO,~Gl$TkS#(}RfrZ oRTP)s;YB/@L~T+#&`?kTo%I [yƲ+Y@~.[fOFխpf+_Da~0 F+/u% 4 @@@̽a7-/ݺT˓@yiPIX{RZZ'fD8 Jé@|5D2[-̞:^mk7"h2 гYI,y2<8=huܳ˚KvrmI{[%\?(eCgɵ_xN2ҝFoیj0D ٟE-͘0F{yHf-ǫ)֡ vxn[{h v=(>hcɧ|rj}5@N`&ٹem%;F#pF ٟtv`NigUHa^H@;6_dȳp^×yowT8=~Gu6N ٟ% v0G#@Sa +;S%i23otii2~jsJeKNK|H秽u\w#=2]^P(9sF㑇.͓ӲERiɼGeoG#ٙκS7F]$Z ٟH<3~K5*QJ zÏ?.3TY0zPJ~W[T*]dojC6gkE}ޘ2!& = `n"Q_L Z"o=};~j/Pm4S5?#lcuV$bLP]sY_Posrgxϑ  j9O>{=Rl۠iwL<#`?M zH,{li 3׼ëj'3ޥnj&/>t'= %ErVP=s[sn%}ʣ|RV&wϱ%j_uo 5R?J.uoϝiɹ. &nw*9W&/d$4 X{DA[>HUPd"Leש4/M@ʵxrS~0a ߅S^% '`_YE~{{E>/';jX֍PVDK Xq @Ni?3D<3ń  U9vq!.WU{B9(Jʐ6Mo.(O+"BJaV>2RyNqDD{횇`f).#fIZCH !pFoH5*ocOʅyz֞#o+VbDP^XLZBmӴh?Z-P^?:suY  \4\P.rs9   R R;h    X @@H)s)4@@N\tN    D'`.:'B@@RJ\JuA@@`0k!  )%`.    0Ή@@@`0RAc@@@ң[!pIަ^z]@@ ulx~QB%_^ӾWb)   YF*   @ pf΄K艖>kZWsA9{Be_>?u'? |תdOoÊ_"' N v@@@\fi^   xs   V`0g^   xs   V`0g^   xs   V`0g^   xs   V`0g^   xs   V`0g^   xs   V`0g^   xs   V`0g^   xs   V`0g^   xs   V`0g^   xg dIDATt [^n,bo;t7f  u\^9|9q~X#. ȶ{Lӛ=:Aۑ*)@@ OewDȩMMhE:_x]^y{M_/O:ᅣE@@]y}Vs?Lߺ5%0#*c y%?7;oiȼ-u{ChO 6F@0T@DʻWʫ|ح)cet^tV*i9uߠ Լ:S照m~& g  `Ao}@dpaQp5+v`0$5Zr*-N̛5Y23Yh3I  XF [^hwR-_Xޛd8pqmsInv'r2gr$@@,%w.9w<ĥv1Z)* ę߂V-tHQ= KoIF[nZ@FKAZMm$@@,#0cybDWg29~Euc{կ@Ù牨+IS2;G<쫲'dP~V~m& @@K L;b@ r8 Bne ' rUk9u-ڻE]ۄ@@cA牊\$ϔN$ 7sy٢. Om   ǏDE9HT/6[ZeE3SiƎ& fOuYxo_@@g9~tF'*J~3(3鉚U3f+ )w\8lQ} VP  U8~JO^;%Og44JWEDT䨖VygKm& @@Gpn6$H.L0kYIVB7(t[axjj>Nj9~(H `.hWu\;o =_NF&N-dp|]/HC@Ha[Ӻ?FNJ:u_P'iÍ ebHQb@-  `ғ`X_JG@@ nR(   `9c})@@0D!  +`X_JG@@ `0g+"   ?*TRktIENDB`red-data-tools-unicode_plot.rb-b4b6a31/img/scatterplot.png000066400000000000000000001142021402627751500236600ustar00rootroot00000000000000PNG  IHDRJJk iCCPICC ProfileHPTW{mޖ{K/ҫ(,tX`"6$"" * EbAD$(1X$1||g;{@a&''$rҸ>Nv:n@4l厌~ ]-^?&ȎLey!Ne%"܃=+FX!3-ǪHoq:ޥE3?YL&7bg::u9Xb0H45xljDf_5x[0#)!Kwḡ.3-Ą?9q)I q.wddD`"Xd DvZdV#)y+76:&nb$֤݅|\]?뮲$FdTW7cs3s@]2@^ c`lp-b@"w&A>(aPIN\Wup QLi,` D8$ )A>d YA;CP4āҡhT@P @7a4 Aoea, +:)l ~f8NKR`AkC HFF{z>s[LMMLMi^E70fvf;.}476O3?kEE 6LY[2-k,'VV'&嬙ֵll663jql_q{}CSGyh'#mN=g7..,&W}nd7_ g\nJ9;=!'^*^)^?yc+R}|}=WO  h X ,  t;X"86+RaMӡFcU6gmEbK–aa̰sU'Qb^mإHȒș(˨hCs11e1؊qqqK k m!Nddd lUߺoLcXzsrvLn^wμӻv5&snnI={vM}MK>_>7|o~;`}  u WXEQ;h}D$dǡRziAaoU!I?2Q^uT聣1vmURU9Z-]]X|"Zڲؓ'o}SD}aNDOc_ISSTsq ܒ2w*i]Z5m"mg3/~asZT^ulX >zۢ'.](|Rޥٗ{{D_ }t5>knn\w~߶ n<VmF?>hHxaÕGc<xRTi/jMO\xk審N=RM?/.ϬdV?}ZZ2"PQQi uU|MYW(뾘1Hᩛ 8qOD/R i9kmmu\$%Ӣdad@ZgXDAш];i`9 pHYs%%IR$iTXtXML:com.adobe.xmp 842 668 EriDOTN(NNG 5@IDATx |T@H AªRD b* .Fb ZJEBk*jUkXP K&," l"?3i#L̜{~*sݹswzO߼yI /@@@W Bɵ`@@p(H@@@ LB) &   @D   aJa 4@@@ %r@@P   P(   @RM@@@B@@@(@h"  J   &@B@@P"@@@0 0   9   P(D@@(@@@ LB) &   @D   aJa 4@8|PP筑.?s+Q+t2:#\B)Ĝ+ݏeŒ%=Βv<DtDRܨ9 K`EY&_{hT  %\ &G`/οK CRn-wޙVꥻv!CnVM㏗_'?FVc~n_6@-@tl#z  $hwoZ5噻jՒ}7Z@"%m|{| nHF:d I!NH!5kxzeڏ"u?꾋;){~U/9;*/Zq|dWȟS0a53b%? ]r]J޳Χᆴɟ (< @ ToΐӾ.WgI^_k":Ŏ=ޫcn '&[\62⪞:U=ޞHުIs*'vdbT^(~/|.d M@ rpx @ dӋ𗽨Ҧe~dw#iJ*GO܂6ws޷wWЩ폽"K}"6ݐ}+F̹  Db#@WFET |.;(~JĂ.삫ӕYS:lL)"J-k=:.];%O]zh~r5:qΕ]:i!ZTV-z?\ ]N춭NgH:~ݭ}*Poo<93CQsiny=;_D?@J *k3B[!sN?YFm=hฐ<9A6[(+0g0 V;B_28 SoeʴgݥKnWw*z̹dwv/DA%mJ/f(o^ްmgh(d? @(]@rb~T=s8YnҐӳrSW)W{d}y/S;j=!ҫN=~>sbKOZO+*Z'Jvﮕmz@.@TuCF@o횳]Yh=hOpGv` ?Y~zѹ%ox??Fȧ2`y\+b:T;ZBSv<@ P(y' 1^Y1e޳/_|/X~{9l#aoGlv;4UG|N =><.P =G&@͉^  g&Nxзǹrxq/_T[G_pv[iPh}c_u~d紕_ II3ϊ:![==^~ @ :Jqd@(lpݚl[Nk)w_{֗o?Zv6 g@ 3<]?KȟN/Cr@XLJzvhyJu"/ `W@*f6[p~Ϩ}?غ54wײw?'^K6NmX&WMv|zDVg /ph=T듥?w̵BO[6nY2ϦrMVN}Z&!}J=צ/*9Q,˴k?{gΜYa_ៈQ(9, Rh+^(+RxsMJ:vBi_)V!QW3N^'!9D|=U?${SGAR̉9 O"RjIrݤ[okˎ/*.](߼]2Z9Ԏe(wʝGyReԊWgXy+(wB!@e΁(س[Yc[^>%YitSIlw~?]:L[-L7{;V~?4kbWEmxWu\ y1g^Ctհd [Gb/UT}uvsE[e?|Prr>͊}:'J6-[VFyٳے\sY7k @( )Y&{[8K)~]?>Ni=NUdWZa"..ի`= ԰'EN9<5y:ݬ{ӾCۃDž$גF Y @ Jqd    \%  qP+7'C@@ P(*1G@@R\9  AB)W9"  @\(@@@ JAJ@@*@WnN  AP Ub   W rs2@@RsD@@ P(ŕ!  @(p#  UB)ܜ @@ @@@@ Jqd    \%  qP+7'C@@ P(*1G@@R\9  AB)W9"  @\(%_0H' @@|'Z|>%ͫ2Pc(_\BC@b,@c`O@IT ru'ކOݩ#e}|QqoK2}8?~,;;o9 HaP(y])PR(}ɲ3f  W3o6oP:'R\9  BBIe$(=@@HJTاJBI$@@ .Jqa$PJ>F@)@Ƭ+ @T," 8J$z %@@ P(E&@+|@@ P(1* P(U@@( 覅Ld'^@@JU7d P(1=@@J>(L)Jd4@@ %1R( TBBh, `]/f ABW9T `{8ϣw絏@@ y+g?,zu9/;fTx`[H"*OO)7>3? 䂨   :^2G~g72,R( tS(Eϕ@@Z׏JZ3qiMJrp  1)qM{[kvb+pP&Y.KrUΒRvlO O)|pDO'E3WrnJnrf0I@Boޗ¢\ +{HZJr>#R\\CfɳwZV-&G;&z%98 (0qR2o^FZ<2jf0I@BY/:f.wܲCԓ~Y5@Lк~4PZ~4i@/=yg=S/ W+3Om.y:j:}Y?; :3Nn&Lx.[U/'ZjMh0  @Re.?mOO8oط[/IJJroAA3vcmoZV.ioʹmOqU=4Z=D   PJ@BE̅{w޲t`P Npr?V[/OR/":oݳo_U=$ӚQfb8@o+?`ALк~P*')#K_G8yz I ~ݲhzgo~v<_֚a@(ؽWƼ#_;ҍ.v60R@BT:oؖ/G~Ç[=k OU1wiNC-?3ON88YҤQ%eNYcF9U=ޝH7&z g.7t%Zen @$G x"UK?*; u_\~Ok{6udqrØ䥩󜡻u8M?ggGkUiMp< PZdTyn @$G x_JK1/ҶeӐI>3gMW_j=\7>,\N6aG͛ȺIsz|ȉКQa@Xiuʳ{u+z `#G_GH{cڸmɵkɛ!:ufY6=2߾nk~޴ūק;buz|Dk[kGˇq@/v˦mQj=iݼqnDк~P*'/Z%iNN'>.U洳~2/Prvj.N~R؏_}}>g;DoZ=L   #1R|ފ5?JV3;^l_ѽvRj[ Ib?Rߨ˞ݳ[r;(nhM(1  @)G RhJ>UzeĀN[y٧,P!λvYn]n#;&zY8(#`vqNֻmZy )Z׏J2~ȃUc>O+z~i__swC~tm-Al6ˣs{~Ye灃)uHtt~oぷ72ov{M~.nޘ4gdoO]'UA5ѣHP LX.XJ4H17xp 0J@B~ѿHn|t~(e2WcҼqC%i7N/^~P2:mS(NOJ%TqD .FM6 IZ׏FJya߳rI˙m~R݁ᄈCf,^2gwY]!yr[2'}'5l>B IZ׏J?JJfzzXC [7}mjCvM_yKRRRH2XZ= 4 2؁(к~4PZv'T5U^,B :|D&Z*o)eսHrZ 'F)uHȬṵ&X gr4{AmdDvO `#IY!V!t .ֺ[en @$G %CZCtA< XF^sguj'C& rG %[&zE'PXT$3O6n͗ K ϑ5w!j)ԦlӚ(@@c h]?R(mx]C}#&@  к~PHw\~3N/{\ӧQ"  @e)*JѩEX  @)ZD2A@h]?R(ѨD5ѣ  G ez]rUΒR6> Z׏JFу֚Gw@ m[ɭC.@(к~PR AkGӈ@ʔy+\yd `#IY!V!t ۿKrn @$G %CZCtA< }݇[vHzz/>hк~PҔQEkG!@@"h]?R(E&Қ&_SbG@b)uHˬ Z=)#@8r2E@ 6Z׏Jɗ5{A8R`^B|J7Dڝ̗seR @)b9_k20]3țWl.Gfm6@)LbjMt,e2yrfz'T5U^,B ^Y+O_VGpy 'Fs6l-&_3+ڏJ(#RB'ךfF d 3fʘy< L`dO7Li#.uHl9&əPidzjwmZ6{wl j,_;|N2$ G Ddϩ5}L@ 엱ɦ;%-%YF-4`$L&.z/X+u2o'头#RB'ךfF ARRRP&P\\d/fuH$&   K@BIWV9^e@@(uHrSk{Eb!p8kؿ"Wb}WV,NŘ )|zD"gC9sˤ0vh##{m6@)LbjMt,0>w\*3]Fvl & h]?R(b՚B  Y`Ƣ5Jn?S;گf0I@Bɤ,D:]@EE2Di|iܰYhк~PҔQEkG!@@"h]?R(E&dkSF 2@@!uHt orq~ޛ>M# ^@@ h]?R(U LS1" к~PJD6ZL @#R2ךїbD0YHaL\6XOkX?YYR6@`G %:RZ=RC*+;Jgm%q hG @e'5ѣ/ň `YKeʼ.AFZ<2jf0I@Bɤ,D:]@s~O^yߥ}ka`o `#IY!V!t ž-;$A=QjXtD4 h]?R(i(Ģ5ѣ@  )"\lwiMt)# к~PeplK@ tnKJJ l" G K`G՚聽 L|)P{y!G v ]"Nm˹2)@ Z׏JΜ5v.\K+YL#6 IZ׏J&eX&xxc2&gj @{d,#Se0Aw`L^p:ҷۓrRY CB)i忓kMtI3# Pl}I)))IC(Ā(..Sֺ~PEzgZ?@%uH+OD2   Dк~Pxݩ5ͽD8tLTRHK{w+P+bL@Z׏JONPkW!veen];=6 IZ׏J&eX&xPf.Zo.Gfm6@)LbjMt,0cy%7թ m$uHdR{Uk{. g¢"a}qk4nX_^xԬQtD4 h]?R(i(Ģ5ѣ@  )"\lwK2]C}#A  к~P:ƅ7q9sd8a|MrM/  @)*&tѩ ׎@@Dh]?R(%"||Ncr Z@B)ikMK1",pP&Y.5,W,)ukLB `#I)t)V!۶[\V8#R2ךїbD0Y`⬥2e #-E5m$uHdR{Uk{. go'/Ҿ0f0I@Bɤ,D:]@EEb~ޠ(Ox:")4eibњQa@@Z׏J.ɻ&ה@@X h]?R(2k8D` }:%%%`L#Rl%jM^&(ؽWƼ#_;ҍ.v6\fvy}`jfY<還uHдɵ&YK+Zen @ V׌e?8\'m'bCB)sjMt35ݙgʃ vl {YXwrsv"6)M>>D19SC ۴ݺn9EqN#a 4Ow.qn+*>L{ۥ##RB'ךfF t/v˦mQj=iݼqa  lk%N3ltnguH&   G@BIOF%A@(#uHTRCk}Ub!`vqNֻmZB@B)IjM r&0A`\).>~Ye:1"e)\jwhMt*#@&X,Srm*cn. `#Qi|`&# ]idzj6-=m6@)LbjMt,{~;~lھSRerJ $uH)KD C e/)%%%@$G %CZCtA@#R%A!Z]5#6@@ Z׏J*[k)!@>"g-2R]$NG@ h]?R(U>'T5U^,B ].f/sߵCm$uHdR{Uk{. g e梵nV2zdf0I@Bɤ,D:]@3WrY~=6 IZ׏J&eX&x(,*'JKH=OG@@#,B,Z= 4   A@B)6ym$c_57bĎ  p G c\x3G$n" T@@BI`BWp@H#R"Ԛ>&gj  @)џD#"G ez]rUΒR$Ď h]?R(ԑBךbe PYQ:m+ue@@ h]?R(:-?y})FD&Z*Sp 2RQC6 IZ׏J&eX&x{b[n.[ {m6@)LbjMt,PTT,wn! IR# I@BISF!@@ uHbKk|M@#R,&ckM^ ws]RRRf@h]?R(&_;Da K{e 9_S(8iwj3_ΕI!к~Pul|t@\"o_βUf@Lк~P2)=Ī5=N@-6 IZ׏J&eX&xXiu),*rEqhк~PҔQEkG!@/v˦mQj=iݼq{4@)LbjMt@@Z׏JH͇hMt׌@@D h]?R(%2|xnCjo۸us]6- G*/uHTPyDWy &zfyt|?~Ye%l>H#R"ʇ֚>fJ ` 3fʘy< %uHdT;X~xxu"=M&rn @$G %CZCtA< ޳_Ǝ&d9,tD4 h]?R(i(Ģ5ѣ@ @bKJIIIe0I@Bɤ,D:]@@*!uHTd|D|͈ @H#R"ʇ֚>fJ `CYK-wIS+1 )<( >,; H-³Z5ӂB˧uHTZGk}Q .3wLk62"fX ,~q{)Noy\qFl/uHTZGk}Q .0>w\Uf@ sW++֏sO8\'m[j]?R(FњF_TG XF^sN@ +?/sW瞢CKNm6b+Y_G =ZJ u¢"a}qk4nX_^xԬQ=a@" YQZ- Og O+b YTG =ZJ  @ )b4A^Mu~r߈AA 9# I@B)N ӌ˙#ƙ$3O@@h]?R(% |Jٜ! Aк~P rV`Z=T   ` h]?R(!Z=$H @9eԻ^%n* @0)1D#ΰtvVrˌ h@@BК!A@(0qR2o;JFZ<2jf0I@Bɤ,D:]@s~O^yߥ}ka`o `#IY!V!t ž-;$A=QjXtD4 h]?R(i(Ģ5ѣ@  )"\lwiMt)# к~PeplK@ tnKJJ l" G K`G՚聽 L|)P{y!G v ]"Nm˹2 |>g|gԬ^Ov{ZZtAOĈDci]?R(EH@wiMt)#@^DޜUf-0YSnS˵}r6RuHLZ=)#ޘL&]03=UefC@;wǺA.@ ~?G Xfr֚L|,nvֻ)RXT2W9>1S;8qv|h8OBihZ̫I K/v˦mQj=iݼq,O>j&QVR4FpLIOBI?EMkWC@@<h]?R(y&uњ&]CbE@)uH, &z"Ln֝έwڴnU>+X-6dUu8G Z׏JNO^kG_@d6ˣs{~YeL7l-&_3+ڏ}zQXޭuHdtZ ^k= @&X,Srh*cn.H7~@}{)mdv7}XwMX>&uHdb6D/'dB*,E2=o{\M6j,_{dpIn;>;,׺~P21ˉYk2o!ؽg?M6m)i)2r`o9YF ;K&/^ %ɔݞΪ`8*ĔzGS`Z׏JJ4ZahMh0 PZRRRR]lQ3*M[qQBɿ9iM`rR@@G %"!jM@@#0D7$M#2qRK)#-EL!~к~PS`.ZL ].f/s#ڡ@Lк~P2)=Ī5=N@܅2sZt=2m$uHdR{Uk{. g+ynNdhn @$G %CZCtA<  [qsfꞏ# I@BISF!@@ uHb^Mu_1dbG@8#1.io˙# {okt7x@@* uHT$0֏NMvĈ $B@B)sjMt35@@ Z׏JNO^kG_@d#2yr`=adWgI[dbG) NHkMH@(ݶ:q @)џD#"g-)Vi)Ȩ!n @$G %CZCtA< }=y1-冁6 IZ׏J&eX&x(**_VG}b $uH)KD C  Dк~PpMޥ5MĎ R@B)Y&z/SF;pй.)))e @l)b/Uk0q@2/)nt;/I}>g|gԬ^Ov{ZZtA,NŘ>$xJZ׏J N,^k͙ @^Dޜ Ufo_3Ffrm\͆n[贮)* њ/!@ޘL&]93=Ue־#ݱni)m6t pu_DuHTlP|DW|  nvֻ)RXT=W9 IbN%έwEG tpt>cdb&Y.;OuHԋ&z|9 nٴm4J'76!ڳIv:$ѹ!/+#REZ݀KG  @B)N=D83C@-uH켌&zԡo۸us]6-к~P27#F5#N@mGJq(.>RIDATq lG `eg5ѣŀ `eUAӌTs9wg)H$ @N[$ViDm$uHdR{Uk{. g{d,#Sex> &G %MYX&zh(#Pl}I)))~v & h]?R(b՚B   @%)* њ蚯! к~PJdVZ݇L ,p8kؿ"W"uj8"^kkAݖrYwHi^WOBIeV>(^yD ].f/sڡ@}\-˻>Mк~P21ˉYk2o!Pf.Z*3]Fvl ^+ǹ6Nm/u&nh]?R(Ĭ5 @ XF^sN@+?/sWءϥWݶZ׏J&fs91kMrB-@EE2Di|iܰYz@QYn d| R: $3ֺ~PbhJkk6Ā Q@Bɏٖ9K2 _1(  ~к~P{y~rq75}y@@ HZ׏JA8UGq  Z׏JFу֚Gw@@"uHTPxDWx (PXtXԫURNSǿ:'6ی}ʉ@ Z׏JHMRkO3! ΰrjӞz@9B@B)IjM r&0A`ڇe{sC_ BD?1>K@B)XyjMq0J`oܶE_ۓn;>c|#R0՚1 `@qq,_?Nz[R궐Ԭ^/n>D G @_&5'ș@@)cF5я8@@*%uHTt{D{ň )p𻯥FdIJi$ ")|jDO*gGm.,_|7oI-L7hN)<]~s:iMts "@<#=Urm\ k_G h]?R(U,֚/"@\yD;=gZJkn;?־к~PX5_8D |ss]Q;.9~As"$uHIks%՞M`i&΍i~~ H#RS_КRf6  G %=9H&zTp@@#RKmnU%z@ug~rrSNu^n00d #RtC(I6ˣseuZ<7坏8'/cn,9?'l>[&5LgVyCdgo9?Q]6[Rz0`/%:J=^ϊK%@IDAT ufrERHi mBiWJ6M$ѽ-I۲d2.)̸{Zl.[XRJs|39s}ǣ>|y>3g Kϼn; 紙p[^zyjȿȱ`^W>#l㳲柯 K~e&ro][!x_w{~w/_{F(|ߌPrEu$_g˂f}Rjʓz[}RO?h^fiմ3?ǽ_?l%94_ϵ[JγɄWȏ'3zkҨnwwݞ?_E147)E]`(~18}H%oWNu;dz 9gI5dHߛg?Ǐqw9#s7K|Zҳ+rqէ=u |_ ^x59nu^u5B9?&( 'у= {Ǐq׏/$Կ|X믿9?6Sw&FҚ1  zG %ZZ=4F# z~P5=}@NɁMRbt1\RԞy=X|p#,њ1e(Xыy)I/׾ć h=?R(GkMtGDY sӲn$n/!@hZϏJZ] QX-\??kj:\=)A`4@/ h=?R(y)mĪ5m ldcfՍ^1}+kX??sVAnӬ<з@$H,D:C\&IIφԓNʕ(ܻX>_oIRIzuj!/, e @ )JjMt{EL  )]ZDw1KA@T h=?R(JӒ5K.*plx;ϩKd]([J1Jn8[@ByiMCz/3~6g$y@yP#ʘr0kPfiҠNk" ]@BI{D6m#k>~ՌLa݈K;>_@Ufk%˨TӧxI@BKYl#Vn#t(ehPi݈K;>_@%kdNfYdD;@$H,D:CB*w>IkfJ+BKcWHzx\pRDhp#Rt5KWͻwn9Y*ԑZծ:Dy`X/}Zb%iXFA$H,D:C@@z~P #4Oњ@@X h=?R(2l@j.nC[7hX> #R9rDWY1ظm0=CSKթy#z~PeV9Z݁, \,0cJ|vDn@h )<5ы }ϖŸ́F)5AM %G %/eX&8rL>_v?$I ַ\Z D4 h=?R(iĢ5#@-@R;:@/ h=?R(y)mĪ5m@@0)HS&=#6@@ ZϏJ*>[k;K:w\Vl'r7I)rI#㉓2kj .I rG6_";Sz~PR% HkLم Ey銔ۤ{M3sd5&ĶΦO#FZF Q sӲn$3Fb3[@@({ ~dj4@/ h=?R(y)mĪ5mΐmK2׏47Km4,0{eBԲ i ^z~PRۈUk!! 'eݶIQ(U/W> e.];|>YҮFҳõRlwê@ h=?R(01Mךx@@h=?R(9%awY1!+c  Nz~PrbpMҗʠѯ[+rg1\ F@p#3/(38@@3ZϏJIa{jMt{3 @@ TG P3Ax^ۖ;![&>mTP[npaxDq^yy2gi |]r{֒P!z~PFZ4#Ԡvgari<{"8G8nX  G hd5Kc Vl'dn]b u@@2uf'%L %G %/eX&C򏵏y^1}hzg*S?4[ܦYCyoWӧxI@BKYl#Vn#y}?6 re*|& Fv|z@T^ZH ˺q+Y3 PbG hMt]D4  s)cXDw.@@ h=?R()L֒5Kb\@\}z]\\ܹpP/H>uC Pkh~|uti=۽&)PDF=򭌙.s !n& ꨈ @P)B&m#,4F|yrfrw ӧ[`U&eTZ@$H,D:CI kxYD3')=ixoc(c7} )6b՚6Bg! |vh;5}Gi!݃ض{ws%糂HFztֽr@ZϏJ%H S&ƽ" |ut, Hj~A 8"jaQ}6C$H,sZ&hY  R@BIeD_  E h=?R(|Mk{p+ JY ]{Yokި^)?#z~PrndeZ=&НȜ?7k6@ (qyazO}IN-[xR@Bɓ|&#v+6>+k jB#ӧ'0cJ|y@2!>܀@O h=?R(y*VkF|al{,vrKy@lYuC Pkh@@ZϏJv3#&G0@ J?8)R wtmYt8K@BYyhMòP%#11mHv6} )6b՚6Bg `[`z Yٌ_+YF> @KZϏJ^bjMt3-0{ewjDh4@/ h=?R(y)mĪ5m@@' QڵԨZYzvVʕ-c{>@MZϏJ4hMp @@B) l/_6aL|wE0b`o99@@G b6k/OJ_*Fn=nF@  !h=?R(^[^;bD@b!Hlr3&Y  jG %We5#/;NH r wTP[npa/ yy2gi |]r{֒P"'D@lG W&M]-\?҄֠vga@8(]Ӹ<<{ wF,HऋҴ&z,,K+6U[_2\1Eݺi @ ZZ~i ^z~PRۈUkuC6}cu7NUz}uq`(vLI,M@߮O#FZFɺd9P\wRL%pv|z@T^ZH ˺1֌X@BĩZ].   G %#V5"@@ZϏJ $!iM08wrw!\G h=?R(O %ѿ9_f./_clLvJC{ ]+zM-<ȷ2fr*Y4s@]v+ k %їm#k>~լFb3[-zf.Z%/[o֯,RM %PΏnrPrnEa$z֖fUI OCY`:_tgOQ|oc⬕(c7} B9?ɅBMZe?i}GiQX%p/>_^ K0;!vn|SuzY PKs7RE]~P@#]Y~$T UP3F_KJҰn ]  @nӡJ1wõ&Y  C@BIG~F, 1 n  P@@B6њ, iv=dyz=C\#HB&ztx xE`= OEܫS V^ 8@ZϏJDgg@H XR-`nYzy7 4@SZϏJJ՚G@_g˂fBަO#FZF Al 9zL&N/xIU.S|")4eibњ Y)ŝu  )6b՚6Bg  @ZϏJa$)Z]  KG Xf5H%;.+6JpcrQ$EIxRkpA h=?R(KՒ5KV~dmy޼tEmҽ틦O92{bdpjgӧxI@BKYl#Vn#t(iY}U#-i Y`z YلXVJK5} )6b՚6BgH붿%GY%]Z6}hXI2!vjDh4@/ h=?R(y)mĪ5mΐ|nۤ(m*H+2T. Gy>, |GiރRjeZ)W;a @ )JڦkMtmD<  S)aYǰ SeՌ[F琕 @@' h=?R(91bIKe׭L{A[G# 8]@Biiy  G %Ϥ@&  #R|DWm1 /wBL|Tp#Rj1Y E 'dԻ.%bh/!z~PrDz9gZ9zVrQjP0YOD@gkחR ^B h=?R(ٰ"Ӛaa0Hɪ/1+Ƞ[W> 4 ZZ~΄X=)A`4@/ h=?R(y)mĪ5mΐ6}2]q3qң+OkʔMm5v5} )6b՚6BgH~l$ lF=\J!ޅSKw;>= U*IN-e FJ(HT6]kk'A@"H s:&CxY  N@BI], ^2f# |q-wqqq* G %$o(!jMP '{[39]~mJC,M)n#*)TkAiME-0s*yzBZ2*-i ^z~PRۈUk! m99f|D;@$H,D:C@vn|֜.mGkmg  I@BISF n8ٽTK$ (@KZϏJ^bjMt3@@ G 0Ayψ @#R,ʁ֚fI rv=dyz.# h=?R(*gjMtEP 3 3?^ZHzx0 KG Xf5H͒@3y7jWO1xJ@BSi\|ZlYLhRSi ^z~PRۈUk! m#GeC/i}ʥu۞@@@#,@,Z=48K!s#FZF A@C@B)dYν ңõRlhz~PҔEkG[  "HTf{Ұ Se,2# #HT{җ}߰žrg^# ^@@)BH/ S/1" z~PE69Z, @p#2wSNH r wTP[npaȣpG@ yy2giNSJr{֒P"p1P Ecݔ붿%G]iP0i %pQq}yx-88ZMP )BX7%d̮֗T"n]a4@x`}?|@$c(Bƺ)7}c][;8Ve!"@2n)eiPi ^p1}P Ecݔ~>I}# M'T."ZKw;>= U*IN-ec,DMP(BX#D@@ &ZϏJ1I'>Tk;W! z~Prw^F|Z=P|q-wqqqx z~PlJD/<ڒ]~|utQ=۽*)/M=򭌙.s !n& b,#R3Ӛ襱-65jn]#-i ^V֛JQiO#FZF!2^V~4KJh(v4} W%kdNf Vri ^z~PRۈUk=!Ze?imQi}eZaO`͕(O2oo,OG b_de?kwY/]4̋Z=L! ZZ~μV=)A`4@/ h=?zP7/*6[\@g)s/ȼf?upxv ^t~{E5#a=@kʔOwM@߮O#RP:{DZ\qx]SS=/VޜX5y>"]5`#;O& Gj`d_C~QnD @v|z@T^ZH ˚i ^z~|~nYH|V>s-;?^ ~Wi15M}Hgui5iT壝Y+/#[fL7@GkG[  "B.pie?l] mI\\_Ni? _zR:ū72L+5tiZ=D @@ #RM.rד/Z/>3Lɳ7f׾m\^+xָ[o )|&D0C,;o;xQ@Bl>q2On_֨&֕{$ymBߦe5yy-oۭKfy{vIFZ=R> VLN_[Ґ~7KuA<)H/w;('Qv|_^@>޽׌xs`֛L? _%kdNfT+9Qo4@/ h=?R(?Rⷅt)M.z>ʿ>u;~!Mԓ{GZ`~/+6nf̷_Vl.PGkG ok~Yyj6ң z~P)9q~|(v;d=EǤ]Zm>if_>kO›r2su9XlmD]DAN wX%Vuk̿@ h=?P>t,`+!o{[c͟_C_~miXbx֋γ,O}/:'ό_3YvyE?f<5WH#vI[7?&z  OZϏ/z<?Hq_`V2tj}VG8z>&$⽆z/{j3C#2,* A"n  O@R=<ߐ57;BVnak$U5JjV?]zk`۫.oJoPkMHp@ (ٲ khRSi ^z~t7fqI$IuC•[悃nnsd8@OP>vq*#ij6m/=gSir-Owt~E5#@-@#p18}H%oWNu: @KZϏJ?J%sZ*g ?wyaw%qqqƕt~E5#@-@Y(z~ty.+6Sx)pw!-tLb^[yU+#zw8}t~7 D)  6=](w/;OzEy'p,LvQvQ^T̼  #R9rf(~2︬ɬFb3[@ LX!7JQiO@(G7P(iP}$sH .-G> @@MNF S&2W_`^(& %7VJ'eݶIQKH *Da<@' QڵԨZYzvVʕ-Et@ FcİKIZ]  [G ~IIZgI8n,@@9,X.w?u/_vJ iC?9䪆)qyLL  @ICX|tj[Q(ޑO>](]s%s\#B@p@@=(-&J^  7(ϞBO  @XJa1MJn-֊ 8CB*JQBq5  TBI(gA @@='FXBś@@ P(FOB)z< @"@e'J@@sP(z(%  P4ωRy0  Z %n +@dWq  (NKoJj@@RP*5ZnӅRιm>k  O`Ѫ j_/V+UϗN=87>ZKWtTO  (4*1YJ$  @J1'N~W:L4[䘢^ Ҭa5GyH#~|i* lڝE|%%z瞽b   % (A@@p{"  @(c@@@=J+V  QP4A@@P(gX)  DIB)J<@@#@䞽b   % (A@@p{"  @(c@@@=J+V  QP4A@@P(gX)  DIB)J<@@#@䞽b   % (A@@p{"  @(c@@@=J+ǯtCr^yI2cB>'?Ly?S~Y$?>Hz    p~;ҹmx%/v<.;4_[>9 kw 2o:rO%Sre˘q4@@VR>jCJr>Y`Bid؄f^& n; ˚<ԯ@@O[nJ1y>Qv &ɶ=MԓIHY?.!_x+G6g    p~+嬋Jgp!EޜLZ|q_\Oͯ3stnul2L+5i  &͞='FCdO?|\ˠgްFW(y,y/3e.8_m\O?JOXGWFӧ:  8ٳPĨslW4/=!/>5BisY m^&YG[8@yB7o^7ˏk  @Q(sbT+ujTKmJyy/su^[\>&ϗ_QjUK>Xzwj-3  @qߊ y)`ER(uw~F ~]ͮfWbyٿp<0-:-{E@@BVR.\ S /}}I ~ݽ^-^Vl&/͘o]nM6c  /p; ]@(_hMn|4O}4xZj7Y# 'e )eߋ%n@@@HoP(♫݇l{ۍd96/NQmu~Ax>}r˯kk&ˎ9=#_>$"x5WH#  @8nHTgbNIDATxY_/- )ߗգ} IQ ~xז|LM-Ic{ +/ϱƥvn+>3q @@ oQ(♫x/N"ժT*rl(_hCO1?{tHzVw?*^ ,ӄa E@@8nFT W ms/OtyqR9B'1vӯ$糮r~A@_[vJp5LPigyҌg/ojc쥫$^u.6}  %VR.\ A߯2׭ٍזfLw8 4owܲúX#6% ?Ro;{ꭁm\P  PoQ(oĈ"vfľù|?M.{)k%˜q~1-C+UH捭~֦mrkSJoh4@@BfόBɞ!SfՂkV"{Ub>qZؚWawߒ:s }@@"8c^P243u<ڻ6SC~бvxomvU/ %%  Po(91*J$Ք5F<@@ 7 p9   ZBI  #@s@@@@%8@@GB)5   j %Kp   R8jA@@J@@@  pԘ  (To/!  @8J1@@T P(^C@@p(Qc  PR  P(@@P-@z{ @@P G9   ZBI  #@s@@@@%8@@GB)5   j %Kp   R8jA@@J@@@  pԘ  (To/!  @8J1@@T P(^C@@p(Qc  PR  P(@@P-]}rzIENDB`red-data-tools-unicode_plot.rb-b4b6a31/lib/000077500000000000000000000000001402627751500206005ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot.rb000066400000000000000000000011031402627751500236040ustar00rootroot00000000000000require 'stringio' require 'unicode_plot/version' require 'unicode_plot/io_context' require 'unicode_plot/utils' require 'unicode_plot/styled_printer' require 'unicode_plot/value_transformer' require 'unicode_plot/renderer' require 'unicode_plot/canvas' require 'unicode_plot/plot' require 'unicode_plot/grid_plot' require 'unicode_plot/barplot' require 'unicode_plot/boxplot' require 'unicode_plot/densityplot' require 'unicode_plot/lineplot' require 'unicode_plot/histogram' require 'unicode_plot/scatterplot' require 'unicode_plot/stairs' require 'unicode_plot/stemplot' red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/000077500000000000000000000000001402627751500232645ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/barplot.rb000066400000000000000000000146221402627751500252610ustar00rootroot00000000000000module UnicodePlot class Barplot < Plot include ValueTransformer MIN_WIDTH = 10 DEFAULT_COLOR = :green DEFAULT_SYMBOL = "■" def initialize(bars, width, color, symbol, transform, **kw) if symbol.length > 1 raise ArgumentError, "symbol must be a single character" end @bars = bars @symbol = symbol @max_freq, i = find_max(transform_values(transform, bars)) @max_len = bars[i].to_s.length @width = [width, max_len + 7, MIN_WIDTH].max @color = color @symbol = symbol @transform = transform super(**kw) end attr_reader :max_freq attr_reader :max_len attr_reader :width def n_rows @bars.length end def n_columns @width end def add_row!(bars) @bars.concat(bars) @max_freq, i = find_max(transform_values(@transform, bars)) @max_len = @bars[i].to_s.length end def print_row(out, row_index) check_row_index(row_index) bar = @bars[row_index] max_bar_width = [width - 2 - max_len, 1].max val = transform_values(@transform, bar) bar_len = max_freq > 0 ? ([val, 0].max.fdiv(max_freq) * max_bar_width).round : 0 bar_str = max_freq > 0 ? @symbol * bar_len : "" bar_lbl = bar.to_s print_styled(out, bar_str, color: @color) print_styled(out, " ", bar_lbl, color: :normal) pan_len = [max_bar_width + 1 + max_len - bar_len - bar_lbl.length, 0].max pad = " " * pan_len.round out.print(pad) end private def find_max(values) i = j = 0 max = values[i] while j < values.length if values[j] > max i, max = j, values[j] end j += 1 end [max, i] end end # @overload barplot(text, heights, xscale: nil, title: nil, xlabel: nil, ylabel: nil, labels: true, border: :barplot, margin: Plot::DEFAULT_MARGIN, padding: Plot::DEFAULT_PADDING, color: Barplot::DEFAULT_COLOR, width: Plot::DEFAULT_WIDTH, symbol: Barplot::DEFAULT_SYMBOL) # # Draws a horizontal barplot. # # @param text [Array] The lables / captions of the bars. # @param heights [Array] The values / heights of the bars. # @param xscale [nil,:log,:ln,:log10,:lg,:log2,:lb,callable] # A function name symbol or callable object to transform the bar # length before plotting. This effectively scales the x-axis # without influencing the captions of the individual bars. # e.g. use `xscale: :log10` for logscale. # @param title # @param xlabel # @param ylabel # @param labels # @param border # @param margin # @param padding # @param color # @param width # @param symbol [String] Specifies the character that should be used # to render the bars. # # @return [Barplot] A plot object. # # @example Example usage of barplot on IRB: # # >> UnicodePlot.barplot(["Paris", "New York", "Moskau", "Madrid"], # [2.244, 8.406, 11.92, 3.165], # xlabel: "population [in mil]").render # ┌ ┐ # Paris ┤■■■■■■ 2.244 # New York ┤■■■■■■■■■■■■■■■■■■■■■■■ 8.406 # Moskau ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 11.92 # Madrid ┤■■■■■■■■■ 3.165 # └ ┘ # population [in mil] # => nil # # @see Plot # @see histogram # @see Barplot # # @overload barplot(data, **kwargs) # # The different variation of barplot described above. # # @param data [Hash] A hash in which the keys will be used as `text` and # the values will be utilized as `heights`. # @param kwargs Optional keyword arguments same as ones described above. # @return [Barplot] A plot object. module_function def barplot(*args, width: Plot::DEFAULT_WIDTH, color: Barplot::DEFAULT_COLOR, symbol: Barplot::DEFAULT_SYMBOL, border: :barplot, xscale: nil, xlabel: nil, data: nil, **kw) case args.length when 0 data = Hash(data) keys = data.keys.map(&:to_s) heights = data.values when 2 keys = Array(args[0]) heights = Array(args[1]) else raise ArgumentError, "invalid arguments" end unless keys.length == heights.length raise ArgumentError, "The given vectors must be of the same length" end unless heights.min >= 0 raise ArgumentError, "All values have to be positive. Negative bars are not supported." end xlabel ||= ValueTransformer.transform_name(xscale) plot = Barplot.new(heights, width, color, symbol, xscale, border: border, xlabel: xlabel, **kw) keys.each_with_index do |key, i| plot.annotate_row!(:l, i, key) end plot end # @overload barplot!(plot, text, heights) # # Draw additional bars on the given existing plot. # # @param plot [Barplot] the existing plot. # @return [Barplot] A plot object. # # @see barplot # # @overload barplot!(plot, data) # # The different variation of `barplot!` that takes the plotting data in a hash. # # @param plot [Barplot] the existing plot. # @return [Barplot] A plot object. module_function def barplot!(plot, *args, data: nil) case args.length when 0 data = Hash(data) keys = data.keys.map(&:to_s) heights = data.values when 2 keys = Array(args[0]) heights = Array(args[1]) else raise ArgumentError, "invalid arguments" end unless keys.length == heights.length raise ArgumentError, "The given vectors must be of the same length" end if keys.empty? raise ArgumentError, "Can't append empty array to barplot" end cur_idx = plot.n_rows plot.add_row!(heights) keys.each_with_index do |key, i| plot.annotate_row!(:l, cur_idx + i, key) end plot end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/boxplot.rb000066400000000000000000000121241402627751500253000ustar00rootroot00000000000000require 'enumerable/statistics' module UnicodePlot class Boxplot < Plot MIN_WIDTH = 10 DEFAULT_COLOR = :green def initialize(data, width, color, min_x, max_x, **kw) if min_x == max_x min_x -= 1 max_x += 1 end width = [width, MIN_WIDTH].max @data = [data.percentile([0, 25, 50, 75, 100])] @color = color @width = [width, MIN_WIDTH].max @min_x = min_x @max_x = max_x super(**kw) end attr_reader :min_x attr_reader :max_x def n_data @data.length end def n_rows 3 * @data.length end def n_columns @width end def add_series!(data) mi, ma = data.minmax @data << data.percentile([0, 25, 50, 75, 100]) @min_x = [mi, @min_x].min @max_x = [ma, @max_x].max end def print_row(out, row_index) check_row_index(row_index) series = @data[(row_index / 3.0).to_i] series_row = row_index % 3 min_char = ['╷', '├' , '╵'][series_row] line_char = [' ', '─' , ' '][series_row] left_box_char = ['┌', '┤' , '└'][series_row] line_box_char = ['─', ' ' , '─'][series_row] median_char = ['┬', '│' , '┴'][series_row] right_box_char = ['┐', '├' , '┘'][series_row] max_char = ['╷', '┤' , '╵'][series_row] line = (0 ... @width).map { ' ' } # Draw shapes first - this is most important, # so they'll always be drawn even if there's not enough space transformed = transform(series) line[transformed[0] - 1] = min_char line[transformed[1] - 1] = left_box_char line[transformed[2] - 1] = median_char line[transformed[3] - 1] = right_box_char line[transformed[4] - 1] = max_char (transformed[0] ... (transformed[1] - 1)).each do |i| line[i] = line_char end (transformed[1] ... (transformed[2] - 1)).each do |i| line[i] = line_box_char end (transformed[2] ... (transformed[3] - 1)).each do |i| line[i] = line_box_char end (transformed[3] ... (transformed[4] - 1)).each do |i| line[i] = line_char end print_styled(out, line.join(''), color: @color) end private def transform(values) values.map do |val| val = (val - @min_x).fdiv(@max_x - @min_x) * @width val.round(half: :even).clamp(1, @width).to_i end end end module_function def boxplot(*args, data: nil, border: :corners, color: Boxplot::DEFAULT_COLOR, width: Plot::DEFAULT_WIDTH, xlim: [0, 0], **kw) case args.length when 0 data = Hash(data) text = data.keys data = data.values when 1 data = args[0] when 2 text = Array(args[0]) data = args[1] else raise ArgumentError, "wrong number of arguments" end case data[0] when Numeric data = [data] when Array # do nothing else data = data.to_ary end text ||= Array.new(data.length, "") unless text.length == data.length raise ArgumentError, "wrong number of text" end unless xlim.length == 2 raise ArgumentError, "xlim must be a length 2 array" end min_x, max_x = Utils.extend_limits(data.map(&:minmax).flatten, xlim) width = [width, Boxplot::MIN_WIDTH].max plot = Boxplot.new(data[0], width, color, min_x, max_x, border: border, **kw) (1 ... data.length).each do |i| plot.add_series!(data[i]) end mean_x = (min_x + max_x) / 2.0 min_x_str = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s mean_x_str = (Utils.roundable?(mean_x) ? mean_x.round : mean_x).to_s max_x_str = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s plot.annotate!(:bl, min_x_str, color: :light_black) plot.annotate!(:b, mean_x_str, color: :light_black) plot.annotate!(:br, max_x_str, color: :light_black) text.each_with_index do |name, i| plot.annotate_row!(:l, i*3+1, name) if name.length > 0 end plot end module_function def boxplot!(plot, *args, **kw) case args.length when 1 data = args[0] name = kw[:name] || "" when 2 name = args[0] data = args[1] else raise ArgumentError, "worng number of arguments" end if data.empty? raise ArgumentError, "Can't append empty array to boxplot" end plot.add_series!(data) plot.annotate_row!(:l, (plot.n_data - 1)*3+1, name) if name && name != "" min_x = plot.min_x max_x = plot.max_x mean_x = (min_x + max_x) / 2.0 min_x_str = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s mean_x_str = (Utils.roundable?(mean_x) ? mean_x.round : mean_x).to_s max_x_str = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s plot.annotate!(:bl, min_x_str, color: :light_black) plot.annotate!(:b, mean_x_str, color: :light_black) plot.annotate!(:br, max_x_str, color: :light_black) plot end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/canvas.rb000066400000000000000000000116001402627751500250620ustar00rootroot00000000000000module UnicodePlot class Canvas include BorderPrinter CANVAS_CLASS_MAP = {} def self.create(canvas_type, width, height, **kw) canvas_class = CANVAS_CLASS_MAP[canvas_type] case canvas_class when Class canvas_class.new(width, height, **kw) else raise ArgumentError, "unknown canvas type: #{canvas_type}" end end def initialize(width, height, pixel_width, pixel_height, fill_char, origin_x: 0, origin_y: 0, plot_width: 1, plot_height: 1, x_pixel_per_char: 1, y_pixel_per_char: 1) @width = width @height = height @pixel_width = check_positive(pixel_width, :pixel_width) @pixel_height = check_positive(pixel_height, :pixel_height) @origin_x = origin_x @origin_y = origin_y @plot_width = plot_width @plot_height = plot_height @x_pixel_per_char = x_pixel_per_char @y_pixel_per_char = y_pixel_per_char @grid = Array.new(@width * @height, fill_char) @colors = Array.new(@width * @height, COLOR_ENCODE[:normal]) end attr_reader :width attr_reader :height attr_reader :pixel_width attr_reader :pixel_height attr_reader :origin_x attr_reader :origin_y attr_reader :plot_width attr_reader :plot_height attr_reader :x_pixel_per_char attr_reader :y_pixel_per_char def show(out) b = BorderMaps::BORDER_SOLID border_length = width print_border_top(out, "", border_length, :solid, color: :light_black) out.puts (0 ... height).each do |row_index| print_styled(out, b[:l], color: :light_black) print_row(out, row_index) print_styled(out, b[:r], color: :light_black) out.puts end print_border_bottom(out, "", border_length, :solid, color: :light_black) end def print(out) (0 ... height).each do |row_index| print_row(out, row_index) out.puts if row_index < height - 1 end end def char_at(x, y) @grid[index_at(x, y)] end def color_at(x, y) @colors[index_at(x, y)] end def index_at(x, y) return nil unless 0 <= x && x < width && 0 <= y && y < height y * width + x end def point!(x, y, color) unless origin_x <= x && x <= origin_x + plot_width && origin_y <= y && y <= origin_y + plot_height return color end plot_offset_x = x - origin_x pixel_x = plot_offset_x.fdiv(plot_width) * pixel_width plot_offset_y = y - origin_y pixel_y = pixel_height - plot_offset_y.fdiv(plot_height) * pixel_height pixel!(pixel_x.floor, pixel_y.floor, color) end def points!(x, y, color = :normal) if x.length != y.length raise ArgumentError, "x and y must be the same length" end unless x.length > 0 raise ArgumentError, "x and y must not be empty" end (0 ... x.length).each do |i| point!(x[i], y[i], color) end end # digital differential analyzer algorithm def line!(x1, y1, x2, y2, color) if (x1 < origin_x && x2 < origin_x) || (x1 > origin_x + plot_width && x2 > origin_x + plot_width) return color end if (y1 < origin_y && y2 < origin_y) || (y1 > origin_y + plot_height && y2 > origin_y + plot_height) return color end toff = x1 - origin_x px1 = toff.fdiv(plot_width) * pixel_width toff = x2 - origin_x px2 = toff.fdiv(plot_width) * pixel_width toff = y1 - origin_y py1 = pixel_height - toff.fdiv(plot_height) * pixel_height toff = y2 - origin_y py2 = pixel_height - toff.fdiv(plot_height) * pixel_height dx = px2 - px1 dy = py2 - py1 nsteps = dx.abs > dy.abs ? dx.abs : dy.abs inc_x = dx.fdiv(nsteps) inc_y = dy.fdiv(nsteps) cur_x = px1 cur_y = py1 pixel!(cur_x.floor, cur_y.floor, color) 1.upto(nsteps) do |i| cur_x += inc_x cur_y += inc_y pixel!(cur_x.floor, cur_y.floor, color) end color end def lines!(x, y, color = :normal) if x.length != y.length raise ArgumentError, "x and y must be the same length" end unless x.length > 0 raise ArgumentError, "x and y must not be empty" end (0 ... (x.length - 1)).each do |i| line!(x[i], y[i], x[i+1], y[i+1], color) end end private def check_positive(value, name) return value if value > 0 raise ArgumentError, "#{name} has to be positive" end end def self.canvas_types Canvas::CANVAS_CLASS_MAP.keys end end require_relative 'canvas/ascii_canvas' require_relative 'canvas/block_canvas' require_relative 'canvas/braille_canvas' require_relative 'canvas/density_canvas' require_relative 'canvas/dot_canvas' UnicodePlot::Canvas::CANVAS_CLASS_MAP.freeze red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/canvas/000077500000000000000000000000001402627751500245375ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/canvas/ascii_canvas.rb000066400000000000000000000063761402627751500275230ustar00rootroot00000000000000require_relative 'lookup_canvas' module UnicodePlot class AsciiCanvas < LookupCanvas Canvas::CANVAS_CLASS_MAP[:ascii] = self ASCII_SIGNS = [ [ 0b100_000_000, 0b000_100_000, 0b000_000_100 ].freeze, [ 0b010_000_000, 0b000_010_000, 0b000_000_010 ].freeze, [ 0b001_000_000, 0b000_001_000, 0b000_000_001 ].freeze ].freeze ASCII_LOOKUP = { 0b101_000_000 => '"', 0b111_111_111 => '@', #0b011_110_011 => '$', 0b010_000_000 => '\'', 0b010_100_010 => '(', 0b010_001_010 => ')', 0b000_010_000 => '*', 0b010_111_010 => '+', 0b000_010_010 => ',', 0b000_100_100 => ',', 0b000_001_001 => ',', 0b000_111_000 => '-', 0b000_000_010 => '.', 0b000_000_100 => '.', 0b000_000_001 => '.', 0b001_010_100 => '/', 0b010_100_000 => '/', 0b001_010_110 => '/', 0b011_010_010 => '/', 0b001_010_010 => '/', 0b110_010_111 => '1', #0b111_010_100 => '7', 0b010_000_010 => ':', 0b111_000_111 => '=', #0b010_111_101 => 'A', #0b011_100_011 => 'C', #0b110_101_110 => 'D', #0b111_110_100 => 'F', #0b011_101_011 => 'G', #0b101_111_101 => 'H', 0b111_010_111 => 'I', #0b011_001_111 => 'J', #0b101_110_101 => 'K', 0b100_100_111 => 'L', #0b111_111_101 => 'M', #0b101_101_101 => 'N', #0b111_101_111 => 'O', #0b111_111_100 => 'P', 0b111_010_010 => 'T', #0b101_101_111 => 'U', 0b101_101_010 => 'V', #0b101_111_111 => 'W', 0b101_010_101 => 'X', 0b101_010_010 => 'Y', 0b110_100_110 => '[', 0b010_001_000 => '\\', 0b100_010_001 => '\\', 0b110_010_010 => '\\', 0b100_010_011 => '\\', 0b100_010_010 => '\\', 0b011_001_011 => ']', 0b010_101_000 => '^', 0b000_000_111 => '_', 0b100_000_000 => '`', #0b000_111_111 => 'a', #0b100_111_111 => 'b', #0b001_111_111 => 'd', #0b001_111_010 => 'f', #0b100_111_101 => 'h', #0b100_101_101 => 'k', 0b110_010_011 => 'l', #0b000_111_101 => 'n', 0b000_111_100 => 'r', #0b000_101_111 => 'u', 0b000_101_010 => 'v', 0b011_110_011 => '{', 0b010_010_010 => '|', 0b100_100_100 => '|', 0b001_001_001 => '|', 0b110_011_110 => '}', }.freeze ascii_lookup_key_order = [ 0x0002, 0x00d2, 0x0113, 0x00a0, 0x0088, 0x002a, 0x0100, 0x0197, 0x0012, 0x0193, 0x0092, 0x0082, 0x008a, 0x0054, 0x0004, 0x01d2, 0x01ff, 0x0124, 0x00a8, 0x0056, 0x0001, 0x01c7, 0x0052, 0x0080, 0x0009, 0x00cb, 0x0007, 0x003c, 0x0111, 0x0140, 0x0024, 0x0127, 0x0192, 0x0010, 0x019e, 0x01a6, 0x01d7, 0x0155, 0x00a2, 0x00ba, 0x0112, 0x0049, 0x00f3, 0x0152, 0x0038, 0x016a ] ASCII_DECODE = [' '] 1.upto(0b111_111_111) do |i| min_key = ascii_lookup_key_order.min_by {|k| (i ^ k).digits(2).sum } ASCII_DECODE[i] = ASCII_LOOKUP[min_key] end ASCII_DECODE.freeze PIXEL_PER_CHAR = 3 def initialize(width, height, **kw) super(width, height, PIXEL_PER_CHAR, PIXEL_PER_CHAR, **kw) end def lookup_encode(x, y) ASCII_SIGNS[x][y] end def lookup_decode(code) ASCII_DECODE[code] end end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/canvas/block_canvas.rb000066400000000000000000000020431402627751500275100ustar00rootroot00000000000000module UnicodePlot # The `BlockCanvas` is also Unicode-based. # It has half the resolution of the `BrailleCanvas`. # In contrast to BrailleCanvas, the pixels don't # have visible spacing between them. # This canvas effectively turns every character # into 4 pixels that can individually be manipulated # using binary operations. class BlockCanvas < LookupCanvas Canvas::CANVAS_CLASS_MAP[:block] = self X_PIXEL_PER_CHAR = 2 Y_PIXEL_PER_CHAR = 2 def initialize(width, height, fill_char=0, **kw) super(width, height, X_PIXEL_PER_CHAR, Y_PIXEL_PER_CHAR, fill_char, **kw) end BLOCK_SIGNS = [ [0b1000, 0b0010].freeze, [0b0100, 0b0001].freeze ].freeze BLOCK_DECODE = [ -' ', -'▗', -'▖', -'▄', -'▝', -'▐', -'▞', -'▟', -'▘', -'▚', -'▌', -'▙', -'▀', -'▜', -'▛', -'█' ].freeze def lookup_encode(x,y) ; BLOCK_SIGNS[x][y] ; end def lookup_decode(x) ; BLOCK_DECODE[x] ; end end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/canvas/braille_canvas.rb000066400000000000000000000033461402627751500300370ustar00rootroot00000000000000module UnicodePlot class BrailleCanvas < Canvas Canvas::CANVAS_CLASS_MAP[:braille] = self X_PIXEL_PER_CHAR = 2 Y_PIXEL_PER_CHAR = 4 BRAILLE_SIGNS = [ [ 0x2801, 0x2802, 0x2804, 0x2840, ].freeze, [ 0x2808, 0x2810, 0x2820, 0x2880 ].freeze ].freeze def initialize(width, height, **kw) super(width, height, width * X_PIXEL_PER_CHAR, height * Y_PIXEL_PER_CHAR, "\u{2800}", x_pixel_per_char: X_PIXEL_PER_CHAR, y_pixel_per_char: Y_PIXEL_PER_CHAR, **kw) end def pixel!(pixel_x, pixel_y, color) unless 0 <= pixel_x && pixel_x <= pixel_width && 0 <= pixel_y && pixel_y <= pixel_height return color end pixel_x -= 1 unless pixel_x < pixel_width pixel_y -= 1 unless pixel_y < pixel_height tx = pixel_x.fdiv(pixel_width) * width char_x = tx.floor + 1 char_x_off = pixel_x % X_PIXEL_PER_CHAR + 1 char_x += 1 if char_x < tx.round + 1 && char_x_off == 1 char_y_off = pixel_y % Y_PIXEL_PER_CHAR + 1 char_y = ((pixel_y - (char_y_off - 1)) / Y_PIXEL_PER_CHAR) + 1 index = index_at(char_x - 1, char_y - 1) if index @grid[index] = (@grid[index].ord | BRAILLE_SIGNS[char_x_off - 1][char_y_off - 1]).chr(Encoding::UTF_8) @colors[index] |= COLOR_ENCODE[color] end color end def print_row(out, row_index) unless 0 <= row_index && row_index < height raise ArgumentError, "row_index out of bounds" end y = row_index (0 ... width).each do |x| print_color(out, color_at(x, y), char_at(x, y)) end end end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/canvas/density_canvas.rb000066400000000000000000000031731402627751500301020ustar00rootroot00000000000000module UnicodePlot class DensityCanvas < Canvas Canvas::CANVAS_CLASS_MAP[:density] = self DENSITY_SIGNS = [" ", "░", "▒", "▓", "█"].freeze MIN_WIDTH = 5 MIN_HEIGHT = 5 X_PIXEL_PER_CHAR = 1 Y_PIXEL_PER_CHAR = 2 def initialize(width, height, **kw) width = [width, MIN_WIDTH].max height = [height, MIN_HEIGHT].max @max_density = 1 super(width, height, width * X_PIXEL_PER_CHAR, height * Y_PIXEL_PER_CHAR, 0, x_pixel_per_char: X_PIXEL_PER_CHAR, y_pixel_per_char: Y_PIXEL_PER_CHAR, **kw) end def pixel!(pixel_x, pixel_y, color) unless 0 <= pixel_x && pixel_x <= pixel_width && 0 <= pixel_y && pixel_y <= pixel_height return color end pixel_x -= 1 unless pixel_x < pixel_width pixel_y -= 1 unless pixel_y < pixel_height char_x = (pixel_x.fdiv(pixel_width) * width).floor char_y = (pixel_y.fdiv(pixel_height) * height).floor index = index_at(char_x, char_y) @grid[index] += 1 @max_density = [@max_density, @grid[index]].max @colors[index] |= COLOR_ENCODE[color] color end def print_row(out, row_index) unless 0 <= row_index && row_index < height raise ArgumentError, "row_index out of bounds" end y = row_index den_sign_count = DENSITY_SIGNS.length val_scale = (den_sign_count - 1).fdiv(@max_density) (0 ... width).each do |x| den_index = (char_at(x, y) * val_scale).round print_color(out, color_at(x, y), DENSITY_SIGNS[den_index]) end end end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/canvas/dot_canvas.rb000066400000000000000000000012331402627751500272040ustar00rootroot00000000000000module UnicodePlot class DotCanvas < LookupCanvas Canvas::CANVAS_CLASS_MAP[:dot] = self DOT_SIGNS = [ [ 0b10, 0b01 ].freeze ].freeze DOT_DECODE = [ -' ', # 0b00 -'.', # 0b01 -"'", # 0b10 -':', # 0b11 ].freeze X_PIXEL_PER_CHAR = 1 Y_PIXEL_PER_CHAR = 2 def initialize(width, height, **kw) super(width, height, X_PIXEL_PER_CHAR, Y_PIXEL_PER_CHAR, **kw) end def lookup_encode(x, y) DOT_SIGNS[x][y] end def lookup_decode(code) DOT_DECODE[code] end end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/canvas/lookup_canvas.rb000066400000000000000000000026741402627751500277410ustar00rootroot00000000000000module UnicodePlot class LookupCanvas < Canvas def initialize(width, height, x_pixel_per_char, y_pixel_per_char, fill_char=0, **kw) super(width, height, width * x_pixel_per_char, height * y_pixel_per_char, fill_char, x_pixel_per_char: x_pixel_per_char, y_pixel_per_char: y_pixel_per_char, **kw) end def pixel!(pixel_x, pixel_y, color) unless 0 <= pixel_x && pixel_x <= pixel_width && 0 <= pixel_y && pixel_y <= pixel_height return color end pixel_x -= 1 unless pixel_x < pixel_width pixel_y -= 1 unless pixel_y < pixel_height tx = pixel_x.fdiv(pixel_width) * width char_x = tx.floor + 1 char_x_off = pixel_x % x_pixel_per_char + 1 char_x += 1 if char_x < tx.round + 1 && char_x_off == 1 char_y_off = pixel_y % y_pixel_per_char + 1 char_y = ((pixel_y - (char_y_off - 1)) / y_pixel_per_char) + 1 index = index_at(char_x - 1, char_y - 1) if index @grid[index] |= lookup_encode(char_x_off - 1, char_y_off - 1) @colors[index] |= COLOR_ENCODE[color] end end def print_row(out, row_index) unless 0 <= row_index && row_index < height raise ArgumentError, "row_index out of bounds" end y = row_index (0 ... width).each do |x| print_color(out, color_at(x, y), lookup_decode(char_at(x, y))) end end end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/densityplot.rb000066400000000000000000000005001402627751500261620ustar00rootroot00000000000000module UnicodePlot module_function def densityplot(x, y, color: :auto, grid: false, name: "", **kw) plot = GridPlot.new(x, y, :density, grid: grid, **kw) scatterplot!(plot, x, y, color: color, name: name) end module_function def densityplot!(plot, x, y, **kw) scatterplot!(plot, x, y, **kw) end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/grid_plot.rb000066400000000000000000000053221402627751500255760ustar00rootroot00000000000000module UnicodePlot class GridPlot < Plot MIN_WIDTH = 5 MIN_HEIGHT = 2 DEFAULT_HEIGHT = 15 def initialize(x, y, canvas, width: DEFAULT_WIDTH, height: DEFAULT_HEIGHT, xlim: [0, 0], ylim: [0, 0], grid: true, **kw) if x.length != y.length raise ArgumentError, "x and y must be the same length" end unless x.length > 0 raise ArgumentError, "x and y must not be empty" end unless xlim.length == 2 && ylim.length == 2 raise ArgumentError, "xlim and ylim must be 2-length arrays" end width = [width, MIN_WIDTH].max height = [height, MIN_HEIGHT].max min_x, max_x = Utils.extend_limits(x, xlim) min_y, max_y = Utils.extend_limits(y, ylim) origin_x = min_x origin_y = min_y plot_width = max_x - origin_x plot_height = max_y - origin_y @canvas = Canvas.create(canvas, width, height, origin_x: origin_x, origin_y: origin_y, plot_width: plot_width, plot_height: plot_height) super(**kw) min_x_str = (Utils.roundable?(min_x) ? min_x.round : min_x).to_s max_x_str = (Utils.roundable?(max_x) ? max_x.round : max_x).to_s min_y_str = (Utils.roundable?(min_y) ? min_y.round : min_y).to_s max_y_str = (Utils.roundable?(max_y) ? max_y.round : max_y).to_s annotate_row!(:l, 0, max_y_str, color: :light_black) annotate_row!(:l, height-1, min_y_str, color: :light_black) annotate!(:bl, min_x_str, color: :light_black) annotate!(:br, max_x_str, color: :light_black) if grid if min_y < 0 && 0 < max_y step = plot_width.fdiv(width * @canvas.x_pixel_per_char - 1) min_x.step(max_x, by: step) do |i| @canvas.point!(i, 0, :normal) end end if min_x < 0 && 0 < max_x step = plot_height.fdiv(height * @canvas.y_pixel_per_char - 1) min_y.step(max_y, by: step) do |i| @canvas.point!(0, i, :normal) end end end end def origin_x @canvas.origin_x end def origin_y @canvas.origin_y end def plot_width @canvas.plot_width end def plot_height @canvas.plot_height end def n_rows @canvas.height end def n_columns @canvas.width end def points!(x, y, color) @canvas.points!(x, y, color) end def lines!(x, y, color) @canvas.lines!(x, y, color) end def print_row(out, row_index) @canvas.print_row(out, row_index) end end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/histogram.rb000066400000000000000000000034141402627751500256100ustar00rootroot00000000000000require 'enumerable/statistics' module UnicodePlot module_function def histogram(x, nbins: nil, closed: :left, symbol: "▇", **kw) hist = x.histogram(*[nbins].compact, closed: closed) edge, counts = hist.edge, hist.weights labels = [] bin_width = edge[1] - edge[0] pad_left, pad_right = 0, 0 (0 ... edge.length).each do |i| val1 = Utils.float_round_log10(edge[i], bin_width) val2 = Utils.float_round_log10(val1 + bin_width, bin_width) a1 = val1.to_s.split('.', 2).map(&:length) a2 = val2.to_s.split('.', 2).map(&:length) pad_left = [pad_left, a1[0], a2[0]].max pad_right = [pad_right, a1[1], a2[1]].max end l_str = hist.closed == :right ? "(" : "[" r_str = hist.closed == :right ? "]" : ")" counts.each_with_index do |n, i| val1 = Utils.float_round_log10(edge[i], bin_width) val2 = Utils.float_round_log10(val1 + bin_width, bin_width) a1 = val1.to_s.split('.', 2).map(&:length) a2 = val2.to_s.split('.', 2).map(&:length) labels[i] = "\e[90m#{l_str}\e[0m" + (" " * (pad_left - a1[0])) + val1.to_s + (" " * (pad_right - a1[1])) + "\e[90m, \e[0m" + (" " * (pad_left - a2[0])) + val2.to_s + (" " * (pad_right - a2[1])) + "\e[90m#{r_str}\e[0m" end xscale = kw.delete(:xscale) xlabel = kw.delete(:xlabel) || ValueTransformer.transform_name(xscale, "Frequency") barplot(labels, counts, symbol: symbol, xscale: xscale, xlabel: xlabel, **kw) end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/io_context.rb000066400000000000000000000010721402627751500257640ustar00rootroot00000000000000require "forwardable" module UnicodePlot class IOContext extend Forwardable def initialize(io, color: :auto) @io = io @color = check_color(color) end def_delegators :@io, :print, :puts def color? case @color when :auto @io.respond_to?(:tty?) ? @io.tty? : false else @color end end private def check_color(color) case color when true, false, :auto color else raise ArgumentError, "color must be either true, false, :auto" end end end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/lineplot.rb000066400000000000000000000102351402627751500254400ustar00rootroot00000000000000require 'date' module UnicodePlot class Lineplot < GridPlot end # @overload lineplot([x], y, name: "", canvas: :braille, title: "", xlabel: "", ylabel: "", labels: true, border: :solid, margin: Plot::DEFAULT_MARGIN, padding: Plot::DEFAULT_PADDING, color: :auto, width: Plot::DEFAULT_WIDTH, height: GridPlot::DEFAULT_HEIGHT, xlim: [0, 0], ylim: [0, 0], canvas: :braille, grid: true) # # Draws a path through the given points on a new canvas. # # The first (optional) array `x` should contain the horizontal positions for all the points along the path. # The second array `y` should then contain the corresponding vertical positions respectively. # This means that the two vectors must be of the same length and ordering. # # @param x [Array] Optional. The horizontal position for each point. If omitted, the axes of `y` will be used as `x`. # @param y [Array] The vertical position for each point. # @param name [String] Annotation of the current drawing to be displayed on the right. # @param title # @param xlabel # @param ylabel # @param labels # @param border # @param margin # @param padding # @param color # @param width # @param height # @param xlim # @param ylim # @param canvas [Symbol] The type of canvas that should be used for drawing. # @param grid [true,false] If `true`, draws grid-lines at the origin. # @return [Lineplot] A plot object. module_function def lineplot(*args, canvas: :braille, color: :auto, name: "", **kw) case args.length when 1 # y only y = Array(args[0]) x = Array(1 .. y.length) when 2 # x and y x = Array(args[0]) y = Array(args[1]) else raise ArgumentError, "wrong number of arguments" end case x[0] when Time, Date if x[0].is_a? Time d = x.map(&:to_f) else origin = Date.new(1, 1, 1) d = x.map {|xi| xi - origin } end plot = lineplot(d, y, canvas: canvas, color: color, name: name, **kw) xmin, xmax = x.minmax plot.annotate!(:bl, xmin.to_s, color: :light_black) plot.annotate!(:br, xmax.to_s, color: :light_black) plot else plot = Lineplot.new(x, y, canvas, **kw) lineplot!(plot, x, y, color: color, name: name) end end # @overload lineplot!(plot, [x], y, name: "", color: :auto) # # Draws a path through the given points on the given canvas. # # @param plot [Lineplot] The plot object. # @param x [Array] Optional. The horizontal position for each point. If omitted, the axes of `y` will be used as `x`. # @param y [Array] The vertical position for each point. # @param name [String] Annotation of the current drawing to be displayed on the right. # @param color # @return [Lineplot] The plot object same as the `plot` parameter. module_function def lineplot!(plot, *args, color: :auto, name: "") case args.length when 1 # y only y = Array(args[0]) x = Array(1 .. y.length) when 2 # x and y x = Array(args[0]) y = Array(args[1]) if x.length == 1 && y.length == 1 # intercept and slope intercept = x[0] slope = y[0] xmin = plot.origin_x xmax = plot.origin_x + plot.plot_width ymin = plot.origin_y ymax = plot.origin_y + plot.plot_height x = [xmin, xmax] y = [intercept + xmin*slope, intercept + xmax*slope] end else raise ArgumentError, "wrong number of arguments" end case x[0] when Time, Date if x[0].is_a? Time d = x.map(&:to_f) else origin = Date.new(1, 1, 1) d = x.map {|xi| xi - origin } end lineplot!(plot, d, y, color: color, name: name) else color = color == :auto ? plot.next_color : color plot.annotate!(:r, name.to_s, color: color) unless name.nil? || name == "" plot.lines!(x, y, color) end plot end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/plot.rb000066400000000000000000000066751402627751500246050ustar00rootroot00000000000000module UnicodePlot class Plot include StyledPrinter DEFAULT_WIDTH = 40 DEFAULT_BORDER = :solid DEFAULT_MARGIN = 3 DEFAULT_PADDING = 1 def initialize(title: nil, xlabel: nil, ylabel: nil, border: DEFAULT_BORDER, margin: DEFAULT_MARGIN, padding: DEFAULT_PADDING, labels: true) @title = title @xlabel = xlabel @ylabel = ylabel @border = check_border(border) @margin = check_margin(margin) @padding = padding @labels_left = {} @colors_left = {} @labels_right = {} @colors_right = {} @decorations = {} @colors_deco = {} @show_labels = labels @auto_color = 0 end attr_reader :title attr_reader :xlabel attr_reader :ylabel attr_reader :border attr_reader :margin attr_reader :padding attr_reader :labels_left attr_reader :colors_left attr_reader :labels_right attr_reader :colors_right attr_reader :decorations attr_reader :colors_deco def title_given? title && title != "" end def xlabel_given? xlabel && xlabel != "" end def ylabel_given? ylabel && ylabel != "" end def ylabel_length ylabel&.length || 0 end def show_labels? @show_labels end def annotate!(loc, value, color: :normal) case loc when :l (0 ... n_rows).each do |row| if @labels_left.fetch(row, "") == "" @labels_left[row] = value @colors_left[row] = color break end end when :r (0 ... n_rows).each do |row| if @labels_right.fetch(row, "") == "" @labels_right[row] = value @colors_right[row] = color break end end when :t, :b, :tl, :tr, :bl, :br @decorations[loc] = value @colors_deco[loc] = color else raise ArgumentError, "unknown location to annotate (#{loc.inspect} for :t, :b, :l, :r, :tl, :tr, :bl, or :br)" end end def annotate_row!(loc, row_index, value, color: :normal) case loc when :l @labels_left[row_index] = value @colors_left[row_index] = color when :r @labels_right[row_index] = value @colors_right[row_index] = color else raise ArgumentError, "unknown location `#{loc}`, try :l or :r instead" end end def render(out=$stdout, newline: true, color: :auto) Renderer.render(IOContext.new(out, color: color), self, newline) end COLOR_CYCLE = [ :green, :blue, :red, :magenta, :yellow, :cyan ].freeze def next_color COLOR_CYCLE[@auto_color] ensure @auto_color = (@auto_color + 1) % COLOR_CYCLE.length end def to_s StringIO.open do |sio| render(sio, newline: false) sio.close sio.string end end private def check_margin(margin) if margin < 0 raise ArgumentError, "margin must be >= 0" end margin end private def check_row_index(row_index) unless 0 <= row_index && row_index < n_rows raise ArgumentError, "row_index out of bounds" end end private def check_border(border) return border if BORDER_MAP.key?(border) raise ArgumentError, "unknown border type: #{border}" end end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/renderer.rb000066400000000000000000000166061402627751500254300ustar00rootroot00000000000000module UnicodePlot module BorderMaps BORDER_SOLID = { tl: "┌", tr: "┐", bl: "└", br: "┘", t: "─", l: "│", b: "─", r: "│" }.freeze BORDER_CORNERS = { tl: "┌", tr: "┐", bl: "└", br: "┘", t: " ", l: " ", b: " ", r: " ", }.freeze BORDER_BARPLOT = { tl: "┌", tr: "┐", bl: "└", br: "┘", t: " ", l: "┤", b: " ", r: " ", }.freeze end BORDER_MAP = { solid: BorderMaps::BORDER_SOLID, corners: BorderMaps::BORDER_CORNERS, barplot: BorderMaps::BORDER_BARPLOT, }.freeze def self.border_types BORDER_MAP.keys end module BorderPrinter include StyledPrinter def print_border_top(out, padding, length, border=:solid, color: :light_black) return if border == :none b = BORDER_MAP[border] print_styled(out, padding, b[:tl], b[:t] * length, b[:tr], color: color) end def print_border_bottom(out, padding, length, border=:solid, color: :light_black) return if border == :none b = BORDER_MAP[border] print_styled(out, padding, b[:bl], b[:b] * length, b[:br], color: color) end end class Renderer include BorderPrinter def self.render(out, plot, newline) new(plot).render(out, newline) end def initialize(plot) @plot = plot @out = nil end attr_reader :plot attr_reader :out def render(out, newline) @out = out init_render render_top render_rows render_bottom out.puts if newline end private def render_top # plot the title and the top border print_title(@border_padding, plot.title, p_width: @border_length, color: :bold) puts if plot.title_given? if plot.show_labels? topleft_str = plot.decorations.fetch(:tl, "") topleft_col = plot.colors_deco.fetch(:tl, :light_black) topmid_str = plot.decorations.fetch(:t, "") topmid_col = plot.colors_deco.fetch(:t, :light_black) topright_str = plot.decorations.fetch(:tr, "") topright_col = plot.colors_deco.fetch(:tr, :light_black) if topleft_str != "" || topright_str != "" || topmid_str != "" topleft_len = topleft_str.length topmid_len = topmid_str.length topright_len = topright_str.length print_styled(out, @border_padding, topleft_str, color: topleft_col) cnt = (@border_length / 2.0 - topmid_len / 2.0 - topleft_len).round pad = cnt > 0 ? " " * cnt : "" print_styled(out, pad, topmid_str, color: topmid_col) cnt = @border_length - topright_len - topleft_len - topmid_len + 2 - cnt pad = cnt > 0 ? " " * cnt : "" print_styled(out, pad, topright_str, "\n", color: topright_col) end end print_border_top(out, @border_padding, @border_length, plot.border) print(" " * @max_len_r, @plot_padding, "\n") end # render all rows def render_rows (0 ... plot.n_rows).each {|row| render_row(row) } end def render_row(row) # Current labels to left and right of the row and their length left_str = plot.labels_left.fetch(row, "") left_col = plot.colors_left.fetch(row, :light_black) right_str = plot.labels_right.fetch(row, "") right_col = plot.colors_right.fetch(row, :light_black) left_len = nocolor_string(left_str).length right_len = nocolor_string(right_str).length unless out.color? left_str = nocolor_string(left_str) right_str = nocolor_string(right_str) end # print left annotations print(" " * plot.margin) if plot.show_labels? if row == @y_lab_row # print ylabel print_styled(out, plot.ylabel, color: :normal) print(" " * (@max_len_l - plot.ylabel_length - left_len)) else # print padding to fill ylabel length print(" " * (@max_len_l - left_len)) end # print the left annotation print_styled(out, left_str, color: left_col) end # print left border print_styled(out, @plot_padding, @b[:l], color: :light_black) # print canvas row plot.print_row(out, row) #print right label and padding print_styled(out, @b[:r], color: :light_black) if plot.show_labels? print(@plot_padding) print_styled(out, right_str, color: right_col) print(" " * (@max_len_r - right_len)) end puts end def render_bottom # draw bottom border and bottom labels print_border_bottom(out, @border_padding, @border_length, plot.border) print(" " * @max_len_r, @plot_padding) if plot.show_labels? botleft_str = plot.decorations.fetch(:bl, "") botleft_col = plot.colors_deco.fetch(:bl, :light_black) botmid_str = plot.decorations.fetch(:b, "") botmid_col = plot.colors_deco.fetch(:b, :light_black) botright_str = plot.decorations.fetch(:br, "") botright_col = plot.colors_deco.fetch(:br, :light_black) if botleft_str != "" || botright_str != "" || botmid_str != "" puts botleft_len = botleft_str.length botmid_len = botmid_str.length botright_len = botright_str.length print_styled(out, @border_padding, botleft_str, color: botleft_col) cnt = (@border_length / 2.0 - botmid_len / 2.0 - botleft_len).round pad = cnt > 0 ? " " * cnt : "" print_styled(out, pad, botmid_str, color: botmid_col) cnt = @border_length - botright_len - botleft_len - botmid_len + 2 - cnt pad = cnt > 0 ? " " * cnt : "" print_styled(out, pad, botright_str, color: botright_col) end # abuse the print_title function to print the xlabel. maybe refactor this puts if plot.xlabel_given? print_title(@border_padding, plot.xlabel, p_width: @border_length) end end def init_render @b = BORDER_MAP[plot.border] @border_length = plot.n_columns # get length of largest strings to the left and right @max_len_l = plot.show_labels? && !plot.labels_left.empty? ? plot.labels_left.each_value.map {|l| nocolor_string(l).length }.max : 0 @max_len_r = plot.show_labels? && !plot.labels_right.empty? ? plot.labels_right.each_value.map {|l| nocolor_string(l).length }.max : 0 if plot.show_labels? && plot.ylabel_given? @max_len_l += plot.ylabel_length + 1 end # offset where the plot (incl border) begins @plot_offset = @max_len_l + plot.margin + plot.padding # padding-string from left to border @plot_padding = " " * plot.padding # padding-string between labels and border @border_padding = " " * @plot_offset # compute position of ylabel @y_lab_row = (plot.n_rows / 2.0).round - 1 end def print_title(padding, title, p_width: 0, color: :normal) return unless title && title != "" offset = (p_width / 2.0 - title.length / 2.0).round offset = [offset, 0].max tpad = " " * offset print_styled(out, padding, tpad, title, color: color) end def print(*args) out.print(*args) end def puts(*args) out.puts(*args) end def nocolor_string(str) str.to_s.gsub(/\e\[[0-9]+m/, "") end end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/scatterplot.rb000066400000000000000000000023471402627751500261630ustar00rootroot00000000000000module UnicodePlot class Scatterplot < GridPlot end module_function def scatterplot(*args, canvas: :braille, color: :auto, name: "", **kw) case args.length when 1 # y only y = Array(args[0]) x = Array(1 .. y.length) when 2 # x and y x = Array(args[0]) y = Array(args[1]) else raise ArgumentError, "worng number of arguments" end plot = Scatterplot.new(x, y, canvas, **kw) scatterplot!(plot, x, y, color: color, name: name) end module_function def scatterplot!(plot, *args, color: :auto, name: "") case args.length when 1 # y only y = Array(args[0]) x = Array(1 .. y.length) when 2 # x and y x = Array(args[0]) y = Array(args[1]) else raise ArgumentError, "worng number of arguments" end color = color == :auto ? plot.next_color : color plot.annotate!(:r, name.to_s, color: color) unless name.nil? || name == "" plot.points!(x, y, color) plot end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/stairs.rb000066400000000000000000000122311402627751500251150ustar00rootroot00000000000000# coding: utf-8 module UnicodePlot # @overload stairs(x, y, style: :post, name: "", title: "", xlabel: "", ylabel: "", labels: true, border: :solid, margin: 3, padding: 1, color: :auto, width: 40, height: 15, xlim: [0, 0], ylim: [0, 0], canvas: :braille, grid: true) # # Draws a staircase plot on a new canvas. # # The first vector `x` should contain the horizontal # positions for all the points. The second vector `y` should then # contain the corresponding vertical positions respectively. This # means that the two vectors must be of the same length and # ordering. # # @param x [Array] The horizontal position for each point. # @param y [Array] The vertical position for each point. # @param style [Symbol] Specifies where the transition of the stair takes place. Can be either `:pre` or `:post`. # @param name [String] Annotation of the current drawing to be displayed on the right. # @param height [Integer] Number of character rows that should be used for plotting. # @param xlim [Array] Plotting range for the x axis. `[0, 0]` stands for automatic. # @param ylim [Array] Plotting range for the y axis. `[0, 0]` stands for automatic. # @param canvas [Symbol] The type of canvas that should be used for drawing. # @param grid [Boolean] If `true`, draws grid-lines at the origin. # # @return [Plot] A plot object. # # @example Example usage of stairs on IRB: # # >> UnicodePlot.stairs([1, 2, 4, 7, 8], [1, 3, 4, 2, 7], style: :post, title: "My Staircase Plot").render # My Staircase Plot # ┌────────────────────────────────────────┐ # 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡄⠀⠀⠀⠀⢸│ # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ # │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ # │⠀⠀⠀⠀⠀⢸⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ # │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ # │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠧⠤⠤⠤⠤⠼│ # │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ # 1 │⣀⣀⣀⣀⣀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ # └────────────────────────────────────────┘ # 1 8 # => nil # # @see Plot # @see scatterplot # @see lineplot module_function def stairs(xvec, yvec, style: :post, **kw) x_vex, y_vex = compute_stair_lines(xvec, yvec, style: style) lineplot(x_vex, y_vex, **kw) end # Similar to stairs, but takes an existing plot object as a first argument. module_function def stairs!(plot, xvec, yvec, style: :post, **kw) x_vex, y_vex = compute_stair_lines(xvec, yvec, style: style) lineplot!(plot, x_vex, y_vex, **kw) end module_function def compute_stair_lines(x, y, style: :post) x_vex = Array.new(x.length * 2 - 1, 0) y_vex = Array.new(x.length * 2 - 1, 0) x_vex[0] = x[0] y_vex[0] = y[0] o = 0 if style == :post (1 ... x.length).each do |i| x_vex[i + o] = x[i] x_vex[i + o + 1] = x[i] y_vex[i + o] = y[i-1] y_vex[i + o + 1] = y[i] o += 1 end elsif style == :pre (1 ... x.length).each do |i| x_vex[i + o] = x[i-1] x_vex[i + o + 1] = x[i] y_vex[i + o] = y[i] y_vex[i + o + 1] = y[i] o += 1 end end return [x_vex, y_vex] end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/stemplot.rb000066400000000000000000000302031402627751500254560ustar00rootroot00000000000000# coding: utf-8 module UnicodePlot # ## Description # # Draw a stem-leaf plot of the given vector +vec+. # # ``` # stemplot(vec, **kwargs) # ``` # # Draw a back-to-back stem-leaf plot of the given vectors +vec1+ and +vec2+. # # ``` # stemplot(vec1, vec2, **kwargs) # ``` # # The vectors can be any object that converts to an Array, e.g. an Array, Range, etc. # If all elements of the vector are Numeric, the stem-leaf plot is classified as a # {NumericStemplot}, otherwise it is classified as a {StringStemplot}. Back-to-back # stem-leaf plots must be the same type, i.e. String and Numeric stem-leaf plots cannot # be mixed in a back-to-back plot. # # ## Usage # # stemplot(vec, [vec2], scale:, divider:, padchar:, trim: ) # # ## Arguments # # - +vec+: Vector for which the stem leaf plot should be computed. # - +vec2+: Optional secondary vector, will be used to create a back-to-back stem-leaf plot. # - +scale+: Set scale of plot. Default = 10. Scale is changed via orders of magnitude. Common values are 0.1, 1, and 10. For String stems, the default value of 10 is a one character stem, 100 is a two character stem. # - +divider+: Character for break between stem and leaf. Default = "|" # - +padchar+: Character(s) to separate stems, leaves and dividers. Default = " " # - +trim+: Trims the stem labels when there are no leaves. This can be useful if your data is sparse. Default = +false+ # - +string_padchar+: Character used to replace missing position for input strings shorter than the stem-size. Default = "_" # # ## Result # A plot of object type is sent to $stdout # # @example Examples using Numbers # # Generate some numbers # fifty_floats = 50.times.map { rand(-1000..1000)/350.0 } # eighty_ints = 80.times.map { rand(1..100) } # another_eighty_ints = 80.times.map { rand(1..100) } # three_hundred_ints = 300.times.map { rand(-100..100) } # # # Single sided stem-plot # UnicodePlot.stemplot(eighty_ints) # # # Single sided stem-plot with positive and negative values # UnicodePlot.stemplot(three_hundred_ints) # # # Single sided stem-plot using floating point values, scaled # UnicodePlot.stemplot(fifty_floats, scale: 1) # # # Single sided stem-plot using floating point values, scaled with new divider # UnicodePlot.stemplot(fifty_floats, scale: 1, divider: "😄") # # # Back to back stem-plot # UnicodePlot.stemplot(eighty_ints, another_eighty_ints) # # @example Examples using Strings # # Generate some strings # words_1 = %w[apple junk ant age bee bar baz dog egg a] # words_2 = %w[ape flan can cat juice elf gnome child fruit] # # # Single sided stem-plot # UnicodePlot.stemplot(words_1) # # # Back to back stem-plot # UnicodePlot.stemplot(words_1, words_2) # # # Scaled stem plot using scale=100 (two letters for the stem) and trimmed stems # UnicodePlot.stemplot(words_1, scale: 100, trim: true) # # # Above, but changing the string_padchar # UnicodePlot.stemplot(words_1, scale: 100, trim: true, string_padchar: '?') class Stemplot # Use {factory} method -- should not be directly called. def initialize(*_args, **_kw) @stemleafs = {} end # Factory method to create a Stemplot, creates either a NumericStemplot # or StringStemplot depending on input. # # @param vector [Array] An array of elements to stem-leaf plot # @return [NumericStemplot] If all elements are Numeric # @return [StringStemplot] If any elements are not Numeric def self.factory(vector, **kw) vec = Array(vector) if vec.all? { |item| item.is_a?(Numeric) } NumericStemplot.new(vec, **kw) else StringStemplot.new(vec, **kw) end end # Insert a stem and leaf def insert(stem, leaf) @stemleafs[stem] ||= [] @stemleafs[stem] << leaf end # Returns an unsorted list of stems # @return [Array] Unsorted list of stems def raw_stems @stemleafs.keys end # Returns a list of leaves for a given stem # @param stem [Object] The stem # @return [Array] Unsorted list of leaves def leaves(stem) @stemleafs[stem] || [] end # Determines largest length of any stem # @return [Integer] Length value def max_stem_length @stemleafs.values.map(&:length).max end # Returns a sorted list of stems # @param all [Boolean] Return all stems if true, otherwise only return stems if a leaf exists for a stem # @return [Array] Sorted list of stems def stems(all: true) self.class.sorted_stem_list(raw_stems, all: all) end end class NumericStemplot < Stemplot def initialize(vector, scale: 10, **kw) super Array(vector).each do |value| fvalue = value.to_f.fdiv(scale/10.0) stemnum = (fvalue/10).to_i leafnum = (fvalue - (stemnum*10)).to_i stemsign = value.negative? ? "-" : '' stem = stemsign + stemnum.abs.to_s leaf = leafnum.abs.to_s self.insert(stem, leaf) end end # Print key to STDOUT # @param scale [Integer] Scale, should be a power of 10 # @param divider [String] Divider character between stem and leaf def print_key(scale, divider) # First print the key puts "Key: 1#{divider}0 = #{scale}" # Description of where the decimal is trunclog = Math.log10(scale).truncate ndigits = trunclog.abs right_or_left = (trunclog < 0) ? "left" : "right" puts "The decimal is #{ndigits} digit(s) to the #{right_or_left} of #{divider}" end # Used when we have stems from a back-to-back stemplot and a combined list of stems is given # @param stems [Array] Concatenated list of stems from two plots # @param all [Boolean] Return all stems if true, otherwise only return stems if a leaf exists for a stem # @return [Array] Sorted list of stems def self.sorted_stem_list(stems, all: true) negkeys, poskeys = stems.partition { |str| str[0] == '-'} if all negmin, negmax = negkeys.map(&:to_i).map(&:abs).minmax posmin, posmax = poskeys.map(&:to_i).minmax negrange = negmin ? (negmin..negmax).to_a.reverse.map { |s| "-"+s.to_s } : [] posrange = posmin ? (posmin..posmax).to_a.map(&:to_s) : [] return negrange + posrange else negkeys.sort! { |a,b| a.to_i <=> b.to_i } poskeys.sort! { |a,b| a.to_i <=> b.to_i } return negkeys + poskeys end end end class StringStemplot < Stemplot def initialize(vector, scale: 10, string_padchar: '_', **_kw) super stem_places = Math.log10(scale).floor raise ArgumentError, "Cannot take fewer than 1 place from stem. Scale parameter should be greater than or equal to 10." if stem_places < 1 vector.each do |value| # Strings may be shorter than the number of places we desire, # so we will pad them with a string-pad-character. padded_value = value.ljust(stem_places+1, string_padchar) stem = padded_value[0...stem_places] leaf = padded_value[stem_places] self.insert(stem, leaf) end end # Function prototype to provide same interface as {NumericStemplot}. # This function does not do anything. # @return [false] def print_key(_scale, _divider) # intentionally empty return false end # Used when we have stems from a back-to-back stemplot and a combined list of stems is given # @param stems [Array] Concatenated list of stems from two plots # @param all [Boolean] Return all stems if true, otherwise only return stems if a leaf exists for a stem # @return [Array] Sorted list of stems def self.sorted_stem_list(stems, all: true) if all rmin, rmax = stems.minmax return (rmin .. rmax).to_a else stems.sort end end end # Print a Single-Vector stemplot to STDOUT. # # - Stem data is printed on the left. # - Leaf data is printed on the right. # - Key is printed at the bottom. # @param plt [Stemplot] Stemplot object # @param scale [Integer] Scale, should be a power of 10 # @param divider [String] Divider character between stem and leaf # @param padchar [String] Padding character # @param trim [Boolean] Trim missing stems from the plot def stemplot1!(plt, scale: 10, divider: "|", padchar: " ", trim: false, **_kw ) stem_labels = plt.stems(all: !trim) label_len = stem_labels.map(&:length).max column_len = label_len + 1 stem_labels.each do |stem| leaves = plt.leaves(stem).sort stemlbl = stem.rjust(label_len, padchar).ljust(column_len, padchar) puts stemlbl + divider + padchar + leaves.join end plt.print_key(scale, divider) end # Print a Back-to-Back Stemplot to STDOUT # # - +plt1+ Leaf data is printed on the left. # - Common stem data is printed in the center. # - +plt2+ Leaf data is printed on the right. # - Key is printed at the bottom. # @param plt1 [Stemplot] Stemplot object for the left side # @param plt2 [Stemplot] Stemplot object for the right side # @param scale [Integer] Scale, should be a power of 10 # @param divider [String] Divider character between stem and leaf # @param padchar [String] Padding character # @param trim [Boolean] Trim missing stems from the plot def stemplot2!(plt1, plt2, scale: 10, divider: "|", padchar: " ", trim: false, **_kw ) stem_labels = plt1.class.sorted_stem_list( (plt1.raw_stems + plt2.raw_stems).uniq, all: !trim ) label_len = stem_labels.map(&:length).max column_len = label_len + 1 leftleaf_len = plt1.max_stem_length stem_labels.each do |stem| left_leaves = plt1.leaves(stem).sort.join('') right_leaves = plt2.leaves(stem).sort.join('') left_leaves_just = left_leaves.reverse.rjust(leftleaf_len, padchar) stem = stem.rjust(column_len, padchar).ljust(column_len+1, padchar) puts left_leaves_just + padchar + divider + stem + divider + padchar + right_leaves end plt1.print_key(scale, divider) end # Generates one or more {Stemplot} objects from the input data # and prints a Single or Double stemplot using {stemplot1!} or {stemplot2!} # @see Stemplot # @example Single sided stemplot # >> UnicodePlot.stemplot(eighty_ints) # 0 | 257 # 1 | 00335679 # 2 | 034455899 # 3 | 145588 # 4 | 0022223 # 5 | 0223399 # 6 | 012345568889 # 7 | 01133334466777888 # 8 | 013689 # 9 | 22667 # Key: 1|0 = 10 # The decimal is 1 digit(s) to the right of | # # @example Back-to-back stemplot # >> UnicodePlot.stemplot(eighty_ints, another_eighty_ints) # 752 | 0 | 1244457899 # 97653300 | 1 | 4799 # 998554430 | 2 | 015668 # 885541 | 3 | 0144557888899 # 3222200 | 4 | 00268 # 9933220 | 5 | 0234778 # 988865543210 | 6 | 122222357889 # 88877766443333110 | 7 | 134556689 # 986310 | 8 | 24589 # 76622 | 9 | 022234468 # Key: 1|0 = 10 # The decimal is 1 digit(s) to the right of | # def stemplot(*args, scale: 10, **kw) case args.length when 1 # Stemplot object plt = Stemplot.factory(args[0], scale: scale, **kw) # Dispatch to plot routine stemplot1!(plt, scale: scale, **kw) when 2 # Stemplot object plt1 = Stemplot.factory(args[0], scale: scale) plt2 = Stemplot.factory(args[1], scale: scale) raise ArgumentError, "Plot types must be the same for back-to-back stemplot " + "#{plt1.class} != #{plt2.class}" unless plt1.class == plt2.class # Dispatch to plot routine stemplot2!(plt1, plt2, scale: scale, **kw) else raise ArgumentError, "Expecting one or two arguments" end end module_function :stemplot, :stemplot1!, :stemplot2! end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/styled_printer.rb000066400000000000000000000045441402627751500266670ustar00rootroot00000000000000module UnicodePlot module StyledPrinter TEXT_COLORS = { black: "\033[30m", red: "\033[31m", green: "\033[32m", yellow: "\033[33m", blue: "\033[34m", magenta: "\033[35m", cyan: "\033[36m", white: "\033[37m", gray: "\033[90m", light_black: "\033[90m", light_red: "\033[91m", light_green: "\033[92m", light_yellow: "\033[93m", light_blue: "\033[94m", light_magenta: "\033[95m", light_cyan: "\033[96m", normal: "\033[0m", default: "\033[39m", bold: "\033[1m", underline: "\033[4m", blink: "\033[5m", reverse: "\033[7m", hidden: "\033[8m", nothing: "", } 0.upto(255) do |i| TEXT_COLORS[i] = "\033[38;5;#{i}m" end TEXT_COLORS.freeze DISABLE_TEXT_STYLE = { bold: "\033[22m", underline: "\033[24m", blink: "\033[25m", reverse: "\033[27m", hidden: "\033[28m", normal: "", default: "", nothing: "", }.freeze COLOR_ENCODE = { normal: 0b000, blue: 0b001, red: 0b010, magenta: 0b011, green: 0b100, cyan: 0b101, yellow: 0b110, white: 0b111 }.freeze COLOR_DECODE = COLOR_ENCODE.map {|k, v| [v, k] }.to_h.freeze def print_styled(out, *args, bold: false, color: :normal) return out.print(*args) unless out.color? str = StringIO.open {|sio| sio.print(*args); sio.close; sio.string } color = :nothing if bold && color == :bold enable_ansi = TEXT_COLORS.fetch(color, TEXT_COLORS[:default]) + (bold ? TEXT_COLORS[:bold] : "") disable_ansi = (bold ? DISABLE_TEXT_STYLE[:bold] : "") + DISABLE_TEXT_STYLE.fetch(color, TEXT_COLORS[:default]) first = true StringIO.open do |sio| str.each_line do |line| sio.puts unless first first = false continue if line.empty? sio.print(enable_ansi, line, disable_ansi) end sio.close out.print(sio.string) end end def print_color(out, color, *args) color = COLOR_DECODE[color] print_styled(out, *args, color: color) end end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/utils.rb000066400000000000000000000027421402627751500247560ustar00rootroot00000000000000module UnicodePlot module Utils module_function def extend_limits(values, limits) mi, ma = limits.minmax.map(&:to_f) if mi == 0 && ma == 0 mi, ma = values.minmax.map(&:to_f) end diff = ma - mi if diff == 0 ma = mi + 1 mi = mi - 1 end if limits == [0, 0] plotting_range_narrow(mi, ma) else [mi, ma] end end def plotting_range_narrow(xmin, xmax) diff = xmax - xmin xmax = round_up_subtick(xmax, diff) xmin = round_down_subtick(xmin, diff) [xmin.to_f, xmax.to_f] end def float_round_log10(x, m) if x == 0 0.0 elsif x > 0 x.round(ceil_neg_log10(m) + 1).to_f else -(-x).round(ceil_neg_log10(m) + 1).to_f end end def round_up_subtick(x, m) if x == 0 0.0 elsif x > 0 x.ceil(ceil_neg_log10(m) + 1) else -(-x).floor(ceil_neg_log10(m) + 1) end end def round_down_subtick(x, m) if x == 0 0.0 elsif x > 0 x.floor(ceil_neg_log10(m) + 1) else -(-x).ceil(ceil_neg_log10(m) + 1) end end def ceil_neg_log10(x) if roundable?(-Math.log10(x)) (-Math.log10(x)).ceil else (-Math.log10(x)).floor end end INT64_MIN = -9223372036854775808 INT64_MAX = 9223372036854775807 def roundable?(x) x.to_i == x && INT64_MIN <= x && x < INT64_MAX end end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/value_transformer.rb000066400000000000000000000017371402627751500273570ustar00rootroot00000000000000module UnicodePlot module ValueTransformer PREDEFINED_TRANSFORM_FUNCTIONS = { log: Math.method(:log), ln: Math.method(:log), log10: Math.method(:log10), lg: Math.method(:log10), log2: Math.method(:log2), lb: Math.method(:log2), }.freeze def transform_values(func, values) return values unless func unless func.respond_to?(:call) func = PREDEFINED_TRANSFORM_FUNCTIONS[func] unless func.respond_to?(:call) raise ArgumentError, "func must be callable" end end case values when Numeric func.(values) else values.map(&func) end end module_function def transform_name(func, basename="") return basename unless func case func when String, Symbol name = func when ->(f) { f.respond_to?(:name) } name = func.name else name = "custom" end "#{basename} [#{name}]" end end end red-data-tools-unicode_plot.rb-b4b6a31/lib/unicode_plot/version.rb000066400000000000000000000002751402627751500253020ustar00rootroot00000000000000module UnicodePlot VERSION = "0.0.5" module Version numbers, TAG = VERSION.split("-", 2) MAJOR, MINOR, MICRO = numbers.split(".", 3).map(&:to_i) STRING = VERSION end end red-data-tools-unicode_plot.rb-b4b6a31/test/000077500000000000000000000000001402627751500210115ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/000077500000000000000000000000001402627751500226625ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/000077500000000000000000000000001402627751500243255ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/default.txt000066400000000000000000000006531402627751500265160ustar00rootroot00000000000000 ┌ ┐ bar ┤■■■■■■■■■■■■■■■■■■■■■■ 23   foo ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 37    └ ┘ red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/default2.txt000066400000000000000000000010171402627751500265730ustar00rootroot00000000000000 ┌ ┐ bar ┤■■■■■■■■■ 23   foo ┤■■■■■■■■■■■■■■■ 37   zoom ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 90    └ ┘ red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/default_mixed.txt000066400000000000000000000010221402627751500276730ustar00rootroot00000000000000 ┌ ┐ bar ┤■■■■■■■■■■■■■■■■■■■■■ 23.0   2.1 ┤■■■■■■■■■ 10   foo ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 37.0    └ ┘ red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/edgecase_onelarge.txt000066400000000000000000000010011402627751500304720ustar00rootroot00000000000000 ┌ ┐ a ┤ 1   b ┤ 1   c ┤ 1   d ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 1000000    └ ┘ red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/edgecase_zeros.txt000066400000000000000000000010101402627751500300400ustar00rootroot00000000000000 ┌ ┐ 5 ┤ 0   4 ┤ 0   3 ┤ 0   2 ┤ 0   1 ┤ 0    └ ┘ red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/log10.txt000066400000000000000000000013721402627751500260130ustar00rootroot00000000000000 Logscale Plot  ┌ ┐ a ┤ 0   b ┤ 1   c ┤■■■■■■■■■■■ 10   d ┤■■■■■■■■■■■■■■■■■■■■■■■ 100   e ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 1000    └ ┘  [log10]red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/log10_label.txt000066400000000000000000000013741402627751500271540ustar00rootroot00000000000000 Logscale Plot  ┌ ┐ a ┤ 0   b ┤ 1   c ┤■■■■■■■■■■■ 10   d ┤■■■■■■■■■■■■■■■■■■■■■■■ 100   e ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 1000    └ ┘  custom labelred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/nocolor.txt000066400000000000000000000005131402627751500265400ustar00rootroot00000000000000 ┌ ┐ bar ┤■■■■■■■■■■■■■■■■■■■■■■ 23 foo ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 37 └ ┘ red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/parameters1.txt000066400000000000000000000014721402627751500273160ustar00rootroot00000000000000 Relative sizes of cities  ┌ ┐ Paris ┤■■■■■■ 2.244   New York ┤■■■■■■■■■■■■■■■■■■■■■■■ 8.406   Moskau ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 11.92   Madrid ┤■■■■■■■■■ 3.165    └ ┘  population [in mil]red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/parameters1_nolabels.txt000066400000000000000000000012611402627751500311710ustar00rootroot00000000000000 Relative sizes of cities  ┌ ┐  ┤■■■■■■ 2.244    ┤■■■■■■■■■■■■■■■■■■■■■■■ 8.406    ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 11.92    ┤■■■■■■■■■ 3.165    └ ┘ red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/parameters2.txt000066400000000000000000000017641402627751500273230ustar00rootroot00000000000000 Relative sizes of cities  ┌────────────────────────────────────────────────────────────┐ Paris │========== 2.244 │ New York │===================================== 8.406 │ Moskau │===================================================== 11.92 │ Madrid │============== 3.165 │  └────────────────────────────────────────────────────────────┘  population [in mil]red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/ranges.txt000066400000000000000000000015621402627751500263510ustar00rootroot00000000000000 ┌ ┐ 2 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■ 11   3 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 12   4 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 13   5 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 14   6 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 15    └ ┘ red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/barplot/ranges2.txt000066400000000000000000000021411402627751500264250ustar00rootroot00000000000000 ┌ ┐ 2 ┤■■■■■■■■■■■■■■■■■■■ 11   3 ┤■■■■■■■■■■■■■■■■■■■■■ 12   4 ┤■■■■■■■■■■■■■■■■■■■■■■ 13   5 ┤■■■■■■■■■■■■■■■■■■■■■■■■ 14   6 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■ 15   9 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 20   10 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 21    └ ┘ red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/boxplot/000077500000000000000000000000001402627751500243515ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/boxplot/default.txt000066400000000000000000000010721402627751500265360ustar00rootroot00000000000000 ┌ ┐  ╷ ┌─────────┬─────────┐ ╷   ├────────┤ │ ├─────────┤   ╵ └─────────┴─────────┘ ╵   └ ┘  1 3 5red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/boxplot/default_name.txt000066400000000000000000000011501402627751500275330ustar00rootroot00000000000000 ┌ ┐  ╷ ┌─────────┬─────────┐ ╷  series1 ├────────┤ │ ├─────────┤   ╵ └─────────┴─────────┘ ╵   └ ┘  1 3 5red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/boxplot/default_parameters.txt000066400000000000000000000016371402627751500307700ustar00rootroot00000000000000 Test  ┌──────────────────────────────────────────────────┐  │ ╷ ┌────┬─────┐ ╷ │ series1 │ ├─────┤ │ ├────┤ │  │ ╵ └────┴─────┘ ╵ │  └──────────────────────────────────────────────────┘  -1 3.5 8  foored-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/boxplot/default_parameters_nocolor.txt000066400000000000000000000014021402627751500325110ustar00rootroot00000000000000 Test ┌──────────────────────────────────────────────────┐ │ ╷ ┌────┬─────┐ ╷ │ series1 │ ├─────┤ │ ├────┤ │ │ ╵ └────┴─────┘ ╵ │ └──────────────────────────────────────────────────┘ -1 3.5 8 foored-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/boxplot/multi1.txt000066400000000000000000000017221402627751500263270ustar00rootroot00000000000000 Multi-series  ┌ ┐  ╷ ┌────┬────┐ ╷   one ├───┤ │ ├────┤    ╵ └────┴────┘ ╵     ╷ ┌───────┬────────┐ ╷  two  ├────────┤ │ ├────────┤    ╵ └───────┴────────┘ ╵   └ ┘  1 5 9  foored-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/boxplot/multi2.txt000066400000000000000000000025111402627751500263250ustar00rootroot00000000000000 Multi-series  ┌ ┐   ╷ ┌──┬───┐ ╷   one  ├──┤ │ ├──┤     ╵ └──┴───┘ ╵     ╷ ┌─────┬─────┐ ╷   two  ├─────┤ │ ├────┤     ╵ └─────┴─────┘ ╵    ╷ ┌──┬───┐ ╷  one more ├────────┤ │ ├──────────────────────┤   ╵ └──┴───┘ ╵   └ ┘  -1 5 11  foored-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/boxplot/multi3.txt000066400000000000000000000031751402627751500263350ustar00rootroot00000000000000 Multi-series  ┌ ┐   ╷ ┌──┬─┐ ╷   one  ├──┤ │ ├──┤     ╵ └──┴─┘ ╵     ╷ ┌───┬────┐ ╷   two  ├────┤ │ ├────┤     ╵ └───┴────┘ ╵    ╷ ┌──┬─┐ ╷   one more ├──────┤ │ ├──────────────────┤    ╵ └──┴─┘ ╵     ╷┌───┐ ╷  last one  ├┤ ├──────────────────────────┤    ╵└───┘ ╵   └ ┘  -1 6.5 14  foored-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/boxplot/scale1.txt000066400000000000000000000010441402627751500262610ustar00rootroot00000000000000 ┌ ┐   ╷ ┌───────┬───────┐ ╷    ├───────┤ │ ├───────┤    ╵ └───────┴───────┘ ╵   └ ┘  0 2.5 5red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/boxplot/scale2.txt000066400000000000000000000010241402627751500262600ustar00rootroot00000000000000 ┌ ┐   ╷ ┌──────┬──────┐ ╷     ├─────┤ │ ├─────┤     ╵ └──────┴──────┘ ╵    └ ┘  0 3 6red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/boxplot/scale3.txt000066400000000000000000000007641402627751500262730ustar00rootroot00000000000000 ┌ ┐   ╷ ┌───┬───┐ ╷     ├───┤ │ ├───┤     ╵ └───┴───┘ ╵    └ ┘  0 5 10red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/boxplot/scale4.txt000066400000000000000000000007341402627751500262710ustar00rootroot00000000000000 ┌ ┐   ╷ ┌─┬─┐ ╷     ├─┤ │ ├─┤     ╵ └─┴─┘ ╵    └ ┘  0 10 20red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/boxplot/scale5.txt000066400000000000000000000007201402627751500262650ustar00rootroot00000000000000 ┌ ┐  ╷┌┬┐╷    ├┤│├┤    ╵└┴┘╵    └ ┘  0 20 40red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/000077500000000000000000000000001402627751500241355ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/ascii_print.txt000066400000000000000000000055731402627751500272140ustar00rootroot00000000000000|.  '         *   .  "   .  *      `.v-" | \.               .        \   ..-"`   |   \.   " | `      v    `  ..-"`   '   |   ""\="=""""\---------vvr=________"'  |\ "    \{          ..-"`   .   *\  `   |   /    /\.   \..-T` \       /   .**   |      .    lv-/`   '      \     .     . | ` .   ..-"` \.    .        \.         |  ...-"`      `\.   *.         .\    " L,-""  .          \..  `*.        . .   red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/ascii_print_nocolor.txt000066400000000000000000000006311402627751500307350ustar00rootroot00000000000000|. ' * . " . * `.v-" | \. . \ ..-"` | \. " | ` v ` ..-"` ' | ""\="=""""\---------vvr=________"' |\ " \{ ..-"` . *\ ` | / /\. \..-T` \ / .** | . lv-/` ' \ . . | ` . ..-"` \. . \. | ...-"` `\. *. .\ " L,-"" . \.. `*. . . red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/ascii_printrow.txt000066400000000000000000000004341402627751500277330ustar00rootroot00000000000000|   \.   " | `      v    `  ..-"`   '   red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/ascii_show.txt000066400000000000000000000066211402627751500270330ustar00rootroot00000000000000┌────────────────────────────────────────┐ │|.  '         *   .  "   .  *      `.v-"│ │| \.               .        \   ..-"`   │ │|   \.   " | `      v    `  ..-"`   '   │ │|   ""\="=""""\---------vvr=________"'  │ │|\ "    \{          ..-"`   .   *\  `   │ │|   /    /\.   \..-T` \       /   .**   │ │|      .    lv-/`   '      \     .     .│ │| ` .   ..-"` \.    .        \.         │ │|  ...-"`      `\.   *.         .\    " │ │L,-""  .          \..  `*.        . .   │ └────────────────────────────────────────┘red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/ascii_show_nocolor.txt000066400000000000000000000013231402627751500305600ustar00rootroot00000000000000┌────────────────────────────────────────┐ │|. ' * . " . * `.v-"│ │| \. . \ ..-"` │ │| \. " | ` v ` ..-"` ' │ │| ""\="=""""\---------vvr=________"' │ │|\ " \{ ..-"` . *\ ` │ │| / /\. \..-T` \ / .** │ │| . lv-/` ' \ . .│ │| ` . ..-"` \. . \. │ │| ...-"` `\. *. .\ " │ │L,-"" . \.. `*. . . │ └────────────────────────────────────────┘red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/block_print.txt000066400000000000000000000062711402627751500272120ustar00rootroot00000000000000▛▄  ▘         ▘   ▖  ▝   ▗  ▝      ▘▗▙▞▀ ▌ ▀▄               ▖        ▗   ▗▄▞▀▘   ▌▘  ▀▄   ▝ ▐ ▌      ▄    ▘  ▗▄▞▀▘   ▘   ▌   ▀▀▀█▀▛▀▀▀▀▀▀▀▀▀▀▄▄▄▄▄▄▟█▙▄▄▄▙▄▄▄▝▘  ▌▗ ▝    ▀▙          ▗▄▞▀▘   ▖   ▖▝  ▘   ▌   ▖    ▖▀▄   ▝▗▄▞▛▘ ▗       ▖   ▖▘▝   ▌      ▗    ▜▄▞▀▘   ▘      ▝     ▗     ▗ ▌ ▘ ▖   ▗▄▞▀▘ ▀▄    ▖        ▗▗         ▌  ▄▗▄▞▀▘      ▘▀▄   ▝▗         ▗▝    ▝ ▙▙▞▀▀  ▖          ▀▄▖  ▀▘▗        ▖ ▖   red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/block_print_nocolor.txt000066400000000000000000000013211402627751500307340ustar00rootroot00000000000000▛▄ ▘ ▘ ▖ ▝ ▗ ▝ ▘▗▙▞▀ ▌ ▀▄ ▖ ▗ ▗▄▞▀▘ ▌▘ ▀▄ ▝ ▐ ▌ ▄ ▘ ▗▄▞▀▘ ▘ ▌ ▀▀▀█▀▛▀▀▀▀▀▀▀▀▀▀▄▄▄▄▄▄▟█▙▄▄▄▙▄▄▄▝▘ ▌▗ ▝ ▀▙ ▗▄▞▀▘ ▖ ▖▝ ▘ ▌ ▖ ▖▀▄ ▝▗▄▞▛▘ ▗ ▖ ▖▘▝ ▌ ▗ ▜▄▞▀▘ ▘ ▝ ▗ ▗ ▌ ▘ ▖ ▗▄▞▀▘ ▀▄ ▖ ▗▗ ▌ ▄▗▄▞▀▘ ▘▀▄ ▝▗ ▗▝ ▝ ▙▙▞▀▀ ▖ ▀▄▖ ▀▘▗ ▖ ▖ red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/block_printrow.txt000066400000000000000000000005001402627751500277270ustar00rootroot00000000000000▌▘  ▀▄   ▝ ▐ ▌      ▄    ▘  ▗▄▞▀▘   ▘   red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/block_show.txt000066400000000000000000000073171402627751500270400ustar00rootroot00000000000000┌────────────────────────────────────────┐ │▛▄  ▘         ▘   ▖  ▝   ▗  ▝      ▘▗▙▞▀│ │▌ ▀▄               ▖        ▗   ▗▄▞▀▘   │ │▌▘  ▀▄   ▝ ▐ ▌      ▄    ▘  ▗▄▞▀▘   ▘   │ │▌   ▀▀▀█▀▛▀▀▀▀▀▀▀▀▀▀▄▄▄▄▄▄▟█▙▄▄▄▙▄▄▄▝▘  │ │▌▗ ▝    ▀▙          ▗▄▞▀▘   ▖   ▖▝  ▘   │ │▌   ▖    ▖▀▄   ▝▗▄▞▛▘ ▗       ▖   ▖▘▝   │ │▌      ▗    ▜▄▞▀▘   ▘      ▝     ▗     ▗│ │▌ ▘ ▖   ▗▄▞▀▘ ▀▄    ▖        ▗▗         │ │▌  ▄▗▄▞▀▘      ▘▀▄   ▝▗         ▗▝    ▝ │ │▙▙▞▀▀  ▖          ▀▄▖  ▀▘▗        ▖ ▖   │ └────────────────────────────────────────┘red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/block_show_nocolor.txt000066400000000000000000000020131402627751500305570ustar00rootroot00000000000000┌────────────────────────────────────────┐ │▛▄ ▘ ▘ ▖ ▝ ▗ ▝ ▘▗▙▞▀│ │▌ ▀▄ ▖ ▗ ▗▄▞▀▘ │ │▌▘ ▀▄ ▝ ▐ ▌ ▄ ▘ ▗▄▞▀▘ ▘ │ │▌ ▀▀▀█▀▛▀▀▀▀▀▀▀▀▀▀▄▄▄▄▄▄▟█▙▄▄▄▙▄▄▄▝▘ │ │▌▗ ▝ ▀▙ ▗▄▞▀▘ ▖ ▖▝ ▘ │ │▌ ▖ ▖▀▄ ▝▗▄▞▛▘ ▗ ▖ ▖▘▝ │ │▌ ▗ ▜▄▞▀▘ ▘ ▝ ▗ ▗│ │▌ ▘ ▖ ▗▄▞▀▘ ▀▄ ▖ ▗▗ │ │▌ ▄▗▄▞▀▘ ▘▀▄ ▝▗ ▗▝ ▝ │ │▙▙▞▀▀ ▖ ▀▄▖ ▀▘▗ ▖ ▖ │ └────────────────────────────────────────┘red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/braille_print.txt000066400000000000000000000072411402627751500275300ustar00rootroot00000000000000⡗⢄⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠄⠀⠀⠐⠀⠀⠀⢀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠁⢀⡢⠔⠊ ⡇⠁⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀ ⡇⠀⠀⠀⠑⢄⠀⠀⠀⠈⠀⠨⠀⡂⠀⠀⠀⠀⠀⠀⠤⠀⠀⠀⠀⠁⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀ ⡇⠀⠀⠀⠉⠉⠙⢍⠉⡉⠉⠉⠒⠒⠒⠒⠒⠒⠒⠒⠤⠤⠤⠤⢤⡤⠴⠮⣁⣀⣀⣀⣂⣀⣀⣀⠈⠁⠀⠀ ⡇⠠⠀⠐⠀⠀⠀⠀⠑⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠄⠀⠀⠀⠄⠐⠀⠀⠁⠀⠀⠀ ⡇⠀⠀⠀⠄⠀⠀⠀⠀⠄⠑⢄⠀⠀⠀⠐⢀⡠⠔⡊⠃⠀⠠⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⡀⠂⠐⠀⠀⠀ ⡇⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⢑⣤⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠠ ⡇⠀⠁⠀⡀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠑⢄⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⡇⠀⠀⡠⢀⡠⠔⠊⠁⠀⠀⠀⠀⠀⠀⠁⠑⢄⠀⠀⠀⠐⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠐⠀⠀⠀⠀⠈⠀ ⣇⡢⠔⠊⠉⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⡀⠀⠀⠑⠂⢀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⡀⠀⠀⠀red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/braille_print_nocolor.txt000066400000000000000000000022711402627751500312610ustar00rootroot00000000000000⡗⢄⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠄⠀⠀⠐⠀⠀⠀⢀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠁⢀⡢⠔⠊ ⡇⠁⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀ ⡇⠀⠀⠀⠑⢄⠀⠀⠀⠈⠀⠨⠀⡂⠀⠀⠀⠀⠀⠀⠤⠀⠀⠀⠀⠁⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀ ⡇⠀⠀⠀⠉⠉⠙⢍⠉⡉⠉⠉⠒⠒⠒⠒⠒⠒⠒⠒⠤⠤⠤⠤⢤⡤⠴⠮⣁⣀⣀⣀⣂⣀⣀⣀⠈⠁⠀⠀ ⡇⠠⠀⠐⠀⠀⠀⠀⠑⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠄⠀⠀⠀⠄⠐⠀⠀⠁⠀⠀⠀ ⡇⠀⠀⠀⠄⠀⠀⠀⠀⠄⠑⢄⠀⠀⠀⠐⢀⡠⠔⡊⠃⠀⠠⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⡀⠂⠐⠀⠀⠀ ⡇⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⢑⣤⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠠ ⡇⠀⠁⠀⡀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠑⢄⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⡇⠀⠀⡠⢀⡠⠔⠊⠁⠀⠀⠀⠀⠀⠀⠁⠑⢄⠀⠀⠀⠐⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠐⠀⠀⠀⠀⠈⠀ ⣇⡢⠔⠊⠉⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⡀⠀⠀⠑⠂⢀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⡀⠀⠀⠀red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/braille_printrow.txt000066400000000000000000000005541402627751500302600ustar00rootroot00000000000000⡇⠀⠀⠀⠑⢄⠀⠀⠀⠈⠀⠨⠀⡂⠀⠀⠀⠀⠀⠀⠤⠀⠀⠀⠀⠁⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/braille_show.txt000066400000000000000000000102671402627751500273560ustar00rootroot00000000000000┌────────────────────────────────────────┐ │⡗⢄⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠄⠀⠀⠐⠀⠀⠀⢀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠁⢀⡢⠔⠊│ │⡇⠁⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀│ │⡇⠀⠀⠀⠑⢄⠀⠀⠀⠈⠀⠨⠀⡂⠀⠀⠀⠀⠀⠀⠤⠀⠀⠀⠀⠁⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀│ │⡇⠀⠀⠀⠉⠉⠙⢍⠉⡉⠉⠉⠒⠒⠒⠒⠒⠒⠒⠒⠤⠤⠤⠤⢤⡤⠴⠮⣁⣀⣀⣀⣂⣀⣀⣀⠈⠁⠀⠀│ │⡇⠠⠀⠐⠀⠀⠀⠀⠑⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠄⠀⠀⠀⠄⠐⠀⠀⠁⠀⠀⠀│ │⡇⠀⠀⠀⠄⠀⠀⠀⠀⠄⠑⢄⠀⠀⠀⠐⢀⡠⠔⡊⠃⠀⠠⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⡀⠂⠐⠀⠀⠀│ │⡇⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⢑⣤⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠠│ │⡇⠀⠁⠀⡀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠑⢄⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⡇⠀⠀⡠⢀⡠⠔⠊⠁⠀⠀⠀⠀⠀⠀⠁⠑⢄⠀⠀⠀⠐⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠐⠀⠀⠀⠀⠈⠀│ │⣇⡢⠔⠊⠉⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⡀⠀⠀⠑⠂⢀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⡀⠀⠀⠀│ └────────────────────────────────────────┘red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/braille_show_nocolor.txt000066400000000000000000000027631402627751500311130ustar00rootroot00000000000000┌────────────────────────────────────────┐ │⡗⢄⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠄⠀⠀⠐⠀⠀⠀⢀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠁⢀⡢⠔⠊│ │⡇⠁⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀│ │⡇⠀⠀⠀⠑⢄⠀⠀⠀⠈⠀⠨⠀⡂⠀⠀⠀⠀⠀⠀⠤⠀⠀⠀⠀⠁⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀│ │⡇⠀⠀⠀⠉⠉⠙⢍⠉⡉⠉⠉⠒⠒⠒⠒⠒⠒⠒⠒⠤⠤⠤⠤⢤⡤⠴⠮⣁⣀⣀⣀⣂⣀⣀⣀⠈⠁⠀⠀│ │⡇⠠⠀⠐⠀⠀⠀⠀⠑⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠀⠀⠄⠀⠀⠀⠄⠐⠀⠀⠁⠀⠀⠀│ │⡇⠀⠀⠀⠄⠀⠀⠀⠀⠄⠑⢄⠀⠀⠀⠐⢀⡠⠔⡊⠃⠀⠠⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⡀⠂⠐⠀⠀⠀│ │⡇⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⢑⣤⠔⠊⠁⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠠│ │⡇⠀⠁⠀⡀⠀⠀⠀⢀⡠⠔⠊⠁⠀⠑⢄⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⡇⠀⠀⡠⢀⡠⠔⠊⠁⠀⠀⠀⠀⠀⠀⠁⠑⢄⠀⠀⠀⠐⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠐⠀⠀⠀⠀⠈⠀│ │⣇⡢⠔⠊⠉⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⡀⠀⠀⠑⠂⢀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⡀⠀⠀⠀│ └────────────────────────────────────────┘red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/density_print.txt000066400000000000000000000062011402627751500275700ustar00rootroot00000000000000▒░  ░         ░   ░  ░   ░  ░      ░ ▒▒▓ ▒ ░░               ░        ░    ▒▒▒▒   ▒ ░ ░░   ░ ▒ ▒      ▒    ░   ▒▒▒▒   ░   ▒   ░░▒▒░▒░░░░░░░░░░░░░░░▒▒▒▒░░░▒░░░░░  ▒░ ░    ░▒           ▒▒▒▒   ░   ░░  ░   ▒   ▒    ░░░   ░ ▒▒▒▒ ░       ░   ░░░   ▒      ░    ░▒▒▒▒   ░      ░     ░     ░ ▒ ░ ░    ▒▒▒▒ ░░    ░        ░░         ▒  ▒ ▒▒▒▒      ░░░   ░░         ░░    ░ █▒▒▒▒  ░          ░░░  ▒░░        ░ ░   red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/density_print_nocolor.txt000066400000000000000000000013031402627751500313210ustar00rootroot00000000000000▒░ ░ ░ ░ ░ ░ ░ ░ ▒▒▓ ▒ ░░ ░ ░ ▒▒▒▒ ▒ ░ ░░ ░ ▒ ▒ ▒ ░ ▒▒▒▒ ░ ▒ ░░▒▒░▒░░░░░░░░░░░░░░░▒▒▒▒░░░▒░░░░░ ▒░ ░ ░▒ ▒▒▒▒ ░ ░░ ░ ▒ ▒ ░░░ ░ ▒▒▒▒ ░ ░ ░░░ ▒ ░ ░▒▒▒▒ ░ ░ ░ ░ ▒ ░ ░ ▒▒▒▒ ░░ ░ ░░ ▒ ▒ ▒▒▒▒ ░░░ ░░ ░░ ░ █▒▒▒▒ ░ ░░░ ▒░░ ░ ░ red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/density_printrow.txt000066400000000000000000000004701402627751500303220ustar00rootroot00000000000000▒ ░ ░░   ░ ▒ ▒      ▒    ░   ▒▒▒▒   ░   red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/density_show.txt000066400000000000000000000072271402627751500274250ustar00rootroot00000000000000┌────────────────────────────────────────┐ │▒░  ░         ░   ░  ░   ░  ░      ░ ▒▒▓│ │▒ ░░               ░        ░    ▒▒▒▒   │ │▒ ░ ░░   ░ ▒ ▒      ▒    ░   ▒▒▒▒   ░   │ │▒   ░░▒▒░▒░░░░░░░░░░░░░░░▒▒▒▒░░░▒░░░░░  │ │▒░ ░    ░▒           ▒▒▒▒   ░   ░░  ░   │ │▒   ▒    ░░░   ░ ▒▒▒▒ ░       ░   ░░░   │ │▒      ░    ░▒▒▒▒   ░      ░     ░     ░│ │▒ ░ ░    ▒▒▒▒ ░░    ░        ░░         │ │▒  ▒ ▒▒▒▒      ░░░   ░░         ░░    ░ │ │█▒▒▒▒  ░          ░░░  ▒░░        ░ ░   │ └────────────────────────────────────────┘red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/density_show_nocolor.txt000066400000000000000000000017751402627751500311620ustar00rootroot00000000000000┌────────────────────────────────────────┐ │▒░ ░ ░ ░ ░ ░ ░ ░ ▒▒▓│ │▒ ░░ ░ ░ ▒▒▒▒ │ │▒ ░ ░░ ░ ▒ ▒ ▒ ░ ▒▒▒▒ ░ │ │▒ ░░▒▒░▒░░░░░░░░░░░░░░░▒▒▒▒░░░▒░░░░░ │ │▒░ ░ ░▒ ▒▒▒▒ ░ ░░ ░ │ │▒ ▒ ░░░ ░ ▒▒▒▒ ░ ░ ░░░ │ │▒ ░ ░▒▒▒▒ ░ ░ ░ ░│ │▒ ░ ░ ▒▒▒▒ ░░ ░ ░░ │ │▒ ▒ ▒▒▒▒ ░░░ ░░ ░░ ░ │ │█▒▒▒▒ ░ ░░░ ▒░░ ░ ░ │ └────────────────────────────────────────┘red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/dot_print.txt000066400000000000000000000055271402627751500267110ustar00rootroot00000000000000:.  '         '   .  '   .  '      ' :.' : '.               .        .    ..''   : ' '.   ' : :      .    '   ..''   '   :   ''':':''''''''''.......::...:...''  :. '    ':           ..''   .   .'  '   :   .    .'.   ' ..:' .       .   .''   :      .    '..''   '      '     .     . : ' .    ..'' '.    .        ..         :  . ..''      ''.   '.         .'    ' ::.''  .          '..  ''.        . .   red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/dot_print_nocolor.txt000066400000000000000000000006311402627751500304330ustar00rootroot00000000000000:. ' ' . ' . ' ' :.' : '. . . ..'' : ' '. ' : : . ' ..'' ' : ''':':''''''''''.......::...:...'' :. ' ': ..'' . .' ' : . .'. ' ..:' . . .'' : . '..'' ' ' . . : ' . ..'' '. . .. : . ..'' ''. '. .' ' ::.'' . '.. ''. . . red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/dot_printrow.txt000066400000000000000000000004341402627751500274310ustar00rootroot00000000000000: ' '.   ' : :      .    '   ..''   '   red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/dot_show.txt000066400000000000000000000065551402627751500265370ustar00rootroot00000000000000┌────────────────────────────────────────┐ │:.  '         '   .  '   .  '      ' :.'│ │: '.               .        .    ..''   │ │: ' '.   ' : :      .    '   ..''   '   │ │:   ''':':''''''''''.......::...:...''  │ │:. '    ':           ..''   .   .'  '   │ │:   .    .'.   ' ..:' .       .   .''   │ │:      .    '..''   '      '     .     .│ │: ' .    ..'' '.    .        ..         │ │:  . ..''      ''.   '.         .'    ' │ │::.''  .          '..  ''.        . .   │ └────────────────────────────────────────┘red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/dot_show_nocolor.txt000066400000000000000000000013231402627751500302560ustar00rootroot00000000000000┌────────────────────────────────────────┐ │:. ' ' . ' . ' ' :.'│ │: '. . . ..'' │ │: ' '. ' : : . ' ..'' ' │ │: ''':':''''''''''.......::...:...'' │ │:. ' ': ..'' . .' ' │ │: . .'. ' ..:' . . .'' │ │: . '..'' ' ' . .│ │: ' . ..'' '. . .. │ │: . ..'' ''. '. .' ' │ │::.'' . '.. ''. . . │ └────────────────────────────────────────┘red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/empty_braille_show.txt000066400000000000000000000064171402627751500305760ustar00rootroot00000000000000┌────────────────────────────────────────┐ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ └────────────────────────────────────────┘red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/canvas/empty_show.txt000066400000000000000000000047571402627751500271110ustar00rootroot00000000000000┌────────────────────────────────────────┐ │                                        │ │                                        │ │                                        │ │                                        │ │                                        │ │                                        │ │                                        │ │                                        │ │                                        │ │                                        │ └────────────────────────────────────────┘red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/histogram/000077500000000000000000000000001402627751500246575ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/histogram/default.txt000066400000000000000000000051321402627751500270450ustar00rootroot00000000000000 ┌ ┐ [-4.5, -4.0) ┤ 1   [-4.0, -3.5) ┤ 2   [-3.5, -3.0) ┤ 8   [-3.0, -2.5) ┤▇ 65   [-2.5, -2.0) ┤▇▇▇ 169   [-2.0, -1.5) ┤▇▇▇▇▇▇▇▇ 456   [-1.5, -1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911   [-1.0, -0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514   [-0.5,  0.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956   [ 0.0,  0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825   [ 0.5,  1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500   [ 1.0,  1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930   [ 1.5,  2.0) ┤▇▇▇▇▇▇▇▇ 436   [ 2.0,  2.5) ┤▇▇▇ 162   [ 2.5,  3.0) ┤▇ 50   [ 3.0,  3.5) ┤ 10   [ 3.5,  4.0) ┤ 5    └ ┘  Frequencyred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/histogram/default_1e-2.txt000066400000000000000000000052521402627751500275740ustar00rootroot00000000000000 ┌ ┐ [-0.045, -0.04 ) ┤ 1   [-0.04 , -0.035) ┤ 2   [-0.035, -0.03 ) ┤ 8   [-0.03 , -0.025) ┤▇ 65   [-0.025, -0.02 ) ┤▇▇▇ 169   [-0.02 , -0.015) ┤▇▇▇▇▇▇▇▇ 456   [-0.015, -0.01 ) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911   [-0.01 , -0.005) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514   [-0.005, -0.0 ) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956   [ 0.0 ,  0.005) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825   [ 0.005,  0.01 ) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500   [ 0.01 ,  0.015) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930   [ 0.015,  0.02 ) ┤▇▇▇▇▇▇▇▇ 436   [ 0.02 ,  0.025) ┤▇▇▇ 162   [ 0.025,  0.03 ) ┤▇ 50   [ 0.03 ,  0.035) ┤ 10   [ 0.035,  0.04 ) ┤ 5    └ ┘  Frequencyred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/histogram/default_1e2.txt000066400000000000000000000052521402627751500275170ustar00rootroot00000000000000 ┌ ┐ [-450.0, -400.0) ┤ 1   [-400.0, -350.0) ┤ 2   [-350.0, -300.0) ┤ 8   [-300.0, -250.0) ┤▇ 65   [-250.0, -200.0) ┤▇▇▇ 169   [-200.0, -150.0) ┤▇▇▇▇▇▇▇▇ 456   [-150.0, -100.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911   [-100.0,  -50.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514   [ -50.0,  0.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956   [ 0.0,  50.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825   [ 50.0,  100.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500   [ 100.0,  150.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930   [ 150.0,  200.0) ┤▇▇▇▇▇▇▇▇ 436   [ 200.0,  250.0) ┤▇▇▇ 162   [ 250.0,  300.0) ┤▇ 50   [ 300.0,  350.0) ┤ 10   [ 350.0,  400.0) ┤ 5    └ ┘  Frequencyred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/histogram/default_nocolor.txt000066400000000000000000000030431402627751500305770ustar00rootroot00000000000000 ┌ ┐ [-4.5, -4.0) ┤ 1 [-4.0, -3.5) ┤ 2 [-3.5, -3.0) ┤ 8 [-3.0, -2.5) ┤▇ 65 [-2.5, -2.0) ┤▇▇▇ 169 [-2.0, -1.5) ┤▇▇▇▇▇▇▇▇ 456 [-1.5, -1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911 [-1.0, -0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514 [-0.5, 0.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956 [ 0.0, 0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825 [ 0.5, 1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500 [ 1.0, 1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930 [ 1.5, 2.0) ┤▇▇▇▇▇▇▇▇ 436 [ 2.0, 2.5) ┤▇▇▇ 162 [ 2.5, 3.0) ┤▇ 50 [ 3.0, 3.5) ┤ 10 [ 3.5, 4.0) ┤ 5 └ ┘ Frequencyred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/histogram/hist_params.txt000066400000000000000000000017001402627751500277300ustar00rootroot00000000000000 ┌ ┐ (-6.0, -4.0] ┤ 1   (-4.0, -2.0] ┤▇▇ 244   (-2.0,  0.0] ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 4837   ( 0.0,  2.0] ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 4691   ( 2.0,  4.0] ┤▇▇ 227    └ ┘  Frequencyred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/histogram/log10.txt000066400000000000000000000057761402627751500263610ustar00rootroot00000000000000 ┌ ┐ [-4.5, -4.0) ┤ 1   [-4.0, -3.5) ┤▇▇▇ 2   [-3.5, -3.0) ┤▇▇▇▇▇▇▇▇▇ 8   [-3.0, -2.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 65   [-2.5, -2.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 169   [-2.0, -1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 456   [-1.5, -1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911   [-1.0, -0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514   [-0.5,  0.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956   [ 0.0,  0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825   [ 0.5,  1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500   [ 1.0,  1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930   [ 1.5,  2.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 436   [ 2.0,  2.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 162   [ 2.5,  3.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 50   [ 3.0,  3.5) ┤▇▇▇▇▇▇▇▇▇▇ 10   [ 3.5,  4.0) ┤▇▇▇▇▇▇▇ 5    └ ┘  Frequency [log10]red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/histogram/log10_label.txt000066400000000000000000000057731402627751500275150ustar00rootroot00000000000000 ┌ ┐ [-4.5, -4.0) ┤ 1   [-4.0, -3.5) ┤▇▇▇ 2   [-3.5, -3.0) ┤▇▇▇▇▇▇▇▇▇ 8   [-3.0, -2.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 65   [-2.5, -2.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 169   [-2.0, -1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 456   [-1.5, -1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911   [-1.0, -0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514   [-0.5,  0.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956   [ 0.0,  0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825   [ 0.5,  1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500   [ 1.0,  1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930   [ 1.5,  2.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 436   [ 2.0,  2.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 162   [ 2.5,  3.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 50   [ 3.0,  3.5) ┤▇▇▇▇▇▇▇▇▇▇ 10   [ 3.5,  4.0) ┤▇▇▇▇▇▇▇ 5    └ ┘  custom labelred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/histogram/parameters1.txt000066400000000000000000000054661402627751500276570ustar00rootroot00000000000000 My Histogram  ┌ ┐ [-4.5, -4.0) ┤ 1   [-4.0, -3.5) ┤ 2   [-3.5, -3.0) ┤ 8   [-3.0, -2.5) ┤▇ 65   [-2.5, -2.0) ┤▇▇▇ 169   [-2.0, -1.5) ┤▇▇▇▇▇▇▇▇ 456   [-1.5, -1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911   [-1.0, -0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514   [-0.5,  0.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956   [ 0.0,  0.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825   [ 0.5,  1.0) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500   [ 1.0,  1.5) ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930   [ 1.5,  2.0) ┤▇▇▇▇▇▇▇▇ 436   [ 2.0,  2.5) ┤▇▇▇ 162   [ 2.5,  3.0) ┤▇ 50   [ 3.0,  3.5) ┤ 10   [ 3.5,  4.0) ┤ 5    └ ┘  Absolute Frequencyred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/histogram/parameters1_nolabels.txt000066400000000000000000000037141402627751500315300ustar00rootroot00000000000000 My Histogram  ┌ ┐  ┤ 1    ┤ 2    ┤ 8    ┤▇ 65    ┤▇▇▇ 169    ┤▇▇▇▇▇▇▇▇ 456    ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 911    ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1514    ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1956    ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1825    ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1500    ┤▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 930    ┤▇▇▇▇▇▇▇▇ 436    ┤▇▇▇ 162    ┤▇ 50    ┤ 10    ┤ 5    └ ┘ red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/histogram/parameters2.txt000066400000000000000000000053501402627751500276500ustar00rootroot00000000000000 My Histogram  ┌──────────────────────────────────────────────────┐ [-4.5, -4.0) │ 1 │ [-4.0, -3.5) │ 2 │ [-3.5, -3.0) │ 8 │ [-3.0, -2.5) │= 65 │ [-2.5, -2.0) │==== 169 │ [-2.0, -1.5) │========== 456 │ [-1.5, -1.0) │==================== 911 │ [-1.0, -0.5) │================================== 1514 │ [-0.5,  0.0) │============================================ 1956 │ [ 0.0,  0.5) │========================================= 1825 │ [ 0.5,  1.0) │================================== 1500 │ [ 1.0,  1.5) │===================== 930 │ [ 1.5,  2.0) │========== 436 │ [ 2.0,  2.5) │==== 162 │ [ 2.5,  3.0) │= 50 │ [ 3.0,  3.5) │ 10 │ [ 3.5,  4.0) │ 5 │  └──────────────────────────────────────────────────┘  Absolute Frequencyred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/000077500000000000000000000000001402627751500245105ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/blue.txt000066400000000000000000000133371402627751500262070ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│ points1  │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡗⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠉⠑⠢⢄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠛⢖⠒⠒⠒⠒⠒⠒⡲⠖⠓⠒⠒⠒⠒⠒⠒⠒⠒⠒⢺│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│  └────────────────────────────────────────┘  -1  3red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/canvassize.txt000066400000000000000000000013671402627751500274260ustar00rootroot00000000000000 Scatter  ┌──────────┐ 2 │'':.     :│  │'':'':':':│  │  :  .'. :│  │  :.'  '.:│ -5 │..:      :│  └──────────┘  -1  3red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/dates1.txt000066400000000000000000000044041402627751500264340ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 1 │⠀⠀⠀⡠⠒⠉⠉⠉⠑⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠉⠉⠉⠒⠢⡀⠀⠀│ sin  │⠀⡔⠉⠀⠀⠀⠀⠀⠀⠀⠈⠢⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠎⠁⠀⠀⠀⠀⠀⠀⠀⠑⠤⡀│  │⠮⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠬⠦⡤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡤⠮⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠼│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢄⡀⠀⠀⠀⠀⠀⠀⠀⡔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -1 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠦⣀⣀⣀⡠⠤⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  1999-12-31  2000-01-30  datered-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/dates2.txt000066400000000000000000000050201402627751500264300ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 1 │⠉⠑⠒⣤⠒⠉⠉⠉⠑⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠒⠉⠉⠉⠑⢢⡔⠊⠉⠉⠉⠒⠢⡀⠀⠀│ sin  │⠀⡔⠉⠀⠣⢄⠀⠀⠀⠀⠈⠢⡄⠀⠀⠀⠀⠀⠀⠀⠀⡔⠉⠀⠀⠀⠀⢀⠎⠁⠈⠢⡄⠀⠀⠀⠀⠑⠤⡀│ cos  │⠮⠤⠤⠤⠤⠤⠵⡤⠤⠤⠤⠤⠬⠦⡤⠤⠤⠤⠤⢤⠮⠤⠤⠤⠤⠤⡤⠮⠤⠤⠤⠤⠬⠦⡤⠤⠤⠤⠤⠼│  │⠀⠀⠀⠀⠀⠀⠀⠘⢆⡀⠀⠀⠀⠀⠘⢄⡀⡠⠒⠁⠀⠀⠀⠀⡔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠘⢄⡀⠀⠀⠀│ -1 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⢄⣀⣀⣀⠤⠜⠧⣀⣀⣀⡠⠤⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠦⣀⣀│  └────────────────────────────────────────┘  1999-12-31  2000-01-30  datered-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/default.txt000066400000000000000000000131361402627751500267010ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│  │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡗⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠉⠑⠢⢄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠛⢖⠒⠒⠒⠒⠒⠒⡲⠖⠓⠒⠒⠒⠒⠒⠒⠒⠒⠒⢺│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│  └────────────────────────────────────────┘  -1  3red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/issue32_fix.txt000066400000000000000000000211031402627751500274110ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 700 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡠⠤⠤⠔⠒⠒⠉⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⢀⣀⣀⠤⠤⠒⠒⠊⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ 0 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  0  20red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/limits.txt000066400000000000000000000130641402627751500265560ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2.5 │⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀│  │⠀⠀⠀⠀⠈⠑⠢⢄⣀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⡇⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠒⠤⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠁⠀⠀⡇⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠉⠒⠤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⡇⠀⠀⠀│  │⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠬⠵⠦⡤⠤⠤⠤⠤⠤⢤⠴⠭⠤⠤⠤⠤⠤⠤⠤⡧⠤⠤⠤│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⠜⢎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⢀⠤⠊⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⣀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡧⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⡇⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠁⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⡇⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⡠⠊⠁⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⡇⠀⠀⠀│  │⠀⠀⠀⠀⢀⠔⠉⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢄⡇⠀⠀⠀│ -5.5 │⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀│  └────────────────────────────────────────┘  -1.5  3.5red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/nocolor.txt000066400000000000000000000047601402627751500267330ustar00rootroot00000000000000 Scatter ┌────────────────────────────────────────┐ 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│ points1 │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⡇⠀⠀⠀⠀⠀⢀⣀⣀⠤⠤⠔⠒⠊⠉⠁⠀⠀⠀⠀⠀⢀⣀⣀⠤⡤⠔⠓⠊⢹│ points2 │⠀⠀⠀⠀⠀⠀⠀⢀⣀⡨⡷⠶⠶⣒⠊⠉⠁⠀⠀⠀⠀⠀⢀⣀⡠⠤⠤⠒⠒⠊⠉⠁⢀⠔⠊⠀⠀⠀⠀⢸│ points3 │⠀⠀⠀⠀⠀⠉⠉⠁⠀⠀⡇⠀⠀⠀⠉⠑⠢⢄⣀⠀⠉⠉⠁⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│ │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠛⢖⠒⠒⠒⠒⠒⠒⡲⠖⠓⠒⠒⠒⠒⠒⠒⠒⠒⠒⢺│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ y │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│ │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│ │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│ │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│ └────────────────────────────────────────┘ -1 3 xred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/nogrid.txt000066400000000000000000000131361402627751500265370ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│  │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠑⠢⢄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢆⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│  └────────────────────────────────────────┘  -1  3red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/parameters1.txt000066400000000000000000000135231402627751500275010ustar00rootroot00000000000000 Scatter  ┌────────────────────────────────────────┐ 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│ points1  │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡗⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠉⠑⠢⢄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠛⢖⠒⠒⠒⠒⠒⠒⡲⠖⠓⠒⠒⠒⠒⠒⠒⠒⠒⠒⢺│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ y  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│  └────────────────────────────────────────┘  -1  3  xred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/parameters2.txt000066400000000000000000000137111402627751500275010ustar00rootroot00000000000000 Scatter  ┌────────────────────────────────────────┐ 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│ points1  │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⠤⡤⠔⠓⠊⢹│ points2  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡗⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡠⠤⠤⠒⠒⠊⠉⠁⢀⠔⠊⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠉⠑⠢⢄⣀⠀⠉⠉⠁⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠛⢖⠒⠒⠒⠒⠒⠒⡲⠖⠓⠒⠒⠒⠒⠒⠒⠒⠒⠒⢺│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ y  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│  └────────────────────────────────────────┘  -1  3  xred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/parameters3.txt000066400000000000000000000140771402627751500275100ustar00rootroot00000000000000 Scatter  ┌────────────────────────────────────────┐ 2 │⠉⠑⠢⠤⣀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⢺│ points1  │⠀⠀⠀⠀⠀⠉⠒⠤⢄⡀⡇⠀⠀⠀⠀⠀⢀⣀⣀⠤⠤⠔⠒⠊⠉⠁⠀⠀⠀⠀⠀⢀⣀⣀⠤⡤⠔⠓⠊⢹│ points2  │⠀⠀⠀⠀⠀⠀⠀⢀⣀⡨⡷⠶⠶⣒⠊⠉⠁⠀⠀⠀⠀⠀⢀⣀⡠⠤⠤⠒⠒⠊⠉⠁⢀⠔⠊⠀⠀⠀⠀⢸│ points3  │⠀⠀⠀⠀⠀⠉⠉⠁⠀⠀⡇⠀⠀⠀⠉⠑⠢⢄⣀⠀⠉⠉⠁⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⢸│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠛⢖⠒⠒⠒⠒⠒⠒⡲⠖⠓⠒⠒⠒⠒⠒⠒⠒⠒⠒⢺│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠛⢅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ y  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢢⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⢸│  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⢸│ -5 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢼│  └────────────────────────────────────────┘  -1  3  xred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/range1.txt000066400000000000000000000124161402627751500264320ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 10 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ 6 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  1  5red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/range2.txt000066400000000000000000000124161402627751500264330ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 10 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⢀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ 6 │⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  11  15red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/scale1.txt000066400000000000000000000131441402627751500264240ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ -14.998 │⠉⠒⠤⣀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⡇⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠉⠒⠤⡀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠈⡗⠢⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠈⠑⠢⣀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠤⠊⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠉⢆⠀⠀⠀⠀⢀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⢀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⠜⢇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⡠⠒⠁⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⢀⠔⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⢀⠔⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⢀⠔⠁⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⡇⠀⠀⠀⠀⠀⠀⠀│ -15.005 │⣀⠔⠁⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢆⡇⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  -1000  4000red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/scale2.txt000066400000000000000000000131361402627751500264260ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2000 │⠉⠑⠒⠤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠤⢺│  │⠀⠀⠀⠀⠀⠈⠉⠒⠤⢄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⠊⠁⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠒⠢⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠊⠀⠀⠀⠀⠀⢸│  │⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣉⣑⣒⣤⣀⣀⣀⣀⣀⣀⣀⣀⣀⣔⣊⣀⣀⣀⣀⣀⣀⣀⣀⣸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠢⡀⠀⠀⣀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣈⠶⡊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠊⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠉⠀⠀⠀⠀⠀⠀⠀⠈⠢⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⡠⠔⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⡠⠔⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⠤⡀⠀⢸│  │⢀⡠⠒⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⣸│  │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ -6000 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  14.999  15.003red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/scale3.txt000066400000000000000000000124701402627751500264270ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 4000000 │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊│  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀│  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠁⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⣀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⡇⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ 0 │⠀⠀⠀⠀⢀⣇⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  -100000  700000red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/scale3_small.txt000066400000000000000000000010721402627751500276130ustar00rootroot00000000000000 ┌─────┐ 4000000 │⢸⠀⠀⠀⡜│  │⢸⠀⠀⡜⠀│  │⢸⠀⡰⠁⠀│  │⢸⢰⠁⠀⠀│ 0 │⢸⠃⠀⠀⠀│  └─────┘  -100000700000red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/slope1.txt000066400000000000000000000132461402627751500264620ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2 │⠉⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⢇⠀⠀⠀⠀⢀⣀⠤⠒⠉│  │⠀⠀⠈⠒⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠘⣄⠤⠔⠊⠁⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⡜⠒⠉⢱⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠉⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠤⠒⠉⠁⢰⠁⠀⠀⠀⢇⠀⠀⠀⠀⠀⠀⠀│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠚⡖⠒⠒⠒⠒⠒⠒⣒⠶⠖⠚⠓⠒⠒⠒⠒⢒⠗⠒⠒⠒⠒⠚⡖⠒⠒⠒⠒⠒⠒│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⢀⡠⠔⠒⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⢀⣀⠤⠒⠙⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀⠀⠀│  │⠀⠀⠀⣀⠤⠔⠊⠁⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀│  │⠔⠒⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢱⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀│ -5 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣│  └────────────────────────────────────────┘  1  5red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/slope2.txt000066400000000000000000000136731402627751500264670ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2 │⠉⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⢇⠀⠀⠀⠀⢀⣀⠤⠒⠉│ foo  │⠀⠀⠈⠒⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠘⣄⠤⠔⠊⠁⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⡜⠒⠉⢱⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠉⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠤⠒⠉⠁⢰⠁⠀⠀⠀⢇⠀⠀⠀⠀⠀⠀⠀│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠚⡖⠒⠒⠒⠒⠒⠒⣒⠶⠖⠚⠓⠒⠒⠒⠒⢒⠗⠒⠒⠒⠒⠚⡖⠒⠒⠒⠒⠒⠒│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⢀⡠⠔⠒⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⢀⣀⠤⠒⠙⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀⠀⠀│  │⠀⠀⠀⣀⠤⠔⠊⠁⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠸⣀⣀⣀⠤⠴│  │⠔⠒⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⣀⣀⡠⠤⠤⠒⠒⠉⠉⢣⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⣀⣀⠤⠤⠔⠒⢲⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⠤⠤⠒⠒⠊⠹⡉⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀│  │⡠⠤⠤⠒⠒⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⢱⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀│ -5 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣│  └────────────────────────────────────────┘  1  5red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/squeeze_annotations.txt000066400000000000000000000040161402627751500313500ustar00rootroot00000000000000 Hellohow areyou?  ┌──────────┐ 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼│  │⠀⠀⠀⠀⠀⠀⠀⢀⠜⢸│  │⠀⠀⠀⠀⡤⠤⢤⠮⢤⢸│  │⠀⠀⠀⠀⡇⢠⠊⠀⢸⢸│  │⠀⠀⠀⠀⣧⠃⠀⠀⢸⢸│  │⠀⡏⠉⡹⠁⠀⠀⠀⢸⢸│  │⠀⡇⡰⠁⠀⠀⠀⠀⢸⢸│  │⠀⡟⠀⠀⠀⠀⠀⠀⠸⠼│  │⡜⡇⠀⠀⠀⠀⠀⠀⠀⠀│ 1 │⣀⡇⠀⠀⠀⠀⠀⠀⠀⠀│  └──────────┘  Hellohow areyou?red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/stairs_edgecase.txt000066400000000000000000000125201402627751500303760ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 7000 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│ 0 │⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣸│  └────────────────────────────────────────┘  1  8red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/stairs_parameters.txt000066400000000000000000000134331402627751500310050ustar00rootroot00000000000000 Foo  ┌────────────────────────────────────────┐ 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⢸│ 1  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⢸│ 2  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⢸⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸⢸│  │⠀⠀⠀⠀⢰⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠚⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸⢸│  │⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡧⡄⠀⠀⠀⢸⢸│  │⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⣇⣀⣀⣀⣸⢸│  │⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⢸⢸⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│  │⠒⠒⠒⠒⠚⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠧⠤⠤⠤⠤⠼│  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ 1 │⣀⣀⣀⣀⣀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  1  8  xred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/stairs_parameters2.txt000066400000000000000000000141051402627751500310640ustar00rootroot00000000000000 Foo  ┌────────────────────────────────────────┐ 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡏⠉⠉⠉⢹⢹│ 1  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⢸⢸│ 2  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⢸⢸│ 3  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⡀⡇⠀⠀⠀⢸⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡇⠀⠀⠀⢸⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡇⠀⠀⠀⢸⢸│  │⠀⠀⠀⠀⢰⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠚⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡇⠀⠀⠀⢸⢸│  │⠀⠀⠀⠀⢸⢠⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡧⡇⠀⠀⠀⢸⢸│  │⠀⠀⠀⠀⢸⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⣇⣀⣀⣀⣸⢸│  │⠀⠀⠀⠀⢸⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│  │⡏⠉⠉⠉⢹⢹⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│  │⡗⠒⠒⠒⠚⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│  │⡇⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠧⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠧⠤⠤⠤⠤⠼│  │⡇⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ 1 │⣇⣀⣀⣀⣀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  1  8  xred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/stairs_parameters2_nocolor.txt000066400000000000000000000045141402627751500326220ustar00rootroot00000000000000 Foo ┌────────────────────────────────────────┐ 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡏⠉⠉⠉⢹⢹│ 1 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⢸⢸│ 2 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⢸⢸│ 3 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⡀⡇⠀⠀⠀⢸⢸│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡇⠀⠀⠀⢸⢸│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡇⠀⠀⠀⢸⢸│ │⠀⠀⠀⠀⢰⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠚⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⡇⠀⠀⠀⢸⢸│ │⠀⠀⠀⠀⢸⢠⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡧⡇⠀⠀⠀⢸⢸│ │⠀⠀⠀⠀⢸⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⣇⣀⣀⣀⣸⢸│ │⠀⠀⠀⠀⢸⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ │⡏⠉⠉⠉⢹⢹⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ │⡗⠒⠒⠒⠚⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│ │⡇⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠧⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠧⠤⠤⠤⠤⠼│ │⡇⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ 1 │⣇⣀⣀⣀⣀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ └────────────────────────────────────────┘ 1 8 xred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/stairs_post.txt000066400000000000000000000125261402627751500276310ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡄⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⢸⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⢸│  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠧⠤⠤⠤⠤⠼│  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ 1 │⣀⣀⣀⣀⣀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  1  8red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/stairs_pre.txt000066400000000000000000000125261402627751500274320ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 7 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡏⠉⠉⠉⠉⠉│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⢠⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│  │⡏⠉⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│  │⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀│  │⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠧⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠇⠀⠀⠀⠀⠀│  │⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ 1 │⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  1  8red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/lineplot/y_only.txt000066400000000000000000000126601402627751500265670ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2 │⠉⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⢇⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠈⠒⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⢱⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠉⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⢇⠀⠀⠀⠀⠀⠀⠀│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠚⡖⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⢒⠗⠒⠒⠒⠒⠚⡖⠒⠒⠒⠒⠒⠒│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢱⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀│ -5 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣│  └────────────────────────────────────────┘  1  5red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/randn.txt000066400000000000000000005773341402627751500245500ustar00rootroot00000000000000-0.32958197469857736 0.8128121129837046 1.882083723025754 0.963959953730384 1.8461074556435184 0.2700047175492735 -0.06804974230768497 -0.8189866759490652 -0.9673505123501639 0.2938508669734399 0.19815530196196957 -0.000871823096202101 -0.49156359282476364 0.5347333539390782 -1.7525072345713935 -0.7260903289044955 0.7378700824461942 1.9767215038950663 -1.0305954847791625 0.3899554846717337 -0.7356121921815371 -0.7288575845703916 0.9671711271532987 -1.0907077340929099 0.9266611111138336 -0.6385551673162309 -0.9318540316208712 2.161874182920445 -0.07589591610624044 3.1160655000950923 2.7879236675148187 2.26355826725101 -0.5557203715190229 -0.617472474841585 -0.2842254139692148 0.9920490764649508 0.8931609245556241 -0.5468865394270588 -0.8206289326766747 -0.04416965527494406 0.9377187977595242 -1.7652385598290785 1.0465202481757576 0.6891695741281211 0.8760198942716435 0.06642148300004219 1.3425092404733574 0.2531183153700703 -0.9530210972831613 1.4424122140606719 0.3941817986980491 0.27687624688929324 0.9239734256193073 2.7498516500667667 -0.8590655061299015 1.8135218926509644 0.6151839221773048 -0.9297629357480012 -1.627090409366283 0.1173678036589521 -0.5763733351690885 -0.5147405019501218 -1.3020933099964442 0.7433593579707246 0.9902805793826872 -0.942541022603409 -0.27612807399190464 0.9082831682187507 1.3162762854502965 1.6273089810181478 -0.24437388473081967 -0.6964106841150811 -0.1773154134264461 -0.5177795418512539 1.2012073884649712 -0.3902043258710514 -0.2833476563183354 -0.7744130228333072 -1.5768200860378236 -0.21462514005677036 0.9754348623968342 -1.3443838441840263 -0.14843795951748168 -0.9664857712824052 0.7206200324699356 -1.576998885053687 -0.45927646606449946 -1.3226593841543084 -1.8330620115962393 1.0274002794715253 1.90550463063769 0.003746680353577447 -1.3193505011162825 1.7698738567702745 -0.11428565710164702 -0.8450355502139248 0.36050254006982907 1.3628550911650017 0.12221678666676251 1.9898882659065158 -0.8701288618842657 0.8149134730579659 -0.06378270164472492 -0.09306293876197429 0.8737029200953192 1.1564546581470971 -1.4064750778111033 1.8333879884306588 -0.08505594527643315 -0.0675195973438915 0.5970591753384297 1.1361785558660076 -1.7456728710917557 -0.36162898887641237 1.124862333076972 -0.30859487957195597 0.5281209632509506 0.14832099032070342 0.5018206598282577 -0.21987953963074552 0.6914666064276535 -1.870142986227056 -1.0157831611387402 -0.979497853944363 0.6557722044335158 -0.031284966437444134 -0.9193083606206252 -1.9595569127168393 -1.0020962406512604 0.9450459213927636 -0.6690047577222856 -0.15689273112246271 0.16787467977733123 0.46801303768172114 0.29095164676274027 -0.19216638385857437 0.980302074969812 0.21144574690428813 0.36893277043265243 0.5965560426395776 0.6032712273015585 0.020771524682010028 1.339096622045867 0.08519303813578774 -2.3871444015264864 1.7190156078823826 -1.3471539281724172 -0.004643746446662698 -0.3926468664522464 -1.5662734365171116 -1.3069981899957455 1.6869961949059242 -0.20317049377091384 1.3828877833033668 1.4989784254213452 0.761979495583769 0.7048679544522799 1.0077611116448384 -0.5889190583913357 2.4661202481840205 0.5986179651222487 0.009414181922620168 -1.5058307322996942 -0.2946266634717495 0.27465860115270474 -0.8548140070060688 1.2518845546568946 0.8015559987005222 0.8189490669028812 -1.8216353081082695 -0.42349739081780147 -1.088527956191091 -0.5126950138657371 0.07042391987050482 -0.3661220257864967 1.002133016813666 -2.2144515837611225 -0.9335460401266351 0.1415562338178595 0.7616093056224419 -0.8922708051046021 -0.5894851115265487 0.9682252471215467 -0.6848931202924592 -1.2134334334862809 -1.4267378004565343 0.5442108760521868 -1.4091598756617965 -0.9033145481659495 -2.4318526713844193 0.4922591340417251 -0.9695855682907829 0.21693035455635526 -1.7923922660742768 0.9622603834738889 -0.5931346059220476 -0.16785119764667936 0.3615546946846785 0.6329930507699564 -1.3519792530770611 1.0279226355086586 -1.5053211162971238 0.2629168915232593 -0.470881623197536 0.42300044934101333 0.12004693780213267 -0.1570855319782282 1.067060122083555 -0.14560852177111047 0.10315685675878943 0.5542421373875248 -0.6294028826550176 0.41483418281326057 0.4856085309733672 -0.29460112231210167 -0.823999093651093 1.370066472686124 0.4363228243414403 -0.22079624682442422 0.03873612161476014 -1.5586174114749702 -1.7314063818347358 0.28964854760750647 1.60266255754474 -1.102284635734507 0.47116335878578575 0.6741969250992617 -0.07885458484557162 0.5214212524842011 -1.0398382625818263 1.296813549519156 -1.1883445598228752 0.09327994144535777 -1.6573051161789454 1.9660339057828213 1.4337817107610076 0.3669600106996607 -0.6171489263296163 1.4253082417960696 -0.5621003267772297 -0.9681697530870442 0.3838554920617521 0.8813503310819182 0.6604427774014484 -1.4278444569649356 -1.5255029970616951 -0.7942839958863257 0.4473839389177399 0.320263924655464 -0.011287576088784968 -0.6052130411882358 0.6489686374798758 -2.8539188616174838 -0.6366142372429002 -0.3157275260591758 0.1866943102479212 0.3752426148503715 -0.9719102139972665 -0.28253134296862625 -0.23891383022937496 -0.6184094783170482 -0.8730354094311935 2.488796887426788 -1.5244806282364887 0.03941613877509612 0.3511617632106059 -0.3029694581931178 -0.9274048401401789 0.3560113358022669 2.9103036895169194 -1.8802835069359252 1.1349017966347152 -0.9025865472858764 -0.7702308318810408 -0.40626465740720513 0.50811657284057 -0.14002838109494736 0.08860179054073454 1.1229272992954595 0.3268306858114956 -1.3844480784637263 -0.8656480812744923 0.32871946860287615 0.5595312942074099 -0.8041858765403734 -1.125178268006114 1.068511642374501 1.0470535669888392 -0.6105609809788747 -1.3787013270154007 -1.284304051352855 1.451146842625856 -2.7216972502537153 0.011822617772265337 -1.759275361685576 1.3646786033958112 -0.3088473041034588 -1.7330819651720524 -0.24603032451141785 0.26670265142911787 1.1720038462403877 -0.03385245118180287 0.30374737401574853 -0.37769195464462096 -0.758172791456292 -0.6886532962259578 0.5636070897701914 0.49031056282222035 -0.9715924713762203 0.4346902070816044 -0.9195840565269737 1.4240895324624787 1.1880523102082008 2.452056068777715 -0.6103574152980635 -1.5740287010602385 -0.05516379502794191 0.18459696918948687 -0.14690968129315712 1.4659140128858297 -0.3938281251385717 1.5834342612651224 -0.8167820926897286 -1.637165329278822 0.007960020932381094 2.070133997043403 -1.045042014987435 0.7720109071570125 -2.0299532101922413 1.4735381051118903 -0.9283138362367536 1.4963274266322342 0.4944305495652648 -0.624612262687315 -1.0248827274148378 -0.9125617191877293 -0.1252419926383769 1.2805911277845816 0.6107679542665814 -0.7991015764425181 0.3416974094659201 -1.2257866402866728 -0.947524994489344 -0.22696566068928842 -1.2142983779019347 -0.10456575437416629 0.9169680700826417 -2.2463255321272295 -0.03842791528829802 0.11673698606458334 -1.5399627770200903 -0.2261923690825431 1.4320736029186896 -0.7621083634061341 1.6712845573485886 -1.5773460878218386 -1.593457662562918 0.6237077018243609 -1.3016349886955692 0.4433576909799073 -2.6858620631421135 0.2057869634529583 -0.8545015924653859 0.11472414404812326 -0.49971102409923474 0.0380805921612285 -0.5864240433039548 0.15586169206325623 0.304462430954555 0.040419052058405104 -0.9095684415609917 -0.0793577362532359 0.17347375139526192 0.07631060546683095 2.208244456765864 0.6516665274625392 -0.2780403765720671 0.13716079029997003 -1.3958281258063021 0.3477888793206827 -0.4286325923455476 -0.8248991527047314 0.37291252866548474 0.6154053409886596 1.1893632044972329 -0.7683468471092588 -1.6318990460914862 1.248310321162491 -1.0650787705153677 -0.555204373924665 1.0463521163527314 -1.200272972495076 0.24704616275121377 1.1850329151542596 2.1658399908488573 1.3472242127316467 -0.033783260905189745 0.5561217912581424 0.04253321897428419 0.21682981259151793 -0.15205366543304008 -0.6325311174091508 -0.36718760063072653 0.05749570241718472 2.789997046062812 1.0380753805674623 -1.591308398464277 0.7628700930631438 -0.588068247386886 -2.820855729676129 -2.6692357008842387 -1.6674530733543418 -0.09706193918390814 1.397239356164116 -1.6369938325203173 -0.6940374254489567 1.1570692366148296 -0.9816647089692897 -1.5154831594782376 0.054470916431870894 -0.5029936674905577 -0.32762383849493787 -0.7201897334957713 -1.0993489879140594 -0.21681040124109566 -0.7939914333421663 -0.3294415807236402 1.5884301259382438 0.6716885534506725 -0.33702279337728086 -0.0382599081123082 1.9344857634035098 1.9345481654363619 -0.1310040862405379 0.16787189639629363 -1.001370494646698 0.27810352382967113 0.5439282686969186 0.3868621993700854 0.7863017218402539 0.6173354989886817 0.4380935781832969 -0.5138462719036724 -0.5706571415247318 -0.12147298564785085 0.11941556813140271 1.058588071766513 1.2404084282235994 1.130251137302626 0.980333705876761 -0.2861803342704093 -0.07994867372060242 0.46017035142429846 0.09114524000177615 1.5278459443492534 0.6491308408136665 0.49402081691648947 0.6491596149382135 0.16925172890040788 0.5629473263020446 0.464272962024219 0.1556346338715981 -1.4024561956435806 0.8682810717255821 -1.0851596245815407 0.21889269709672443 -0.2825657350972203 -0.7479464548579478 -1.1120690654359475 -0.835540003086761 -0.14600685205848007 -1.0908131694767977 1.6745006850127684 -0.6666822484641846 -2.145883938217028 -1.7690987409707173 0.502782635324094 -0.899688661029183 0.6622772301528382 1.2961176595225468 1.1100600829400045 0.015229725616471429 1.1844672815635635 -0.5309223073295825 0.9245862476168457 -1.3736380252519929 0.7260385893474861 -0.7497959436454157 2.3041791647923295 -0.5472379594434451 0.7838677493626376 -0.5068949201536501 -0.5455615507263241 0.021519631324367315 0.8067039134845586 -0.6156781787056655 0.4126791539234907 0.7163526644883453 0.0725188586853284 -0.3248959099462798 1.3359813792422395 0.4603047328022688 0.521919514703434 0.03469993657950483 -0.7974138249057162 1.358579798181889 0.9628854710815195 -0.9527479508883183 0.5369140206391212 1.6626678928345784 0.06676220851337958 1.438869796101619 -0.1760864365813048 1.7700446478318783 -0.37837193910486505 1.621209021406893 -2.2131500212170896 -0.20986840983599103 -0.09007511355053967 0.30608243905186583 -0.9955893720981372 -0.4109070040158595 0.19876407449882427 -0.7399294000920826 0.6313974406322999 -0.28503286099984587 -0.2550464026218081 0.32205147728341504 1.005275611395626 -1.3772291677456097 -0.0076232913717998166 -0.6651907164043983 1.337968960037573 -0.3192453527813096 -0.4893632462940543 -0.12897630236427135 -0.5511636523297575 -0.8108939832923645 -1.0936230669693086 1.076245181591592 1.6755917523034711 -0.3775714258912794 -0.2338963965814388 -0.2413801418372196 -0.01851307294001971 -1.651168914411338 0.4129950211659015 0.6207883803620332 0.5582867959615498 0.035597320339898965 0.7309375932341191 0.14335676053556184 0.4497006580179528 0.9303833230099834 -0.5351174806875642 0.39443193689972683 1.3880680430230077 0.5525813986970917 -1.3860294915597247 0.42279736307966653 -0.7274912194476237 -0.5017738037584105 -0.04301327609089018 -0.021853896658508648 -1.7077204811678934 1.548207037706149 -0.3068308691384729 0.11762103210095448 1.0185711730277172 0.715964771363517 -1.1144495770024607 0.8948999274274944 0.011399678614671997 -0.1332725015729161 0.23591775303228874 0.5203910679339668 -0.8335753513353105 -1.4572627805585534 0.1190608178566256 -0.5112365208601987 0.3021404235525879 -0.035231024189298736 -0.057721140242626305 0.23787992786444753 0.7882195214793865 -1.4345557396748616 -1.0062125572788676 1.371386991899302 -1.3774364270188146 1.7593514807135073 -1.4533599346863884 0.2994766331893205 2.0552448571127346 0.7037008447235763 -0.22418612851637387 0.8928912015403667 -1.8785539646457292 0.17218940714708533 0.09833520124565646 0.5155272173350726 -0.26162261820937016 0.7617509573906943 -2.5245570340945194 -1.7407484492088279 0.8902926924538034 -0.9192006636137308 0.013255738441205983 1.739118500005486 0.7863466224562626 -0.9217300911601196 -1.257222214670498 0.007021864808244587 -0.22886176845943954 1.290070628973781 -0.4728652746311679 -1.200612169365028 1.8863092759766813 1.8982337392688018 0.03377851492115784 0.04130626755113937 1.0205449401163833 0.1921391603406368 -0.6687663599963798 0.8777805318507446 1.7693823151922938 1.0783003625035672 1.2240510212717055 -1.3278964811534686 1.0173889243633099 -0.0182822350581672 0.7595627976008456 -0.32545205082232775 -0.5154132413244559 -0.9522396684492687 0.8904136312278014 -1.5038018477919168 1.535765564339124 -0.9345834994828343 -1.6938149848212303 1.589129331923448 -0.0992009791424803 -0.8382785822967203 1.0542386845813214 0.8509808969651633 0.6781065671238856 -0.49738683120025645 0.25962996395811117 1.3905482922326429 0.6814834706715238 -1.204799035130833 -1.075974906314338 -0.052776701747546485 0.3544527276276295 -1.1325176325561475 1.954357913968124 -1.7768680483903985 -0.7511820624162191 -1.0038486728087956 0.44629512738326726 1.1655165958913334 1.1069943346858557 0.6438362948511489 1.0453927805724585 0.8665290932483742 2.3512700398568147 -1.2052487097961424 1.4892819062183098 1.0662502700002334 -0.950177642462849 2.1508738857029694 -0.13801376812261185 0.3109629503543516 0.7491545013649822 0.17941706598244156 0.18987480697885148 0.1699923902654096 -0.3091031712892954 -0.5539150684516407 -0.7824364784973844 -0.3955765112052595 -1.4950095029402395 1.1873445502416402 0.6614541435828412 1.1422353023284688 0.061031088438197226 0.14028971536643547 0.12897369472555617 1.0012322745305378 -1.4946465747879194 -0.9054533743979054 -0.2528499100211752 0.20199537528271222 -0.7971359715607801 0.8336223462549058 1.217922505040179 0.8619969894269881 -1.2826367221673203 0.011659054189482997 -0.662997997361743 -0.3281401988774899 0.016431903419055642 0.5282812047609764 -0.3183832575038601 1.624212008577875 1.1481496014999522 -0.9000750873673087 -1.0996858484887313 0.26565620151510533 0.3107701367025766 0.5698413788880468 -0.26100570811075263 -0.8323282045424952 -0.4470385587209874 2.568461413977132 -0.7762847918700219 1.6968745428637744 1.437835323729707 0.2588157741313224 0.2342622518009991 0.26558595835969423 0.587054008233613 -1.3376051243097338 -2.080503702162021 -0.44467491703834483 0.4720392443153715 0.8217394348854585 -0.5881219826828615 0.4377546852720092 0.3192780209485345 0.5209037591392349 -0.3111334290139374 2.0960772700996326 -0.07904974441614655 -1.7275557030932807 2.400005074139819 -2.191034439585347 1.2519909921427046 -0.9635818305487779 -0.11156800388947889 0.44516827660845293 -1.6174569800887277 -0.474639642786223 0.5696886318948239 0.891566682767979 -0.5055409593229744 -0.30089081752467045 0.7541188419625616 0.8401514033669678 0.677546727610416 0.4499002663591542 0.8427116166915536 1.1604497080620069 0.21970897216686944 -0.5360439027711745 0.3960094110149803 1.0445775772074923 -0.32178436472724803 -0.7304266715508754 -0.9128072625813427 0.45992573193971154 1.2985097895785187 -0.5684687830868882 -0.616270211324102 -0.7886376838403263 -0.1773050627076827 -1.0070770452463826 -1.2012148380550347 -0.7487531918013008 -0.4664519207282203 -0.6600947179071484 -0.9773629370610039 -0.14074012279358702 -1.7618431696049872 0.4936732953468293 -0.15848671942576775 0.9559822687733891 -0.8384298951994736 0.8971636949972518 -0.25795739850129384 0.6543869385051545 0.2600443332118357 0.3866216710397944 0.3117385255747246 0.11822501370815071 -0.32974208379755904 -0.6410070551627444 0.6885771627695548 0.006391377392919234 -0.7356514962327598 -0.4124509093379167 -1.5273399837610926 -2.3824807933768706 -0.38608320202644403 -1.1515643681116106 -0.19054329959851807 -0.05942456351658159 -0.9129429910500604 2.0066831882172464 -0.8581834174940751 -0.6665630268066598 1.4984098028545694 -0.7183063803920108 0.9570649301640723 -1.25312924635214 -0.2652781841637899 0.23101744009637598 -2.4083815897082124 -1.118458119374559 -1.5841742187034806 1.478609044446996 0.6028748505552456 0.506141764699625 -1.0131804919185796 -0.6687864800619533 -0.8296665844065447 -0.2944657058826134 2.0730554766965548 -0.7480641890504218 0.35844763661895784 -1.4362658100738968 -0.04754551238179313 1.5876835764430435 -1.558506311496397 -1.9336710984436492 0.12204774010935888 0.08650340048181684 -0.1926113571709459 0.14770028807844615 -0.32187830119328986 0.9082847337423534 1.9051099341284046 -0.27883506946046144 1.2006623723630283 0.2516355814190494 1.0744853691740375 -0.5404597804964556 -0.7886336237446122 -0.5964754634164875 -0.13554192557108222 -2.876723610574472 0.022147974210929098 -0.6140443831454568 -0.418050130137283 0.6129311026590231 0.7271978263281931 -0.3675484717571325 1.309293249436624 0.7851696246019381 1.6373354892270857 0.579435804509257 -0.6307978582866517 0.30176653550369364 -0.6354933262554842 0.25605602086203993 -0.4385790650088691 0.3471199439072785 -1.2315474096770143 -1.6803859736434903 0.08127191927095657 -1.153681752248215 0.14911559919778075 -1.267209691923122 -0.42283939262921016 -1.4669507919137619 0.9542242483017718 0.6492793230826917 -0.07000266356122489 -0.11607289267359179 -0.0014933111305823492 0.742972256647947 -1.9618428037659688 -0.7105189079822408 -0.6033986171334276 1.0994074160025131 -0.8832642336582034 -0.6818280401826592 -0.12126492480964426 0.36375083438639927 0.1462543547653334 -0.05054889881372554 1.95898591355215 1.0047142661609252 1.0791750958833992 0.2368993565722079 -0.9150990426743979 -2.6132681786866554 -1.0147159774693904 1.3012981876731742 -0.607176134048015 -0.09432905609312957 -0.2767821389098231 -1.3137990854373496 1.0677775534639873 -0.9283005051514576 -0.5888533719953291 -1.5182568988838965 1.0337746485849084 0.8161815530338938 1.074964057046784 -0.354389020924579 1.0687668952058778 0.8819823942631538 -0.4682666398967946 0.3551775366627682 -0.8322016132262285 0.6904476099985078 -0.870375678021327 -0.3720333979885702 1.6324785402480357 -0.6432961778773372 -0.46206468059508554 -1.782508762159461 0.4124063890986668 -1.2034359057996202 0.9583351287690494 -0.6675427887744637 -0.7103347470882126 -0.7682099262293159 -1.00879108684103 -0.26992910400166176 -1.2066431712813601 -0.9333431644594227 1.9248700031825001 1.8032929916521092 -1.5117335518077946 -1.2695512373433429 0.9346055671604709 -0.10233907588679617 -0.8255581330807257 0.9421366033784128 -1.7388554175430393 -0.6229109172330338 0.1916235906259595 0.09297649393892672 -0.46188045725262744 0.7682740206378594 0.06329295327789293 0.3831982997073332 -1.4490175597746133 -1.2292482914465541 -0.3833971442610111 0.3465678008306466 1.676551392815693 0.6296870293155702 0.5095928691531655 0.22844046499852166 2.171904520066982 -2.068737162510952 -0.8330209145909028 -1.9392315590022775 0.21242307810362032 -0.2265976292221229 -1.1133611903373908 -0.3152808485772879 0.11862820786011513 1.5496781275044023 -0.957148080893249 -0.6520080326440197 0.0950614357728738 0.24173819707636374 1.6968660345277353 -1.431169736431009 -0.6463571957383343 -0.501410958146058 -0.15349315054991783 0.757053072963936 -0.36790982608028006 1.6175703159540122 -1.1898417690342442 0.8034708148029678 1.2538351362389357 0.36787770330368086 -0.34261348379802326 -1.1269300371328026 0.3210425235414602 -1.3123844990136708 -1.1146620252603268 -0.012521610466233296 0.13899986360799035 -0.5964283294736359 -0.9651923984112808 0.2925661814223834 0.49857721470338917 0.2452855546609573 2.3472446264697866 0.17330207410897475 0.3295203970812141 0.6781117616180499 -2.0525452075417645 -0.1613180881768925 -0.9130886550526005 -1.8996773845368204 0.6453411784878834 -2.128600590224177 -0.17898829599709642 0.7965216895300027 0.6033458912830386 -0.3016618522488306 -0.9409087429913946 0.4522329618388907 -0.7483601643697748 -0.4090366470415442 0.19003883214275505 1.0660148307140502 1.9250357967841774 -0.19708520588999032 -0.5850845229243966 -0.7579959463913529 1.299022065608021 -0.11714709070752963 -0.404556376574676 0.7885843669682414 -0.2331571567349096 -0.9714086456472363 0.9031502368265821 -1.6046766671430344 -1.259685591035128 -0.07834426134911554 -1.9077564268300329 -0.5105225463216141 0.06389758882078135 -1.341900962433327 -0.7258375931738211 -0.5905045887789446 -0.8814023075732647 0.47744495527405284 -0.054860223704185807 -1.8600326739200628 -0.542119782711556 -0.35575078786948716 0.9661830695996716 -0.19806007282162533 -0.12353355530163318 1.4930004745990555 1.2050319512534313 1.075534742348922 -2.35469326454914 -0.7199722526795469 0.7359156289500969 0.6692931269325723 1.6540332651312326 1.721988608330747 0.6817484661901935 -0.013665061314960054 0.4224332353561548 1.4149157521619011 0.48774079960267724 1.1318194813429265 0.8075195420917873 1.0641064017470807 -0.12080177391277398 0.2568113027582725 -0.47876546502453304 0.08729226798474829 -1.743382453540233 0.5897351642196942 0.11747692626184184 -1.001162126837045 -0.04484775016024897 0.47804890796892746 0.5914881943400374 -1.4286115814776417 0.0964683434217256 -0.44797126002081955 -1.8768058211593992 0.7920452864090322 -1.2486984440019258 -0.10157898783793921 0.9672287877936157 0.2829511646307377 0.9017674311285576 1.8819127869932932 -1.333168051841144 0.14538051911849895 -0.7020684424002177 1.6079407988748229 0.641965769582499 -0.1878181355468425 -1.7865905359583834 -0.10723856627829535 -1.1369338818426875 0.885191706224567 -0.21073894581368696 0.7580491315097986 -1.114445416801123 0.6045925147406884 0.10375988589791796 0.4510985963235906 0.07160797512042517 0.26558221008067634 -0.06550924500083885 1.7713514502287147 0.33689029141563703 -1.5019185658758674 -0.42373439872601437 0.9830104064183316 -0.007484267227843857 -1.757326945012115 -0.29392184647840097 0.5512785907686436 -0.8326783843234883 -2.1211750159277964 -1.6690066364803784 -1.838240059052518 -1.1065205540047647 0.4437341279508079 0.723681299083997 -0.5092466756740617 -0.4342765314895934 0.0839730996050108 -0.46513647990734536 0.11766557485242521 0.35191827440193346 0.32474770708127143 0.34233307654078987 1.5017526863572634 1.000437642693801 1.3659684887895596 1.562344947297372 -1.515806236853533 -0.32801437659879523 1.1846143081969709 2.6789843899443055 0.9397629320781282 1.7159839978265536 -0.37032994228428323 -0.7094233877859414 -1.7597289908157028 1.380114291229386 0.41504093063173997 1.6307251775342015 -1.2545413543159611 -0.057916656037331385 1.7515791035002264 0.44884211710164423 -0.1353921920239148 -0.7120964650513903 -2.412986446169171 0.1411363441924442 1.1588306010148914 0.8299424555694722 -0.3048053528243344 0.04303313787128824 -1.0300167093967565 -0.7577883705872038 0.4642345593020752 -0.8973993114999381 -0.14547288224653468 -0.14868130774319627 -1.3648392519584718 -0.717262409868843 1.066470668039768 0.5447297784286192 0.7644643395260584 -0.08871356250262905 -1.051786035953728 1.312743807108908 1.011905786546236 1.0041696653048475 0.28917125084856393 1.367381598788248 -0.24561269479916784 0.43455122474931995 -0.13208759564634753 0.8186164662908275 1.8930418282611334 -0.4257428862040142 -0.05792170867587638 0.374819138641673 -3.155085597446688 -1.2521728333440458 -0.6433448885380431 -1.6676145980697576 -0.1142868967429222 0.07446267258642433 0.884908283050698 -1.2934489100817643 1.8323537530557925 0.9936763873679682 -1.1370691890745726 0.8685503749097654 -1.5789637823537492 -0.20465054205757577 0.38482175178528566 1.9211198943915717 -0.7765971013485515 0.5273472138324616 1.0924868992548777 -0.18628128499168253 -2.3157648505092943 -0.3222904501225909 0.9488623913933052 0.9148150236576278 -1.5686299254280984 1.3379817995325338 -0.05718042352125295 0.21079910746549985 -0.18538140347222332 1.2719316586443266 -0.5794476782059288 -0.30047880115681785 -0.6140508793131122 0.8594826607648696 0.9842343520961918 -0.6723751075365499 -2.0877405481431266 0.4803155819179027 -0.40662424583933193 -2.0035499552543743 0.0524767572207426 0.8647446027010077 -0.04985707032177265 0.40699658737332517 0.084675464418368 -0.1295184703598614 0.9301541187360467 0.695812760509091 1.0248975359579395 1.2120246772429655 -0.2162595884382169 -1.7135570193418077 -0.19346640632896178 -0.5526895325298924 -1.1633771210879356 2.625751971783503 1.7676395450557072 0.696649479647975 -0.4412648613298973 -1.430940628795412 0.08076109754685563 0.11469459202846714 -1.1705315447641143 0.8088250945259099 -0.8029851756825153 -0.6529349804140077 1.699333288302342 -0.11943912508800261 -1.5623979437033126 0.6277793625972643 -0.3798877622050307 0.09278187966201425 0.4639143572027612 -1.6139458450993325 -0.9202360734187921 -1.7798623355521108 -0.60965897989371 -1.413264178257963 -0.36556879038851764 -0.49969110320054294 0.9603665529486807 0.10024588961831851 -0.5802899170912484 -0.567460228966216 -0.15728532276107035 -0.4793232727806253 0.5788204335565871 -0.6083477186936898 -0.03696649612440514 0.9231832824887881 -0.4917886953152328 0.3018479423171496 -1.0711885100848064 -1.3885706134334366 -1.1861772639582886 -0.6702551467022597 0.4950480646782051 -0.10284122685768185 -0.7584993482915793 0.3712489700573576 -1.490636558706765 -0.3996568422966286 1.4574710952193128 -0.1581015934038243 0.3372713582478835 0.014477388583110096 -0.11287339337845709 0.08006540911021583 0.4829650693207885 1.0121190411948917 -0.6025442444161692 0.15075935242622424 0.8294610552202701 0.7869556987653972 -0.5041656445686103 -0.12056192378103708 -1.1330787708558165 0.45586197822129754 -0.10262048631760216 -0.06605731232817513 -0.2800029509894017 -0.4453685187609572 -1.2670312193615678 0.35675992924377314 -1.0940241661115677 -0.1839990196677756 -0.20946473745409158 -1.2759480764311475 -0.13211116714127633 -1.4853067822465094 0.599609116144186 -0.6594973118951553 1.630376244476257 -0.4010119363127715 -0.6168997194483258 -0.12783861882046102 -0.4480041629929455 -2.2082729004391517 -0.46272481798312604 0.5049950597363825 -0.12799689676294862 -0.570344136431873 -0.3445407853444188 0.5254925942844273 0.13709101252887665 -1.042019640978427 0.29148197967728534 1.5132665414912232 -0.679018111802317 -0.4083665559787234 -0.6054338085364424 0.6907832251779001 -0.10765447797209982 -0.027021006791679337 0.6919340866069301 -0.41119120007474974 -1.766422851930612 -0.9201377467371994 0.9044389322975322 0.9684095190423264 0.3052011087076488 -0.8044429414514739 -1.646723278232529 -0.28055465769286947 2.006960322043979 1.3145011369153476 -0.027845247055017206 1.0953263805877933 -0.22553890305789903 0.12427653395906467 1.42201483508518 0.5064903813930868 0.20380886739259615 -0.6050354517669275 -1.6318314608562463 0.4199861683348598 0.19712713906166446 1.3445012121181406 0.3627021377811413 1.9099937185871332 -0.8881279932122322 -1.299782343442908 0.3289419431524063 -0.685013704569975 -0.13550350001771255 -0.3067398858261538 0.5060876110922032 -0.7399721891079766 -0.6280071634129452 -0.2603507292608495 -2.2715043855760846 0.31721606828385307 -0.1597782362986555 0.9286101012373367 -0.40953925398081076 -1.1548941603056044 1.4709476616329913 -1.0460849031926336 0.7523105640425803 -0.9513977002842123 -0.04401891829458821 0.15691798600129706 0.45753532146638487 0.7821594962768761 -2.1507637286903853 1.8500532461882144 0.5276282151762534 1.149229894601833 -0.17549292704607652 2.304553675290181 -0.5117970152216906 2.787819734912947 -0.713669028352241 -1.4106796146710707 0.6968542476374148 -0.11906070942448731 -0.31450767442458744 0.08619162917085824 -0.3872434550803131 -0.18648221478732863 0.9872557439324624 0.4471290169565924 0.09495054932956554 -2.15385024805104 1.9467458894063838 -1.4561031270421763 1.2966095846351733 0.5221674711065785 -0.17457785038553056 -0.31806575966269063 1.3627065439680313 -0.49704007589898624 1.2465151760615847 1.044370660512965 0.02354158280552501 0.05763266091466652 -1.6004453798728993 -0.4922803732253537 -0.3312597423109524 0.6836899225965855 1.745483536876746 -0.5981988251188728 1.7965230135132417 0.7215337265224874 1.1478270057873654 0.23124726392608438 -0.45494742216213935 0.7570428109083875 0.5485876094894768 -0.36837913380393694 1.0296438829319516 -0.0687965255836636 1.1902258575646008 0.2961344494386816 0.47316386629997087 0.4412362898144813 0.4248444855204064 -0.08906599634921755 0.16229036662710764 0.28398502313633456 0.7818897604240911 0.7953188797051667 0.9573975460287613 0.6498014414640281 0.8263015204225647 -1.4706315496794204 -0.15313388627953284 0.6454552754602644 0.882861718121782 -0.455694073964648 -1.2168531615661868 -0.8072565032559879 1.8189612824267896 1.2425430927919572 -1.6620437288475594 0.0038862163329482532 -0.47157356854098204 -0.29137017289564643 0.6603306736193153 0.926498529393775 -2.858335825137968 0.649948640091117 2.993180701412846 -1.0910092233003752 -0.0902523659501523 0.5991731165452275 0.20091279436391316 0.06092124963509707 -1.1826116368014297 -0.4051768874432033 0.6420379071090496 -0.002558927033267477 0.6684858172825826 0.7859598475028157 0.23404133994068163 0.507218135055854 0.6245381216461277 -0.3089980949477434 -0.30110168013395827 -1.4928475842900157 1.6710559697271659 0.6041669805025718 -0.15689272270949006 0.6035518080557389 1.2937989311108469 0.06806019769325683 1.372899674993254 0.9105664023435308 0.12674070395532913 0.6940398100351898 1.7323923404687551 -0.2251550307894643 1.079450773512773 -0.5263374505102358 -0.44711277041060643 0.15973999506681982 2.0871364860743475 -2.7289902354349826 1.0556055340511878 0.14083956376201795 0.9576392248920215 0.4035397780402004 1.7248318472423705 -0.6727931469588811 1.3445867074275497 0.5106210966139146 0.37197753323553323 -1.5864560387241597 -0.36244339913051554 0.050593931601081304 -0.5747293831776705 -0.35428314667711625 0.5704246971297584 0.976237404632053 0.416501202636605 -0.6812130332728126 0.6914064503017348 -2.5271853719007207 0.1022803404328067 0.9175267609484233 -1.6436661077509984 -0.979388867804399 -0.09606976685655697 -0.9280380502772919 -0.27851341979426725 1.072161553914477 -0.2723290737966002 1.7135301979043922 0.4332476398052986 -2.397312705292067 -0.5176639892894085 0.026885881224157707 0.33143130726323394 1.5968860997636916 0.3097811993054917 0.1800063440577808 -0.6817975850462993 -1.9286973642424228 0.1399279343845218 0.20752318979482087 1.1452211470042328 0.8914632356617125 3.520238619984895 -0.8758535297092456 0.7584947193181664 0.8151781844786019 0.5794245833297443 -2.190869416925596 -0.4950499084634013 0.6108640761577807 1.0779441009843782 0.502764291302133 1.5848896505052998 -0.8674534031023236 -0.3243916487458496 -0.6379531975847382 -1.9064959673260131 -1.4724072778581139 2.756974209356501 2.093905115782284 -0.12657090282731467 0.5096242639080013 1.9373840000843925 0.007098817032679181 0.7875031794253587 -0.1726367746571716 0.7049235761640585 0.1526220006326266 0.872458090159555 0.23263443987943105 -0.6415755359037408 1.3148283562600238 -0.12313666960236692 -0.5332490082828505 -0.2832210404849663 1.0261867360749732 0.8010849002462387 -0.4851456726160356 1.7663109381130075 -0.08626407136813025 -0.05458670346695095 -1.7548241219724916 -0.43158421061348823 0.1055785411324819 -0.05403887644944113 0.06447956561091862 -0.05373741783086421 -1.5122239504976602 -0.23377203005157152 -0.419672701959839 1.4450456467056914 0.518685391605083 0.9524459663494549 -0.4891341822221255 0.2606837779717817 -0.46560914487279736 0.2391537387805954 0.5280918003676258 -1.4136586914887368 0.7836798469421747 0.3299748964173304 0.6422537939374053 -0.19546189120140142 1.1421890101293384 -0.24211561290205932 -0.3870579109164699 0.4314075984169654 0.9490310964782057 0.3624897984902037 -0.08723161560108608 0.7984606412972916 0.7537548152564797 0.7245212189806695 -0.33968250015866097 -0.6709526781660319 -0.07712369314730755 1.0856122365833407 -1.0049698505963562 -0.27556419761598694 0.07432870438964041 0.8083076530331703 2.5027309618506974 0.7714064534767998 -0.8714477028859198 -0.7336666467830038 0.8302895693177333 -0.15814594913895003 0.15021651547950188 -1.4884710497768863 -0.2098072967731942 1.6030755914611239 0.8468028889335182 0.1439474805564019 0.9062087778929814 -0.6415170384122211 0.2813218079703694 -0.21363790882929684 0.7504327587224638 1.4853405830158477 -1.5730275245243852 0.8773419042301972 -0.46855167468262054 -0.24406847615533117 -2.0981026147856836 -0.42446449869551117 0.36745990551330804 -0.676547121992536 0.8141992392032767 0.20291958288250866 -1.3082366998149182 -1.4085338667945624 -1.4928527774752518 -0.9577058191403793 0.5504357542855457 -0.4649854890181935 -1.576446063800135 -2.106988404833029 0.4824521698465817 -0.7640700117470625 -0.05173983352246016 -0.7955602170082379 2.139692443564115 0.8944332939471086 0.8687687230699743 0.8119818978879118 0.05088165417845441 0.11131258712993859 -2.33420986510564 -0.13025974695075343 -0.35984579727087174 1.2713032850301818 -1.3477347724517774 0.6297929098648167 -0.8346374599593969 -1.6805847260096691 0.6029588491698361 -0.8180874230501578 1.0111309110318665 -1.0970965819721556 -1.2937505445745527 0.3875961616741055 0.6368283840528249 1.420475702395006 0.9348638460997942 -2.537573527309586 -0.4636454617742705 -0.7043972713574113 -0.6069083551309984 0.9677607542885165 0.5371138475128159 0.4316313979381986 0.6576102371413568 -0.5245968513982741 0.798100094911391 0.5833013683113075 0.7379325141531087 0.6445560274701264 -0.9949766788501028 -0.32686333885256147 0.400811557101286 -0.7201416018434624 -1.6102437446087414 1.0820159361827764 -1.062581460478199 0.4606034889179738 0.4386394570794345 -0.28870877352337265 -0.19064625459987902 -1.9170318873801544 -0.9123216259229917 -0.2895442017045661 0.15198239978997216 -2.5277678557911964 0.3436839513502134 0.8107497973362918 0.2808871247345828 0.013575711004083018 0.16095115180057099 -0.26809011801792587 -1.299221609923447 0.26533776337160964 -0.2728778644190033 -0.27036394397602703 1.509368965797395 -1.6298422860546073 0.9821264026724027 -0.7317415914042009 -1.3018385483219532 -0.9081903400195942 0.7032520333739577 -0.8471990688159068 0.5311861082419157 1.0018078224786398 1.421861290949893 1.0098735723992822 1.3904112675874543 0.5223444118812878 0.43115478329186524 1.3379703466311446 1.3499049551733906 0.5964411885659513 -0.9644571125298884 0.33964512148470394 1.0394996881516738 -0.7094864432466457 -0.8789244922409112 -0.002525384598246313 -1.228677204023953 1.2982191661323284 -0.3576056689668824 1.1475198119122645 0.6434368190488069 -0.377518433597128 0.3138010924176281 -1.7702083175031351 -0.5707514963839213 1.4672444214917384 -0.9477840754474909 -4.099107731416191 0.6130262909248922 0.3009521833272256 -0.027791968793315674 -0.20836431532366956 0.6974464457227151 0.3698388972401497 2.1062612019074596 -1.0189367933173954 1.058499823410809 -1.0875311221417883 1.7429837377728554 -0.9181423171513344 -0.8492718617776716 -0.8894027076044193 0.9585089061885623 -0.6469842027340696 0.5866257702573531 -0.19999419713618652 -0.2940841449003193 1.3617139787141193 1.6636161710419952 0.1941229728850556 -0.029690126541926706 -0.04979960313781463 -0.5224304988021901 -0.491104447991736 0.6204746240820702 -0.038828904832631364 1.0535654922351185 -1.7566574157655954 0.18669407151292222 -1.782328947802151 -1.1887282600297864 0.21603235945416832 0.27163664960912515 1.3944895209287425 -1.2260284752458526 -1.0685638775589972 -0.7831887466584886 0.842687019965757 0.13903859563564297 -0.7678596340586729 -0.08948910147492205 0.15162677279192618 0.7595245084707115 -0.3308575703818711 1.5588268464549788 -0.6803802415395255 0.8492752035654694 -0.9941163251707352 0.9459667429758588 -0.6138542548094648 -1.52848925866385 0.8531904209958218 -0.8279287371478133 0.5904597159317695 -0.6780577219766604 -1.6289235538264861 -0.43400419981973287 -0.7110031842389852 -1.5509432943602892 0.15947023333535218 -1.0309316770441321 0.315586427562808 1.4325240893459965 0.5491386292311111 -0.9499151066007413 0.7675783742909972 -0.4302026610344941 -0.13125085030661338 -0.29925545546663934 1.0157394840081941 0.5369309605063705 -0.542643700333463 -0.20623901537890227 0.2123689946818981 -0.40508718802316723 -0.2544485690912807 2.834028686657216 -0.9905743074153244 1.1485762944755662 -2.768316170397436 -0.5815987471763457 0.1348510671319696 0.008444676149211268 0.3887764348085069 -1.1113392526755108 -0.11215180251871483 -0.5488000792449745 0.61926336787226 -0.6770693035961486 -1.3220724490920666 0.6229686925503247 0.49708011358060344 -0.9065018134492917 -1.8318308877760165 -0.3748552196334094 0.08811804954526967 -0.5999320133521936 0.08247623837456115 -1.5462344819063458 -1.7163980278134114 -0.19937777727652334 -0.9614979577637852 0.6096047828853209 -0.9185765247185584 -1.8852103564991773 -1.5965075535269815 -1.2230534385433007 -0.028306330057749306 -0.5387855964220644 0.4142804284093349 0.7371801209840098 0.40690825329873753 -0.7841219983648967 1.6271881774612484 -1.7450472078867172 -2.7363061409984124 -0.2627767575868674 0.7910616884907852 0.8711834866869899 0.5675944067581375 0.7306262601852183 1.3997116980044033 -0.3959242064031311 -1.4846058518703293 0.707336623828261 0.1734479588114371 -0.3817961640806319 0.8713209465878438 -0.9755454204308861 -0.4662298771647805 -0.5005050040456895 1.125065789823952 0.4139253688293049 0.5606425174952923 0.14329945770820715 -0.5071647478246762 1.0092016159185289 -1.5319721982562364 -0.34665070698066597 0.7443329569867071 -0.5964265073983112 -0.8604858373689294 -2.13941246471586 1.0308146328467471 -0.08375036411150867 0.3221894758214485 0.33860292714193435 -0.5435241370937778 0.9249498180808491 1.8599976603288133 0.022307487508737588 2.053323361861346 -0.8124698588869161 0.7603262607714405 -0.9776581766717104 1.3498571935640007 -0.14938852884536663 -0.21721763688485515 0.9636843669421435 -0.6326598017185565 0.9053684977946933 0.4613955132237126 0.3245932409705751 0.2584962085519335 0.2319720388679001 -0.12304906996106191 1.5768604667970745 0.38060628751883946 -0.3675114612653456 1.8065172213244531 1.2563989060303518 -0.5875873023226098 -0.33532093361974125 -0.06953492938878272 0.2839063500402722 -0.4470587591403942 1.9131080129370317 -0.5112987585296537 2.239718254273991 -0.11673374663084439 0.4106494379957044 0.005811949622561948 -0.5841548820550875 0.1719989424882543 1.3821734461909028 2.750606852728632 0.006694746209536686 -0.6918474166872276 -0.4361481579823856 0.2771151906088952 -0.7719043629685459 0.612298415165222 1.1326683119104297 1.3989782176349086 -0.31739239221523413 -1.0230810916446746 -0.34923114970030417 1.0551317629610364 0.0069658444747575255 1.2471660505146684 0.6951328285562473 0.27712644052719104 0.28219822240937853 -0.14789123952909702 -1.748526043300433 0.8375623126176022 0.6290095173831755 -1.4418124148833864 -0.28652033270590954 -0.28965865030098426 -0.4302435807985153 1.0097672784382958 -1.9358113815115834 -0.3651329270304666 -1.0558502218237245 0.1791819170342221 -0.20898609034592605 0.7733477828848729 1.0150452503102245 -0.7797928000518902 -2.3461344387810175 0.48704417495795754 0.39767706844680817 -0.12814051638260962 1.023719672725106 0.8598879385318039 0.2870771817388223 0.1262476910576164 0.7671312308518317 0.900694633515449 0.9788074242234966 -0.7862911466183543 -0.24476258162858217 2.342844241484416 -0.6239637572998735 0.07453541245154731 0.5248826316377518 -1.1740133835805777 -0.9901788001420069 0.021236519433499444 0.22821944354419763 0.9221021597308678 -0.3328592231337256 0.8166591359105269 0.4319417858159338 -0.6064674390167233 0.6111060602699305 -0.5905910578432693 -0.3094534400286941 -0.07385142892301222 0.3250115675050614 -1.7364989797918353 1.1151936250451462 2.2010872491774105 0.6145494003580876 0.1866471084409715 0.6081225699942809 -0.688538012772124 -1.297653443006581 -2.1004913099229987 0.30502990629575116 0.4226621132614954 -0.41490131481753906 -0.5757593616531475 -2.5630515481704874 -0.5824766902755185 -1.5494045381726944 -1.0902250245646903 1.1868795905702716 -1.186215701077429 0.6982138303250089 1.3579103141258224 -0.4037728848256515 -0.9974471755477066 -1.189634762619298 -0.2745451729777635 0.2986285914260318 1.0911092145911203 -0.15784735600884195 0.2302218868638704 1.6009496177739369 0.011352230005478813 -0.26203627843401506 0.8529504853124141 -1.6677625236540194 -0.5400348525141581 -0.023465102334663816 -0.24645848256823918 1.8432425715152914 -0.48721016373443177 0.9956476965237185 -0.29527865819741245 0.7153142311534915 -1.3826457225963058 -1.751237133610529 -2.32470945164382 -2.1296288315593404 -0.12433454883602238 -0.8774863200090921 3.2643396685605577 -1.0431220217132497 -0.4406023119493139 -0.7369788545522621 -0.5715448578857988 -2.9423457883562767 -0.04709822081718339 -0.6305559599256847 -0.5311968319463536 -0.5931550740915451 -1.184063354513301 1.3057434965428887 1.8411545198972477 -1.8372584174285942 -0.846999888184968 0.4617879361728763 0.04350600388213546 -1.4803332749339413 1.0048249543906207 1.2217268099214689 0.16311099153181496 -1.1097680950702071 0.15497923589209525 -0.690493813173595 -0.39323483614964466 -0.07552791387089985 1.551760789362441 -1.0251693549712106 -0.5466853393876647 -0.7378948938028641 -0.48996989673023145 -1.5256370569642261 -0.30782048111489496 -0.0076847994890376975 -0.9415123880396861 0.08854724305047691 0.6117989357600337 1.247211499931036 0.20230097568528158 1.7430481080376548 0.932915900126817 -1.390242523581828 -0.7454218084831686 -0.2112705100598781 -1.227295751757191 -0.5769205625435608 -1.4904743983891184 1.1639183839604879 -1.8175882748524423 -0.4659710496221712 -2.560083662819635 0.2355662669328724 1.0471545139231668 -0.26305305413573943 -0.3961153556545046 1.0113105348742129 0.7850301573630082 0.8648619676243748 0.005516899323499384 0.4384391996254956 -0.12791070040903138 -0.0781719014983647 0.8274085900806799 -0.47409915369665934 -2.186086172844763 0.1707315080465345 -0.25866300084347327 1.1475323385889844 0.9370734202208914 -1.1760153114414742 -0.5424740945905199 1.1917108788998056 -1.8825881249379777 0.5833318218533521 1.0538735450498689 0.8372813478432454 0.03478506792185244 -0.95755121180636 1.1772853761025879 -0.6997386659829562 -1.6137213533200876 -1.5162100701478858 -1.9994935367675106 0.7160593776100656 -1.3048865158830094 -0.04290553848994221 0.5761306252618728 -0.17296938672014442 -0.5238957270088532 0.19985687433773267 -0.6955254296988808 -0.35749263896129496 0.19572432614623034 0.8944013075162871 0.9762590361479833 -0.08519632873277451 0.3772196312529292 -0.621273846892257 0.03791107038743071 -0.0489014246297117 -0.6012426269416017 0.3128875950355778 -0.6954751753069495 0.2879391190214208 -1.0069230402190965 -1.1280486932659892 -0.32390464396767416 -0.43263629775146395 -0.008320483401047593 -0.15987309367470529 -0.14240405882501503 0.7307601150968035 0.6000857377221058 0.4416023823455846 0.18685638429828746 0.010509190663790548 0.8789025057090432 1.1484865062304517 1.3807018548358956 1.2021412657058228 -0.32378253403364915 -0.9388877763357882 0.03981139260281286 0.5279297163635251 -1.4186000744978766 -0.8023343160191311 -0.5715315776319821 -0.9213206501773687 -0.1206177456474444 0.030815250889440468 2.05928881735313 0.591469499144919 -1.6890097200470542 -0.62014694163235 -0.6875665349400125 -1.1891954050346158 0.8986589215519796 -0.386310646541552 -0.2595953474867278 -1.063006620716611 0.3426839095568038 1.8208403733331477 1.0050044098655362 -0.6065313546114287 0.23993529925784693 0.7330380953287605 -1.3694676038309685 1.5136570256164386 0.04658574758059239 -1.1045158013468481 -0.8847947111941022 0.9951757671292067 -0.9791810681090265 0.4807678609955926 -0.009777186097778785 -1.3275769807225788 0.0156731305298725 -1.3539360478207176 -0.1894344234398504 0.8531489702960017 1.052024608640497 -0.47932102873214544 0.1262231021897587 -0.6442160547408474 -0.11942693969278782 0.6205533566229166 0.05450468400414698 -0.6399461518099531 -1.3435628438876093 0.4842467338021104 0.1417813494470462 -1.7932592568593473 -0.0385396689452191 1.6141360565253318 0.3323790022332719 1.7317920987634585 0.03069677625478677 0.6277006523497818 0.9850786299925012 0.9536427943391749 2.252478853694749 -0.4429819929982994 -0.07733957151612741 0.5231888658438486 0.14754288001876878 -1.168089654207925 0.5891412401189541 -0.5651242979512441 -0.5873453125256956 1.5645010733377929 -0.18912314092413882 -0.30765412438385753 -0.6865899974492924 0.30563657090447555 1.6661310755916534 0.7429946761534075 0.36683206022322884 0.7472445379187629 -0.4925164089417487 -0.16676284725592921 0.6950151866476888 0.7742795298499348 -0.2394272293609472 -0.7268067924044764 2.1147397457970016 0.39317054185290556 2.201837714369591 -0.3213990246766231 1.1790184824828545 -0.08952459589221029 -2.6564015006580037 -1.508623730399318 -0.8295716518015376 1.1231951162386524 -1.011073456107831 -0.5793405252880361 0.1392503008943603 0.07942865098382888 0.25763873105240565 1.1768652836067093 1.9862162403026544 -0.43905393673983 -0.129490552652327 -0.31157378437715655 1.2975325350556617 -0.4854729272110368 0.0728071288054429 1.4926546008827166 1.1598661450643537 0.0854209073753735 -1.832294976966261 -0.885288320759693 0.2209176521057224 -0.17929986320582206 1.1688528096394726 -1.287710587955461 -0.5890788528770802 -0.6320959129889253 0.019366247680834475 1.2200845944536765 0.11389656603412045 -2.151865437724996 0.7520105400575342 -1.3414745021366663 -0.34904125466202296 -0.3025626278678197 1.3668031662912639 0.31055533801044577 -0.3956690591547866 0.08418338692111876 1.613015727933424 -1.773161609341287 -0.8937547702254642 0.564013733094453 2.6916618244844375 0.27181987998933305 1.055009600470033 0.8543394561013808 0.32032032457408977 0.32937509375885937 -1.5984231343976245 0.21218346760651038 -0.2011277902336648 1.3798143601153408 0.03084313777658607 0.06314724120799764 -0.9427479521581389 0.9746819126122014 -0.11259877384332106 0.8535398250243994 -1.0198888353153523 -0.7390826769182124 0.596255105924154 -0.6029796452846217 -0.23397388395517102 0.8432818755100745 -1.5009156234887218 0.2440437137784156 0.48871297240870065 -0.1267363423339085 0.7587475138519327 -0.28928115301678226 -1.2283291126497475 0.33171084300484144 1.0033467497004451 -0.27745907419097515 -0.030003799424861963 -0.6249880929357396 0.3222667268414492 -1.090755396385885 -0.2911711169154945 0.2467695365620745 1.409887281382106 -0.45445489934505756 1.1257892308049509 -0.44896753149632157 1.153588854365117 -0.12545031108239038 -1.5327603572287918 0.33379978935308 1.6318283967967386 0.881299679500788 -0.5312098717114703 1.579177930245618 -0.3404181711171655 0.8495506956083899 -0.7112430512202149 0.9175706555993803 -0.5646785554113977 -0.734433395078886 0.21521894867669053 -0.07139656786832 -1.2746451913568653 2.4743763200364945 -0.7109822415225687 0.9681105548074084 2.3118671377104945 -1.2858155181256676 1.6386701623936972 -0.22365293126846764 -0.005587706454992662 -0.6950472194420547 -0.35310779240602896 1.6979982827904352 1.8723884981349015 -0.1974192234164714 -0.28440399420502616 -0.21913788026341816 1.2473938113964975 -0.5182067270449562 1.0165456188966087 -0.11600990777339315 -0.19808841862783802 -0.027380131052911594 -1.5112441508725447 -0.2105595775228254 -1.1439249241914937 -0.8920585697071006 0.37681796680586227 1.6202349894262122 -1.5989595605830673 -0.3772633145068053 -0.5676975461724594 -0.3186037621670186 -1.0335345604765502 -2.6452254201732277 1.492076666309538 -0.7526397132866368 -1.2464964675108583 -1.4150180464726325 -0.08712890849077093 -0.6994019620317402 -0.19280493613795563 -1.2137047387191668 -0.04022707889367601 1.3281237420316132 0.41188485841292666 -0.6690783599473045 -1.3676604622892092 0.06607825899876654 -0.21431999865946863 0.24394062131566036 -0.08477391136609681 -0.20761028269842316 -0.13452717553872515 1.1113490875738687 -0.2325038659951717 -0.6602490722934109 -0.6218837602683119 0.6651903690610299 -0.31599985675932907 1.3649292721096378 -1.1327044709153509 0.041685888339221225 -0.852105927563079 0.9763026149807031 0.6636491167353243 0.6195425952774356 -0.2754132846012686 -0.050994217576851346 -1.1718961192891486 0.6638793014525248 -1.7501723017182893 1.1157039308166006 0.15929993290499764 0.9311712934388743 -0.7084422269677432 0.7234262869542031 -0.3090302174326077 -0.7837881951379172 1.007476716885108 -1.290704261851889 0.09480445644328293 0.7468931609435625 -1.1636130520962953 -0.3803126030927384 -0.307205745507132 0.21383671858251171 -0.004433762788235021 -0.3437632732299827 0.37052016552163103 -1.1367363387061953 -0.6574505607440498 -0.9772464651053976 -0.1392499971297514 0.6612349740189105 -0.7699718770216168 -0.5832945860267242 0.4971575065554937 -1.6711096496553723 -0.9817898964063413 0.32394756941177005 0.36038307620481547 -0.43865941184320595 -0.4986751530006073 -0.1316999642791004 0.6426544199459854 0.25773364264814347 1.2335715114064425 0.3127150136333417 1.0233645160206233 -0.34120048208982473 -0.729625775142665 0.05856020491693606 -1.7854095221620685 0.018998144851713448 -0.5443467926214637 -0.5428006264719877 0.4195759746763071 -0.04337733093648319 -1.2626249070169793 1.00307547063602 1.0631933379414045 1.811294927717573 1.6022788357705224 -0.3792009597137074 0.8285050555806968 -0.7180372062793534 -0.5632740768174246 -0.4837179247916653 1.19036702645067 -0.3124599455054538 0.9505732252324437 -0.46139018309091295 -0.28854438413364586 -1.1052845608788573 -0.5432913123817641 -0.25377982365532237 0.7083183926740514 -2.4519785553517983 -0.03082942678440883 -1.2727378767866255 1.3547442722669347 -1.1746348002765084 -1.050571375711892 1.4038509309526646 -2.288716668694644 -0.6585347949676342 -0.33288154341210063 0.22558129374242597 1.610864439368553 -1.1968803577806928 1.394097017543155 -0.7986208141539464 -0.8303416193678653 0.23085648268681677 0.7629450421756542 -1.0409787886678612 1.0253330891023509 -0.41682736021992023 0.8818642698072099 1.329368867387125 1.3936481071192444 -0.11681242874164303 0.11961887402416586 1.2912569574928545 -1.2992674066952965 -1.2292555433324612 1.4508391380743149 -0.48026255610983604 -0.5093582645049116 0.6143934080126735 -0.28395375517336086 -1.2707547503779233 -0.886748114814283 -0.5394334554858979 -0.5880514940896019 1.13188079046344 0.7908578655995748 1.6941863978438434 -1.0285971862958754 1.913254410035739 1.108709378357226 -0.3519644644186033 0.43007852570009547 -0.04894566600202997 0.25914418427139857 -1.2755067527000248 -0.6055977077427935 0.07113918587148443 -0.20027076251589873 -0.7388027633229264 -1.9060776675101196 -1.1763506620307245 0.5710715716617146 -0.8547661380549784 1.8692617954662791 0.9756505885269765 -1.0326604338683305 1.4743798533871193 0.17486548078785796 0.0959499308272933 -1.5030331981021505 -0.17601018308398994 -0.8569283691288597 -2.0796528086096364 -0.27666596578172026 0.9555432789950531 1.5864577575236225 -0.8230484269999556 0.3783085051934907 0.6323358801704069 0.8843547416372265 -0.20749430976170596 0.23593162978025742 -0.05630709476983454 -0.6852243717369476 0.09074534440699769 -0.6575787966040101 -0.023618397956367592 -0.491129453182644 -1.0654511323809703 -1.0130240445510184 2.4163865908395294 2.4261563028212247 0.9466616360120086 0.4161803606163989 -0.1912601237984028 -1.046952975374872 2.2094434025539202 -0.38857051697478323 -0.9473598949665603 0.06756579388180617 0.1981734155734202 -0.9631625342206421 -0.12211889104177868 -0.32152830381354436 1.8391868365025514 -0.16365013155222244 -0.7518787363882157 0.44938367855334005 1.6936936638316957 0.6272358148539767 -0.5101281116932674 0.1576790951352159 -1.1056741508299335 -0.4229624918230518 -0.9641659616425843 -0.4375131117987758 -0.6220433572641594 -0.8239377672111566 -0.02916398272242906 0.381710018871693 0.3700947173165927 -2.2270563163538464 -1.18568130272417 -2.8688066417212963 0.9153863867126143 0.9599394513005882 -0.3826789027875898 -0.35542600361236903 2.1824963867453793 0.5746025369389379 0.03057875749209667 1.182863738004586 -0.9037496613331343 1.5887235248174052 0.5099505422929719 0.12955376418256784 -0.7605159601777067 -1.436338923760759 -0.33378190371298455 2.196746982058824 -0.25256802756235613 0.8829062097650591 -0.3995377349670225 0.7361565647718264 -1.1205865929218115 0.11842053063950395 2.2492694012615018 1.5321947801647833 1.5634873032719603 -0.6589109217421292 -0.09582867679643749 -2.693491175829262 -0.43324674632080495 -1.815344375828329 -0.6552597523537741 0.7316294362690521 -1.0142006001676596 0.9378979627269651 -0.057476137400175736 -1.1705737099882203 -0.09188952444054067 -0.05153784819418804 0.36698121511941845 -0.6231288826440308 0.22716889398037798 0.4226049286001335 0.5296231065292978 0.6675223658720373 0.41820684755293325 0.43340401556703817 -0.5715647192388328 2.277497893681337 0.20637744494798815 -1.2560504944839688 -0.31960771331834076 -0.13205988629687593 -1.3219799525858493 -1.4348795623843074 1.1499093501308002 0.2508010273107028 1.6504692403197716 -0.2750913686721349 -0.4778700277589507 -1.4583912692691685 -0.8692074491896089 0.502555381642325 0.19895970899519552 0.46468495219807054 -0.4291536945739347 1.0398660865645755 0.7431194486653422 -0.6635702211858198 0.9471660418668292 -0.15982130192158264 1.0645422498792372 -0.3730464420769482 0.8022088011836415 -0.7334987270653859 0.5090670873686972 1.4505519179886452 2.1384890876525358 -0.13220978819010976 0.5960125118127878 0.9753559904772278 -0.6103962325081357 -2.6188587991576453 -0.06901227714781948 -0.9179682632543205 -0.812338856022149 -0.8982951642896524 -1.1764452003967103 -1.6343660180248154 0.6378247050537628 -0.28339482841247055 -0.08896804866585374 -0.5523799712817562 1.216848505575167 -0.452311270475859 -0.46362839367547387 -0.40165626206634025 -1.129640475767996 -0.3030558383754731 -0.37884912436859436 1.324095524770941 -0.7938025230579611 1.7449476177894097 -0.23591415827624157 -2.54505155389354 -0.8454578568264425 0.007693439045772002 2.016807109494384 -0.921079869624194 -2.275736248777762 0.7290883736528415 -0.6322802693927544 -1.3920770909035756 -0.6047138432539516 -0.2888783991637206 -0.6915326130425247 0.5763202816301962 -0.49113211046328487 0.5040653691786823 -1.9093366145581105 1.0603684801363862 -0.2747701385105234 -0.20436361777816864 1.486937113903978 -1.196023953233604 0.36254619331065224 0.05372180254710923 0.944615574260071 -0.41944790023682366 -0.011473947421733525 -0.0572865583570161 -1.900842196301426 0.865850252705851 -2.331552288778451 1.1058885868983264 1.3223722059205902 0.38249608429223986 0.12202923730118617 0.5177373100175244 1.7204676244937447 -0.31683467785449876 -0.9100497663431052 -0.7666892845558273 -3.044928080918337 -0.13663232847682685 -1.349041369340566 -0.09599896124986669 -0.7085743698341435 0.2776804106833053 0.39041279019722247 -0.16370921100603686 1.4137926717075475 1.0372583862892903 -0.1474977953068777 0.1758661215082409 0.5326687321069111 -0.9936540282711015 0.775828531569656 1.1035905862837827 0.29853101213405414 -0.5206548006986289 -0.6273794258213973 -1.0556796497356011 -1.189620215494905 -1.0281427666035723 -0.8752068241921284 -0.1468835261739412 0.12274423200547913 2.0179078914364004 -1.2799041226599954 -0.8866221080622152 -1.5124436214683386 -1.3714000330267688 -0.5738264438462074 -1.6612554521229927 -1.1290924648408769 1.035435588118601 0.08351988037996531 0.20121386679961534 -0.016235705143321955 0.5307115681817934 -0.2439637746367208 0.2608248832078739 0.660811216731503 0.9118965688887547 -1.0765009052159353 -1.5450302397958486 1.2719238881481238 1.1990035251145328 2.155442719500286 1.4151422778025353 2.3677470563514276 -0.6594192268580792 -1.11260284284767 0.6955973355433089 -0.7242832813711668 -0.3396486451876532 -0.7679284095182134 1.1817451074164835 -2.0958374506406403 0.7122019529807901 -0.3868632898484214 -1.759564379509889 0.02116173148317823 -0.5605020290645436 1.1953333330934317 -1.7965015294465327 0.7796179293323641 -0.4119658073117867 0.17611647823313242 1.7681046685576622 -0.4682680512414155 1.125090655122285 0.9089710835371575 0.11372568513834687 0.2625036336980033 -0.06994293455420535 2.0725016436464756 2.1694598435790047 1.2431196365382546 2.654995333365721 -0.19852461163132856 -0.5753883015521903 -0.4573137238804818 0.4094925896376006 0.06639966009583978 0.8622957079285006 0.23452132788627505 1.1784324753927153 0.05435588581512109 -0.6286618650863409 -2.5626990796216003 -0.40937157771512583 0.05403733216313565 -0.09381113207014002 -1.0220371996388555 0.6694711746937356 -1.3783498628097932 -0.0465270382339321 0.5856977424026723 0.903896390345066 0.6241487321343417 -0.8769091934837481 0.45325968556201696 -2.3655991040025337 0.1513008138210347 -0.5094265038438429 -0.4827245105618083 -1.0054789895674867 -1.463387381750453 -0.8774400282668333 -0.10540187861202292 -0.8268871562957039 -0.30020021964534116 -0.11620922193475641 -0.49228000414969103 0.837802920280023 0.0251141192549935 1.8330279367978988 -0.4830557388237272 0.500325601757728 -0.6517941590248804 0.3119016348816945 -0.16865730902340334 0.22139990135554583 -1.3354264766081427 1.1846871856810919 -0.3985341462065079 -1.8686670790245379 -0.20441502789771215 1.2789283942435798 -0.180404586409714 -0.4853544890660012 -1.8345259045210138 -0.6425569306512604 0.6191725631396638 0.9549300099314162 -0.5200753765524597 -0.8518580101228734 0.7895098619022926 -0.7373953855731766 -0.7805286031232708 0.5117157427141202 -1.1756983258163263 0.02962519248812563 -0.12041929575318362 -0.9572010823710774 1.5652219390054913 0.3249753377726372 -0.8118812307276447 0.16135805993375385 -0.25911096560323243 -0.3403224923216754 0.038220087243847206 -0.8498998784817899 -0.5942302461562733 0.8083983132810949 -0.4964715441287411 -1.9061974073623524 1.263524453789221 -1.7957591838069031 0.21953829447467274 0.05160467811318087 -0.2577795029226441 1.0009287402453744 0.058306416724374796 -2.3223213963257128 -1.0096894241170065 -1.0320425269066695 -0.5705385491326752 0.20489421483820888 0.5680720339286585 -0.5729289898534864 -0.09729341416069337 -2.388414178325412 0.6562226300775104 -2.299936582263669 1.9693553280350673 1.564956188574594 -0.8738725360771903 -0.2857581268680153 -1.912935379197331 1.064422993174428 0.6139126585499147 2.373392587184089 0.9981693460655727 0.32162851036559637 -0.7624070264102274 0.1419813562147234 -0.08958024791569903 1.7973885825901859 0.34778656338102 1.2412865817813332 0.17913220255828985 -0.7444195629141945 1.1186285920648569 0.030244191808665017 0.6070039264164183 -0.21711050343631869 0.26384588402729325 0.2875602041011349 -0.9471745853450387 -1.0594606049756432 -2.0046151794373452 -0.03530661982321804 1.3727822152892557 -0.4330792844860747 0.4641970112906262 0.15906536768440377 -0.7675048251465456 -0.2944601269731166 -0.6491481385185601 0.608561771712707 -0.18335073333695784 0.3566131429270858 -1.1704532756033303 0.8676821647079129 0.06378689661786009 0.7381095144765777 1.1827486458260557 -0.6391457684482449 0.04754726250713986 -0.10531211194222591 0.7638799978875739 -0.3582617610177069 -0.7351485956818947 0.21939741990643297 0.36105086174114237 0.5959703740265403 1.1880367847481048 -0.4840468850147896 -0.07224023365804107 -0.0029822717341760076 -0.10376710596146708 0.16992115706473823 -1.4384234773245677 -0.2664645896247358 -0.6210552554794685 -1.3815356534401264 -1.4189944724875647 -0.6005764089314253 -0.21682985995735526 2.126155349410396 1.8181810758567944 -1.5434810718816534 0.8785844249758589 1.1938486022190369 0.3053727957366163 0.6177429858273105 0.42566648922659533 -1.351740551125603 0.6321379772765958 0.07172299792053169 0.09202221465996477 1.4046527061871987 -0.8809309312824363 0.7861984125124415 0.18891066166979087 -0.8860057587969441 0.8382476899779648 -1.201204588176917 1.551381203503408 0.9278622251942307 -1.5478812739250962 -0.44770472600426575 -0.536588398193256 2.087794751055258 0.9373460422859332 1.3192501215691672 1.2560725734953042 0.7336671629480306 1.4318902202922463 -0.8478611782382152 0.005404822347534533 -0.044775260905302844 -0.23479977528262413 0.701797902921702 0.516037310307348 -0.82860480984072 -0.3681869880846471 0.4097351685313767 -0.68101915586333 -0.5557158294646569 2.091022574523937 -0.6621009333039067 1.8894653220657462 -1.2087959968346202 -0.7107261580367067 0.6912459390808511 0.043295640717428384 -0.2516673389034502 -0.7119998915648437 0.985989679509444 0.14742524106007443 0.5991209541185929 -0.6202653205220576 0.9491828121613848 0.4628398862353808 -0.3489532430304715 -0.09794310051071986 1.8032619296210461 -0.7437346474807001 -0.7068736234776231 -0.08648200584380879 0.12123989489744362 0.49303025209783735 0.08436408542305907 -0.8555346979901922 -0.9401146197399772 -0.8828614685682079 0.3943581579665719 -0.04828333860572817 0.5956165810593106 0.2491192341174648 0.7856590091774421 0.27132350333844835 -1.3169434492238845 -1.0806979930326126 1.7674994873184167 1.9735198734149153 -0.33528297406107027 -1.6391491296461698 0.12081919884708556 2.307698166181112 0.6062561867183542 -0.03771393351704111 1.3654445188415598 -0.2658972392930751 -0.7410765869213294 0.299263570642524 -0.27225572881109006 -0.4188900686640545 -0.6306396169228454 -0.7070265884030451 -1.1336015137919802 1.6281755350364935 0.20343851496856716 1.3074061908689962 -1.4536754839792205 1.652107790257876 -0.11317454517443087 -2.5201905452413964 -0.1339721680538333 -0.2887822607588773 1.0529063606577522 -0.6155392883652981 -1.3319303405896017 -0.7482060854653438 -0.03136270361558023 -0.008050340269619774 0.5436624562777521 -0.8054530889588472 0.31099428962244546 -1.317475335073294 2.214683627411369 1.1406086616507116 0.07419307728927793 -0.9373550397423673 0.7811786807740966 0.01715232043404262 1.0304292195518603 -0.7400794988225126 0.8775379949563369 -0.3197384468751004 -0.8502335019827383 1.0648595349237344 0.06866923519699528 -0.48105499643124355 0.14293623761469423 0.01540253420215362 -0.6751713777021208 -1.151239627902069 -0.793445403358243 -0.3300322174388667 -0.37803699618149494 -0.29301401439385094 -0.807856554183611 0.38369912982644566 1.1493435877771025 -0.23578824396504758 2.3033239554175102 2.245472313792965 -0.30819532376323744 1.2045574916897157 -0.4841477988869694 -0.33470498687259775 -0.019086627438061908 -0.6500202635174063 -0.5393419932527003 0.6586257931307629 -0.99399656927043 0.9687863182167296 -0.4147788120309125 0.23291291488292662 -0.8014145574225273 -0.7391890990401467 0.8251795781341407 1.1091466939708092 -0.3027416876835624 1.1325618540888966 0.6459982399119081 2.384269343211027 -0.09713504145263299 2.655998983654181 0.397174566770276 -0.6897080447895072 1.0986548307467867 -0.7423603289742245 -0.1548023584821741 -0.8919816263873932 -1.2659067118448837 -0.058268066232764086 0.34347097951202665 -0.38243222421878853 0.5296125061451109 -1.7158474741352163 -0.9709324610326807 -1.4814359155639294 -0.2138464088116013 -0.09534157385600583 -0.05179974883363281 0.18774577735286013 -1.5267255451948933 -2.4190433985066337 1.1477210496013426 -0.8117509353122849 -0.841916319261206 -0.6795209720091457 1.5200976758585767 -0.27742777901068055 -0.007467608062969834 0.49556093543149765 -1.2728485391315407 1.9175792869911128 1.1429357526676533 1.7145119805771223 1.3146457677748344 0.6084559313035656 0.3305423164058851 0.15375806653110285 -0.1975167918347085 -2.4249872959244816 0.8046627062650522 1.0629967813724694 -1.335341067905859 1.1641540755728137 0.7070375969745293 0.19925966106840115 2.1276553445665938 1.3666840643966653 -0.3653555578720506 -0.48063841502958643 1.8783115980135368 -0.20393796666547587 -1.7881531793943326 -0.1297143522941422 -0.2926569578776931 1.1562584407816658 -1.1004918028140003 -0.37487034435837807 0.7235062069422056 0.37212615680469313 1.6742784159091624 1.1994584797265606 -0.1312779883746474 -0.06859249782198397 -0.9993120609117895 0.0019740479661143756 -0.2327410000672259 -0.5471103848640124 -1.3974998647944938 -0.5986597901660876 0.6789334235070399 -1.1840814981927017 0.775151219961979 0.004009708344558767 -2.0923419624970796 -0.2800026736676226 -0.2919189634771034 0.9883980986582656 0.009186485241266546 0.333846436768859 -0.7069131305736878 -2.7745562774986983 -1.760172159128604 -0.7525559049580306 -0.3782638082941735 0.746750564129612 0.17947363080111192 -1.0428888071295586 -0.46288711442774494 0.40492252088470787 0.1327052536679484 -1.019056030178942 -0.19931592909176907 0.09987230390836065 0.05077686612747275 -1.6111129403882416 -1.1366205091240167 -0.7820802664960805 -1.036930906238539 1.2100993880664848 -2.535309158304729 -0.14307023250663986 1.2585175095005945 0.04122576979427062 0.01939201164973828 -0.1061794081729532 0.049551554818082995 -1.1222275982525602 -0.20858159538487467 0.021518616007662344 1.0260907566276485 -0.48811360448416813 -0.21955428663831478 -2.1120999811502883 0.020042817468248042 0.06265330356853085 1.5636639696374426 0.03135830291949495 -1.717407165559471 -1.0903119938220516 -0.18940381930088557 0.7345751785982045 0.5545492877650405 -1.442412888091488 0.540367564210851 0.02655816467609097 0.11439014294320717 -1.3691395825755133 0.845084015546125 -0.691191868777309 -1.2581770642648358 1.460279758817549 0.5850492176627912 -0.2485508053488039 0.2825640748371889 -0.20841055699410174 -1.2632132384037944 0.22902965861437574 -1.3774400696059885 -1.1664964461624452 0.9436892065588687 1.2254298065859326 0.38821972202276334 -0.4337196618998896 -0.42627281172000786 1.5820034575116653 -1.024633569843997 0.6958358817206574 0.24130060094996708 -0.1814744889298019 0.5454833917874893 0.46936897257838645 -1.2688913458824762 -0.2627118350980033 0.8420730700788808 0.16816945380169837 -2.2798623235432203 0.6402665844893559 -0.8846611332805316 -1.4675487561404914 -0.027947964015784182 -0.5901763345085441 -0.571330804925102 0.5228306108002879 -0.9927174850952905 0.9646135860076068 -0.32822349961282143 0.23468114617923438 -0.1720357121194219 -1.3795098242773651 0.3764462905081658 1.9972718587424056 1.556041874317466 0.9200358605760568 -0.6745907313587769 -1.394750960577672 -1.2478606366264555 0.07910443162906251 0.8218236903010812 1.8253146962656162 -0.6585257389921619 -0.3394370746008006 1.2060992048285193 1.432150846756682 -2.7896514110375583 -1.4210025772858073 -0.07928996936032522 1.2330750687852565 -0.35422614195875274 0.6025729835840276 0.04067861174242849 1.3351240422014525 1.1402092931121888 -0.886031203419091 -1.7136121738762682 -0.4184443675854124 -0.3090451901390564 0.15666135268025067 -0.39817132068500316 -1.4331674901303566 0.28806969731642024 0.49948426774057436 0.14188842274291272 -0.6946810287845809 0.08375873826764163 -0.7511245951620114 -1.7279330969951363 -1.0741408184854724 1.3283737237252105 -0.06410374928391674 -0.14326999494902398 1.085098722124957 0.033009345492979444 -0.3276208027476281 -1.3587669569059793 -0.7573428508469043 0.505076045126044 -1.2640575126397604 0.32695128835410947 -0.8386808734288219 0.5618602704881784 -1.5603940686696183 -0.07163558018420459 -1.2782965435889155 1.3352641730401211 1.8049996557577366 -0.6206566719172607 1.083930702376392 -2.181811767355324 0.18420043692719987 -1.4140457975407856 -1.2982769380747485 0.9607017940784062 -1.2501067799809114 0.40405956018340067 -1.1850570525504294 -0.15250495418968094 -0.06373255103220166 -1.025688728124341 0.6782620562324109 0.9569888218932269 0.4879257762436095 0.9639525162418304 2.427050531077266 0.9023412116758034 -1.3493686517953134 -2.2691909546990323 -0.13722118018082896 -0.13978522658916678 0.612519762222851 -0.2769158784451625 -0.17297932262997898 0.2182143503277944 -1.7395317211637196 1.9298412957204756 0.318258590110714 0.25124902198321664 1.2984916051449515 -2.814647019038708 -0.6334934518022269 -0.2604784035123207 -0.7224025791772019 0.7281121948325828 -0.39875042047119436 1.0089617210647406 1.2581197030904065 0.14388199168314622 -0.04674104191766264 -1.9825403791891 0.6172187234222721 -1.171045319936283 0.06136285297476547 -0.5165086631640555 -0.8742219813761289 -0.19136924393741708 0.32727444560162733 0.17349174323780794 0.9287197100389789 -0.08746723220703632 -0.5125899967705551 -0.6003225722348048 -1.4357475660936783 0.9825652414821684 1.4967966887519581 -0.37037641612690037 0.7132341280657221 1.0393142353016043 0.5013594876517555 -0.7846410060124374 1.7024881884701735 0.3314712588569351 -1.4904013492975534 0.6434738092589467 -1.10697456220008 0.5175698931254972 -1.3159317437618177 -0.2963921253682635 0.5311834708883307 0.8213953642754093 -1.1224450233877956 1.7170769918289683 0.1953396753994186 0.8107919761308794 -0.4804347018257654 1.543432046125138 0.6685288840285973 -0.010702301498997983 -1.1605875218044932 -0.8606247501655305 -0.40485878027041095 1.4127754267864308 -0.5220439255194216 -0.8007740018790719 -1.0119216881494948 -0.1973642273557883 -0.33870110669387 0.40086570736168103 -1.2794105899410158 0.587781711551822 0.9691610700853303 -1.3449248734876798 -1.8197939156254872 -0.9347201351671611 0.5558458815877265 0.34012129292553306 1.25558674705742 -0.0014497752961544531 0.8244642068245615 -0.6046139802358577 1.5067535860260428 0.46091070469778594 0.9637700322689825 -0.9311209129505763 -0.9829266724414228 -0.9460211733130145 -1.1897051631870208 0.6073851681554716 -1.5129746771824986 1.296720997692597 -0.953648524186918 1.0775201811481783 -0.6870721615775427 -2.0874730870563787 -0.070947693944417 2.195670135837677 1.760834378385156 0.666470164757036 -0.4802411549169391 -0.4236153670193944 -1.4734224476901574 -0.4338204413637043 -1.6002014427905233 1.795964658818835 0.2630920579045299 -1.435534765531603 2.3159895770055843 -1.900548832898129 0.5236826033524136 0.012709977087080868 -0.13479589221534047 0.6913237185006472 -0.291169325524525 -1.6428789606839451 1.2375659021410026 0.31247740912829 0.7840434111370662 -0.7251369609103092 -0.8610166357406248 -1.760388530589231 -0.5825351943564941 -1.233329326408392 -0.0337474056924485 0.15046275970101852 0.4598080185566651 0.4240473800349137 1.2074199247722135 -0.19576773628842545 1.0819894906942555 1.2173270474101447 -1.3151481335445538 0.6257190810718165 0.8932945564631447 -0.19937208511438975 0.31918979085732946 -0.24795033497523575 0.5921483186814994 0.027378859795627115 0.813838662841711 0.6265977025682736 0.3214900656972518 -1.4405634511271732 0.5111472388598024 0.5125100307670356 1.503044234969317 0.4052517922612156 1.4884435429400453 -0.07725950463615415 -0.8680007112565872 0.7366464434485144 0.10368693401167892 -0.7339445468015139 -1.856857910996448 -0.2895987571850502 0.05867480955083606 -0.7256765314426645 0.5949649700712443 1.1714877794580056 -0.0025765131001317483 0.2597186430701993 2.881140457982361 1.0787241813805568 -0.56995539508714 1.3211097834646564 -0.1717247837990502 -1.4024978388733862 -0.18857238419104763 1.2465853040494554 1.0344118266636888 -2.0497127300280873 -1.6368037754891538 0.8874740971394923 0.4630747731852859 -0.32950875504106497 0.20773712574688932 0.7987488610343655 0.581483764677233 0.10137597820757417 -1.0951847945484618 0.6351052847197544 0.10687520569774672 0.5787622425697061 0.33140143756432816 0.9324777486796247 -1.1114437524792469 0.4770758784901513 1.8471709743974536 -0.7201960967696436 -0.5610433438297574 1.0258912211911495 0.5916810892351377 -1.302628430194429 -0.2379962299302911 -0.50772207326746 -1.4897014604718013 -0.9106400310828341 -1.7568572204915869 -1.5207633681547061 -1.7843423209965665 -0.18530414932533 0.0872581230679819 -0.3466689385540662 0.1250453926571983 -1.457486522725414 -0.6910760663872457 -0.6244151609920504 0.8036793678686076 -0.6486319021574026 0.7048458268309713 1.1539371604520692 -1.7874066045491177 -0.6574039676957606 0.5217038213826084 1.2451836401723788 0.5656594052614539 -1.0388887517598648 1.4933717732260028 -0.5232189970835309 -1.1646363738921313 -0.5402875769748152 -0.4561943523501876 -0.3527423197340744 -1.003795252255224 0.5206339198452196 0.4294931527755049 1.4547188078213515 -0.5366170416034706 -0.6654465282713542 1.5737154041037729 0.4096561470831001 -1.4682219840210404 0.02668199725156336 1.3836391795326 -0.329947581275645 -0.526087887949622 2.4877491416374697 0.5484405337368511 -0.029172281105472046 0.2089693133593403 0.05438615406737375 -1.625904676195174 1.8734458175701032 -1.2424746005120941 0.7095079705490298 -1.538610333533289 1.3995504188256749 0.546342541455411 1.3860788116396163 0.9276982534237169 0.7677272161187005 -0.4103420893859777 1.225988787422707 0.676889637233247 1.8488393149522897 -0.42154631861489006 0.9161706276953331 -0.03322160203009848 1.8367528389351229 1.2715937894524478 1.2477729334700276 -1.009947217160572 -0.4703900682058719 -0.4571401627117666 0.8810401629261941 -0.37437172307159117 -0.9490760539937301 0.4340198384422644 0.08356435358533927 -0.6130166534263572 0.9322567701916595 -0.7677650291988166 0.26408647357675075 0.2050807402499547 -0.1298048877584135 0.09470493779019748 -0.6981557211640372 0.5049228168119501 0.38435354380810116 0.9337312824628565 0.1478094052820799 -0.022682525695743902 0.9973692411522134 -1.3341339027258612 0.20385758646264554 -1.8657218111931555 1.0489611739323832 0.0786257458915982 0.06396030776540894 0.5448831696762562 -1.5876763636202895 -0.5515308494067055 0.23117678673588812 -0.522125890987023 0.6278042833915686 1.58933107276825 -0.6131913511337328 -1.1524244049070054 1.9379658732827576 0.59073062036575 -1.0163828373688768 0.4822364988822324 0.15676391321006325 -0.26892878450401436 -1.124138939751114 0.9389793600219026 -0.5625377047203691 0.9127035697055546 0.5205643822188726 -1.0239049629045018 0.4375081587639791 -0.3630087785223475 -0.5565145760706568 -0.46659443921557936 0.02802365686410956 -0.8969478154635242 -0.45046985900940595 0.1912697448523298 0.7407588601766902 0.19014553220870478 -0.32995990329225067 0.728327050248998 0.6420507326755338 1.0811359221230665 -0.19728335146241166 -1.6823237800303628 -0.522757411162554 -1.3776030498567347 -0.06435389388852081 -0.46892929309132186 -0.1710846359955958 1.057522033856794 0.2847937855574267 1.3419282598377742 0.5734595449872314 0.05322182897114786 0.05528527396080183 0.5953459291905332 -1.8522396965791474 -2.4513857023103927 -0.794410465557233 0.5631553776894118 0.511228087433203 -1.808641657101182 -2.1180123992201425 1.3915235997240494 -1.4898404991200522 0.06912751003065284 -0.8219397725680825 -0.7145795535462309 -1.9456060773117103 0.45476896127497995 0.49874574285091244 -0.20791893542377574 1.1071915675435249 1.8848025132248174 -0.5288516085455373 -1.2011364500458817 -1.9559159482221917 -0.6101417945110134 1.0176292534708442 0.645077657438761 1.3212309741809753 -0.8422327951727872 0.030573207134761145 0.042867832737324495 0.8792191017394941 -0.3505361080525034 0.5284892076771086 0.9138084920106183 -2.1293402796413607 -1.5233119120416312 0.7056980179270714 0.13714332367288365 -2.6520630675810106 0.7534534692815748 1.3322049416038115 1.3487714207866808 -0.07671268315499034 0.3180772362415552 0.23652469729204825 1.9241829732017244 -0.5570320428189545 -0.10428411164008189 1.7529645386644936 -2.1812574452077795 -0.6721617046051452 -0.1775750728109043 -0.11145160226152519 1.4301170801260683 -0.2243298957709573 -0.9645659823123759 0.6500153307764012 -0.5771341957310637 0.22699331788167595 0.10468482223074266 1.3098693061539082 1.1592484645076608 0.04034561863815285 0.044938618956315735 1.2013198645176901 -0.6899243650526319 1.1950761667332042 0.793836093639229 -0.12406222054417293 -1.6519401891210261 -1.6508717102067305 0.24170717358051022 1.3156992125296216 -0.40124564816190617 0.392409801703964 -2.7756989391199065 -1.5709911083172514 -1.2415857229217255 -1.855433095803629 1.5589690820194104 -1.124701874845882 0.8194417379563939 -0.4411026342804716 -0.2913455855396315 0.14041367591415857 -0.581852827795871 1.3123522693389482 0.5772910719884893 -1.7398187307204978 1.6292225874107746 -0.16458503336817312 0.19917368621660053 0.2910926136915744 1.395183484331253 -1.1031618411570623 -1.512877946394856 0.09006067667654463 0.2977076880285085 0.27762817210990015 0.5873648539349864 0.5027794545316208 -0.19083943817239105 0.12131449790375337 0.012661941761504095 -0.31823974509446123 0.15470872616151501 -1.5905587432326678 -1.4258279146661308 -1.5340001676592387 -1.9560816241685803 1.0969016224519321 2.351811746441826 -0.5305353645444634 -0.6450331103872496 -0.48508025107206587 -0.24923408628238847 0.26180943182597527 1.4821564984705096 -0.7169426131551309 -0.7429408794931492 0.9226984075038901 1.4374529475802251 2.0046866636928584 0.8279867050574945 1.7352762673211433 -1.294788553492607 -0.7965137505008514 0.27810095213026065 0.4660664118271959 0.7253413636898065 1.265386761386249 0.2505085411429711 0.07018466916719336 -0.7724369810075383 0.007188954231059629 -0.6744662569764887 1.0544479340002146 0.30501680319744795 -0.3451164620965795 0.5211094384818059 -0.3065590740340663 0.9321467102722593 -1.155605747471194 1.2531985609368272 -0.7373168147947706 -0.1807963888121493 0.30708051911365236 -0.052376840697344586 0.425480295786428 -0.17570856448376745 -0.4393512359903319 0.047606815837476606 -0.977466397617922 0.16017407833023545 -0.20005983612515257 -1.3865174934374742 -0.770676113754398 0.7811334968687983 -0.3168876807995181 0.7870986254692093 -1.1046286837449373 0.8002652409644297 0.5538652008634338 1.2939073568048973 -0.6922888442023533 -1.2333261724205946 -0.0658739051213449 0.734000947361507 0.8815539468774246 -0.07450317119002098 0.5470226630898597 0.43731717514825724 -1.8116519609089012 0.1449907678446624 0.13102489720664637 -1.4259741416169458 1.5735648713392523 -0.3443323853577938 -1.3757444699614145 0.6373792094073966 -0.015985354401546945 -0.4983290548194848 -0.026552049485954167 -1.0896080391562106 0.9681464879012392 -0.19746308068463853 -1.978759303846614 0.17465494066329665 -2.2705372018997267 -0.1955160372543641 -1.6560625188828357 1.1197668945986636 -0.02034580030220598 -0.7590089417729151 0.8071611157066327 -0.6164957051251065 -0.9662981086884636 -1.282398734667705 -0.2438233761155536 0.3983720071250469 1.2889343263818385 -1.1240710401243352 -1.1320070453810251 2.604141916029393 -0.6764122337102165 -1.1576422570696197 0.21495185669509453 0.09912048433807438 0.10090194626622415 0.8798791952256804 -0.17521774679369653 -0.5711236744362782 0.6228564243338994 0.5311784304411815 -0.10187005700119203 0.9212018883368587 0.4644549798487997 -0.4880026601747822 0.7229833980244139 0.9600512126678054 -1.506026222605138 0.7049172106700344 0.6651716009512418 -1.6107952362087932 0.8953471477590267 0.04570442134575067 -0.6821472771560066 -0.635238831879585 0.10052927944043348 -1.5379001146355913 1.4366218866401899 -1.007885904513576 0.23613131683379265 0.6664692411990611 -1.1390481576210207 -0.743934019630708 -0.6028702714016752 -0.674819784087675 0.8993352001123331 0.6705769958510457 1.5320010024100035 -0.28071698629491154 0.5466284811214274 -1.0308803742290722 1.0464383926324983 3.0216424170050606 -0.7558659128379626 0.07513809083679494 -0.8143429300109439 -1.574575991957401 0.804439242847564 -1.4037518003704612 0.6419315511283995 0.5385224467752697 0.3747730279961464 -0.33527062487911014 2.642005768113923 -0.42869102761813754 1.019153782277015 -0.7700907312913794 -0.028205895361855877 1.1045178553417974 -0.44757593707967325 -1.4601014983486271 0.041643183160693 0.18276608796602836 -0.309552643441078 -1.0064573784251303 1.7977659378443511 -0.19915755078713349 -1.502616835223893 -1.0463009020800702 -1.8477864509091086 -0.34951091731743417 -1.597372814412405 0.22756583582863513 0.629503428579218 -1.1021774063287553 -0.1626155681173366 0.30104644904904587 -0.3938551262981232 -0.6617628357143382 1.0235297692937009 0.17788013736066344 0.510437119996969 -1.3367122202365302 -0.010431851962334487 -1.9860665954619472 -1.0995942080713041 1.2701573596307039 0.035948067102071 -0.07981622322734443 -1.0012595946130765 1.5074340116401435 0.6369498162559655 0.2988778216225027 0.023727817412551037 0.7655475994179579 -0.6778654949062307 0.05384934997889814 -0.05501283416784191 -0.3378142271939842 1.68517610547413 2.2293241771521397 1.2027578799377052 0.9297838908145486 0.1372121532684871 1.4113966721191216 -0.5791673067226968 -0.3577673865424761 -0.6396199939499742 0.2292544630306995 -2.353879853536269 -2.201553258785175 -0.4984392412273965 0.6696790482969599 -0.9388190831372912 -0.19133782734458762 1.1725014017737625 1.9283972929735718 0.1882116163478166 -0.6234996301771295 -0.6915242299802927 -0.2080807576293513 -1.090810709687039 0.0989164278128253 -0.1559898927223114 2.1052185511847843 1.4627223364609605 -1.5481173150211014 0.7550961715509031 -0.15606189714116342 0.06652764307590274 1.2460820361547396 0.31706501377588475 0.6189322826725338 0.5849251520424851 0.015811486188753665 -0.1648596784398934 -0.8697474792121045 -0.1144755695020663 -2.3482998462367495 0.2613969994743885 -0.2234553969276773 -0.15340410490873366 0.7730280682278674 0.25119767717303193 -1.7396660771307624 0.669120137229258 1.2910487290750798 0.0003447680093071507 0.4108111427078423 -2.139252656726531 -0.2517397716045069 0.40148466873372074 -0.38491118751884634 1.5961408236687387 -0.2909246619784903 0.30997446816051233 0.7369543836300391 -0.31793096577249585 -0.7633921988719966 0.7645283425790851 -0.47358436452762187 -0.9309502704205457 -1.3382952919133646 0.7771268807854963 -0.6137642740424255 0.7939092325315199 1.027551593894824 -1.6620033583460974 -0.6489863127238302 -1.1849414110663683 -0.6964789802458795 -0.16964575001240015 -0.32325776291745273 1.5364883849029305 -0.12364766764467967 -0.5434828189033506 -1.2938391762213324 -1.030340209277469 -1.3357807071611039 0.15877692121817288 -0.12426276642219572 0.5208302186828978 0.5228907110942813 -1.533206832712129 0.4311594211250331 -0.6408458880314467 -0.04893796332388742 0.18269690002715347 -1.0348119208581927 0.48142897888774544 -0.6410141507141268 -0.7047703688886694 0.18091711992047974 -1.1350021050918266 0.3750846315622034 0.3856526374598582 1.015489251619844 1.5455755533859352 -0.06512776358239261 0.6869644692516548 0.26692810101616915 -1.7366692317778272 -1.202612074655254 1.045396374258627 2.083667438107358 -0.39471191358898716 -0.34725765137739045 -1.3181248885267463 -0.3263253751637529 1.545698219702385 -0.5650161718722839 -0.4802995163594337 0.21554637974167648 -0.9509854130786177 -1.6284219096777444 1.2395432880674686 -1.3323785642027237 0.7609793081471953 -1.2318809085903548 -0.7707608280384581 0.9186987451770873 -0.14131099896232338 -0.816649281163807 0.564815904142198 1.5604411094457982 0.08337902706643247 -1.6746947997981043 0.9171704134430004 1.158947406918193 -0.2747146869580868 0.4062827336200283 0.029797738742464545 0.7321450687864377 -0.17455294499781157 -0.3542353177520916 1.6811228595417183 0.42551599206959617 -1.2522400884829021 -0.8298186338947764 0.5947498557270252 0.39648641146883923 -0.5111126482838817 1.1405343727681667 -0.06244476785533545 0.40695111381588506 0.21687504488476078 -0.952824931413324 1.7512471122233917 -0.07039247160302423 -1.8729285283745523 -0.6110050454608675 1.1949061680100794 0.1850189954512406 0.6496266472735989 -1.0075239579736424 0.7241368930377922 -0.7440918571813155 1.4945359276160155 -0.08758570910656013 -0.385732669836716 0.571541510689419 -0.9104097204983066 0.5479835341491675 -0.774294315903661 0.07074155446303 0.652092647221489 0.09947636319799796 1.287025442098847 -0.09711895427369917 0.12206806382198775 0.007653999476922058 0.7742417257944326 -0.6677078008635075 0.04910479081207398 -0.2654631869035983 0.28459804173164815 0.26760857732680027 -0.35588540183865913 1.7852609437812157 0.9015749320471023 -0.38690174420376905 -1.4209173994992987 1.6431061022320403 -0.601021820420258 -0.3340442861707907 1.3030014097282159 2.012845418375057 -0.2706704964220137 0.3827734568336281 0.08463952445564758 0.18709279501589543 1.2069812004960707 0.8292406226551048 -0.30270364852926424 0.9359654318133787 -0.6632492566785353 -0.2742431678586674 1.2460949934586518 0.14305417106784452 -0.4962980620234409 0.77049047101217 -0.6655255259274556 0.13565639092425152 0.7948112050579095 0.9139603042329333 0.009327354165272148 -0.043337796662154496 -1.422389109420895 1.044088841105824 -0.5280984754559914 -1.1763606607962553 0.7564768052470082 -1.3936502712963752 0.2787541727130139 -1.880397259787794 0.8809366707634322 0.8257624475219487 1.2222645408869952 -0.8790770874205558 -1.433055639685224 -0.1910973352551063 -0.2046314245017654 0.5667255448665356 0.34709958519989453 0.08596986192496735 -0.4929929280810407 -1.8012623476512184 0.13242446431751065 0.12648301803334105 0.6863327441790421 0.5083857836277826 -0.03443467321161607 -0.1578818449522672 -0.8489472808510677 -0.7171209622281727 0.5693855826728692 -0.40314934088855203 0.013866219748188116 0.2711759544764409 -0.5856601116366204 -0.1844221049307043 -0.5379011426147887 -0.1417412674110042 -0.5053300939984765 0.065703136683397 0.9667170329036371 -0.056346310632559446 -2.5835749111568758 0.9981297313768168 -1.3662468250870583 -0.23892310405704384 -1.0335304510786374 0.8758087681409604 -0.3797624419162271 -0.2885202248548758 0.5575275407101207 0.44693131943009645 -0.3384503181181652 0.5917220713038988 -1.9242587725820015 -0.7453247055565434 1.386286740396816 0.016152021391741392 -1.3991343098908582 1.5657773707366864 1.2789746823764592 -0.5333579187359456 1.184274806961843 1.027525390175722 -0.5503806043088608 0.9903010985578129 -0.3324483166143728 -0.39115571204580407 1.326074245601694 0.2248406512710537 0.4632298649524107 -1.7460053137807998 -0.3293343698704611 1.243419784244962 -0.008275759654759185 -2.081137497899501 -0.7572874260240572 -0.10201162097239916 0.23658554755696629 0.2367464392219497 -0.34637348384604955 -0.013586182781682669 0.16597104487302872 -0.04914420584019637 0.09828603823315034 1.8854507798714197 0.10777917327512224 -0.6738404997048837 -0.7680407766588823 -1.309655523349515 -1.2829986285123134 0.5181524963791172 0.08067966347604635 0.30851361526874355 -0.17469757482608553 -1.0607384824165724 -0.2938861509099088 -1.7240002342625733 1.1811808238556356 -0.7088014861653911 0.4470194201506047 1.094315282559071 -1.2246097591670146 -1.4838889291786297 1.180791465448753 -0.684798180995933 0.94079313289729 -1.1483550333549066 0.7751708272384383 0.07132549724409327 -0.1590265690942234 0.14913922240929028 -0.24619649888403208 -0.27502510427944454 -0.008793053415794238 0.7399089067800789 -0.28657661509950666 -0.13984443188579632 0.08791623323908067 0.2681852802911909 -0.9827782202364358 -0.3359017702888381 -0.208718933886847 -0.3455715743209142 0.11994873229542556 -1.5489361364765941 0.10958501772147075 -2.0670301278582888 0.3494580712911097 0.4885383090528309 -0.16566687987739312 -1.0233557977389482 0.578888558959327 -0.8015574212890736 2.2112278901050546 0.2510090183678587 -2.1280049155528253 -0.010874002723935969 -0.6223649735533436 1.90789471793292 -1.5933980265900352 0.8333587463167897 0.4141118135921097 0.04714753213226683 -0.13728567350506418 1.2822788742773112 0.6808594053122075 -0.9275678261457075 -0.5729600819905 1.4422724219140568 1.7453486226516026 -2.2992401401389335 -0.252876595361386 -2.0527455159906083 -0.91021137367988 -0.4900250460297751 0.10004296915101794 -0.8881873260246201 -0.0706814963359083 1.2280142297303442 0.9950123475072179 -1.2388921564623825 0.8372550763271961 0.20024820785688516 0.7107714981934395 1.0990543893215658 0.7082923857439706 -0.2710532694429774 -1.1746173424249988 -1.0966594345927347 -0.6441853577446456 -0.008307185132163686 0.34554826263174293 0.6467089421430207 3.010891891777311 0.2921821514493229 -0.03502875703150027 0.27377788104870165 -1.4259523536990717 -0.35056339720945834 -0.20690435078591105 -0.25982044360783224 -1.4414815519648454 -0.9302307211870591 -0.8865310864303251 0.32056044763792896 0.3771703128992299 0.3353582139067703 -0.22100641817643715 1.317088627097278 -0.14291446769626323 -0.2911598427365065 0.052118439755374224 -0.3272190617186634 0.1280455311849131 1.10815284302243 -1.8074762881656108 -0.10057296790210377 -3.4415542978813547 -0.8201119088964105 -1.9194430712321644 0.20949946470621506 -0.3907235273437125 -0.5117783572370261 0.051594551931257275 -1.3583866324908818 1.2197885700511697 0.08636932875078222 -1.1535917617035607 0.498640858349076 0.8612444620709948 -1.3087081893448849 0.21944447752186302 -2.138725968143911 0.4124364234468568 -0.44007736938526715 -0.4389288613640376 -0.8255124058826518 -0.8189244176333665 -0.862636738627609 -0.4414239976731418 -1.6070570610398462 0.33793040291531856 -1.144021325042781 0.8035586501017156 -0.18938452939695583 0.27784221865621594 -1.9337328401743084 1.1405002578762407 -0.06145013583137703 2.307951480864874 0.9215153234762412 -1.7796913778730095 -0.6722357407305201 -0.7767884859126503 -1.0592411674596414 0.040487610014972156 -0.13544494462702295 0.41115430429036587 0.427785203144673 -0.3237686595036989 -1.5474078945286716 0.33630339129749687 -0.8784098743045324 0.5145957560751951 1.1090702144730993 -0.34979347581675324 -0.4350275850972345 -0.11766273229218846 1.5969845322297511 -0.6762675827444444 -0.934615203488782 0.013189846619497627 0.35130468642669854 -2.0888593010156713 0.9669343125704173 1.123237903107459 -0.5641803091936398 0.17944828052300607 0.47989206864886325 1.8167308064334649 -1.2123649145042212 -0.09727051002141271 0.44933588540502334 -0.004052915440751743 0.6211033883358219 -0.339586752226554 0.22852043699133368 -0.12366545208460412 -1.4941976439834777 1.1144153912808241 -0.8117515329207833 -0.006600656322849777 -0.911449582276415 -0.1970542516833357 -1.5773296199084463 0.6473312231917367 -1.1612811107443375 -0.4269439022565518 -0.19790568036008374 -0.8745733509640718 -0.05356460477056014 -0.42368988512183425 -0.1125250083390585 0.976708322535813 -0.896001261884184 -0.38117790167614 0.8383877728460322 0.9342249064356652 -0.08356276621202124 0.07079440698740205 1.3343692852146958 1.3627557555707643 -0.7192126967348311 -1.3519127592733777 -1.2429608292465237 -0.1875985748986248 -1.1617354089135938 -0.1697555134483924 -0.1243622968998916 0.12517791926700395 -1.9591525701731223 -1.08246974839102 1.038820816372179 -0.6061303638984916 -0.47349963863934746 1.5394930777432776 -0.10413525022499498 0.7623792903226239 -0.25818240631093686 -2.2640068099962254 0.921865261091533 -0.9049952418678532 -0.24756178146780944 -0.2576445173119199 0.5688554152438234 -1.9098600220600488 -0.8060022848762642 1.072785485316539 -0.026055677701311473 1.4216528126872625 0.6218001196292738 -0.14982471247534537 -0.5582969775345794 1.1558827342757692 2.1045570751869063 -1.114393689562794 -0.9858950484868236 0.8774601776740754 2.1317420757567276 -1.9593229538821915 0.3279394842739123 0.11407153800971796 0.39809921541027293 -0.3436276206844289 -0.3277389986209569 -0.32314871485130237 -1.2598525755062289 0.6328221094042765 -1.396197744727086 1.9983498084598557 0.16781044250152802 0.05494395339550617 0.03594542124931304 1.198315819177688 1.8472059871824271 0.9563597077686631 1.735024527937998 -0.6777124987437906 -1.680417412843813 1.3305117460339393 0.28333442049005586 1.0500967012978444 0.1398406854256083 -0.9968280265456639 -1.2965996551657015 -0.17779733887007673 1.896573455782084 1.3442729976823895 1.0913231301340724 2.0203850841527236 -0.3659565263170161 -0.0063779292099260245 -0.12535893515907354 -0.3821276711045155 1.0097217252557729 -2.0642570719752626 0.41122973233862586 -0.17021536901715423 1.007342101355253 -1.2012302063863554 0.5169433657498648 0.0347563250940406 1.445412336846617 1.1140887675500377 -1.1426426337063376 0.004615960302621853 0.5885618145775677 -1.2012176033981599 -1.8307868343795377 0.04631732816495078 -0.2292938909419133 -0.6464889408443857 -0.1638485509950092 -0.2552915237661425 -1.9278394568679982 0.691826350883393 0.48172194728116885 0.6697705097626635 0.5484672953600038 0.9357314492450692 -1.4842195739411967 0.21519876020096523 2.6754858069835454 0.16451813635838633 -0.7900084214488332 0.6645352840631533 -0.6316536806127673 -0.1212228481536597 1.6466921694202434 0.5801003543835453 0.4014515016251594 0.6327510327300404 -0.037917885352793564 0.4239893267299969 -0.058189083443553946 -1.0993369128929247 -0.7460988458178807 -1.2434888683778058 -0.25272789896786463 -1.631218484595444 -1.1811884013051515 0.5454328690338577 0.1387045459791588 -0.13860248317523222 -0.7530022144586118 -0.5533387010991799 0.11049572305570758 -0.02022515561803073 1.3195261243673109 1.0325429239742898 0.07956041697639747 1.1442074808068596 1.1356045828779555 1.290804816153926 -0.5945959912677873 0.3967566879785804 -1.381664220363633 0.6083000482106259 1.4459942310108327 0.4036122279308628 -0.15293184366031815 0.2806864433015451 1.0844403543546872 0.6795872306620775 -0.2440004844931496 1.0500210443834768 -0.4141491057455126 -0.035151782005314144 -0.3757741212997775 1.2274054676591872 0.6565494498931547 1.5644151016921612 0.22136841637725815 0.48125633090903597 0.2355229866514881 0.761957854694334 1.1656522932049898 0.3017942173312101 -0.3002286322334522 0.1358687861531012 2.827525088265572 0.8518947932656686 0.8593562156364222 0.7964791290880504 -0.7333607435420759 0.04677723710926133 -1.0743650211662865 -0.2638940578302981 0.09777636208022095 0.028342454345023277 1.305743536868336 -1.3054943147642777 -1.192961093835477 0.9082780980638593 0.07558319076822811 -0.3244253579460616 0.3663291016073873 -0.5213460890554882 0.5115704600894838 1.366803985869522 -0.3656584530096092 -1.1315753422985881 -0.9333108441429581 1.9952896758687428 2.25320989842466 -0.3562352654566381 -0.5275429553499136 0.9825522672997292 -0.0032950491663891494 -2.181208482551855 -0.0375046925969854 -0.3687179128456637 -0.10505570951453162 0.3383058194948924 0.46797104178396143 0.8755030129132962 0.09324309500214131 0.7946900031828841 -0.0627351739777834 2.005708741283283 -0.10896575115920325 0.2151369884022833 -2.082698325673437 -1.697665943411538 0.0738271845183902 -0.3874289437886409 -0.8582513400455136 0.23315092695351256 -0.5643460062248356 0.2828065725239217 -0.16183687282785733 0.3567878849278273 -0.32201101406796095 -0.3656245494599821 0.9857587486877623 -0.7091189911414182 -0.1451447174403375 0.5848732698953623 0.9633837350277986 -0.14066535136162556 1.5711150257054016 -0.7444908024519588 1.551834620851568 -0.4618384269915077 0.6405299620331172 -1.7242300774519137 -0.7315070690646353 0.8519811206691469 0.7459641758743644 -3.1097723152729206 -0.39774203945965103 0.29814301651155595 1.2782796063924955 0.9024805965912568 -0.9515129268770556 0.6049268501821583 -0.5923459972253741 -0.22984854947160982 1.8593799676075788 0.23916485757642314 -2.1323022556114597 -0.8183344127650178 -1.3246482055374924 -0.8772087720738355 1.4954007337634125 -0.5100765626080467 -0.8695062725822761 -0.9993209465396008 -1.1037539498271531 2.2202941539262184 -1.2425837114772154 -0.016617847874507322 -0.2217152645361393 0.1417459041952802 1.5717281082068422 1.256623429457858 -0.7413409940871909 -0.14342918115212686 -1.3800018640199967 0.0825981905375412 1.5748775008726459 0.10726920782199678 -0.6876007126807028 -0.0661944634454627 -1.5004068201999292 -0.9489736906197169 0.3154581427668352 1.1519827999977026 0.8854140536245411 -0.3273069316993156 -0.41088896646181067 1.3628866078668898 -0.18315904569683478 1.587204327128942 0.6305186586598175 0.8920369219944853 0.7305817907465232 1.7293757313680311 2.346195267361597 -0.8635504176806483 1.2360313306904906 0.01625454692879126 -0.15508841242943475 -1.584975901407577 -0.6808109111552966 -1.931177690032966 -0.8966136712838366 -0.61174389935351 -1.0313143184455171 -0.8562376472575614 0.14711534373933033 -0.9866979664826053 0.3327763878306401 -0.534029870297982 0.5463498651503818 -0.4423251233961326 -1.8057189308475958 -1.42905352795367 2.1004725712350525 0.12574336863385308 1.4640177695093215 0.143961881283978 0.3252052910071897 -0.40666279187014265 0.5182825342382257 -0.6496430811881054 0.9644752001301958 0.8192475048312813 0.74630192689509 0.8340337457250151 0.634910929722004 -0.029832919862210018 1.3790695005498512 1.2115180859497015 -0.1983124492158286 1.7464114586544452 1.653495337168298 -1.266894326498232 0.2691848591671484 -0.8092321797858131 -0.35789965146856795 -0.2763626614989367 0.7812459925400954 0.3065979558260265 -0.15394079244020473 0.7333008628265559 -1.1557165382476287 0.517539343364062 -1.7036920595328675 0.141641757074266 0.3649529486709109 0.23068829650235087 -1.7713815095837298 -0.11742072624233177 0.20764472941452278 1.2794829615725334 1.0317766235194872 0.4632372588192488 -0.8909941622786418 -0.4381142608724338 -2.8502054353855257 -0.3392509451608975 0.0972089135284768 0.3057832351657568 0.8919887985051012 -0.9563323633726607 2.6955204129659247 0.32995470013513195 0.17169523054727828 -0.021081854375438636 0.7534859384476589 -0.7124339795612938 -0.055677658493190244 0.25280823804902575 1.3758729882789766 0.42290080669850283 -0.6667730881021867 1.990612813677669 2.456364586703174 -1.3998386095271695 1.4782621975806873 0.6127788181724009 -0.4090154656240048 -0.27982639001691867 -0.0099088417838738 -0.7358264698308885 1.119676949389626 -1.4684793172920512 -1.0576018142157775 0.5171657989753364 -0.009202043995137226 -0.8848625045825372 1.4904687068705713 -0.1697661694329375 -0.9320839497164698 -1.2644194326983649 -0.6576429685661461 0.20623662861693737 -0.43495569791006744 -1.932066838974221 -0.44505252172554466 -0.3583232759736009 -1.9254672246899855 -0.8724359676147347 1.589760249554125 0.36405882936924505 -0.12852453245000436 0.4169474317234193 0.2414853943652896 -0.20073880062567762 -0.8877191587468489 0.17919294909592276 1.1887749476342562 0.651759410281035 -1.6641658523742826 -0.7467992967533651 -0.7723982685534709 -0.34927041373788464 -1.2458125867665202 -0.9768364026828801 0.5883793107186307 -0.012477670009218924 0.9464758567123625 -0.9988802440571303 0.4936882611921993 -0.806603225287537 0.3883402426538945 -0.6866976453602073 -0.8181547856005589 -0.5338553429429287 -1.3854122700564608 -0.21051281596345173 -0.5307320339687237 -2.2798836269682523 -1.1520443039046282 0.5881173756210868 2.0041313211407927 1.2564102243602258 2.1832427247636126 -0.053370440752820186 -1.719852810695205 -0.6099869189874894 -1.2035170056409816 1.6893010365732157 -0.2288261901142873 1.3198300481848249 0.635864034185416 -0.5046171942524178 0.7549413168844515 -0.8764755589900212 -0.4963034987712419 1.2965904907644519 -0.15119617941462768 -0.46323833399079806 -0.49836005822162815 -0.694859279708552 -0.4743052385835143 -0.45654745201110736 -0.48009121392759185 1.1549514396547416 1.08474296976688 0.19147458495226605 -0.32090095835308136 1.7674658750317311 -1.5946016390165159 -0.5760514444854296 -0.932069875023682 0.1511166056229354 -0.41148478655126736 0.42550618082234226 -0.4616212799166992 -0.36077543467546824 -0.2901198537172946 -0.300670181341268 0.6109911141609956 -1.0711691976684914 0.5891771574977166 0.3130040288536108 -2.5513555614463166 -1.106557084452566 -0.6900095459064572 0.4107570512660262 0.1244172439037572 0.9770885040092293 -0.23969063696119533 0.06424672009693062 -1.7620087224405716 -0.8607799406973065 -1.820345347433715 1.661581945206168 -0.055008346056563795 -0.36749407551853064 0.02577492148663036 1.0791631438622178 -0.9901467311588696 -1.3225381731706771 1.562096684918173 2.3562814773640532 -0.37569078618221513 0.44368922755126017 -0.7276955241185129 0.7082340053186399 0.3324836152505837 -0.2702126100816498 -0.31724157251189994 1.5204524977050988 -0.529616624966135 0.42948887695341154 -0.9627431386152161 0.5056631158602738 0.41974545290552717 0.5614658710373748 0.6525475411694415 1.1128292149261865 -0.7771901270337565 0.23181901143151573 -1.2623171014610597 -0.5840919395073234 -0.5738073032875789 -1.5276523230288972 -0.8549237644693024 0.24396681464274403 0.7707964473728983 -0.28886824221022955 0.333734480969121 -0.664563299643994 -0.0778835153128317 -1.3125601570588765 -0.06671243697443277 0.5574223884953711 -0.4378039257797523 -0.8278589914862937 -0.18502920251434737 0.8664209379769165 -0.4653173558423566 1.2351198672746724 -1.6771863999005858 0.7153371980971883 0.6280670793057901 0.6278869192644522 -1.9118661033080386 -0.5578349856148482 0.03989257456969964 -1.061334968788941 -1.072285440465355 1.2003751303009609 0.8712195429897696 -0.24273241762850659 -1.6930781978906544 -2.4324108141610794 1.129053390952387 2.475327389761387 -0.29463525211573055 0.3963807086366613 -0.21670534742264613 -0.39485732392368056 -1.7217344233502554 0.38110678582851953 0.26361482190775604 1.1946261787277526 0.11568952593918556 -0.16318878240227383 -0.7021776784544677 -0.466567021937305 -0.48207597483119646 -1.122082417895709 1.1665892716569788 -1.4609617269290058 -1.3032403535661998 -1.4585502817030123 0.7010986512485512 0.30541401943254315 0.8546329253094768 0.6746431837051056 -1.531318372819688 0.9266417519741567 1.0033431150880425 -0.19773159290012776 -1.4983423393404063 -0.724217766766526 2.1178968516393324 -1.5606893290453259 0.6684122170707948 -0.9303377158924372 -0.4184451038060462 1.6565976529994524 -0.16404728219848497 -1.2026773573987826 -1.3900894390606882 1.1134060303473532 -0.038030585127992504 3.5741551185096174 1.20640684381867 1.358374455340519 -1.5929351526624418 0.33396358119776853 -0.01446675733834003 0.8104563849384605 -0.6455896647236709 0.725363475223454 1.5604624311328696 1.0274443304214373 0.24989583702912707 -0.5410675453695454 -2.212875965307361 -0.49645567406481517 -0.43042467202185014 -0.8537440800974431 -0.5913794680599281 -0.11513977139293738 0.6004340059653632 -0.9841345011864893 0.9814449824870186 -0.7928160857564169 -0.7794993816987638 -0.6564079560155496 -1.833167023456407 -0.29854404777222215 -0.2953862256120616 -0.47036798791964485 0.16054455336251694 -0.6525690786674057 -0.3341109549412459 1.0535680838113257 -0.3506551114875009 0.6635511761093161 1.9031541350707668 -1.80868640442989 -0.42269431711910205 0.47514022846283854 -0.7704413816486696 0.4246779495309443 -0.80381759064959 1.5384735251369388 0.7319443910253504 1.5653969283039064 -0.12957764881629483 -0.6535476577440512 -1.0282620159610605 0.794023750161463 0.32903277655909713 -0.6935275481330802 0.5658343993464183 1.526386773107786 0.21981317484757495 -1.856033173327429 -0.4093717218224075 0.40621490520170006 0.41345438117644645 0.804987014452586 1.2704105208347896 0.08497020611229168 -1.4480935702048126 0.34101297156520216 0.31820089610063357 -0.5926927785827375 -1.237411886926667 1.4733195030858919 1.5518348053703752 -1.0750033983855591 0.13336577572107575 -1.5064491607635502 1.292053557281415 -0.7627986136688368 0.011090464831910266 -0.08226015884628889 0.2840267601839582 -0.985272405760371 -1.3804431016289676 -1.9238069584052666 1.1418042799901604 1.0132991483210256 0.950721981496851 -0.8346918245839225 0.3772288299127995 0.8774021190724494 -1.599531405654726 3.514017655428472e-5 0.522249567874496 -0.240620787658427 0.3539513309947286 1.1156160634540129 0.28046124567253966 0.8935939783790683 0.39902722481539005 -0.9191521296298611 0.9989755941977486 -1.696582121079576 -0.09152893570694039 0.6239273683555587 1.287774073578901 1.312700751231936 -0.05495976912374488 0.3888738747288115 0.562743470885439 0.6889806440185503 0.5571396031948546 -0.5614975428753597 0.06725347502766266 -0.8785829177053005 -1.505335598865072 0.6023601185055412 -0.533771124826001 -0.9804932785250775 -1.240291381483816 1.1909584089523118 -2.135607903513005 -0.7661793041649357 -0.5011577862246168 -0.44394295393966526 -2.7049348991673146 0.699236511857195 2.0431720485220195 1.6733148572047607 0.29944159218049776 0.13083122771643244 -0.8930679938052773 0.8218169911447607 2.4470097243136917 0.704858064109281 -0.8194897180972954 -1.5559778906631503 -0.6440596482639649 0.2087448862031555 0.6616244399907686 2.2475056707434495 -0.1367823278290306 -0.8649848732953992 0.3222590773860175 -0.21418828790023625 0.07620352087497045 1.1435988136224176 0.38473012214549773 2.6544987134979148 0.0462756648458572 -0.6468128773742984 0.020896128135325567 -0.4660665243200836 -0.33714044155289125 0.37854012075321636 0.5850208677665254 -0.6683637694843219 0.34200788917731434 -1.2840128454480801 0.2510217654705398 -1.5791137315543622 0.13472678611417405 -1.600449548493068 -0.40504910253649634 1.6687027288835417 -0.07920876206923858 0.4417854737556343 -1.3681980405477654 0.9316102635256841 0.769357756014884 0.5968525964014607 1.0165868077453017 -0.9836687847057923 0.08476598109804931 -1.5060890876895365 -1.158037906346835 -0.5155546521790144 1.1680785153418594 -1.3884246436783776 -0.8481686077146681 0.09647085904425344 1.2668655416993024 -1.7829459523262787 0.6344084874980522 0.1560292458070525 0.18193094595061515 -1.7271466674379286 -1.0066596785722088 -0.3493254779403868 -1.2310787394599167 0.011112650869298898 1.7671977438507662 -0.3362329548876071 -1.6478468369985337 0.9096537440878432 -0.4510189231886796 -0.08837930297857648 -2.327703670758823 -0.17393360219625656 -0.5860255596222602 -0.4245355051226906 0.8897415979203463 -0.14089461509492585 0.8464582502750169 0.3416720528080186 -0.29304918068573754 1.9073502980602792 0.6787606529695343 -0.45046117306662836 -0.8019546634883649 1.9514609111856516 -0.0862192159913759 -0.15748146340064711 1.1327927523173345 0.38471603236290647 1.6036553844234005 -0.693410158890986 -0.8047922256728556 1.5438077758105246 -0.4926215344717372 -0.9590978797220373 1.1160765360171625 -1.4415957946490376 -1.1456111279005148 -0.6115647918722384 -0.09507934938667115 0.3519938418318742 -0.8556702875915116 0.2514897707967486 0.5340047264255934 -0.21157351854450462 0.8114854933376514 -0.12636724867970286 1.7634273608389734 -0.5678712960370836 -0.6271917805514231 0.621181899961541 -0.6838347780388114 0.6076702881174159 -0.403544089454889 -0.5516735173532014 -0.9214735307671301 0.7600483677113976 0.38103291278648693 -1.045807985345058 0.09332209029749536 0.8552703469213039 1.1393095221188636 -0.6491229906741436 0.9762742726045938 -0.9563699106394514 -1.0849046301433658 1.3046002594467492 -0.10357165785076118 0.6870998156255447 -0.3636846101093243 1.3277501381936254 1.5166188437713464 -1.821668360785236 -0.6805832034778571 0.712955813527675 -0.18799943179587483 0.9120523385442216 -1.436020582256049 -0.5355005137183374 -0.7434379785876871 -0.7610855124493731 -2.093791627356479 1.0991792743237543 0.679371509445112 0.10663949361590475 0.9815379895996201 0.564144548279039 -2.8324576305461684 0.3224188616049978 -1.6909868029673325 -0.47317299407513336 -2.3907602546211404 0.562748096841523 -0.5226848147574245 -0.7711561093946783 1.7536206798770544 0.948498450587021 0.993040102939215 1.4526079210647254 1.0983126299639876 0.527459020628018 0.021943549561745688 1.6942368234928238 -0.12298469480384332 0.19393756533356274 0.36158490144100164 -0.20493461981072142 -0.19144338676103737 -1.1460997312249335 0.020659644432366973 0.4773794759059874 -1.1262696247828017 -0.614825392860953 -0.9375627530120092 -0.6171675287734767 -0.860485825260165 0.7489718609992798 -0.47799147924924007 0.888323107481252 -0.8384073947640155 1.3619706001679694 -0.784484906753322 0.704392721724927 -1.15804303205052 -0.8237566779224069 0.3127088524313526 1.63396543424381 -2.0942566064706427 0.7990245770157385 1.1513322082329691 -0.2143091007218633 -0.9937430601904778 0.9529546047547539 0.030495912796019046 0.25515267575275974 -1.4087645318978461 0.2379880555110393 0.10142316285523145 -0.8647258369009545 1.0369546887070848 -1.497173530547005 -1.3469206438359287 0.036156657205052005 1.3816017701575396 -1.7446186534958243 -1.8892505456225 -0.47394609536097343 -1.968117893860401 -1.11683832533932 -0.28113329793524094 0.9582888457382356 -0.609882295313585 1.6683071279792225 -0.14919295472594676 -0.07076281247415853 1.1167011312690593 -0.626154515774747 -0.33496209396636645 -0.21338379130729815 0.7168214518875867 -0.4293730707971 1.1798066965138878 -0.023104691916207724 -0.0059678929438510935 0.6103223682816682 0.7476710289723612 0.2304907825631042 -0.5972480649170079 -0.9825717543474954 0.9877564308510656 2.5857811276220137 -0.9768365007059496 -0.8262858920091164 -0.04273258648338553 -0.6156044882011736 -0.02564302086962441 1.1319222326555922 -0.6242127203107799 -0.6555733761396627 -0.6139993844976702 -0.8588030297305024 -0.4366509660920625 0.8808580297511948 -0.9022771831944757 2.319121687792364 0.16360530770378473 0.47361115787791236 0.9494945424881192 -2.503693382375122 -0.2810614240782613 0.49233963264557584 1.5371257673203431 0.5473195829349932 -0.15868379081042372 -1.1657186125867884 -0.4798848335877919 -0.4163813970088726 2.6585347170033775 -1.2956908738831456 1.2635081253659286 -0.21283101111929348 0.23297204556096532 0.18485280221962921 -0.5599760046032609 1.2484166767129794 0.2108301619143682 0.6276896544446275 0.18133382516431232 -1.4729000385295365 0.3124741750559803 0.956537091294731 -0.5613194419003515 0.3971696471927891 -1.6515221902974306 -0.6223183337243838 0.5721547928451922 1.4903254351993922 1.6893865359428466 0.6275595862562128 0.5027809832427489 0.004723447372332709 -0.4512777448365468 0.7622274211280659 1.3182706859775883 1.2114656461914315 0.27418322125232164 0.8563922643340052 0.19760406822977475 -0.34301604069866853 -0.20342740522727415 1.9863226374478153 0.9053664207969161 0.41648599176626977 -0.6234260154228374 0.5482388068356553 0.18329072203132538 -0.9687394253369782 -0.8373761466054136 0.787727961515909 0.7173767141505779 -0.5405108813159795 0.9090508581993406 -0.15512079816076513 -0.05470263728352529 0.8961634407244756 -2.362530409562781 -0.12842965264041686 1.078087602225711 0.03911055367559944 -0.31279323618322674 -0.20859757137341364 -0.17702431529978202 0.9217420574746854 -1.731033114437235 0.008205744533876928 -0.09408686993819919 -0.42282462113639147 -2.395386934572363 0.926566805671753 0.5482249350715632 0.8436245105592839 0.8305463002241501 -1.533391109627643 -0.09390278273183632 1.4195536777726387 1.5312893559487915 1.0638250009431225 -1.3377760477097786 0.7346447785164874 0.03234641466004456 0.09503653353397519 -1.0916656487838219 1.11199459927342 1.1083665676382555 -0.6256827483384938 1.826385996889206 -0.663876176421725 0.8339263836150539 -1.2865277563116275 -0.4587283386799789 0.8957266798801612 -1.0781216754567908 0.24962913332832787 -1.2193802646209013 -1.098075306353475 -0.45636804419779486 0.5567689957540641 0.4800565538666879 -1.01818173476039 0.5254567079400588 0.778103883970296 -0.3457964912182587 0.509254101956751 -0.45255539502814335 0.4714990976794031 0.6678758228912495 0.8601275556380038 -1.6727475186379788 0.5434967821698005 -1.835100469168858 -1.2007504413191294 -0.0342255665921219 -0.31053858123740546 -0.6817218474098934 -1.2073963316992935 -0.03332861033898519 0.3127928503649422 0.1678326067163351 0.0002636361999722178 0.4735380638851554 1.1389121894468062 -0.9459664669058974 1.3295804556605237 -0.043777972506393 -0.6204030422257628 -0.25205691400501723 -0.3633404098224212 1.4076459848918652 -1.1471209802728284 -0.8668199664363555 -1.2828899580408073 -0.4092873156362488 -0.4574265642369392 -1.0256987902816561 -0.6317941430152217 -1.9070056129219417 1.4009057886397733 0.06690516785212774 0.6986100638303568 -0.26226123927954503 0.2949935007667972 -1.4528123871214347 -1.8557291313460287 1.974993389391563 -1.0950969327333162 -1.63369266149386 0.7550562029935218 0.6878840898515025 -0.902694546172668 -0.8080142439471146 -0.4208510937292994 2.0155068451270712 -0.11783329945591198 0.38931951029573664 -0.308354164682675 -0.09656030013234448 0.9237056877797205 0.840809214580702 0.36332090648879917 -0.025222223829684306 0.8504563142408944 1.2145935358864905 0.07026170888909218 0.13680829660132826 -0.3587975680188212 -0.9767892566280987 -1.4662492690771551 -2.5089443452335063 -2.191926213725547 -1.313896220209698 0.24426005956983443 0.7617072003008711 -2.430230214329687 -1.904619214707371 0.11493152153875212 1.1762267255680696 0.2547832977262449 -1.4479803820323478 0.9324343055975388 0.903734737053201 -0.3038328193079991 0.7561661977258007 -1.0718072028056673 1.987963264806513 0.5082148950087356 -0.44256742258471404 0.2968042180445433 0.6859915812307428 0.5620848487830604 -1.4001851174563993 2.223426992400087 1.718102084568921 1.0692877299942414 0.9627005959927772 0.08561093083461861 0.4991455770223168 0.5248329188131267 -0.7711410294995242 -2.004046241885755 -0.6392008602502105 1.246974285710797 -1.5390537367073218 1.6347567490782888 0.9499547596168568 1.3535083492472049 1.8912708935885325 1.6334339900175536 -0.6533238322852924 1.8553320535161497 1.325726230787082 -1.2582310892261928 0.30392590300916583 0.600222261842682 -2.876613665330885 -0.8275008919870924 0.10134528798040286 1.54423870392233 -1.3141939486841512 1.013790854941237 3.332272778192461 -0.13062441626729066 1.0513245612461797 -1.7805107229108565 1.2335644301367412 -0.6751840738142341 -0.8966694496355763 -1.5756104385257568 0.365368484160185 -0.44373059802193626 0.20435246983349029 -0.12200221023928502 -0.030048255839828817 -0.2097826297577462 0.5711051713465297 -0.8277049765614327 -1.9063196966185887 1.2942967618806365 -0.4350253727736468 1.3577246879784188 -1.06458113261311 -1.6385291866117178 -0.7995775428729079 -0.7062829665462793 -0.643145605395561 -0.48754241525058123 0.4534064494220641 -0.25924026707493647 1.7341739032934798 0.9472613840335911 -0.44019158971026034 -1.8279654214521281 -1.4444913770934342 -0.3805129093964207 -1.2155656358845133 -0.4250306666856521 1.9218767291293488 -1.347132701736794 0.25614178973845636 -0.2655750040336984 1.1706653930817863 1.4966497813463964 0.9444570028616234 0.9701648042542875 0.2578481234082459 2.559578124286476 -0.6035414104171429 -0.15080705262986452 0.12214103350587419 1.3969361778565674 -2.289347507024187 -0.38052456936461354 -1.8900712270320832 0.7563610661062725 -2.6709001507400547 1.0950679881571754 0.7511571715689622 -0.3056552554874846 1.515238053741901 1.837571204133474 -0.5482595923955964 0.08447532260473994 0.10389937937948897 -0.4146502965086558 -2.490169848749004 -0.9495551482995164 -0.04634687013368159 -0.9246441002018648 -0.4338036788913997 -0.027095975559330535 0.4093290912361017 -0.08613558211361165 2.4586810606097718 0.12107523206047766 0.8426837050885917 -0.03869483483866185 -0.42625355806758947 -0.8079392709733735 -0.06698299867048935 0.18141648896768006 -0.5218988341686372 -0.4624548963138885 1.549490626693686 -0.07233521441753399 -0.08743564969501626 1.0237961054054896 2.0777584212953166 0.44001840939595577 0.129115560166519 -0.02740641539422843 2.116863581696862 0.3544203427931101 -0.7466781732090512 -0.7063625487498376 -0.8617191196237832 -0.8903653057531074 0.39167885198399977 0.7276786666224035 0.778520465561247 -2.7433523546532377 -0.28806361009623865 1.0445718183802428 -1.7558737610177884 -1.0928886187781337 0.1468239677290766 -0.8233326754151099 -1.3164425087961273 -1.6904695011322328 -0.39141875402421095 -2.7561757207069717 0.5246934135908342 -0.835511479822684 0.5794592984400174 0.5129130715978336 -1.2416776395442 0.471199848019586 0.6921160873857087 0.19823030533049016 0.3871081456971488 0.5370721413317152 -0.6513938454619242 0.20740421894672584 -1.1143098367070086 -0.5922101125605798 -0.5947636205495997 3.446995116287033 1.0974515168762422 1.0513965048173455 0.3400796845690894 0.0743494231481364 -0.024717434518601797 -0.9702827804364811 -0.5290518247018012 0.5247589619626646 -1.1046192859678245 -1.5567206404727165 0.48214119349222057 -0.5638201764426743 -0.2668128948353056 0.4937839625137856 -0.45047370466850006 -0.26881077172453355 -0.36605531453269846 0.8850316952325981 -1.0060499977769843 0.9717220102641957 -0.4058532657122818 0.11992969975126319 0.2663428667559025 -1.0709357046363133 -1.2134126174716804 -0.4281221297729115 -0.6149796517225856 0.9192803060205006 0.21206911711631868 -1.183188173909696 -1.4262613753212219 -1.3570015402029505 -0.04140799420593434 -1.6388734896030699 -0.593235177682353 0.2534010108602029 0.3743439816815494 -0.25778170689863056 -0.8660849171195028 -0.5266608649210521 0.5330031820131342 -1.348177731081501 0.013355757594674396 1.8877255874762806 -0.20622563116635045 0.11314643410064563 0.2721361813816733 -1.4962215345559484 -0.6438861746532826 -0.3978583192726643 -1.097400985024028 0.9983784148554834 -0.0286330685678203 1.9700736556816296 1.7802856245671805 0.0851512272264556 0.7469229459849306 0.5587387240895311 -0.9260658966979536 1.5553862666535134 -0.4162644701685891 -0.9201186924791486 1.554507850516601 -1.4851939862979961 -0.784369240083362 2.425826825048975 0.33642751840831514 -0.6363892550994146 -0.1979360773892724 0.5101585002511653 -0.8333878266867198 -1.0611696895769847 0.9714496444655197 -0.1921921344720816 0.4645378101766105 0.3780760104909164 -0.2390297437629107 2.8810911806531565 -2.2976815581512335 0.03500673466942221 -1.7925319985139283 1.6027363955274112 -0.09121268173190492 -0.08016267562496826 1.1317037136017312 -1.990367496663729 -1.0064227233285343 -0.9779387617255718 -0.6660940668475975 2.4729152791019353 -0.7897877435523125 1.9111758177578264 -0.11216302975443686 -1.0568169848944984 0.8937153488478126 -0.9973821640272444 1.0488931890273647 0.16989888665788644 1.029432649526945 -1.7167289229913714 -0.702798582175048 -0.9300191975356913 0.3452855076781691 1.0355466373165505 1.0705597340715176 0.48418201581246395 -0.6906774727239421 -0.6309712805279917 -1.350252054271995 0.605662745038266 -0.8339675499010546 -0.09899379727335836 -0.45681099845318085 -1.4928544920814157 -1.3212764476207182 0.44660519478339444 -0.2785738951840014 0.12819344505850774 0.7467876970115056 -0.5272511656756137 0.04317048805204831 -1.6427981818543727 0.09013133054682657 -0.8285290780227378 0.6932632635592426 -0.40024398788867516 -0.4164507615446188 -0.7838935803609007 0.283926895335853 0.6129057324972313 0.6719900729437757 -1.5990964618695742 0.31693403267814924 0.024902174177613513 -0.9012755808400928 -0.7429252993103371 0.3669612289021366 -1.3763293945256005 -1.2796446358292828 -0.10500835312837915 0.3257514385960797 -0.7562328863427578 -1.384810513205462 -1.1603104079053057 1.5687404791311543 -0.1416625163113219 0.32766532067292164 0.8148864440804083 -0.7568792672504645 0.4094175594241545 -2.0998799963321075 0.5453365969357954 -2.8269481279508644 -0.7599789811832832 1.3933088204523716 0.9496537423678516 -2.8330013960288647 0.2824563107898751 0.2690472871588789 1.0122649039110199 0.6136687089535745 -0.0601454022648943 0.14735709548735962 -0.2984331160953429 0.1993971886119153 -0.49590714446536777 0.5269757367861154 2.7874104479494397 0.9165974013832335 0.9591939071679956 -0.5702990863732892 0.1749996783330888 -1.1113590680969607 0.2978243035050613 0.13523245381488175 -0.6245358844518806 0.5365422191295174 1.0104459177793608 -1.1439485110140655 -0.26988365363243394 -0.35928435324018815 0.08142580551113157 0.14504033788410017 0.38610553095803657 0.26952246978263605 -1.0064102137377744 -0.4042262129730323 0.13435221761056482 0.5894833736022476 1.0402447737756433 -1.8106015441120573 -0.5453553995533538 0.12933716246265792 0.2244981549840596 -1.183066084313936 -2.861927055977771 0.3871552548284362 0.5930435973377002 0.2955274344295485 -0.9355688068124005 0.008766624387597394 -0.6978035993693151 1.4309424448446375 1.0076355586333328 -0.1187900873015624 1.26701836020801 0.6951544578743318 -0.24821071295448602 2.2652180928041012 0.4462591252023724 0.2013384272058932 0.6293267608726786 0.48830636773202657 1.5812327943005808 0.21604196365972153 0.41780364226980693 0.36671711655710243 -0.15088093782037262 -0.6231286798392027 -0.36980536821246873 -0.8950000790219468 -0.657356735454761 -0.9868382529359617 0.610434864271664 -0.07271799168314512 2.1703749161555197 -1.561069853024776 -0.2769803821592527 0.07516787400169463 2.270529881760157 0.8662760764123904 -0.45889129248496896 0.9182911472082542 -0.025378187922761985 -0.7698848199211359 1.2727553739405508 2.1873954668187654 1.4114176509591667 1.8319679292453048 -1.5581040268049688 2.724777852386864 -0.8928796253253882 1.902812009539933 -0.35975126194951673 0.5921930633355376 0.9922143622705202 -1.2551339530304269 0.13293262170881967 -0.11939299548667745 -2.185963961292847 0.12853328950327578 1.2318504657531177 -0.9333810889758437 -0.552895763475248 1.4839011437060607 1.3351962806730349 -0.5178167234858276 1.3481400663516374 1.1964648593831522 -0.20643920726602494 -0.5060809546275371 -0.30262248260750313 -0.012707646043476377 -0.48120647571952746 -0.31566890142170456 -0.5495454742772401 0.239306981867506 -0.37518232849576727 3.266200889686091 0.04445987484953122 -1.0369957936343739 1.1001816981659995 0.7744783637215842 -0.24923134664905477 -0.4955117997841967 0.6387295335739813 -1.2093303289098445 0.7825534089744827 0.8186529178031448 0.865972221220444 -0.9145261277016419 -0.16865721260989314 -0.42528018308007215 -1.2544606440589257 -0.3128834662249916 -0.2903768304927332 -0.7193975052834669 1.8935197466688807 -0.5177426143053933 -0.11304366235752733 0.23365321517069018 1.169045189538031 1.7937512783297684 0.6287227256440739 -1.3130472466002263 0.780301419090876 -0.21295455956246193 0.5176264154118779 -0.6124886203876199 1.093457454212751 1.131863551720979 -0.07894636770335968 0.5250395354103616 0.2744618762556325 -1.0852951680870544 1.5318478861607965 -1.8262400060952009 0.3944797345909611 -1.0766173635933365 -0.07085987634037359 -2.180303750169574 0.4385594972424759 -0.5306083735256653 1.7768279457311034 0.9809519727848849 1.2246657519439725 0.0320533417202058 -0.18502644147261782 -1.216769971695493 0.2765036445521256 -0.14912757549633646 1.2484273768766934 0.3799886050938562 1.003956229023016 -0.8016536976596921 0.5574985227342909 -2.2134437581099813 1.7457258702396186 -1.5860439329187719 0.7409019325877941 -0.12414991945007237 -1.2123404378713247 1.44990682637386 -0.36527967104434755 1.0408925822427617 -1.4508332023561579 1.0113851104739897 -0.6017932457392299 -2.458046284150831 1.0052730403381909 -0.29809326878127507 -0.04527095983604914 0.7717415222836572 0.7766336660741736 0.10824046005096302 0.44721627161415484 0.017663325643657413 0.3072279218679989 -1.2891075616316487 0.36523856146807965 -0.9317947710021366 -1.2175691796827932 1.8311520972305775 1.3529427734098247 0.9754613185534902 -1.079972125578441 -0.9145425522947253 -0.23732133084597026 -1.0101180662683285 -2.110738496702877 0.6023966247819891 2.007141664966807 -1.1935557822931078 1.075347915792857 -1.7963607772419337 -0.5384622269951733 -1.4811640474027497 -1.1705970054725958 0.7836112836752415 -0.3665804970152246 0.14538766767341096 -0.4108470107215616 1.3285906330126298 0.43035849482627225 -0.5787001793711245 0.29168982618784267 -0.0750637333078218 -0.18941505962774796 0.5856456603170824 -1.9376867877291062 1.1323760735555843 1.6486946363681974 -0.05198339542580756 -1.2835354912707944 1.335042293681588 -0.47350015383882627 0.06426156410243243 -0.6222671302782031 -2.105042610623083 0.27890988839090625 -0.07329903987021666 -0.27266637085491313 0.8998412837010356 0.3663619561409644 -1.6771921617740158 -1.3362632779243386 0.4515397326959795 -0.1763646684197693 -1.1857471725793012 1.1154996128010861 2.816750006242451 -1.1456708395938935 0.5867442177396628 0.757283584474966 0.42581356177333063 0.2624302974680715 -0.15893755249880445 0.6639513736035179 0.31157410080334286 1.2305946641519574 -0.8473744826040053 0.7113517955590289 -0.3239998022144573 -0.7144062963561335 1.3496363092666392 0.7436299027721438 -0.11875416926388441 -1.5821802697781964 -1.166779998510721 1.0820298280444856 -0.6566892444250142 -1.5332454777101698 0.25563265304462685 0.13612110587026238 0.1519095576463777 1.5133853116261822 -0.44691843023902145 -0.07363527217327419 -0.23359632060100238 -1.4600334517485984 1.0413812197593093 0.8348888014616217 -1.005512005075096 -0.33810254959395 -0.006627629633222184 0.47838473950893456 -1.9206274516871649 1.0305517315374388 -0.9487147299202566 0.14779523812560952 -0.4076629104560804 -0.6641615189916373 0.9959182917639889 0.6535646951899833 -0.08264504819757658 -0.9936346708719516 0.8207093951843528 -0.25243624335996534 0.2994645142525613 0.9405627883370992 0.34056748886990224 0.10570568643448397 1.0623047597794122 1.5268543683198967 -0.08153545158720123 -0.17899366281862947 0.30213240920643347 0.12256385072084675 0.6966859289763468 0.11079464238976619 0.2541374333205011 1.748966642069033 1.3915575531292412 -0.42845361069241555 -3.073991168741434 0.27782351052830756 2.0064648057560395 -0.12588460182115246 -0.37477377634326575 1.6281935345276175 0.3528074207878292 0.9340697469255783 -0.6534028059038838 -0.6484385370415148 -1.1173098159854997 0.5939252033860587 0.24847215803883146 1.5062419114640047 -1.366625407952948 -0.4469056976113331 1.2543135581111924 1.0240794968316675 0.6663443854609931 0.20654128230080118 -0.8769768520666774 -0.22066037518984413 0.2673514183534852 -0.1353274467374628 -0.8700613650069424 -1.2154946254396668 0.2044955367192685 0.9590569965687087 0.6778690067990368 -0.2651222246727128 0.5739643197996599 -0.9082077881233052 -2.2495048919053144 -0.018765320315460746 -1.5612994558867115 -0.27329180254678487 0.2773813583277883 0.469111983034243 -0.02741854896284129 -1.4278388740918861 -1.075398832069654 2.5607941143655406 0.7859134289768877 -0.790576027724972 0.22144248968681973 2.9738603296236765 -1.2738648994540434 -2.4610415883682495 -0.5859956296571853 -0.04322555099400753 0.3390905202828676 0.20404636491775013 0.9391813618818591 -1.3956694797053528 0.7129046692446331 0.5758386379370893 -0.07351217001439042 1.2607856149976622 -0.6442236976651182 -0.314839860045311 -0.5280542014273696 -1.8411882622963 1.4885239301392177 0.2945874495638465 0.806813039087565 0.16913471918808595 0.5200358471133756 -2.525430461368557 -0.10944569588347901 -0.49466899566085215 1.2789297826525636 0.7545434014271474 0.8015266455946026 0.39084786204382127 -1.1452301777121006 0.14836386657551653 -0.6959398694639235 -0.20669471254735958 0.5036621243432101 -1.8931112814184858 -1.9307964351800422 -1.1816407793716728 1.8941334087585862 0.5154570953519134 -0.13827129475827435 -0.6584484866024002 0.631720632208533 -0.3842752151309235 0.4002886603125095 0.8211555371106642 -0.2873935053704776 -1.120957833796259 0.8439321324096304 1.2153222521607419 0.27356423515194433 0.6406976076490589 3.7918341245743616 -0.15797170253252543 -1.0681946739692005 2.2273159541798098 0.712537589141843 -0.2134789599814649 -1.1640766772597828 -1.4876950994432538 0.1299040112562703 -1.2978017083375804 0.6436363699153579 1.108663027429823 -1.046970697885892 0.49796424144362045 -2.2822390321901804 0.40641147213448225 -0.032530969367011914 -0.40350630467455395 -0.7802907232834217 -0.2235473059291852 0.6367474527657069 1.2255815032060287 -0.6179590100393434 -0.9919725061874726 -1.1155391933084053 1.0924416073794314 -1.210674189252626 0.07390769204005211 0.9151260171005712 0.4651488699273272 -0.5021907760910256 -0.8878793479738752 1.7741586322397933 -0.8356766615155747 -0.5370854438053851 0.008342177333015652 -0.21461641928746988 -0.178871449642859 0.7198765180951125 -0.423095248798397 1.1908188618227145 0.24989590160199956 0.01078338751579857 0.5540640418104773 -0.5408051044005495 -0.2076823154355728 0.6810544998473409 -0.4044270733076232 -0.5660268573284268 -0.9764800924843703 -1.7571034853053031 0.6784071677127306 0.5664277448354175 -0.3255485823236485 -0.3046592898923653 2.07326086139651 -1.198076449605252 -0.3258884300348501 2.1757173942732937 -0.4314927896715434 0.9054748495554331 -0.19625957757635004 0.1136382654724617 0.9514343950236277 0.27190235711784533 -0.950283687503646 -0.02858671665227896 -0.3404413565402264 0.1516287368162713 0.36807383692100043 -1.6213592451000216 -0.9738695464095649 1.8654278914195168 0.1968342059235808 0.7417964143155098 1.3778594742233896 -0.29850637373555194 -0.032482213297148725 -0.05048443686555064 -0.3263172336583751 -0.5650435986196433 -0.06435210862732266 -0.9097317795811427 0.5811931276882047 0.6087809851416447 0.1776923317346919 -0.5477662454624055 0.013539535493477736 0.29349667912600147 -0.3035640912052815 -0.9808912396636055 0.8820967299434169 0.030020322964053825 0.49665322909627324 -1.188311412455504 -0.22476192469707834 0.950037229795795 0.672815318877284 -1.4870685079237658 0.2669131851574751 0.0902382557205048 0.37250536693820246 0.11909524003972644 0.23402302736489042 -2.3375917849039767 -1.432085039521058 1.1101332433904454 -1.1816859839479212 -1.7938605537892456 1.1946150281668355 -1.8649963780183587 -0.2390407741652949 0.010549998706622868 -0.17884777768160945 1.3297824357424655 -0.15056070009110759 0.6876216630527897 -1.1294697084774754 0.3747906245048606 0.26695325699874173 -1.3458982968469444 -0.3919578337929812 -1.9840008340588349 -0.7598469465140183 1.4395519248459898 0.04576239133820578 -0.8926505679040017 0.5173709526283777 -2.1053029267328713 -0.22379906265133337 -0.6458340421342407 -0.11634251363583593 -1.471420867628328 -0.4370013819243101 -2.269537003343197 0.2372454313289989 0.6219794781161107 0.4715990347629891 1.1634105159175205 -1.7221081337767856 0.5474356202402383 0.19716703176166916 -0.6108658451134851 -2.2882149283410937 1.5747228101157325 0.8273486198163179 0.29055946527652904 -0.21572165691592182 -0.6404917666224593 -0.47431294289800113 0.357841639819485 -1.4437479252801937 0.9692200622908501 -1.5175520856651894 0.022326164751741658 -0.8840229964898224 -1.7679136143626353 0.1615623587652592 -0.25089056844632185 -0.3657552875226406 -1.1383826936437902 -1.1895667416383169 -0.17246405317542865 -0.6156858434616602 1.8499655286547874 1.0629356639983079 1.0419189947060046 -1.3582213462534787 -1.877235152605313 1.3239554729304202 2.2049352153459356 1.5270077551200048 0.4647437395234255 -1.1804504491247996 0.8470026000563591 0.648449292423333 -0.27438054556974867 -1.2821309402441594 0.3952801482922943 -0.3466103868526431 -0.45747207351189983 0.5639392509168744 -0.8496852196468918 0.7869441128674438 -0.1902339013921937 0.619721899099936 0.25004329950885545 0.5941061309847608 -1.4762846972920536 0.48156253504909324 -1.1929070292601056 -1.079429652203648 0.12658096505450026 1.1079498641217378 0.16784285066554427 -0.6928549510413553 -1.3315364240516903 -0.7170080468250728 -0.3136133482654517 -0.010924730516051601 -0.9397974197044096 0.5728958597206069 -0.8983662751994022 -0.20870045960748942 -0.02546489848794661 1.3543509415880826 0.3605133072489817 0.04311779509504143 0.7620769738104428 1.656682956557869 -0.5167672850675099 -0.42954880383559463 -0.18708959138638817 0.6157780628132221 0.6743043390701097 -0.04975975331294443 1.3989310840215636 -0.8053122541496589 -1.4670025216721352 0.6108525897018248 -0.22692502959640554 -0.23610405042400542 -0.37859222877055054 -0.041976507182647824 0.07059745211809575 2.187534870136803 -0.903191054032613 1.3363039528547382 0.346632435214482 0.1869915157545135 -0.5303809831649507 0.8625308074963545 -0.1739351675058539 -1.3550862077625538 0.6992582515644767 0.46024359481695065 1.5707025331317006 -0.02580945857645792 -0.5445137316979483 -1.1588402052699525 -1.4535731278474275 0.8121931602257694 -1.0363325023085261 0.5091013307237284 0.6196306851673734 1.0903325284203744 2.1142943821915843 -1.1298793620825105 0.024242702451848064 -0.4205701357521242 0.7436960081390528 0.5738612528639152 2.0657895918081626 0.983547421302789 1.555631626513998 1.3732844792770378 -1.8326690415133933 1.0660268609348444 -0.13021272729975839 1.2509011306712199 0.22222974210347501 0.05380399001102683 -1.0484259102698248 -0.49206881846326656 -0.9291318077444695 -0.5977111646641097 0.7697575381352374 0.8689359364103487 -2.4927495094309533 0.6597950823421858 -1.0540664840479768 0.6720259078552734 -0.09202396899236821 -1.7471648559765685 0.3319755207195075 -0.13541939592149313 0.701844671189415 -0.07460040220189385 0.3862278258480106 2.5886143986673615 1.2576259857891312 1.1427427363407703 0.6377244544370423 1.4456511696762147 0.3744620526520952 -0.4070175579472479 0.7575284518359773 0.2519972794602866 -1.084581706725779 0.3241848337769894 -0.16416104267121523 0.8301517705964457 2.1176801004161714 -0.6013705733383896 0.2984434952935869 0.9041158503483688 -0.6999581203641047 -0.5602314334781621 1.597627923768653 0.19107130277092382 -0.2452069038244424 -0.8592618326281837 0.07598265163434095 0.35271779012139753 0.24895050359667148 0.5760141358400589 0.6731819603031823 0.2530892166829116 0.06876492084783774 -0.2717067353896419 1.83011644278046 -0.7271852209791151 1.2874819361138998 1.6130953422851744 -0.5521127122976759 0.22613606353127755 2.829941753970529 1.2338968445843694 -1.337782106641669 0.7025930549763563 -0.0946845104401632 -0.4894028958469569 1.7347849762888834 1.2485416760026478 0.32485282034027674 0.034830521201279274 -0.6467650262957815 -0.9226621893224346 0.9452203732034496 -1.4896375237179382 0.49910221069881644 0.9853552000056147 -0.8888744445068336 1.6977956068799904 1.2672183283236207 2.1768792618736583 0.21953396890827007 0.039446195276401294 0.3996811088024763 -0.05305486655287029 -0.4630219827698741 -0.048073619840853 -1.4798774368503473 -0.5564466361101389 -1.8519658290874597 1.1307770616591772 1.4205917325428155 0.325600698057644 0.6320406077621608 -0.06771303685248498 -1.6422396372248191 -0.1816451737423211 2.6820680037433835 -0.6229587618527593 -1.3078863078799814 0.704358519317742 -0.0072748735610680924 1.0676107387926743 -0.5663178363097325 -0.7426076337365992 0.14770421122805588 1.1112836681515805 -0.03314228410240301 2.8344867392479767 0.9696345709991947 0.4918984435511992 0.2909561203415477 0.3434871169329948 1.1684835476643622 0.704418498296042 1.0259903572812465 0.8574019501301694 1.1756714076143098 0.6432520160101699 1.0842901450081568 1.8030631528537155 -0.6741239139780854 1.6022497854612288 -1.0400955408656012 -0.9170654187988299 0.11157302706721964 -0.1867026461194758 1.6249713496185578 -0.23559483805729436 0.01813548853166607 0.9163894745463599 2.245649119800878 -0.14589815149253657 -1.8685118293721705 -0.23100351170701602 -1.6602205878520708 0.0969814545263526 1.214915447496065 0.7518226466273771 -0.4244233179705146 0.29019525746921937 -0.650662165024729 -0.28772506734312053 1.4373468159090874 0.4987213089804586 -1.7353497285241175 1.1177518837227862 1.4901194978208696 0.18059061728568912 1.1783828138725747 -0.1950906787604051 1.0289796634616888 0.5151950319634186 -1.0638698291910116 0.7014044172467606 -1.1556155600398037 -1.5374462252207346 1.15037459297938 1.1184757708951185 1.1324843356642667 -1.6751239147466246 0.3718100699076921 0.6968943554441465 0.5710061437131209 1.755054183233683 1.8883291559432107 -0.04719647100731699 -0.36657422067805173 -0.5695588736009674 -0.09917511376412531 0.28083807834860175 0.4519002563433769 -1.5671384167339204 0.733111744569181 1.0718871884120396 0.4346544730709032 -0.4086594136492937 0.2732544181061956 1.5445602417058646 0.8346109042054954 0.4006224884291362 -1.0685663714393938 -0.8026599029000056 -0.22983823514120333 -0.3467685784984622 -0.540844726745026 0.9432741635025741 -0.3874939500919651 0.5084036647519523 0.771265577447696 1.0663418421982318 -0.7232874355990678 0.11608833799414754 -0.4139965808443798 -2.878336308095897 -0.4761539118865178 0.6270646357485697 2.381621802432543 1.338741289701149 0.36198718927242884 0.27871136511732647 -0.4615516769288124 0.3611738014360333 -0.40706445395885066 0.08247810313825911 -0.6758734400344959 -1.265610790307219 0.26374328526157603 -0.037588549026070894 -0.08167948277330357 1.2899543402593792 1.9052661033190752 0.26815388997014494 -1.0113019209627336 -0.161118350816484 0.4774514028302756 -2.333417724416469 0.5861332400733607 1.1782395187965056 0.7871318679854494 1.7219610453287666 1.7830359437742878 0.3022638231355733 -0.7032578245691845 -0.8976121945356637 -0.7089992275674036 0.1867517069483973 -1.0536306075321618 0.5102832892205861 -0.005259018609676858 0.583674485023201 -0.5834319003367886 -1.5976321164545861 -1.1445317928390437 -0.6455451094616326 0.6445511991488208 -0.20647560372609577 1.572414063516552 -0.642592856677908 0.2650824635811334 1.2218870308236587 1.9861141923062988 0.24627451934997507 1.9986330564115427 -0.548061331488854 0.35319512735173614 -0.8435140145833876 -1.5161739087714141 1.8795736610942626 -1.224884662668395 -0.5683978558800815 -0.3326527376021449 0.731468242726125 0.488765936553098 -0.5205280949029203 -0.20796101042091894 0.7093384688109073 0.8168583041666874 -0.560015246961762 -1.363686697403496 -1.5714102564763601 -0.5278786680639391 -0.14766192255662702 0.5873207938241465 -0.3232986350097182 -0.3374541763615883 0.20541460437334685 0.19469954922098018 0.5445693777317141 0.14151976228363455 -0.46760705771295547 1.012567613869846 0.4958507127612315 0.45993035154282247 -0.20244829464868988 0.3195819715124037 0.1000980748129845 1.768962068372358 -0.902640009896991 -1.2696065479085472 0.7205158690738411 -0.6059562595685032 -0.32685102425956974 0.9495850779468161 0.5961883534759744 0.030570985130644893 0.5136559563190763 0.9204200482308886 -1.110475120217471 2.0718249197284138 -0.3801301070079235 -1.3074291576161217 1.5843026540851464 -0.4284564208027294 -0.1237624706260447 -0.27354437405514387 -0.3923770763721288 0.03804864540685892 1.1359647655799905 0.2865261455604115 -0.9408778871348241 -0.08958469134846712 1.120552064381325 0.7844683329250967 -0.1828199801389141 0.9363812846090319 1.3689258061585163 -0.0005667783397469994 0.16824944744003154 0.9587307023006565 -0.8863713516858448 -1.1397470371672598 0.18304038094531605 0.6414170693753669 0.8128015983100109 0.09568701727706652 -0.5830739217307728 0.7213303725671855 0.40837368863413587 -0.758557989314576 0.8123832914745 -0.4222993159931349 -3.1807288040403576 1.4059675664656912 -1.2178532974369087 -0.273635341184398 -0.0252812023952781 -1.5192250982218054 -0.39110249759244925 0.5393711751625573 0.1314697839334126 1.2487337268414471 -0.7222476881737728 0.5998981995333807 -0.8462614065080183 0.8330331517234127 1.8345545541954922 0.5858255868233453 0.9884228255653327 1.3063671737927534 1.2917337811833112 -0.10312312168983868 -0.16813884404938628 1.123565512320836 -0.059998035059822215 -0.5772527117374846 -0.3404147144394459 -0.6764410997131745 -0.7426098434655384 0.6435281357585992 0.6012862372469173 0.03907426203910795 -0.8330249325575065 -0.027273388531542802 1.421865851743515 -0.27862725231581675 2.0205990872806416 -0.035397893872974116 0.2604493767392649 0.9602048159548086 1.4075453396075313 -0.4412686437014189 0.7635063901474409 -0.8952069582469872 -0.37471482511674536 -0.9077557225692903 0.6729930083439696 0.6797543950615967 1.3623376519584236 0.31437579818993966 1.483026645623872 -0.9219889562872904 -0.6784045604915353 -0.9482208841365369 -1.2770546118754857 0.38610590800318323 0.2671362930892493 -0.6828871026524747 -0.3735267915059272 -0.865646031602479 0.19001324158584296 -1.0327411516104017 0.48350096169174017 -1.920750381305959 1.3506420253609281 0.06104612036128716 0.16941553407477888 -1.1438638896352593 1.5578235290364053 -0.5777513164898815 0.23398630906509188 -1.494089149658767 1.6636098719887107 0.2930206236812479 0.31623574676374805 -0.390640604919296 1.4343772137728554 0.27634017541230765 -0.016358730783698854 1.2662085457998884 -0.21522292380303357 0.16889029738654654 0.06945326473140921 0.10610383587127988 0.7208433302459213 0.005400291340972804 0.4020699441980699 -1.4645082075739908 1.4850850341615436 -0.6836984520428289 1.469634951293615 -1.1095126237391 -0.697561201244337 1.5500552769867637 0.42987988991285037 1.6386960295550868 -0.1726995685535826 -0.22763882007083402 -0.026604148217301282 -0.24616250361397757 -1.717973856397969 -2.2381368384993343 0.5237026578226495 0.6679284459840983 -1.0254332155850165 -1.2136529884113343 0.6025979749805516 0.7844857922685148 2.6346211073109504 0.5246502904141844 1.3660698369923416 -1.0064960354948385 -0.2658834356286489 0.49746200180873595 -0.9151219132053474 -0.6736253633212865 -1.2486884326697878 -0.8736937309214892 0.11357814270780174 0.173155906074047 0.8651521984213492 -1.0738535195159045 2.436307701141342 -0.6451884780974401 1.393603851737237 -0.8759642374069423 0.28216996579066395 0.11781838687351195 -0.860980616514522 1.0298743167681155 -0.5610318628773568 0.815485749810213 -0.8543222388934468 -0.45137024352132227 0.19160445883679048 -0.08751669462789508 0.13710403928170073 0.68158419151947 -2.568330431579549 -1.9800115188667222 -0.6423113276285937 -0.05414062854381007 0.14964533840372704 0.2607459969364424 1.8286486521185794 -1.4446016662816186 -0.9972289774688816 0.5031552349457127 0.43803227604490774 -0.5918647181968552 -1.3927086721946373 -0.38154175302638793 0.30677461771993325 -0.9231107588212114 1.372783593313023 0.08909655997327239 0.39096998726891274 -0.08728608817638095 -0.6608009985311504 -0.4320512420919933 0.40217828498308056 0.466114734775555 1.10353286343219 -0.9694892977637839 -1.1941739587510967 -0.3185874197367829 -0.8847533685811702 -0.3585440928281256 -0.11981883038851453 0.9605540098089074 -1.3940246892161239 1.4595251235553848 -0.7321484059470744 0.009396973038531523 -0.11978391569884754 -0.3598368631585557 -0.5282480873416648 -2.0781530665173245 0.18115836466913174 0.8194352341440674 -0.4083609008341469 0.47949293440138335 0.14834579394621752 0.5293797307914988 -0.5537867017397561 0.45457885125795555 0.3088190001529571 -0.07696316947320143 -1.328183874853802 -0.31081421419124333 0.14549218507095046 -0.2755496504959101 -0.3006030011905748 0.6151807199951804 0.7529049489386213 -1.4784568039806447 -0.8746846959872251 -0.28491888060121356 0.2619159471250825 -0.5121878162547093 1.49620049117256 0.8348224159045211 -0.6818134947549198 -1.7714922058000062 -0.6997167346557724 0.22196912401415428 -1.9293732629188438 -1.4608621121247887 -0.5254183866217339 -0.9857653041242359 -0.6463491632713749 -1.8146149315413844 0.03141354974289571 0.07063254635878016 0.16793532209985268 -0.7215185148492238 -0.3921191921993171 1.0984673235502802 0.5425984489740181 -0.10574334124139732 0.12203109762585161 -0.35698625573275 1.6893986448391256 -0.14717166106067558 -0.3619497180019551 -1.0987353093011563 0.23328723850303992 0.4531283561078159 -0.08702788488914182 -0.06936610994535958 0.9259533244816812 -0.3319312156412979 0.3971572677842905 -1.772308971749282 -0.5814265170771895 -1.5148825371715997 -1.514553717060912 -0.9087905858039235 0.6281488901514568 -0.4790218717333555 1.205936642706175 0.11736216385830475 -1.4986698866506185 0.859174031819025 0.07894540839859945 -1.014680395045464 -0.15901415090439588 0.5752391515651663 0.3754061552500868 -1.1464408960066013 -0.8290017973060416 1.1314784495330203 -0.04172890730504688 -0.7648310806354873 0.8269016931239761 -0.7124482533546673 -0.7918687469649757 0.7675024836204334 -1.079542749943191 0.08326232165392064 -1.3811861990380983 1.956382540273449 0.4090796322794679 -1.0073186458584842 -1.275103697375317 0.9450876753687714 -2.0185094434492172 -0.7991917847386103 1.1910292057378138 -1.1633630669622452 -1.1072532078964585 0.7013776440918089 0.12886651519348108 0.2508828518918528 -0.24643296346932286 -1.1645909818774083 0.8827621435135022 -1.749345757841905 1.567040540382693 0.5362130206811279 0.8525147003072411 -2.1587327374060608 -0.7698113140861862 1.361865121810783 -0.5213634885839011 -1.906303426782816 0.24242176590495373 0.524358975361567 -0.6743003363972806 -0.1582534191145145 0.05736674566768434 0.3790575109043051 0.12559547634598597 -1.109048745140777 0.013611736387491337 0.5685681258946171 -1.4504266310022285 -1.4244907846486685 -0.14514602465722232 0.5002500020288164 0.5259761720642734 -0.31123558936156226 -1.6553558417496463 -0.2598992565729091 0.7453252864761414 1.6730523400955444 0.13873837167887285 1.1869228322402545 0.09552805842338438 0.03066409218620554 1.274870826309751 -0.33030488832608124 -1.648836191549507 0.7499246927609252 0.038410580670436616 0.3903039399365209 0.575656509154171 0.0930826632312559 1.221107356635095 1.101374876359009 -1.0140558767307692 -1.462521958438685 -0.5768113516759479 0.9424672947828064 -0.9694261722544835 -0.05400568965501517 -0.27371754648004204 -0.6391518350525155 -1.7508019837900628 0.20453849174152322 0.25534658547637545 0.0919538712960737 0.8704757507149191 1.4363360498896318 1.3636125333826945 -0.28608395137027604 0.5906537651641104 -1.4953140708836614 2.19428475454622 -0.9998081305832641 -2.1613065444149475 0.004416097554761434 -0.06518406990890378 0.539551621879809 0.3222666327436999 -2.21430622072158 2.057960692593112 -0.9913263807937736 0.5188807584138097 -2.433055820047776 0.4462113089732981 2.319187509981117 -0.1662029101147346 0.2109764684920914 1.0250647313744008 1.4261868434182383 1.12285724344431 1.0000605228639443 -0.531101021317918 1.1420913082597821 -0.1705926486833997 0.5372697768200294 -1.0938151217626275 -0.9797396358946217 -1.2200998734717532 -0.9597820264637364 -0.5357952696355528 -1.4992391704612378 1.4721379688801426 -0.7158675201794568 -0.7302595739486739 0.2012707500904598 0.11400320227688351 -0.1422988912165143 0.2950947286993021 -0.45021970865816696 -0.4878219933205786 0.6382504350023954 -0.15573230120417905 1.5706795528744752 0.6363028690886888 0.6645408516290199 1.7749430076721606 0.4996530713788454 0.39931461028874116 0.8215118637803934 1.6087361916573262 0.6778178949700994 1.2462536644492863 1.1687370317462003 -0.9734469820682577 -1.2441577837482405 -0.2694572101228953 0.004047313653733112 0.41727049647876807 -1.5078530548858926 -0.6946230236551358 -1.4548070698331859 -0.1908321642592934 -1.0628768553910561 0.23547804680529416 -0.944902404505108 -0.25852727039561235 -0.8089637795549877 0.32744419527098023 -0.1530392904624365 0.8019134705945568 -0.3863810332858574 -1.151639310680845 -1.3495138887476568 0.3646380575195378 0.7061123704202749 -0.11865425443041126 -1.5864322934966992 -0.24802231077373108 1.1488926668319994 -0.2973580679172958 2.0623870222489877 -0.9433584069009848 1.6598378931727358 -0.21087577385638404 -1.6419108127928805 0.7223252135279372 0.7349795997670641 -0.24458244599053525 0.19360291519601758 -0.8870030139879528 0.42746951507856124 0.2740803711460113 -1.039710857744429 -0.7661598761325122 -2.823759376684161 0.583816361287348 0.340280804715301 -0.3386553829892949 0.4400176135447189 -1.1689162827480093 0.3999667790010983 0.8065044710301792 1.3948384974836159 -0.5511664519596751 -0.27096116832571254 -0.2883280820489405 1.2743276236081058 1.557898046470025 1.7445907278676456 0.8354778366862285 -0.18654813178362772 1.5579054473613747 -0.4297743986647291 2.336334463470091 1.7165476013638736 0.8263018478587101 2.460882842761952 -0.3746673017823099 -0.5842135418293409 -0.9745307818814931 -1.7056365790085117 -0.7358086106929509 0.681034133843065 -0.8275561420770868 -0.8144683506190898 -0.28909630600467684 -0.5542510029880533 -0.4171143167929047 0.38243287602999637 1.3056637670112974 -0.3437483180979361 0.8377902523690716 -1.0408369264896846 -0.6791634309451725 -0.8878053244008312 0.5525584424671318 -2.217627948787564 -0.20117406532554089 0.6008728981559919 -0.3777955219277333 -0.09401489847232758 0.27133526889198445 -0.2504427862060632 -2.3057452623330272 0.1959028085844183 -0.36086672022902155 0.5453507201882597 0.3941297671918244 -0.5553257993940688 -0.7034801103558797 0.12255390626044957 0.14193351937762533 0.17694754224169898 -0.08648523632465224 -0.29435784451528696 0.4610923109249792 -0.2145955202150187 -0.8325447747459656 0.865576312476114 0.2851562217872119 0.202582136114659 0.4314583799533773 0.5650111319696897 -1.2453590063903675 -0.06581084100225357 -1.391048031939503 -0.7103392400899983 -0.904504074428677 -2.638721073567964 1.6812881813201688 0.8476132239003394 -1.3128999873500367 0.15498988927195667 0.7596719650057954 -0.4961352623366523 0.8817895419667515 0.607056835028125 -2.144906925941766 -0.44570963187475693 -0.6984749593457179 0.2661100566313665 -2.073670829275855 -0.713164083596979 -1.200346969334139 0.1647044773648773 0.21023558919552054 -1.2140603426040457 0.5405871365997059 -0.41684103659868116 -0.4238642628706208 0.672164861925913 1.1433909742570358 -0.6170491157526606 0.03498309898658274 -1.2167185679941228 0.6587976788778303 1.3786354460772539 0.47042611925527644 -0.06195288773153655 -1.0077113509467026 -1.697753709093141 0.3501712989771372 2.3308305583357285 0.32661089476010113 -0.5558221571662831 -1.1059276480023537 1.591347936525808 1.1734865383124247 -1.8689600368479948 -1.0863959829414083 0.9950774271211925 0.6733191233355142 -0.9678864613251814 1.6866375812309922 1.8786884606097403 -3.118611141531362 -0.7312764095815897 0.6917751475257561 0.21317075936518293 0.8243748327314997 0.3804233041729715 -0.4683261587761654 0.8582298697009839 -0.7170600002273146 -0.39343591530155747 0.6345366986249221 -0.19865491150201908 -0.26900239205319415 -1.0282056489678124 -2.4231539432171134 1.2273852518107475 0.7562768124095564 -0.32400709986794807 1.2363019082765743 0.31561413338020083 -0.8728739108845451 0.60961161666724 -0.2626438276741979 -0.8977482795547668 -1.4440381967996943 1.2004092513927123 -1.0414830108010753 0.45388174179329943 0.5706088042615314 -0.7828965799588505 -2.0244128555834147 0.496559565730072 0.6382253733471746 -0.11028603793294996 1.0446343872352037 -1.073840345187349 1.488573284814611 0.5195373822084565 0.8947863953494429 -1.280643873326985 1.3206571300760068 -0.09029348861708963 -1.0559191979434668 -0.45310935151320747 -0.6461801064810021 0.07849184055880878 -2.4727844024106296 0.7601988967449749 -0.1442116203025584 -0.5533635977608291 1.1047415816519526 0.19048511858558762 -0.6159753292230304 1.1479602455593796 1.4167053150503555 -0.6620301448207762 0.9249696238683836 -0.9410381159787237 0.34549521845257664 -0.4692190988082681 -1.3575385577743775 1.9264938247026282 -1.0312681322085446 0.7271078184510806 0.1245978195259472 -0.46024593246963363 -2.4208217882657572 -0.10773547890559594 0.7693571492658279 -1.0342415692261573 0.02025504167482834 -0.4577179250407747 -0.08464036070490281 0.4777161542044395 -1.6199449024533852 1.086389322229469 -1.2196201630152952 -0.6313731418919394 1.6401065471060137 -0.05251390133256161 0.06035670368590396 0.17080600440155402 -0.14320160359248016 0.29900001879200666 0.5178932297002881 -0.6769900500403144 -0.7150559476380199 1.383331431948416 -0.9720507281642475 0.6209598957896741 0.744726812185633 1.5086139640700447 -0.7520354503417691 2.2683016339033997 -1.1395253591513264 1.470771295270655 0.5371859416611152 -0.783375259238666 -0.45310014730819537 -0.20501256449647803 0.5556062493435493 -1.0693893707762483 1.236490674750767 0.26082771860582743 -0.9965557849828902 0.4171053802998712 1.0303773909450726 0.21098104409139976 0.6540799134797233 -1.0628361252513179 1.4855911150595817 0.81506028943823 0.9045857620851596 0.5957472492218469 -0.05203250446436891 1.058449427442543 1.180324648059319 -0.2615537036339655 -2.1455682763356587 -1.6082478954286554 -1.3762544686575622 -1.2025237344776323 -0.5404789346073546 -1.605396714305204 0.27818669193300133 1.7016836598214107 -0.4146317692604843 0.4216223174635355 0.11291559226258825 1.6446835396379655 -1.0750184931854236 1.1776602430841314 0.956341772156781 -2.164912170426181 -0.6074938537279178 0.10807112299709619 1.1128560103854181 0.5787104703812371 -2.517787490109775 -0.7206296269079723 -0.7812148007072767 -0.10404720833374201 0.48084752140659637 0.8969800220542231 -0.2550186173714604 -0.645657898641155 1.219727771219472 -0.014291249148369824 0.17847980920873305 -0.18575451992659137 -1.0596553234016917 1.330738666761001 0.9690878616350042 0.0176361733453591 0.0812601462376701 -2.023739225188533 -0.20145456302169892 0.21359025946806484 -2.0008149798657127 0.8009912580754495 0.4384405611932915 0.46698219725475326 0.5002551371670693 -2.0657612413515944 0.5647558820959875 0.4292204175256209 -0.3555030841969801 0.6838032402473003 -1.6842028209212536 0.5247766722925549 -0.5972284917357884 -1.1335712839967196 -1.6425542944342346 1.4415358133256042 0.514307265050814 -1.7618392871248556 0.26752377949251654 -0.33683126665984275 -1.6651155745016697 0.508536215609252 -0.25727130301262235 -0.2090928335610442 -0.28971604325002803 -0.6835532329289566 -0.6091961209844867 1.6314435266698772 -0.6629463496298024 0.732549618050298 1.022438295871515 -0.521939514050651 0.4238182910983345 -1.3381630636839854 1.0527989497688095 0.03953852222143677 -0.774315764889505 0.13292079082960845 0.29926789654043595 -1.39131324421426 -0.7627300056403042 0.29668647541115567 0.4209529422440554 -0.6272711296727869 1.21530636944104 -1.1431283347937007 -0.023667951571834583 -0.433734019385065 0.8844667948458074 -1.2100358081074982 -0.6454675347877714 0.6512811174993993 -1.2791461986561972 0.9799165050301033 -1.4947616652970759 0.771015320073112 -0.04835099577556534 -0.29232087097862014 0.7024278443980944 0.5315766990749146 -1.4240616193615618 -2.302633043194583 -0.18137186311774034 1.528724103271808 1.1805665172203923 0.6434582982846073 -0.265551379186075 -0.5702119967217242 -0.020293631949573655 0.9446124333453754 0.10271469106307933 1.2226542064304695 -1.1890750460312027 0.42396164124975094 -0.2494393221803064 0.27662532134676593 -0.04507491197447357 0.8909823134876701 -0.08738093323519518 0.7414625098424702 -0.45348454328338506 -0.24203433623083456 -0.9115543761774341 -0.45854717682028623 1.0513437507849028 -0.2416312507974808 0.5421058618166598 0.11096628050374689 -0.6195910488141542 0.15075860387566412 -1.8754066809573406 -0.8815357759909599 2.5208915043416154 0.5993972260617367 0.4613922451386279 -0.7717051458446827 0.1348019730306237 3.1727333271956892 -0.6036190226121235 -1.2430181279173051 1.130469552786032 -0.8593507902314225 -0.7410278299948688 1.3055486524781188 -0.37589657944792215 1.355249983859334 0.35844853994517795 -0.040291530296240934 0.7833692203981762 1.065543337575209 -0.5436903443398415 -1.0360637524449265 -0.7890316449634412 1.334052129854775 -0.5413941180991702 1.936828848010109 -0.5250730641918029 1.2432459122104633 -0.8258846656724473 0.05074333059432885 1.4272883780121253 0.7318279967654865 -0.055457468325607724 0.7659474326694191 -0.1489043583994381 0.39220846680862337 -0.2565321216783345 0.8712658295317062 -0.9682582629906172 -1.6818986494045474 0.14462166532602705 1.1858629932378308 1.129380295787227 0.7952930323122867 -0.9429450592784685 1.1537522841906518 0.4714318898391239 1.1381478296265066 0.1251252535169448 0.4586720028292219 -0.4149780491424256 -1.1021999751943945 0.13271658635929298 2.497679009680414 0.8586559053703574 -0.8061509988086406 -1.721052508304956 1.1667186305308193 0.3176666120640223 0.7446711372310483 1.5854202946928921 0.7801706660687522 0.04424414279694314 -1.4669813159964182 -0.4817943266782205 -1.0887139576521707 -2.786255542857832 0.733733147880452 -0.9101466982867512 0.013178358904298892 2.073667347634037 0.9027218263265032 0.47607100515021294 0.7053978114998508 -0.14733133504341572 -0.7411582094511973 -0.16998260962154493 -0.7689584680289041 0.05976773674675648 -1.438505174940228 -0.6378488746375487 1.7023586177302463 -0.11129083463278572 0.786430407273319 2.0711353157527315 -0.007262088767200334 0.5673420424515813 -0.6671627673793975 1.1815919000346933 -0.23559353053540685 -0.16654428685972245 -1.1968382841956164 -0.6344454415288988 0.2726018228423726 -1.0806120562740327 0.7106203451167286 -0.48035537570731396 2.6954248741653815 -0.4069634427057081 0.8133878913919494 1.8345683212288888 1.0279033185520436 1.6038778202363735 0.33035263068224996 0.2491380034172394 0.3670496778335295 0.32246808365410545 -0.11842900757652443 1.2519024315754397 0.015219417280796992 -1.2713481974352228 1.3949287504236363 0.6902550821001866 -2.0068975365288635 0.4858153299595424 0.283235875800921 -0.25231289441360794 -2.387462574504308 0.9085543704488934 -0.292153885005877 -0.13284143375085464 -0.8027586059165309 0.8953085932435898 0.5441548596661182 -0.1043700512516833 1.8944291608168815 -0.2891476463344786 0.0020377328620299505 -1.091615917760936 0.027273957981956837 0.4058231095870119 -0.47930736420195125 -0.14458338451042857 0.9410988697952051 -0.4015805152984035 0.22599260972997812 -1.1817565248351012 -0.6589068280247407 0.0264699523818424 -0.31285289494673 -2.073768884813722 0.12942065645906398 1.0209826409527971 -0.4767723780776304 -1.4013168362380894 1.2878919237688298 1.4050223205458379 -0.37726536093538354 -1.3682673597304944 0.34561789000239945 -0.5485274639732441 0.31210031699906965 -1.1161073468749612 -0.3338484918508252 -1.4741004901183017 0.6360311923825793 -0.15069845808054763 -0.5538193675492504 -0.5149634107321664 -0.08023268679025423 -1.2758796157566212 1.187530879997063 -0.25202512306489594 -0.7723069909519017 -3.695163437494644 -0.7607389788455119 0.6057118711825725 0.9616302708238614 -0.2982881948969899 1.8643368651143992 0.7206732788628947 -1.054711622326999 -0.10942941222340058 -2.683653800234208 -1.3839003403254775 0.2265086742138771 -2.195620728989903 -0.30443270110918935 -0.6927668580440272 -0.7988482030669048 0.8818426074890471 0.7165633030707803 -2.0881654987691065 -0.3065085536615391 0.2276290498686668 -1.1237302371102216 -0.36798230063650317 -0.05543621048551087 0.7089285126257043 -0.3732067619931625 -0.8635009184443574 -0.6864488796697729 0.17757270778100254 -2.896937949288362 -0.08106045621727517 0.35988577319031284 -0.8600178838067516 -0.9784495132870354 0.27167371588326894 1.4435579516540185 0.22275674212041666 -1.0065801331695634 0.5922305739565865 1.3007229139903491 0.4160171642760721 -1.0501593954694501 -0.17949540538959155 0.5034963158493626 -2.031724268760821 0.6780177475185103 -0.8102766185677129 -0.6695483008798911 -1.4763847778504406 0.292375464920235 1.158834941049265 0.5124451788347789 0.9155545149522413 -0.5024594958108138 -0.9968774404396638 2.3370878651922697 0.7928602726853072 -0.5715089356031197 -0.0030405981210853113 -1.3807761246504637 -1.764966548681595 0.0730428552722274 -0.39394848863329396 0.8080672145227544 1.246500262986538 -0.19512443157211298 0.26601918712732775 0.03724658187305762 -0.1886154147058795 -1.3179226869708305 0.6901054157184897 -0.2510216448588106 0.906540619813372 -1.039549774583237 -0.0418719143382084 -1.0625919415894691 -0.12843399683561593 -0.1558650673666692 1.1253463374733639 0.9765307902513293 0.4297957224926949 1.273103171740315 -0.7058669520863352 2.3019697501217924 0.849876313371062 -2.3839516199576742 0.6214450747049287 2.8931435612626677 -0.602595626787113 0.49812008811864994 -0.5415874522904962 -0.791197065689021 -1.8993284964348882 -1.4995160255109385 0.8167073201795 0.681300754506287 0.07553653690778249 -0.9990445962559283 -0.9273095417421586 0.23572902636217793 -1.461342687289808 -1.065708510415691 -0.7197838628975405 1.1814633297857868 1.3582715209711653 1.1554570943149884 0.5258649965097627 -0.1506545175139474 -0.02459679653463339 0.003930897882553669 0.5789944261354286 -1.5427311163160156 -0.5146120421782059 -0.3342088490282989 0.11505867541678101 -1.157368525093753 -1.0991382134262817 0.3017831909986894 0.18417730595972567 -1.0075473894699694 0.7971556652200338 0.7759248743494865 -0.6965919884155611 -0.21860734483335478 -0.5374552517408794 0.9461577449049511 1.1855122002958605 -2.218055122053532 0.8223903031374004 -1.1047902292681597 0.18680288534409495 1.3694995327691353 -0.3299777123241739 2.3094536330568247 0.1222274936513707 0.437908211616387 -0.5203458901839356 0.7671032622891606 -0.35682943225690933 -0.44264254989938057 -0.9751017744719997 -0.17799283565803478 0.162088838391185 -1.1098626003197711 -0.5156276027428658 0.5134752852053144 0.4961357417121393 -0.6872897712917104 -1.0131220893222526 0.2074803996548862 0.393075452026111 -1.3837150167053769 -0.896785131168705 0.7969544493459831 0.5642319327855078 0.3172398094947434 0.5487803435637945 -0.543632443547271 1.6886102739172293 1.5085497562473622 -1.4347075159562053 1.8004296509590836 0.7728005337367814 1.0600297846154585 -0.12502195072851088 2.1580023908188846 0.20571418329174856 -0.6480117811902827 0.1465086099129743 0.09031931209768145 2.5534321381930387 -0.5664165082680123 -0.8091356805439259 1.47170515522338 0.4133364258033943 1.0012764505023835 -0.8585874666114223 -0.9468981704840183 -1.3014797735996144 -0.12647613882518555 0.5735295646956888 -0.43572266753774175 1.0804964644980506 -1.797547096171879 1.5986770404929727 0.9348885752470367 -0.3307551497810962 -0.23167700154285886 0.39759811054094574 -0.5857731393364245 1.0821997081778414 -1.0898361459170847 -1.693951296564022 0.9911037107659904 -0.9199174359371696 -0.5777119251020111 -0.024201773629920265 -1.1424120589339066 -0.634763812645792 0.6514410234978557 0.32259257164733574 -0.43078731976916185 -1.7120667018366953 -0.7669166867425026 0.3430885023992544 -1.0454324769543228 -0.09100729194061712 -0.6727197555079657 0.0596902003905724 -1.04265250840946 -1.173407098245179 0.5626546594689675 -0.1426818057479271 1.1647884685681547 -0.14647156343767276 0.6295760203365517 0.2301654652635726 0.9552575797921409 0.06783315913612696 0.07438670504635765 0.10751012458774173 0.04072109129045107 -0.2411017071119758 -1.397452326862084 0.7482345184300304 -0.5390707775624728 0.6987860518609638 -0.6613971331719389 -0.8202982126618465 -0.43976311613289193 -1.6055460921795317 -0.07368172054102741 1.0476590682812599 1.4341289912655575 -1.3259818900253 -1.3067847645758477 -0.4536305145682596 -0.6484991581385448 -0.9581927622961273 0.3817375639963814 0.9322184563570712 -0.12645150246661616 1.0346130164256164 -0.13002211180902917 1.3942341381410912 0.34777448294881985 -0.12600717293402344 -0.9859297799110522 0.7297957019123738 -0.14975098076555196 -0.6205561658078734 0.27766304570587763 0.693271243433083 0.48821455012847165 -1.769460289851429 0.25519908425799825 -0.650303831763827 0.3422732402626971 -0.4775193941477147 -0.2419622709800344 1.6191119169790391 0.3223337849952693 -0.8909250573692801 -1.1431282625782688 0.26183663393742856 -0.5339317172942424 -1.0894474256183413 0.2660789211726658 0.38054261579009435 1.0415390861686495 -0.08150254506147446 -2.0920654946720187 1.8225006452129358 -1.136749537276773 1.0838122735296427 0.0036056547012938774 0.11967582539063432 0.17809390083367568 -1.176213933124833 0.2653740462097274 0.27544982267268553 1.3378281721465755 1.4186557515593108 -0.11769995730913319 -0.27700793495871484 -0.6809142867915763 -0.4359333079157859 1.0545895474021747 -0.7095785879983374 1.3120610713230243 0.5443190293687654 -1.083790017016542 -0.22194857408853988 -1.459001481871622 -1.0070741812053243 0.8053248630462465 0.7378454454255187 0.25282957017750257 -0.8416728739554294 1.5841228092818227 0.8066092924890513 -0.49131914079974903 -0.6141447622927767 -0.23802627381712582 -0.02039852728885052 0.10768067672897774 0.1356422075189482 -0.5716154039058012 0.2770768063545467 -0.7259577775308965 0.8773970102724963 -0.7403297112779647 0.21456523961814206 -1.70162411148598 -1.8098090876415294 -0.1523673122579252 -0.3140361089716057 1.6591225039053765 -0.7572161049780953 1.2186281621991217 1.6787560480243522 1.555278219939478 -0.7976943446671256 0.44068758896823007 -0.7363281676041703 1.3851384725315756 -0.863124587935812 -0.3983887928498449 -0.48641544565998496 -0.2981908949211924 -0.9158584255730661 0.3538766020652851 0.18839464763935285 2.285608979028944 0.05527258272055719 -1.6885733073292026 0.35000187584274306 -1.5291614251372614 0.3648817005727901 -0.4274484885669206 0.9519163300350294 -0.6594964369555398 1.6774291765252969 -0.8196679294758927 1.7344605313929018 0.7045648614295125 0.11369663885230318 1.228475537531122 2.2533728460067652 0.26764753262679386 0.19254496980052344 -0.2967626910936112 1.8984285782360852 -1.1943320713848946 -1.3891696631912194 1.5195366145501792 -0.4269820014998121 -0.15326566279138304 -1.3779813347216583 -1.4611412161731634 -1.0251618537102392 0.4712658173318825 1.049968607974334 -0.38547712253231087 1.2158624374904359 -0.0413637486682474 -0.17141175731943548 -1.999626822669539 -1.1084830446295424 1.0617177972485103 1.135014332669888 -0.7810291623088913 -1.2277509072199249 1.1688452647157486 0.06563228364834653 -2.4304333563187974 0.4942364182633905 -0.5254196297260971 -2.2313842825280443 -0.07153230077596566 -1.0514592982728208 1.667079356195467 -1.0100488816899904 -0.5512354835617381 -0.7458523298013584 -0.40767395167328796 -0.5045909225811063 -0.2398880692019734 -0.20491992880341076 -0.22898200056343848 -0.7982366826506787 -0.5166013833489713 -2.0019017755740602 -1.6733942228747172 0.7729001825713375 -0.8750487575264322 -0.3252790483820492 -0.5176060886797572 -0.6175037553052886 -3.936105654337544 2.1154274121556043 0.06814734224877175 -1.908664140527579 1.1049060565373017 -0.24165010771609918 -1.097893817304499 -1.8426149032311352 -1.0857308263799403 0.9216299680494365 -0.6297293971433959 0.5285637678445897 -0.4979045456556885 0.3788384792886047 0.6505269675666381 0.49851557696075166 -0.8242159037800165 2.617453203376673 0.4456760312368594 -1.1069246617987305 2.6739028975595778 -0.3194356855582256 0.596738199454251 -0.3668712121286084 0.3137015159065497 1.835605810065561 -0.36494536989343224 0.27017106418200854 0.035971627227027334 -1.2753843948046353 -0.8544458181175524 -0.7314654844360443 1.728788193895245 0.4421861100627938 -0.742158141473831 -0.8491709133593762 -2.256669741148352 0.49074167803699603 1.4817341536676665 0.4595178187043153 2.570423194110924 0.38588690688114674 -1.1358716933896484 1.1480447842313526 -0.35421544182764486 0.6363790324603692 -0.329037337011126 -0.2519727970387217 -1.356334443312426 -1.4532138121015272 -2.5566765146454613 -1.8428580094920097 0.9547481307946264 0.9733458364711123 -0.7653289801737126 -0.6230769607156764 1.3928813387377448 1.667869611152464 1.2783185408605064 0.12281178785339575 1.3152228017344505 -0.5706887425149987 0.37474020853073065 0.47175121779579254 -0.5049717968156758 0.47601613358898726 0.991642729373602 -0.2491429036007324 0.8579015994602996 -0.012105011503964815 -0.16345088887631967 0.4898477502157782 -2.4015516269460684 -0.8594674946087434 -0.6199051112091329 -1.5511028107869607 1.004337161688194 -0.6251337204311521 -1.6120636268321233 0.7540868955179515 0.7919112781605663 1.0717661200481625 1.3098823378034747 2.927330880541504 0.18802322134681054 1.051334363671559 -0.04438604263499501 0.9368415584514243 -0.6019811199334215 -0.06025078003891729 0.3888936672793103 -1.207085679718942 -0.4012647178270189 0.3850925164233079 0.13045902021632974 0.1935740960392351 -1.1923429566982047 0.2832267871463537 -1.1200102748752334 -0.5292158348268846 -0.612559927319221 1.6974827477133196 0.7724836208576864 -0.5717700537660207 -0.4773797862853375 0.7554225660461396 0.5811023086312914 0.7617514886843559 1.073969531902652 -0.7665212045982716 0.010622648752328575 0.2920487646083146 -0.009062696410946524 0.9311477673055432 1.2539601784356242 0.5616447908308239 -0.03154060522986307 1.4941989504017754 0.2317355287711439 -1.9780954292894894 -0.10354263579737703 -0.4438323535972707 -1.3409464821699695 0.9344422875742517 0.16425231790884012 2.1943500657292336 -0.3824242847280742 -0.6296055103312755 -0.8815698375195293 0.1971723603081233 0.10773045503193794 0.0879288002015923 -0.7461639189530707 1.1729576133990733 1.4863225006404934 -0.6940250097142087 -0.8832624763925871 2.101235358388188 -0.8703177080785619 -0.7282119739435248 1.0363760299649787 0.2754143692958665 -0.7770839518862669 1.2462504072787168 -0.7943727000737945 1.2286929753120133 0.4356704284173967 -0.015568618368555092 -0.7377776647018507 -1.1152673231408878 1.5839326177242454 -1.750117433767934 1.6277240847976324 -2.0328024866145644 -0.08837840405505516 0.48902461234612293 0.397195775309491 -1.8300352464670153 0.5954196130622565 -0.29117156197923827 -1.2599704232265578 -0.16373127561328896 2.103631735840953 0.35784074885871 1.3656069841899543 -1.0386606883609113 -0.04488767604341882 0.7697875236182408 0.41209167201390307 -0.23650909182157231 0.6425459169016298 1.931048588571987 -0.8770525708172604 -0.7132713425173642 1.1156282228418937 -0.4392031618081045 -1.0194848985599765 -0.05321354667389293 0.25142799294802415 -1.165215639242222 0.8622757194811385 -0.022959058535661863 -0.8031489376397145 -0.25546399106667 -0.3727519970191012 1.1366247032117978 0.10056849665413799 -0.22735746948868954 -1.1263148288902298 0.9718590969769014 0.5138808029802441 0.22376965018778214 -0.5507053728456234 1.5131253662009219 -0.7156667641274778 -0.7142152262729768 0.41950131262210955 -0.26236330795552903 -0.8530074368410138 -0.43953320992541056 2.1095718440163056 0.9594810734324285 -0.3473576707695564 -0.9838903771727396 -0.5609068767608851 1.322365269753592 0.17647255651054464 -0.17958718861896972 0.5818457780527643 -0.007001611363907328 1.492814142797456 -0.11673413374542024 -0.6024176895300873 -1.696637499773516 1.6585875257343976 1.6606218896833784 -0.0713776978343858 0.058188784189614304 -0.6159517061472173 -1.285144684643141 -1.4184481351694591 -0.7750288185663995 0.4595706331791807 0.2854988487502131 -0.9021198479101906 -0.4701987100709069 -0.3531387819461054 -0.6986390470070317 0.035109797615769815 3.547842178503141 1.2042720615977565 0.3773762049056064 1.7332193620185166 2.3320568025005257 -1.002993504339254 -2.520823372009542 -0.16731179945628274 0.6817115124463363 0.8218044566662764 -0.03386870931706976 -1.6620872224764718 0.7052815723200954 1.3814502291709934 -0.9605621438095612 -0.586340168136529 -0.34509179850919436 0.29070541397678035 1.771355627528538 -0.027994770148128196 1.2029024777896213 0.8051338880886499 -2.2496342235484788 2.2301717881564227 1.3139863894893542 -1.0160067157107244 1.1310686793209213 2.733429897326382 -1.684092638832131 -0.011396169915084775 -1.3259325826351085 -0.20353339373537313 -0.29073864714773534 -0.4036205580421044 -1.6047738098250701 -1.34000473917465 1.901300081093821 0.02173276474211543 1.0848051047888614 -0.5300325244771587 -0.35389750775169565 1.7378413966473856 -2.985562740945243 0.4051435811145777 1.3614105893963844 -1.5887398829239276 0.2776489453132865 0.6098120082913061 -0.5211942793878042 -1.0849500162755652 0.8841100860410875 -0.8452165489588677 -1.321671852544699 0.6848658630175648 -0.6462204476339929 -2.6136040952646904 -1.9491449379494452 -0.26013758147637284 0.701385463862415 2.01576174457441 -1.0317907509222812 -0.4760366077257711 0.9326396160975194 -0.5251060378620599 -0.7110057686972232 -0.5722104593422067 1.6060723809076138 0.02392253622005943 1.7282490059763322 1.466076282626221 -0.10109884952674304 -0.03184477989391488 -0.6064970872910977 0.6381976738359844 -1.3498871379454536 1.6788413115351075 -0.6419537601865777 -1.377887961887327 -0.26467620271582953 1.5834892740259578 0.8900646322886546 -0.6681200981250166 1.0194486073135118 -0.4198173838799545 0.15134667638648006 -0.678716402311797 0.08121044352562108 -0.0042823308324736395 0.34367970947585047 0.7368922486156521 -0.9914802391783459 0.3501626505403752 1.4446789485810312 1.177263076962998 -0.37350362698604467 2.1646595042647823 -0.5135651861605314 0.6712689651915816 -0.6249609388832761 0.3760161084209458 -0.7322344785501403 -0.6777986420334938 -0.6547020685090089 -0.8357731823623947 1.0522418898545949 -1.4898336735738964 0.11550176490431187 -0.0585916441838312 -0.8512905664816868 0.1431152873269468 1.290062662058733 1.691346495268652 -0.6948537358974815 -1.0603242563799475 2.4485839553254514 -2.0893362941214915 -0.42538965823505637 -0.7215924641283753 -1.0622568346190309 -0.053310006088038854 0.03477911320403351 -1.3229945618501235 0.6706565189449684 -0.04429148485457285 0.428899824984117 -0.4632821290153445 -0.72511172216032 -0.11894402855882795 -0.8478937906102404 0.08763227472110444 0.46326012196686156 -0.7671728206469361 0.39347653225528334 1.1716186890101714 -0.5678050993466065 -0.6030567365895215 1.288104016141098 -0.0020874463748986817 -0.3287745905142157 -0.4850736732175459 -0.028197016451783328 -0.551560016670054 0.7357947618758708 -1.1864200912069267 -0.2626275211739703 0.45313138723605123 1.6204632265573522 -0.5673101946266744 0.2969807353554726 -1.2516404226370619 0.9990053043838557 -1.6318326945177368 -0.5529193627113466 -0.8103750741576968 -0.5964174511387587 0.7915570080654986 1.7768197082905335 -0.38326982972469603 -0.8633218165470133 1.2892744949009756 -0.366434319914963 -0.7550153358742702 -0.20471760260421065 0.028923490330851263 -1.6667197054905323 0.3405640463551307 0.5646590892178798 -1.28314808903406 -0.417773081365352 0.9162657679765885 -0.427960553976516 -1.3775097364744633 0.4576644246123333 0.43220054854577433 0.07775080680553703 0.7855012280416024 -0.1855277363987952 -1.5998868270018314 0.8753782005288642 0.7117549095714094 0.7510462867223962 0.13627236798484868 -0.4395994012867495 -1.7288718126021836 -0.11630811634299115 1.097406935897981 0.39675755650022004 0.5837983277426668 1.0112041985138502 -0.048317028976122854 1.0777049226910107 0.3907077033615898 0.47155570680718184 0.406219618583306 1.6120754758903841 1.8422079980965125 -1.0687447062682855 0.4766645906332037 -2.027675696592284 -0.9168578789345807 -0.5800056407799131 0.0034973754177724517 -1.0582043645333814 -1.358335951687456 0.09935240133686582 -0.7770881741608823 -1.0943271903725953 0.30065257449406974 -0.17949631450187462 -0.014585132654789721 0.5713783479646692 0.19810171620844302 0.2208743065694481 0.8304634801109012 1.2299027705652072 -1.0419604630956898 1.9528206477576373 -0.1652345901315189 0.07771822498338167 -0.5448928121515683 -2.878904878587251 -2.2899620200081903 0.3841384320844403 -0.22900898799977518 0.49491840138417337 2.045773575418183 0.3098770300992475 0.014873238726452376 -0.13619293319679973 0.8382266213876093 0.4872036796939948 0.15625440203483718 0.20888545496105168 2.052491196897496 -0.47138819993273423 -1.478753683532843 0.9632835901829482 -1.174285774619628 -2.5658490655190906 1.463603666413118 0.39757361940866115 0.35691236696245937 0.5549314472115087 -0.1833140391247181 1.184116704291288 0.363148648432682 -0.3724763468997741 -2.244264060244386 0.6160818503852752 -0.8724969030671814 0.27479739085564203 -1.8461680820382014 1.7905766490117694 -1.8288016888093508 -0.42648829666424853 1.0553111354817368 -1.6063480962086296 0.2787973411261778 -0.9587099768401541 1.5867810963901874 1.989526948210817 0.7381393096698805 -0.8500185773016992 -1.2038918204327484 -0.6383036288840434 0.887704918861792 -0.3596549916629128 -0.17880881502410956 -0.12326518479278571 -0.9220864895467098 1.4653384320212257 0.17290435756768163 1.0922193635347095 -0.10166068189330042 0.062120816911614606 -0.6318913480171904 0.7694938158965583 -0.4637422046035604 -1.1535003820479606 0.9363413816350175 -2.8802767991263463 -1.9011218713895897 1.640921244982014 -1.7654207165722589 -1.2320840908704613 1.3948381591590007 -0.30692566594616444 0.044508492956560404 -0.033920055251245244 -0.952857771672967 0.9667652038076291 2.5568659411148986 0.03303039679522708 -0.5110767585527903 0.06285056079135976 0.13523780608395994 1.262352706349352 0.2865078246970526 2.0036984498094874 0.5900735439466905 0.3777762162930443 -1.4643822859658435 0.16362155204961368 0.17930595998129017 0.9902567045617916 0.6016252821294568 0.8831044093061967 -1.0512973851053289 -1.3827004363405975 -1.0654078319058697 0.5310982409829568 0.5170503192686038 0.31140390663701734 -0.46123766997518595 -0.7442020026377887 0.666243267094783 -0.3217356832900951 -0.5610159246671849 1.3955458505042893 1.7425904368258927 -1.8811135889178277 -0.7198074256759472 -1.1215525050097725 0.024850160703832263 1.258733917124954 1.0570462603748096 0.4453564024177982 -0.8867151680408842 -0.4908539229721933 0.12248193888372677 1.4728233948938756 2.369945001715424 0.4074432960637588 -0.1386470272751723 0.3690899162097329 -1.4306156425124723 0.6545250962920955 -1.070451602687212 -1.4901231836113693 -1.9798760089570058 0.623237930233019 0.534133793474321 -0.418854068078677 0.09850924198857838 -0.5756984154370839 -1.6594016650302663 1.0361830316172649 -0.006294687171874227 0.22578711289070838 -0.4685546820537823 0.8840078393508078 -0.2153874536980973 0.9828858990502465 -0.510323990206719 2.109080069957113 1.3720747331744898 -0.07020840753989635 -0.5347525226263212 1.5501176050174705 0.26386478464584484 -1.1939606789677208 -0.37621038367300325 0.02212879200709085 -0.9338907628505305 0.026560218546557213 1.5268275852465127 1.0120891696904586 0.4775811031612889 -0.49629263686600705 1.8185925239184122 1.149324371689589 0.9803976048180744 0.8288103910771346 0.2816014053964131 -0.89380638816209 -1.8015655439828404 0.8846682959810805 -1.0190862580523141 0.9646264054586473 0.6768854170433549 -2.0812185779960624 0.31125051486369476 0.15231253127217684 -0.20181688306765827 -1.8205615888985187 0.059250857006431304 1.5432889674348353 1.0792331657030558 -1.718710110767325 -0.5758142411768494 1.007224788601756 1.0212432750120215 -0.11192833966596565 -0.7276472480285772 -0.6721074203744698 0.7695349795924268 -0.21477978021134173 -0.37878565563737243 -0.24278886658485938 0.32744226079779865 -0.551224275635997 0.8299234949776763 0.9758618428747212 -1.1513919780346584 -1.1233517472312573 0.11262901966198825 -0.19084954707414187 -0.5669460626286237 1.7192128257921515 -0.4129128111221766 -0.7554907068388702 -1.135603566641837 0.1541935026303763 0.5912069186702913 -0.8645558331195778 1.9974556855163281 -1.9674473736181732 0.609601703690575 -0.6260362028478869 1.3909261305239864 -0.2930012844291198 -0.30624635136579603 1.6966123510626863 -0.13773936554921665 0.8418832274529133 0.714091789499022 -0.3715411770360822 -1.6976717946561504 -1.519963562786283 -0.352864283408712 -0.7303061773996188 0.8178667839524559 -1.3770705637410214 0.47334446464065955 -0.549640220512532 1.2957589251600394 -0.1732049848106251 -1.0714288071940663 -0.3566647017025502 -0.20612342919046495 -0.07437951612114406 1.1844185980396493 1.4728284009199075 0.09893600498261117 1.4931582986081628 -0.527480067976587 -0.9446654258048744 0.08498127900032827 0.9060189174419089 0.9062275533533538 -0.4485342224212685 0.3151614268599903 -1.0645523258360328 -1.5806128484431847 -0.5111736606140506 0.586134852759811 0.26017056927912835 1.39064883626675 1.8626815151448306 -2.057947442735465 -0.42908091451816044 2.2893643762866094 0.9657051794454131 -0.34872450409044575 -2.334232368802159 1.1593921893812098 0.06248728016523191 0.10406583945750592 0.5212967234371512 -1.3566694252221303 1.34600608538543 0.2678717858954754 0.12067865059597926 1.5471558921112594 -0.42968056678610184 0.40167113823751066 -0.8257877351201902 -0.041785585423345054 0.51403865845127 -0.366453210783252 -0.24845577774705413 0.19683556073028444 0.07592486676039349 0.4740070190717143 0.7884257027178351 -0.040193099996272005 -1.3805328511968606 -0.6806730480917079 -0.2025918505046008 0.08204877165241077 -0.48009665189950634 -0.555964168554483 -0.2640303304272481 -0.7882339083002003 -0.019438009170560544 -1.025080404822461 -0.29228130694560467 0.8452206394254699 0.5484254348179908 0.7155631744985107 -0.29194788463707344 -0.10087846523104341 -0.2304392378666285 -0.3167023297684796 -0.10910214975818261 0.18814582410280614 1.5854708099634205 0.9202591113053239 1.4874976711433041 -0.16863101564612976 0.2572636201832305 -0.15187656183822382 0.06744660243637877 0.1347483044194028 0.31875472620930617 -0.7433160221638331 0.18829783360167776 0.08104800215087127 1.6097435971383027 -1.0565513124667711 -1.7926482844662988 -0.268875920997997 1.0136544974966049 0.412750719515102 -1.237254403350558 -0.40705346567086376 1.2192854489992055 0.07153609836934519 -0.6561959304359308 -0.9426036665982771 -0.3181776185514282 -0.24466771643273805 -0.2782485405693262 1.348432957529374 0.47981034865594835 -0.14842561373668992 0.32216175791471013 -0.8396545896471883 0.37706792466199807 -0.8745728077180802 -0.15861861438886907 0.12804268905140134 -0.11236294259770647 -0.07620191763043202 -0.9207975930165867 -1.4053230479240744 -0.19380743074399356 1.3058407125408422 0.004974695438433066 0.20871991866667627 -0.5432542923693104 0.31182300178361755 1.845440152016837 -1.7508406369861493 -0.8197924746918632 -0.27226521740483284 1.0122160731623326 -0.2610778006033148 -1.4016979563605825 -0.7643107218715345 0.25240197609845416 0.11308373826788606 -0.2159882449410723 -1.6631712170310564 1.295059773111664 -0.3496288669358677 -0.9066688218308739 1.4477052429586508 -0.6631193752592568 -0.5332926116814691 -1.4595935865841068 -3.195612498028157 -0.9205243782120788 -1.2370710915887282 -0.5364687583310366 0.02158229918925592 0.583791577975725 -0.7603158085636175 0.9717542056045649 -0.42342780469850344 -0.1917198095045271 -0.7071853934781878 0.26584263698277183 -0.24175467424119618 1.6887683577010757 -1.5919427552875371 0.01082444390481332 -0.3083293285614747 1.203499758850213 -0.7924399248824016 -0.5183142758361647 -0.2708847952979997 -0.1795025160678866 -1.8076925070851664 -0.33520993938372695 -0.7263047447123138 1.0436325364070456 1.2176256516047683 0.4365567226513377 0.7428615085770166 1.7070874368485838 0.5126145387427279 -0.9781651018516919 1.6169570354247556 -0.9014558843857762 -0.872874925010508 0.4620198475622945 -0.5659778878026639 0.6526834967348917 -0.2722115642462487 -0.9351367642207495 0.004924237696142577 -0.3201296907956153 0.651463165687979 -1.5320676353864555 0.029097392312405754 1.1861489290694982 0.5513349547877899 0.9444926880089768 0.04511258276474427 -1.2000097868466175 -0.5545983137184416 0.623417863994735 1.3347512344133792 1.1544164352884347 0.4526898607673255 -0.4157337594509615 0.8908602196621489 0.866006815753258 -0.19627672731959186 1.5975580169259112 0.6440028129298024 0.055605316747001844 0.8694307785240841 -0.07446236654341952 -0.2609861830186191 -1.679844166962446 0.5624665737081287 -0.6230549189854757 -0.3432318490395244 1.2048172189616313 -0.422794472718147 -0.9487479899823791 1.500103140791388 -0.2720892377875912 2.2368747894564414 -0.3932381601993556 0.4418576789847855 1.7185258288466538 -0.4574042052273865 -0.2951332936116482 0.324987455504776 -1.76164235753503 -1.1766151875353794 -0.27013377121784254 1.4248727871036657 -0.8863367585759244 -0.6023640434237834 0.02568641342468002 0.3333558732731236 -0.04362077969987999 0.4824265286798566 -0.17420191040576563 1.0017243466252033 -1.8404356625651739 0.018007912492827686 -0.5661281305862881 0.4756201687592745 0.9452593253706727 -0.4333467139902293 -0.39166340731540866 -1.1811755248694433 1.774023275982751 0.6427504194413061 -0.6570806619526882 -1.07050204612031 -0.8660918877277345 1.133941166339855 -1.704526710480362 1.015363865508401 -0.046220165702810165 0.32675177740301464 0.4183961296257125 -0.7518155272671396 -0.21171972571827796 -1.7280547925207903 -0.186506883780347 0.05195798663203842 1.2086276277245467 -0.4890517624148116 2.0586211062751767 -0.6005144610187052 0.8888864555229342 0.36364438343714556 -1.7792697899214633 -0.5929605664446922 -0.6594436561645429 1.0020906492471997 0.5630027879505545 -0.2365534021296344 -1.6459534298416734 0.3091843745505287 0.9572374288343616 -0.9236328985513887 0.5400108537417013 -0.968470041398111 0.6275815846454572 2.9941551872256427 -0.7783632548338398 0.46813585708706285 0.9456647446916243 -0.5232053072570286 0.5312558496030086 1.4543372970880604 -0.5580585573136845 -1.257413355002949 0.8243339158317303 -2.099932006593634 -0.089050359396567 -0.6296347214831592 1.0123666277146348 0.6701762286151726 -1.3368444638663712 -1.0057741602467403 1.2129477179436101 -0.22571813866027549 0.8830408458733101 0.6133978169879697 -1.0741785946656401 0.2548601316416709 0.5242450595763233 -1.3077943123780058 -0.15616342543339595 -1.8328744402469783 0.9364107054940172 -1.5920458774730644 0.03057443920294007 -0.777276605393959 1.3534632607852222 0.499941089747799 0.47763533555466275 1.7599644394486755 -1.9044513795617652 0.930575959245382 0.34393637757244194 0.5289681830005752 0.7834656543320025 0.8069476609089445 0.06290653192857068 -0.29211249112741655 0.20453434986416355 -0.29721865523853636 -0.3541784038964472 1.0123608926541872 -1.7278441325505163 -0.6491491255702451 -1.6034923859048913 -0.4419861946763692 -1.1199816411801355 -0.26432633064948863 0.019157286401900123 -0.7517084240829913 0.29954939967599986 0.5753260618166638 0.424021710425947 -0.4046624465518957 -1.3322993000322232 -2.477210682063973 0.31612278923663806 -0.8971970296118716 -1.1806852817248192 0.5162936918710247 -0.20667477148272534 -1.5264492439064543 -0.564604174654033 -0.15298933293517775 1.704201466877794 1.6318314116521322 0.7680426781318267 -0.7050856119024607 1.426622003765616 2.1820956781663314 -0.3045748054211432 -1.3267670143714665 0.46493576592430513 -2.6247572266711905 -1.4054417810255058 -1.184216106174413 -1.5446226086333152 -0.5034097142998243 1.604540397133908 0.5388108486689263 2.41229123614837 0.05202977912940971 1.793924357027392 0.7443137136349937 -0.14502512465084094 -1.0701753616119853 -0.5762726552180338 -0.12682635186985458 -0.9640281467619631 1.2760465026789287 -1.3471274806089848 -0.1279919529056499 0.9915486276699204 0.7854229667382455 1.8455191699301376 1.037331640201508 -0.26585989012168243 -0.9778309269195852 0.8842087806332907 -0.008091315528032104 1.067051817591578 0.08075757234611391 1.2851284617211698 0.36660919780694284 -0.5408181187750374 -1.6006115022522514 -0.3419283437322548 -0.8987362152295476 -0.5097425278877479 0.3913377187576003 -0.721208859423724 0.13414771356538469 1.2351281035356292 0.8231167039686969 -2.36960653825384 -0.2334929441283294 0.8018876605578932 0.07821701762930941 0.9060183675371576 -1.256734990050183 -1.1603124245174126 -0.18378190114189566 1.361838947820491 -0.6186340693218867 -0.5970561364175111 -0.5378082689093608 -0.5235077799747148 -0.2859289057269984 -0.3850883816915433 1.397673992707264 -1.090437615949143 -0.018779765066982878 -0.004233030049159141 -1.172596009678967 -0.11698233470068475 -0.4552320069448958 0.40187635626528245 0.6498781804077607 0.2505680096922848 -1.261692146760858 0.2229025113496142 0.20538071389478268 0.29992853926625546 0.395978463380655 0.660894225960453 0.6771658181178901 0.31783384420801847 0.5189837788711102 3.0929152946933534 -0.9036879696896581 -1.2161924320761928 -0.04219007753883381 -0.07759629248512179 1.2047978317744228 0.4669092595775516 1.0287516369839202 -0.4398468028459097 -2.3619331308340135 -0.29018305468718814 -0.17424163820510274 1.4446948859128514 -0.4126026759870336 0.7399699631846095 1.9339330261047283 -0.8052267742794069 -0.3544340199266843 -0.6518704952481122 -1.210518247819925 0.6887635256676378 -0.32733577740096265 0.11254885022645458 -1.6518551378459052 0.8831293019261269 1.368723563830269 0.9962147887444919 0.11776138156203018 -0.5963636775407043 0.8361259926563795 0.5535498157567105 1.8257463654603345 -0.17260538762757602 1.3676984602753737 0.21928167332256537 -1.211635155086485 0.9473256182924524 -2.1411475865517153 -0.333853612934416 -2.8375222599891656 0.5058428716868801 -0.043250719402178665 1.3081200842101308 1.2547142872469157 1.1194501481178596 0.2463534478818044 0.44903365019883906 2.002398593130341 1.1649724251718419 1.8369765580664776 0.2842537107953732 -0.3397775860710725 0.46455087733783607 1.9360060709408733 0.6101404020594482 0.29212242168131597 -0.37661732095344624 2.3782481036197636 1.8643314191840206 1.3755600519955498 -1.219710186101226 1.2953799047634547 -0.8213919411173435 1.1659693360640608 0.12265076098704564 -0.20583979069848765 -0.4070746730192743 0.6338422711840911 1.0530381995653624 0.5476284649089721 -0.45137123901404685 1.8633024514030079 0.1843339731746457 -0.8495969623440915 -1.2561864228202766 -0.1122926086728533 0.25464652135420723 -0.4081081185553323 -0.7866218200257372 0.150374850899437 -1.9848206478804733 -0.5914865260888865 0.5284023946890313 -0.0362639734616863 0.5440738999488047 0.9318574071070014 -1.0549787572395346 0.06539935467930845 1.0115779638218014 0.14643952198397542 -1.7437650144360837 1.391287549565889 1.0184621481188028 -0.5908606378470579 -0.2459558406764067 -0.43029487354477897 -2.754283350353141 -0.5589204657804367 -0.39133676631838205 -1.0557911759926972 0.3289230725424271 1.5154184502082437 -0.13114479725454953 0.8095662726921476 0.05125469938078799 0.4770763871396425 0.9672747651118434 1.012340422024171 0.9543788925447363 0.18908682295165108 -0.3742606776280772 -0.34386545932379664 0.9123579185514564 1.1458864808940428 0.2997734050984281 -1.2332521204958313 0.8340120295432409 -0.3422067806200335 2.6342610887847733 -0.919984054516768 -0.033481081219457275 0.7878314847007022 -0.9632010294544496 -1.3489158900584852 1.0913796249552978 1.3053162221636907 -1.1609805698765796 0.0870809904174122 -0.1610650572466269 -1.1871804254449325 0.3008720478177921 0.0584930387917499 0.1834157968937845 1.3540214582035577 0.7526176023721034 -2.032183443964485 -0.1427639118760368 -0.1910376966601457 1.1701643426876773 0.5303705672281485 -0.5854112441424982 0.4048379945781267 -0.9417993024027703 -1.310374307615571 0.10210145141880339 1.2854903420843269 0.19395814774123085 -1.494685932853675 -1.6440195957362291 -2.1091284636699026 -0.3129294725968727 -0.23876688183465497 -0.002950327977348563 -0.201865661580491 -0.0205338265378846 0.13403822998145298 0.4785548783111436 0.5088420079677028 0.326909098288383 0.15501375839546874 -0.07103546267303136 0.07729465521076956 -2.2864739153201556 -0.3947483785420372 0.6480319127950086 1.8870379186905974 0.8391713820749522 -0.5517088639871387 0.2788850117487016 -0.43844266352806704 -0.7097419712726108 -0.16867261785505566 -1.4514892481730226 -0.07866696189164034 -0.06391503819463114 -0.6582270601820664 -0.4121631672354807 0.7865788049486337 1.7941736889541238 -1.0713231808282542 1.392813738133396 -0.4965045053133216 0.6337007314114761 -0.505329316723213 0.007065416536707194 0.6036072321696531 1.166433676419081 -1.228269399403395 -0.6877038636624256 -0.5384060122640076 0.7912700972968753 0.29973373581221385 0.024129980951051476 -2.0046210863232585 0.30557463759234055 -0.46262404227982185 -1.1156142600346104 -0.11226486842407424 -0.17149298457441653 -0.47897662146255904 -1.541806890426049 -0.05334132692711234 -1.066266084604797 0.23937099450197058 -0.5717069187042204 1.0586135824390135 -0.4920819878055889 -0.26105208882291586 -2.046810988541868 3.0243142859864243 -0.3685385039206812 -0.549126965127342 0.28590572936188924 -0.12174304953910312 -0.6069648096999068 -0.17334164557338405 -0.20026797254426526 0.2867020936178865 0.14893413409386172 -1.3752816709097364 -0.02769695218643932 -0.6039988757137178 1.4844943381668068 -0.545576290648538 -1.1415432128377243 1.3726995071353454 0.568235777849683 -0.07384970259310052 1.0228945215507872 -0.25539853461280515 -1.3431616444741243 0.5180543283357172 0.05106131470214901 -1.3250419121134183 0.7097505551752206 -0.39492910997952313 0.8324442263545935 -0.25749441780223875 1.7597198747863558 0.4813567427101266 -0.022741513590348778 -0.9912094289304415 1.9507703009657056 1.8713849544355028 0.208417117358213 -0.7167904646217371 -0.14790356976189512 0.5103401483893222 -0.45982866635492553 2.220225738300922 -0.21493613179958976 0.6511113560345382 0.6950135601065456 0.17986818931602308 -0.8450454979908087 -1.0518623923268688 0.7678818848596299 -1.8642764499796118 -0.9366988981276441 -1.4680446873983086 -0.4596115192029691 0.9896376748123137 1.0575441420319858 0.13310101350381323 1.5033827587964594 -1.7052419526107283 0.0009164784020233713 0.5601423302850762 -0.15770486042241363 1.4670301471042657 -0.8706010843180735 0.0035199885143033377 1.0877692049322154 0.3046521404723836 -1.6968838999970255 -1.1347786326086973 -1.0744726011370838 0.20483510655934453 -0.39696778430376195 2.7523711022459385 -0.4162687609954037 -0.27832704728057606 0.1078879908543159 0.9873737960121998 -0.6037379482759578 -0.5995214424772513 0.518911436391398 -1.1920428419729265 0.27000237498415863 -0.13971044544731495 -0.8655234725737044 2.177219695985274 1.3907118910522 0.13512062162285343 -0.37543924384029564 -0.2609720605436379 -1.1690282598633144 -0.6994896009599042 -0.24548193916753958 1.5835699590225683 -0.3177638018422532 1.5633755953245605 0.3749028472787975 1.5448685813489842 -0.5839068597739373 0.1542327064185915 -1.9070904673771165 -1.3976139266511203 -0.38311999025332055 -0.8483278522875929 0.6731650245918815 1.1038188026263465 -0.7891706985443496 -0.3780123721219355 0.924012715740413 1.5660896834318856 -0.578015207692621 1.5168178774183774 1.2418654904668545 -0.4753403521366547 0.054247951447138176 -0.20538740881936135 1.4162391264194403 1.2642927680382428 -0.5792607838795721 1.9273857583787146 1.153367220242476 -0.5993447256137759 -0.31769404379706 -0.46638222023731424 -0.554957309078404 -0.2119329777506779 -0.803930480122592 -1.4163362016257723 0.3974640442963014 -0.4806767885793671 0.928699303653456 0.21457141154506904 -0.2740819181370554 0.044607833008732695 -0.8764094151829875 1.4473660802414345 -1.0515799485634294 0.2313888535781667 -1.5442071976562448 -0.8019803750115313 -0.8435716363044652 0.6530990945273626 0.12204541187204389 0.2008689458301261 -0.44449637805686804 0.24758882633010257 -0.4076050983591435 -2.0803477492562577 -1.2130910413482003 -0.6055904002704543 0.27109182575488533 -0.5772468906719618 0.49025085571399746 1.4376662913513343 0.2094486812249415 -0.687993534451506 0.2933627896539165 -1.6332871255750239 1.2589591519807435 0.13602493317086012 0.9004482653690198 0.3235514193773183 -1.1759040382037809 0.7693978624872183 -0.3636768018104196 0.7312384589068768 0.10364290015094656 -0.17871203823142642 0.37062318208770306 -0.24339380035310862 -1.4640252984393867 0.5019763425824921 1.122493030518435 1.8248368088850602 0.7775591943741774 -0.5585612594372027 0.5008720133606356 0.8862080353431537 1.8204518968059045 0.5529921072427962 0.2384982288086894 3.689553559337165 -0.8646297150156051 -0.5464768414091649 -1.6687401947679676 1.0339313049912684 0.22159731726295318 0.4339651737071426 -0.10172122700756335 -1.1998244069942383 0.9103488201387985 -1.2968401002222474 -0.5961893038085864 -1.2113436958970099 0.3031805436433819 2.389048801146588 2.1364072647972088 -0.186918745941792 0.2678010834257608 0.5197762706680253 -0.965919514029998 0.04369170947367813 0.9252339499914065 1.6747091236636802 0.8114874209861689 0.2086820216503839 -1.5017502642092566 0.3338491366412076 -1.671913821349136 -0.3358470208209848 -0.7775788280238177 0.5910693791901778 0.30921008185671517 0.23548910912024112 1.028170010459415 0.8614735371965341 -1.032188015471248 -0.0075415974878501445 -0.8360388401562376 -1.9127348936168036 -0.22034486276103735 -0.05767231037231613 0.5563456171164551 -0.41191607947802905 -2.3702842661090133 -0.1959875389874567 -0.5164457230637345 1.5213811973611353 1.7495762698780368 -0.9372106047298914 -1.4617511768080307 0.7653985422419499 -0.7470904867548915 0.9508750618957469 0.03655914563517114 -1.6407341332102243 0.22646566269267415 -1.225151044550951 0.14514851227336747 -0.26044918295890335 1.3825131429666229 -0.452103508550773 -0.4901829369208692 -2.0112909698653887 0.11364241071314526 -0.9856797569597499 0.30985984804316336 0.21381033297925964 -0.7926559628651664 0.2573556634186203 -0.2530178756346499 -1.3992191515796442 -0.01258990512866567 -0.45210502547436937 0.34145935415680784 -1.1491257404712008 -0.9790253732147229 0.5888505597941093 -0.1773385249305618 -0.5223440963955399 0.8078289625852034 -0.189009552313307 0.18962800530629512 -0.986019755468066 -0.5190005215703893 -0.7292373336183089 -0.6121489786139606 -0.2861445045000337 1.5064239025613138 -1.8480751718571777 -0.3731176032675467 1.9991691585542308 0.13314195528183062 -2.203037166012802 0.7292335101997793 0.06310744601666544 2.037155730265355 0.45437369364634694 -0.9895896213772046 0.10083565999060903 -0.6307226012843227 1.196061602462209 0.05535897425910148 -0.776026855427091 -0.4676218547007525 -0.513067947088789 -1.0068926158590472 0.7083653265393871 0.7703828905042548 1.0025575822417332 -1.00999617330758 -1.6795589542691154 0.1946587602153307 -0.6575667252091569 -1.3965887809915702 -0.8486026044083451 1.0037264638439622 -0.9321286355210892 -0.8783025084220645 0.38582864034628855 -1.1966072028974595 0.2693653285457622 -0.8843140891860564 0.9606427212248012 -0.8210588398916832 -1.2972809452353 1.0328296274281537 -0.6408527994021547 -0.10254385800908311 -0.5976435364007443 0.4410329920924874 0.8656455405024964 -0.010432848429565945 0.4706749254046249 0.6713552818663189 0.8563484466878015 -1.1856523210969858 -0.831524602173476 1.128334768495598 0.5838011394243461 0.20952374017054087 -0.532390127132173 -0.9197965362634837 -0.14788108923300197 -0.3925897894362013 0.4542615690125906 0.16266407188852547 -0.32123089165248936 -2.1813573471267134 1.5982013463238185 2.2414529787539337 2.0918547289782543 0.08341008274402842 -0.5153755676354805 1.4453869908437937 0.32598187089123554 0.5436119064789725 -0.3584612345171701 -0.5763860787370773 0.6681149315825492 -0.46150984303255077 0.937285299758236 -0.2098979405270315 -0.07164712401923368 -0.3068356315042299 -1.4001619912112477 -0.9404694741254799 -1.0935250149061801 1.1679691375745216 1.015411900739814 1.1718326097723255 0.8017752102771813 -0.9931793875258994 -1.304486591269489 0.3062454564319905 0.4306035155559993 1.5727111207558893 0.2603988880173924 2.023403089895803 -0.28412453957357026 0.27829777210003903 1.3051156973521614 0.6012641715967781 -0.30650139182281994 -1.8838520015965237 0.24224605728041568 0.439329446674439 0.9735286217351006 -0.3139513707910807 -1.0815354269762265 0.6573166630333789 0.7128864715807626 -0.43699609111468396 -0.10939165876018088 -1.603697083402384 0.8237817309774189 -0.3713083690927498 -0.4247028632343067 -1.555673670781125 -0.5601139736090598 -1.2960893777659583 red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/randn_1338_2000.txt000066400000000000000000001146171402627751500256560ustar00rootroot00000000000000-1.1795508248113227 0.23881627869400782 -0.32402331387279626 -1.5125256648576102 0.4074016774357785 0.9411969429155745 0.6679634455687545 -0.2357542701884496 1.8100077897574185 1.20923257970095 -1.2245245864313088 -1.7402986834728298 -0.776341030420603 1.9962471004074342 0.5977269604849912 -0.5488198878053789 -0.9674039629312488 1.3959289441271412 0.09802322593299466 -0.5305990416324259 -1.5696679018553283 -1.3697239875084095 0.15898131106746705 -0.7757864298340018 0.24735429952092697 0.5944111966450215 0.8636857883681502 0.267015171650185 0.42785980448859523 0.5787664159036118 -0.7657071602173027 -0.9407368676891096 0.733892086810584 1.2595476362542315 -0.21121509919109602 0.10355228728265006 0.9198870597409878 0.05070947560777406 2.2312394037484617 0.04995612632483925 0.7572163716649194 0.9078210439127207 0.33290645206170255 0.5312509127723439 1.0748834083696248 -0.2953584831614772 0.7959907123144467 -1.2544680924548604 -1.0379001958937466 -0.8856454602853462 0.9339176728593492 -0.2446741080972371 0.7462017067777763 -0.4908536095342316 1.2657807811219752 1.1057648015489823 1.9342044056914993 0.406813122667264 -1.1613503772690061 0.48960773385032247 0.787504970624462 1.659953330076665 0.3399247012088004 1.0582382846821126 0.3806181927772901 1.7128516326528473 -1.4910486303926307 -1.065730733912472 0.39403459478868375 -0.7385831334798149 0.24588284087991027 0.32456945985889035 1.0274248884745607 1.086454400261281 0.4720125902930292 -0.07604367244214089 1.2280596973770237 1.3237185273860355 1.0542958600699588 -0.9018169951995798 0.5955010573616677 -0.24331836489257383 0.18772539721557002 0.25864464272713883 -0.9788906616275892 1.3801962447426501 1.6000686917732547 -1.733704492259921 0.7296782983169965 -0.5384687606260113 0.22134462005010289 1.0337716794862055 -0.029528503806132006 0.9963149187840764 0.9965288030678352 -2.380417717589903 -0.6995492562966023 0.3289679502074472 -1.9788141704905313 -0.5195379086557173 -0.008314126030703861 2.1296158642832226 0.3917721199367403 0.3854981930083973 0.3109178014877662 -0.027559514264398365 0.3619535833535816 -0.5992799912800334 0.017238094947327528 0.4691942770153877 0.42535323392438135 0.21196970186351005 -2.768251936724711 -0.5041460623451313 0.3653161051923304 -0.7656987253981485 -0.02281395363009332 0.9386276081422447 0.5582783763050974 -1.1188087283805805 1.7387295131758436 0.402533090633045 0.03565310780617914 -0.35894012742166365 -1.6452709003962194 1.7669685619074762 0.8220658796245722 -2.169180031316974 -0.8482726401108835 -1.3254156443601894 0.9127283855992507 -1.1281708921183462 -1.8638177769364435 0.10158107657253887 0.14778294948257495 -0.7443601827455596 1.073567507374131 1.1369179242827765 -0.390818544033519 0.39470096629869444 -0.1047700187731729 -0.6902343229793798 -0.6716730441448935 0.6288708594284952 0.42462505443126686 0.9710648268678397 0.3311593767490589 0.8052906346108999 -0.9539008994766971 0.06186468263507273 -1.3144114085802778 -1.1529621791392408 0.8260997048518782 0.7348485628188718 0.6060842722558898 0.280682194807935 0.5117047328711674 1.531454744656615 -0.04672289021489107 0.7848843053683271 1.6250906574644703 -2.77618865463901 -0.8611279443521217 2.3073695198543915 0.03547868400982993 -0.9554726058402244 -0.36307775803967257 -0.15576966479246415 -0.49894066401032205 0.7395911898163205 -0.493421725754294 0.022726618586832982 0.03284684259074495 -1.2264283446785385 0.16630243683396317 0.9579664078392878 1.6150068875852148 1.6706157392406786 0.35819982802005657 -0.13995150769149978 -1.6066515231582879 -1.3216255587081367 -0.008444759155546398 0.7070205520803128 0.15781961275156345 0.7571333484278715 0.5911229278815855 0.9522208286987395 -0.38199544203888924 -0.46900663206281523 -0.54661582213044 -1.4044082216593978 -1.2681806790555101 0.11933589897897509 -0.56494174240081 -1.2975476686942686 0.4280114972274069 -1.0658621081323127 0.7619088622462992 -2.171818426832829 0.0070836444101342565 1.7652484409920277 -0.4505074654107677 0.5685704576838694 0.6855931998106625 0.2975543943296682 -1.2856125202235824 2.039317746278605 -0.6274328696871594 0.6871751216707915 0.8841515183762695 1.7024102737104965 0.8308369879689426 0.1633495384437657 0.6486460977963169 -0.48857343380039187 -0.5261738185531734 -0.22146083012922332 0.7013737686184432 0.06181112692424272 -0.5489793346491149 0.3851349921918649 0.18615342048285888 0.8335484198772612 0.38432773857049934 -2.4180088201143053 0.8811124224394807 0.5260807920289211 1.0962571518000388 0.8712879657196435 -0.9570776733458883 -1.3809679155793622 -0.3428355037755586 0.5030280048952444 -1.1649136287187745 1.4123484081365405 -1.5150716445918662 0.1947810886901516 0.8099253324459579 0.15855474675960754 1.0558756040498443 0.23915170754090162 -0.7111188223934997 0.8245375405590556 -0.40616291975009927 0.4415736151134 1.5093176288706867 0.4251780291189002 1.0765476398409402 -0.8284587462540971 -0.881047462475927 0.4881067363414829 -0.2238932274105676 1.1373979581254445 -1.6032487271690967 -2.805490003320634 -0.5311263737358355 0.14540478029306478 0.45090747133704223 -0.584770204119463 0.8861365079839977 0.9809753354012726 -1.2248294706028198 0.899406941704286 -0.41434892974171633 -0.9373631301856112 0.121159060938287 -2.4087892361258194 0.9324665004246098 0.8949649156989375 -0.5167946833240935 -0.7699917472660802 0.7889612217857098 -0.47370607728322417 -0.01484335022732285 -1.376701790724774 -1.4006791539728192 -2.4862634837091395 0.49034774803951203 1.567544081375955 -0.27408388746818935 -0.9836665140011218 -0.7911146065432437 -2.2262534056898233 0.623267698162379 -0.2693471043864522 0.8626985176305964 -0.9655466317020667 0.9721452430253157 0.44459344317514965 -0.28417987983892984 0.11645263706236456 0.5165305369306105 -0.35584568689030266 0.43739387726075013 1.0705103253768125 1.1542173591446363 1.469558045982606 1.5539778560949231 -0.6442222158399463 1.3841450319434425 -0.26115910465273484 -1.5375444121475048 -0.09068032908715831 0.9024516803015639 -0.38835709067331076 0.4204585222986648 -0.7909093790842154 -1.0957491867798164 0.5998513969590471 0.40095790594326364 0.2595358389262076 0.2640541499214002 0.048416969665084936 0.4904913316070198 0.40935895614560464 0.17003174671875948 -0.5895711581211193 -2.146193641255784 -1.1321888339456458 -0.9831374164742067 1.3426497611271886 -1.1651833538583405 -0.018439500469002328 0.205151315426942 0.6366541404949648 -1.4718485314461114 0.9078629074881664 -1.0662634357231724 -0.6745923247720895 0.9163875852246933 1.032384868568993 -0.6922041587676544 0.1712619470005825 -0.4434413002842456 0.5273886896131607 0.355013480095884 0.08793415182732782 -0.5062354167376366 -2.457193715912134 -0.3370313322056735 -0.27626896469331125 0.2608082974541609 0.3269494174075891 1.3943129972580968 -0.018875503207382027 0.00235084399982048 -0.5162102477766862 1.371040740087552 -0.4525850972874441 1.1165248337451856 -1.5675494148308498 1.1974224276577543 1.8914768716003092 1.3765682894378566 0.240050798824964 0.05896390745836525 1.3258465553009655 -0.07935985330610378 0.08978435622774603 -0.7026456594517156 1.6840291350109038 2.001126633293056 0.5701234904348061 -0.2882992262607996 -1.5457821829086171 -0.43791680521183535 0.1721855622455344 0.09463047531252052 1.0157790105385034 -2.6026546060844513 0.5658834753552895 0.7074156302126161 0.5643845686426064 0.6474833986763338 1.3911450735829225 0.09607511528115106 -1.34804112790014 -0.4516976983534223 -0.3844727001593727 0.07814121293152881 0.6367644745485664 -0.4131510054450941 1.7356550452946213 0.6340419662692108 -1.8571192293008378 0.9308881580668793 -0.8812450946629293 0.39832117684634677 0.09192562591548858 0.22742284525929848 -0.16985744233701142 -1.529986049145668 0.059035484994924906 0.8826673427202666 -1.6120337839485646 -0.2966094837269922 -0.6176480010362193 -0.49076735246089226 -1.2072085177866474 -0.10838294752622504 0.6572021208224149 -0.34488901998921007 -0.3260051117230435 -0.0585957797537921 -0.822720400235995 0.08883024559542627 -1.1127142518181687 -0.6226700634288215 0.26165693076520463 -0.07032989077579435 -1.5176139164366362 -1.5535070233910313 -0.44989366176464324 -1.7603510218533627 -0.6198243614905404 -0.28481730018575974 1.1818261329102502 -0.1629207770645953 0.17488433782281232 0.4788041959116688 -0.5213065010772916 -0.2707168851396282 0.7188486679300687 0.9628731503070297 -0.9855264601292126 1.9201693852402297 -0.013097318314656494 0.23366993795289606 0.10594469334518176 1.3681638573505346 -0.770776858960317 0.9636675662712872 0.785652869798697 1.2970595258085245 -0.016378839742404033 -2.6819688583801438 0.8282867856826224 -1.0761753420663396 -0.7733385711404275 1.4792170039613892 0.6842636250214218 0.03128357706216367 0.3377376847539596 0.22382724503738372 1.9547066102374375 0.7398279312865199 0.06672414771162116 0.5718213930607255 -1.8705246691226423 0.8621886968962997 -0.5522702061194786 0.031443779031685035 0.7715370224844899 0.46892899979381886 -0.2653594004737416 0.1288193343099926 -0.20809927142162807 0.3163642652997494 -1.3660640157433939 -0.8701583292375143 -0.09584039284366593 -2.99860247459666 -0.6186965886158654 0.1537669653258225 0.43420451498485796 0.5504432630585091 -0.8643119125885843 0.3655195921904797 0.15408309428587807 0.3603777249180772 0.7557777394082653 0.28256579218273664 1.2170163273350914 -1.1646944473140848 0.6091078790391339 -0.2516405920740501 -0.5353474566853664 -1.0659295338641765 -0.06949324281378354 -1.2693499273140765 0.20198532533076435 -0.5597308417420228 0.9298056523267724 -1.6213613903059472 1.0876553427948223 1.4051389376782704 0.4804013692874772 0.11527564384925458 0.04545935934732778 -0.17920858985721067 0.36756571528604726 1.3374016197101344 0.3095540731160813 1.5388008299339846 -0.3280397036826063 0.4267071886502875 1.1393604538145352 -0.34564386511228506 0.31546987635654533 -0.25592012616455223 -0.714133137302058 0.14436765916205285 0.42747640851598756 -0.1394614741493893 -0.19316456212138006 0.27251665412947856 0.12636706298368786 -0.7374202615081008 -1.05079061659657 -0.0408659801026667 0.9381190201161363 -0.6812320950001998 -0.21996750123330647 -0.409573305972003 -0.42921807170673565 -0.25647278667157974 -0.8393912248099372 0.957956675025317 -1.0273424721600795 0.22134521588405837 1.0957831656767782 0.38307573015635665 -0.34603092639443006 -0.7285876794294021 1.021726581806725 1.3580571436429563 0.13764947979267095 -0.1994956191210865 -1.644104747126995 -0.04331798188566413 -0.31509540683722476 -0.1894831126961036 -0.6101671135236354 -1.4789345070052495 -1.4086807979055163 0.4643943788138841 0.9737126094702748 -1.235436334614122 0.06685549537069561 -0.9497948005953908 0.23974666556171972 -1.0876614811547192 0.9337030043756402 -2.2491246681012003 2.2179552654334844 0.6728358048206512 -1.3849914837852526 -1.0881117123721358 -0.23709961562761223 0.48619041756732745 0.522299128762628 2.2588298384996683 -2.0518500390548713 0.5693912777799938 -0.30201420080869384 -1.4067441013234339 -0.026048531892109917 0.8863395446436261 -0.5662816665770861 2.616166939242479 0.4674669070559898 0.3695751188118021 -0.6149957420610482 -0.5100877313746347 0.06418991781133236 -1.035108414743924 -0.17061412181729085 -0.30224313134078745 0.5278580536836278 -0.8020474505274869 -0.8271461670807205 -0.06273303226221633 -1.8477716582484334 -0.05229864697678145 -1.3756087859089452 1.1846363049153639 -1.7266365577921639 1.3739825613612302 -1.1233851300808892 1.0152033219508512 2.402752309076421 -0.15020828068591588 -2.509330257823739 1.659763090369753 0.3950877548278731 -0.9597427494821376 -1.466028252397514 0.7753644673986206 -0.6471307714003256 2.100070072053955 -1.1419669484024373 -0.7459552068391003 -0.6360709807730233 -0.540539717978462 -0.13649074437003625 0.3955654742494263 -0.984303875989401 -1.4172354726772352 1.1473370859922405 -1.2358673871775316 -0.2116177253555916 -0.7797723148528266 -0.40038020154082804 0.28661467573334987 1.659244294201238 -1.1415237816578496 0.007840230073051421 -1.415707923372711 1.0521163972038794 0.5821614651032391 0.2844467321348128 -0.8761791219697685 1.5381901552189272 -0.9669337063701712 0.2097094251977123 -0.5548631923838196 -0.20800633152418221 -0.09234582650526581 1.0041528936469026 1.279053637208281 -0.6561051693929278 1.286010531565794 1.6225478853665123 -0.8259006295687403 -0.5116646565602604 -1.353922999940288 -0.7593070826220425 0.14623303305392385 -0.5470501859095395 1.784536596441115 -1.0746931741374508 -0.710934301988908 -0.12333133171848247 0.19879845716624703 -1.6207210130502536 -0.17041294591237713 1.3377180192978904 -0.2259812313534553 0.34695275206487175 -1.1533655323349508 -1.236508462761664 0.914763885081122 -0.7568347595097983 2.518420145662077 1.3536661665664718 -0.10595893134204958 0.6753314558599125 0.717894487124725 1.9502369988496568 -0.07000971895438732 -0.11966367843441464 -1.0066423135450742 0.8130027856301097 1.7692089143067582 1.4266989424305794 -0.03904638672250533 2.396300912458431 1.3443605060970525 -0.7242145297528696 0.49480660731321496 1.2147625978999703 -1.0330736632757611 -1.03635677025767 0.2575953410828822 0.5300336478910551 1.8006386802157417 1.0742295572364302 -1.3810076749458635 1.7010511730211253 -1.4199991995061017 0.17010984205456378 1.0725990677012425 -0.2361693352023541 -0.3103836774165471 -0.011149828775240154 -0.1620408149519962 1.192072245929976 -2.5025774504116645 0.04805388134229276 -0.8630712182359939 -0.7342923907304312 -0.30315978275586086 0.38649746465247187 1.083032050191221 2.1444758308790353 0.8094232771360143 -1.7694482916064318 -0.5962493560225081 -0.9431607278049834 -0.8785457727055278 -0.39971863489595455 -1.6084314870492338 -0.09970939994085222 -0.6771833767288986 -0.15339245325031925 -1.1765999345396803 -1.0322845902514983 -0.3460273572163869 -1.9836261818066676 0.27970865760180963 0.4529732616780544 -0.4904761143050764 -0.6501588615116196 0.4118492273107751 1.2032767865582694 -0.5663575290149921 -1.4480762177651623 -0.04254227851992861 0.2840474892581342 1.351845436652141 -1.667368777021518 -0.47584499209155773 -0.4226060485169472 0.06466579403851644 0.36758846253043115 0.8350514705859532 -2.5069277053212633 -1.2443654980166328 -0.8868372329483153 -1.491956189944975 -1.205195920910607 -0.34877357424581756 1.599920947898087 0.9679727030682417 -1.9038407037165428 -0.6826098669197608 -1.5439721294718782 0.41115973325035626 -1.4009170505993334 0.4299948671069018 -1.3679737997552979 0.18705915648720034 -0.5443022896062676 1.0379393831349648 0.3021299075864346 0.9651965003817886 -0.5444771508907401 -0.515411117924281 -0.6946875270281964 1.1012378852182538 -0.8772427890071076 -0.7673931941045188 -0.23348513683132957 -0.09998227286998267 0.9556617386999509 -1.8410600104395913 0.4357106189854544 -0.11771040518961845 -0.3409720431996374 0.5038664144748385 0.2600030433237901 -1.5838146856545874 -0.2575593318442379 -0.32386632703164464 0.5333628752494952 1.765380143041226 -0.7783686442436637 -0.039674268198615 -0.6996279727670249 -0.5739811776715594 -1.0406143787277975 -1.0531482623354256 -0.4740450510712034 1.9908115950030147 -0.9060421186616333 -0.05804325912237507 -0.2725889102864987 0.9888005119710871 -0.2661579636562508 0.26016918811876594 1.674862707518217 -0.7577226897996832 0.8924856893510589 0.07367510414168749 0.333436514276029 -0.019106270311869313 0.43379552716687575 0.2331256698581858 0.3499781493491189 0.49152686703291376 -0.6730216347102536 -0.1867984700346427 1.7218105312592495 0.8891467789338461 -0.32715617617354414 -0.2072405908111532 1.3373285947709317 -0.7680084543035284 1.1730598210695817 0.7876015514738426 -0.3011008105632105 -2.3129161610785265 -2.0415954226305453 0.9659752462114978 -0.7029923447014395 1.224113079164076 1.2164836938734183 -1.221432470216199 -1.1736205008624514 1.1960864239351023 -0.08595067417948479 0.8975958840482579 -0.4986056838816074 -0.7440394716645371 -0.45654934022070814 0.8942297476098572 -1.2625834755822047 0.32428946911215883 0.5152694842902009 0.17351593193847115 -1.1734724249466364 -0.5500162483289 3.0467763478623127 -0.26342637997848306 -0.49046925264638147 0.7914841435147048 -0.26574067389342815 -1.577752592845413 0.9934573941208673 0.6939333404064466 0.8607139437809571 1.320350505035688 -0.9007125137099873 -0.5873539366668296 -0.140532697170491 0.7336582787243678 0.38063047173453396 0.2608762997570115 -0.7308902128759984 0.631236209075486 -0.06583011498997707 0.24139953909807432 -0.5745789555929914 0.7798327110745058 0.8224210779089509 0.5828355571646342 -0.8401675929638708 0.379864676867864 1.064692678585708 -2.0376302151786185 0.5427550528987083 0.8661464824298863 0.19507674754812035 1.0682797597205633 2.305890534765535 0.3181225380488922 0.8388821342916134 0.173531981595558 0.17301363637551984 0.48042623269349316 -0.08468465453029105 -1.381490379665962 0.22164992163926245 0.9094413015065956 1.1642360446848987 0.17203273799590277 1.5918395425064737 0.9993288732496101 1.8852426184897466 -1.5677045558449962 0.4037509454147867 1.152471554798656 -1.4821372208781836 -0.3234371525781259 0.6670007825708307 0.14807388676844443 -0.9652096319950577 0.796664493917673 0.8960070449393269 0.6275853876357635 0.8540913086546241 0.01635596726207477 1.0488986637377993 0.08105550975614291 1.9517247082531533 -0.1625803045637029 0.8699582289397644 0.4202463835318456 -0.5652867885067577 0.8706181080805441 -1.114311461054736 -0.6114207966874199 -0.35817536811376033 1.143616415454536 1.4751318105384308 -0.08802346939316959 1.3457972064366401 0.5576404978472377 -0.2574036416736537 0.6497750385069633 -0.21485427478095798 -0.46146740964197736 -0.24185612878303467 -0.497976391170236 -0.6090504869035445 -0.40334592110504325 -0.276226753052357 -0.09855300206077436 1.3460346612415006 0.19953512792090297 -0.3934638777284924 0.7807948290733628 -0.9057268764588027 -0.39547931448797674 -0.28665692807569354 0.45377048762570726 -0.32578651055503033 -0.05605861913758938 1.7380624319383104 -0.7959646853820225 0.12596298090031546 1.1270186889507328 -0.26676217457090035 -0.28336044949697764 0.31366121085674176 -1.4035197744297558 0.6567635122000249 -1.3680050209724979 -0.22205125201300738 1.5257178015389576 -0.9559424095688567 0.8964343294625273 -0.6640390397501545 0.0983771964223399 0.47191949719556087 -2.0695343559048576 1.5848716777445548 -1.3606345799818718 -1.5678746097530532 0.6601911977665759 0.10609674318129061 -0.912797243255628 -1.59267926312491 0.6021294831448231 2.308355135012653 0.19988209216049174 0.9834817094532045 -0.24854378616587547 -1.7623296211030473 -1.1291902664695157 -0.1703069014866671 1.5472526294593039 1.2902963121756925 -1.2770090744148657 1.246257412962375 -0.6846217176376207 -1.3086252703019394 -2.9737326785860407 1.426202256515168 -0.1198929827782466 -0.28793221391028156 0.4772763063967437 -0.5761880570119158 0.01909924674229692 -0.3079641907474913 -1.6445152098187739 1.5724477258146494 0.5940126477373767 -1.1355329251482824 -0.17482369665373115 -1.0149301294547162 0.2221125298639672 0.7785728601685825 1.2326654305302036 -0.517045227518436 -0.6864429534103138 0.4162719167441355 0.30364943352260154 0.8726382190020653 -0.8640078558729717 0.2122228281348464 1.728018765279818 -1.000686814555091 0.3303929647068149 -1.7404525301202667 0.1155373005520703 -0.43948613385555113 -0.6075962856555716 0.8280100258568014 -0.5200280327382388 0.40702642057519955 0.6664674782149614 -0.44496790616483145 -0.37657454469405416 -0.14638217568072873 -0.6289835991986024 -0.960893934538116 0.914875417729035 0.29812502388478607 -0.8173803622828598 1.758711826869148 0.787409527690621 -1.56814918797607 -0.9039670551173336 1.4817697996345585 0.8834393866484499 2.8067033890181543 -0.4288100654672822 0.8191576889288471 -0.004977412487087618 1.622074589050228 -1.676815173225249 1.4875485325699278 -0.22736263424693823 -1.123056136788669 -0.5782386832623886 0.32645354686703965 0.21250018438256413 2.2360595130695167 0.44964304956015483 0.18765781900376063 -0.28709011793144706 0.590779024265185 1.335246407222348 -0.2005461798605781 -1.351777533351968 -0.8155635017083046 0.23105528884266183 -1.545002395145894 -0.06448057139653655 1.5111827146476922 -1.0441379500412131 -0.9325321026376768 -1.784819064579493 -1.2142332333556067 0.42975166768118067 -0.8597358916473475 -0.39516614744201795 -0.7094938664604596 0.16067255545442388 0.2055148380844661 -1.3041288216069116 1.1149733418738959 -1.233871896379551 0.5940970953377946 -0.26340145212068206 1.6170995761371634 1.562198660074986 -0.6503057664148528 -0.7342294443286311 -1.9282072631498322 -1.5912876573011479 -0.03850714022745058 1.9669744473204003 -0.6715161535682443 -0.28650849559645075 -0.2042371795045941 -0.5164300983133809 -1.2407424830841638 -0.43215124146942796 -1.4726152890951154 -0.025870347906826335 -0.6297705268888737 -1.2871077035208736 0.27843001596714 1.2677901400759055 0.33747928707602004 1.1914286737532434 -1.0318683552950725 0.12409546925871885 0.09104949839134176 2.0701933077073646 0.044983639325644094 -1.2008781667692625 0.5537446598898582 -1.7793634852330993 1.3215647790283571 0.3487171898216382 0.07820021386839132 1.2906815262065625 0.04560869561791764 -1.9010125294733358 -1.0647119603808461 -1.0649123944770134 -0.7038510625996451 2.166246790608185 1.316721072169139 -0.2219720139734419 -0.24797510217881719 0.7437859795891925 -0.0941288908488718 -0.5596826872071474 0.38284556470960085 0.23120385572745508 -0.42093666279374115 1.0866555781957 1.7908967655348877 1.2383199183912579 1.1572736399346684 0.3164243126073819 1.8235599345590197 -1.5249028163261589 0.16229571350403177 0.5151555141164362 1.229387822641603 1.4109317376259713 -0.008434558643388155 -1.5313033531448852 -0.3136877912306137 0.16991214219725154 -1.4356615356925189 0.9208950577788861 -0.04363522650928384 -0.290244413303866 0.20118453999694072 0.06790686761995328 -1.7674912725064826 1.3814626035325432 -1.1990777902693348 -0.19397538730627323 0.8944065222121351 0.10695192216336706 -0.44149961451000147 1.020811901974865 -1.130807121447164 -1.284806807703917 -1.59048421933078 1.7537046194448895 0.5017275365148594 -1.3995908025918828 -2.936180375026366 -0.16797688796736387 1.5279333720851078 -0.1915753247618557 -0.3911742462852612 -0.36763958105643446 -0.6883505150965914 -0.8573086653099521 -0.40751206012110974 0.47674377925542977 -0.4536968544632742 0.2806702937616789 2.357480295531271 -0.040047149416597594 -0.13282112064219337 -0.3607202802864383 -0.23137501147596898 0.8388835025128186 -0.4528802380247082 0.6068346821321341 -0.012114882833862934 -0.5292154378931855 -0.7530901366854893 -0.07569776545643965 -0.8238338751806308 -0.04377226964327764 -0.10893103211030278 -1.179531631998489 0.6142661605924582 0.939745558063598 -0.3561554820530585 -0.382555162239133 -0.9075723146152425 -0.00821136663982215 -0.17772864934460486 -1.029125005149931 -0.27647208871718587 -1.0125342202888024 -1.253321201441645 -1.0551374769098822 0.3191687518745262 0.6427142954048981 0.15944619439498456 -0.9719034438761353 -1.6106632716261886 -0.8711875065890616 0.2916390619476298 0.7136376379224476 1.3001926989732846 -0.2844267467499428 -1.0587174327555402 0.9217006274950814 0.7190742043436483 2.3859606136004485 1.036186944669198 -0.16005699745391308 -1.3318827058800995 -0.024896473832485992 -1.7017633352556478 -0.3532293262138452 0.19808642642903201 -0.9702938308351452 -0.3891886336669222 0.6640239101655732 -0.4967102881317625 1.7038075083501913 -1.4708922500927168 -0.26388491069180525 -1.1646364641871325 0.6097740224184993 0.21776165825662905 0.8001629261643859 -0.011083078657437927 -0.8641680035050192 0.06075159947723873 -0.03788888538391068 -1.3080181798899901 0.08559977194378857 1.013863005976869 0.6836606928738479 1.5530851797005616 0.4421526384597069 -0.19919212651228588 -0.18005351174502165 2.5153716495252505 0.5437283114801545 1.3029546215822703 0.7235126629046074 -0.4407248083830273 -0.6352099764755664 -0.34627029076239363 0.756435954410239 -0.3127589748615888 -1.3644950031377623 0.801170357282637 0.9964216068070031 0.33850558146731224 -0.33647591992805753 0.35819995653009573 -0.2472834536883848 0.3861732064060656 0.17161706858250705 1.0043436836453137 0.35736234157894065 -0.20682626915950722 0.6291479290819842 0.7931215311330008 -1.2009119269570443 0.610073271930949 0.08186031388714964 -1.500820127297202 -1.013766126228759 -1.018907062277749 0.05872433332158109 -1.2226949721680558 0.8122126671514726 1.2169307308076514 0.5594170812188854 -1.1064148101812792 -0.06732251853517582 -0.35341861058596175 1.0987512221757971 0.898281837120569 -1.2993414662281002 -0.9419492286309525 0.3221329846287746 -0.12913503468079857 1.050736933725846 -0.7164406254371052 1.3956193962076104 1.5451494564420036 -0.039592636185014525 -0.12346535468864454 -1.9081710542752306 0.5264712373346063 0.7789115187651097 -0.07342524794303763 -0.19966865105549061 0.8268681429504144 -0.24823465165366243 -0.07580010568410359 0.2847715629640134 0.7169652983907814 0.31022705085672697 0.3001257084300242 -2.5764410349189015 0.443385087593236 0.8409341887481778 0.9743824230824696 -0.4962043005118214 0.5652340631470694 -0.3734985764928792 0.6441119646742045 -0.9564652892270755 -1.1569389258532061 -1.8633667727872663 -0.17441233300206826 0.9335035579547556 0.4591392138111948 -0.22783075255151844 -0.021909300768240138 1.675919468053449 -0.45827504353240583 0.15405906403547556 0.834087503926544 0.17657695883468488 -1.6436281811369429 1.1341509570313253 -1.4570936272590371 0.2766468699131177 -0.06636089657529758 -0.9989055050998359 -1.7263808798612321 -0.568987047559592 -0.06437937569745539 0.5452554265093932 -1.8527412874333853 -2.1904393536169815 -1.8307574503946715 -1.4054547193715015 -1.6006738814445083 -0.7907620579710154 -0.6865940109740091 0.19474479300923775 -0.6938784371895304 0.02320559138653328 0.10619526154137168 -0.6429462489790891 -1.4482875456846065 0.7453032697764325 -0.7318609651889569 -1.6624844626091122 0.6383305794741865 -0.04508138918385642 0.6788402640803648 -0.4569273065566205 0.0215810741543499 -0.20779188754204533 0.43252402295632153 1.4066265852102613 -1.1462336879989432 1.2275901079131122 -0.9028572703764762 -2.0258975972216757 0.1356579904123791 -0.5126067829677503 -0.2777573880000188 2.1750720857555113 0.6627264067344015 0.08764816849530058 -0.6914764552876684 -0.5422997824321398 0.9785403347790368 -0.6362555921707846 -0.10896659731545834 -0.8232369691978366 1.9875438482946655 1.2353473676785673 -0.8105362271124678 -0.48359239196200265 0.4813619282559734 0.3743902467386655 -0.8760163618306178 0.13431795079092687 2.144063913848534 -1.5233839930047663 0.833742977045824 1.4266047752182338 -0.3159324275679575 -1.9502623102128107 -0.7149073423436187 -0.49019709631198505 0.2836165510908902 0.6482944958475448 0.36933722560776255 -0.47440695117946924 -0.3805787847031372 1.8016185516265188 -0.5347964228547178 -0.48343968456802816 -0.3083478713903164 0.9041761604103526 0.6229588772952072 0.2000734728263959 -0.8862381390832687 2.270746052022208 -0.6595784167580075 -0.4602047930317738 0.4156017191831668 0.154234569876112 -0.39976959222443337 -0.5443027611114076 0.3225454883305375 0.05370249648474074 0.6413879581317119 0.9628319686523061 0.7951287979947468 0.02322184708841108 0.29437242273146946 -0.6651546168656641 0.6661979629234913 -0.18947079788925145 0.34706000057154685 1.1440957911516463 -1.3221594747847074 0.8716426981422227 -1.4877290569694226 -1.283236939141582 -0.7454958054007276 -0.5353353350007295 1.262802065637661 -1.0035514406845725 1.9109094342360993 -0.14248242663533012 -0.003509041380938821 -0.23762567921231006 0.04643117725008813 -1.7123529714097563 1.070513272309909 1.1075301634869419 -1.5400619574209926 -0.28117769269559517 0.6389579858650669 0.6083371045127737 0.7248860705373198 1.0994272849990339 -0.44531392932872593 0.11737345112848407 -0.894784257058975 0.5415608387734889 -0.01981962621024629 -0.27223053905725064 -1.2323732883273422 -1.1047096876012548 -0.8712050398948586 -1.5141506191030063 0.9795777294291732 -0.20581928348244036 0.339334020871488 0.9216092764780145 -0.11162603801796639 -1.5903486999424907 -1.2268348918912082 -1.3191593120775937 -0.5898072111508982 -0.9915052298383028 1.053025961980908 0.13699146605775714 0.31841513740447536 0.3940956871816018 -0.07266102689352873 -0.06010055000106216 0.6505897064474009 -0.3920768378465194 -0.6199419935509117 -0.37254592062807185 0.0032413184094407794 -1.9510175476971319 -0.6467578041061508 1.0730894846083638 0.22759160098646017 0.9864092065367882 0.8638880689629655 -1.1912968018095969 0.3596697824059416 1.4948459899375326 0.22995190020283013 0.5972653437030984 -0.9790285562046752 -0.605110703600343 -1.249721952019288 1.308489479966871 -0.0001108162062743855 -1.238132751351871 0.05090602571439172 -0.13646416119964103 -1.3961892551578101 0.2734420139227691 2.0495719427802546 -0.5486575430050381 -0.2940005501259546 -0.13527554480717122 0.07529721551526158 -1.897577889249478 -1.6152931815720364 -0.061715152947580676 -0.0026371072374548805 0.3349146779143027 -1.0059535399292423 -0.5257812404578797 -1.4204970503239995 1.0869520333448262 0.9959319715411908 0.6045989392987644 1.9637800856779328 -0.32732767633324855 -1.4384887747578377 -1.294320251165028 0.21308889604617418 -0.018963914472409978 0.34195523035581704 0.35177781973246375 0.7938463880600393 1.3758167750356025 -2.6682216893127477 0.8229823070242985 -0.5515594615617548 -1.0037978539426249 0.3355750995781599 -0.46313729210112514 -1.0697491327583626 -0.7501355405806498 -0.33134395319525606 0.18195168202040607 0.5244300026470116 1.855798676593834 0.5206589244464028 0.5324268828825228 0.47909970691450326 -0.9615365622608436 0.02439095510306773 2.188238787145265 -0.5463183231153862 0.7022423673426341 0.5913026595966744 -0.2099874175207648 0.8237493658133241 -1.7927363828441625 0.4727293589835944 -0.67251951675212 0.28835451011834573 -1.2514832237922504 0.2771637763828996 0.47421045663070627 -1.606072794011078 -0.4303398908840116 -0.5925609475565813 0.4695707320161331 -1.1819463354780244 3.0074225998370574 1.7680179501777848 0.20221296338510514 0.1343745273003447 1.4555834288712846 -1.0190653720047524 -1.195392696371854 1.1542979946703618 -0.5200636093060239 0.019081116372842242 0.13849356077257297 -1.4024877695563782 0.5462250391997561 0.8569035540598376 -0.6968815715220605 -0.04829677026216056 -0.3848206545052504 -0.9517584765423511 -0.6296205309436816 0.9733950918212547 -1.4397147808576487 -0.6312806336518618 -0.4115884164514368 -0.03321577924645697 -0.9601181218276515 -0.22555205332928752 0.06379034576431641 -0.30322863046554765 0.28953642226859333 -1.1862855792418912 0.26288167794678485 0.17978252840091552 -0.5534462828382061 0.3416721457827705 -0.4651256628543398 0.7269836100516522 0.31605344984261324 0.622108811860084 -1.046772633738407 -1.0613129284880103 -0.35306515944753614 -2.1735338181389676 -1.2266086771446045 -0.4751110885187607 0.4557705198591197 -0.4177940699224944 1.0035846770916486 -1.3252391128541277 -2.6468637391938796 -0.5934048918582423 0.5952198076517656 0.7965053070876944 1.2820003134298008 0.8108034326033569 -0.46488139030189435 -1.8068530800587883 0.8912667349129569 -0.13924000592017308 -0.9939233142450442 -0.33422039747675913 0.1747420146981618 -1.4579087528185743 -0.550681672712431 -0.42267293658801114 0.4089222699991354 0.9607343492946073 -1.4890178848307216 0.14788606498035867 0.18393605942056285 -0.3016575139036117 -0.42313107409351663 1.0190360671623044 0.6207987479431303 0.6793341159068816 -0.24926164894330735 1.1766224359091284 -0.37560874578893366 0.3719556048237799 0.5690812729016517 1.0189863954811653 -0.07635781476287708 1.8246120023365826 0.7259699604163298 -1.0147590012488608 0.40120912378224594 1.9789124789652777 0.7396869476260163 -0.9567233482598956 0.7289073561668715 0.7801791343434502 -0.6786444311280736 -1.1356235932253291 -1.088707097046943 0.8350996564241923 -1.6792890022594222 0.14444959902077786 1.7570259815979445 -0.13570945449549823 0.35496684239499 0.5294026009864603 0.16248274573923074 0.012088163199730596 1.3599000985851721 0.0484245213222223 0.0919239755794123 1.2966857077206746 0.5232349993387848 -0.16763173848305077 -1.9470923040741381 0.44873910703836384 0.23224536324496448 0.20553495375935704 -0.75707357518447 1.509984238482066 0.3852085588490996 -0.5198030501063323 -1.8503820267274804 -1.022781022538498 0.5927538922603555 -0.6911868864721389 2.4483748278132524 0.04751154090161184 -1.546654508039355 -1.1702084685299865 0.35937468151486474 -0.597524902334213 -1.4637138355719457 0.6591840828742943 -0.21528284426097116 1.1494588514044513 -0.02283315127573699 -0.38359726626569984 0.655449197726811 -0.9562189286815415 -0.06383325470098199 0.052999197194724366 2.0902445158255465 0.4122630835153249 -0.30657174473651155 -1.9456240899105586 1.1992136905368425 0.42990411757328134 -1.5238165142730802 -0.861401835984196 1.9162985010311022 -0.016256735255066542 -0.5017284929667283 -0.03851834635099106 1.981695504270631 -0.21236622785021703 -0.8872356558135184 -0.9138355481005358 2.8736603436569683 0.46703658903969875 -0.35852544811445036 0.20161813858166774 0.9850587604619634 4.2138123249583 -1.1112807180004096 1.6882360718818157 -0.1439839164184998 1.5597453470333213 1.8463673824870024 -0.2660712080789036 -0.8965586510094221 0.1604180684913793 -0.2469726332395487 -0.5726314599305282 -2.132425406122593 1.3862826401192139 -0.39089043889003944 0.8573300790039475 -1.051465099913186 -1.5802564516538478 -1.3008999628414397 -0.48105175075705664 0.6814892614221361 0.9558691985224242 0.434268637167424 -1.393705008416048 -1.8044946980374994 -0.34061545476776633 2.8290376944874263 0.06531450779452597 1.5051307907699802 -0.36227778450678794 1.5639190140572337 -1.2861959179563924 -0.2808117074381466 -0.2629722452244346 0.23352425048984246 -0.4775610631305652 -0.28798572493991315 1.4890548749070254 -0.4077865311095893 0.04583106679501625 1.0254861529475066 -1.320740799606684 0.6355515821267437 0.6405684745856561 -2.4128605124116707 0.8390163131067663 0.0037320371106253193 -0.3446983964893407 -0.11517895280339789 -0.4036072169867676 0.7690586181508902 0.8959580662350721 -0.2242061891166434 -0.768930855266663 -0.8093954973423481 0.13604762728762268 0.27344379822913006 0.5754879792856229 -0.436483880819356 1.8091723299356584 -0.1193258816553334 -0.8415043366168181 0.6184204464111853 0.4261762344196245 -0.20091147185855002 -0.8444103344825601 1.1251749514212206 0.9832861414699655 -1.5155067521086074 0.11262944007451607 1.228051789070056 -0.6537429187997161 -1.1284103237327259 0.01877175285886595 2.3237484474927843 2.3638813389781697 -1.1656401614310476 1.9746058453667992 -1.161773946663213 0.7496265973062511 0.48394471094702096 -0.4864204035615992 -1.3124104096263551 0.48494428356756547 -0.48126106916216377 0.708933397379511 0.41314834944810197 -0.15458387356852496 -0.06922361425669216 -0.48279108580821883 0.29145329230774636 0.3224499763274041 0.5421564285164592 0.12298699232839781 2.3974859560515993 -0.21260202990950047 0.9756276491382464 -0.22370769241711333 0.6674260156228335 -0.1289323764421874 -1.5374083692537437 1.0832649431736348 -1.8422793922341982 -1.2028456943202244 2.2727467304622757 1.6541218104339659 0.2082211441074277 -0.36528004743082765 -0.3348663375266638 -0.3450000454841143 -0.025266583659837995 -0.13878443692503256 1.2417861781333408 -1.2671364658383584 0.05423487035339599 0.8899484537370987 2.9651350463347663 -1.834905952231432 -0.6484296397320078 1.3117425630824482 1.1795395084204399 0.8420003612335926 1.341079437775597 0.15220575676546808 1.5039051285847704 -0.47362279186192646 -0.7887096151399238 -0.5807080279072794 -0.7823140818646771 -1.1726994914435516 0.3018100801818166 1.5397693039382265 -0.6364588683228299 0.642102899002182 -0.6652417795049909 0.8557618282509444 -0.9110322945113847 -0.28577000776269124 0.6224131254942126 0.7427151622114915 -0.5415305582893305 -1.115444603797032 0.03537091414461139 0.20981323380998884 0.01283612485591387 -0.9981613651646505 1.239483088483433 -0.4523906094583386 0.5769606355924064 -0.3234600841900946 -1.018992509983464 0.7740738539843606 -0.46739322245812254 -0.632460486843469 -0.4819749354935387 1.2019343100843936 0.11323315490024932 -1.6593042891121386 0.35303137801367357 -0.8817280079843179 -0.5184734471336566 -1.556516407987686 1.339441062665522 -0.6180413848020742 0.9070168501514566 0.187188671094152 -0.783302809112706 -0.4661890324001029 -0.8537071790266229 1.0849821950871157 -0.06167898938588772 2.0797366237959305 -0.14710286243167367 -0.8373648883564451 0.9399492507729278 -0.8062496939347557 -0.680252255192928 -0.2143000631174463 1.5459615647192946 -0.021890657441965018 -1.8145109586748702 -1.6271181546529583 -0.9382704529475581 -0.7174785851399963 0.27002792114838997 -0.9016340961393927 -1.4011334138060634 1.6340425285784315 0.9611509058915783 -0.30849632703477536 0.4063878946849955 -0.47332495299780547 1.3496147304221118 0.8012551617498438 0.4104806317558418 0.6736945223174385 -1.95774433972608 0.8712235313372828 -0.16665038755318864 0.2988102999322509 -0.143669354103864 0.17998809120526085 -1.0132028958210304 -0.21739333566757923 -1.0861828592504825 -0.12395583693081977 -0.7594253867309773 1.302091361959856 1.1677793556577858 -0.4857630679438397 0.17809168027727745 0.3159108160601348 0.47370849698772666 -0.9828199690188345 -0.5437051571311052 0.7318298416704875 0.14123172557134633 -0.8040826400437749 0.5623726412653514 -1.075157477359375 -0.6311697902527733 -0.03099672839678242 -0.07133961054843711 -0.8675370075282236 2.018199378677072 1.1692943186450093 0.9255723785797586 -0.8592445209506233 -0.046578099379909525 0.20592173109257564 0.9353416063037802 -0.41124284875700823 0.6322249870367094 -0.16163065988679484 -0.239831394660254 0.023527996925009766 1.6578987898651298 0.5116280937978281 -0.37389725022128784 0.9407911301618803 1.356574663979588 -0.3122776326956178 -0.49896570693254205 0.1731715994054969 -0.014506170093003975 0.2465138291235658 0.001203613167539743 -0.3239826092848641 -0.2242814586532949 -0.04567747761065665 -1.3297122139883415 0.03914657105890537 0.5120826293701929 0.264708571231234 -0.7089339694758252 -1.006696900728785 0.7591135220448139 0.593003000955443 -0.3005246696721331 0.16449172623218777 1.3283460176606778 1.5607430817774552 -0.4534322777845912 0.7594481458881015 0.6610397553088062 0.5500328636019487 -0.38540943675174033 -0.7035254106276332 -2.1495837257312473 0.7221328375359383 0.6026172528304454 -1.5811790590748052 0.3062239938678365 0.06220550839593449 1.9758363197091495 0.4399095241697214 -0.29057507857015574 -1.1496175260989978 1.1445544133238337 1.0460581211843463 0.9779001114573403 -0.25348482288414337 1.347600244432023 0.056602594822393215 0.3827522104569827 0.9381546652662179 0.717046210895257 -0.20258453766046394 1.6512089114860522 -0.753012852887744 -1.0140776494129853 1.1626295452606243 -1.175621082994374 0.046243346191019705 -0.023219401793611087 1.9256284644581418 1.1328065131940102 -0.08158546793787783 -0.20702307187472552 -0.2176319158741729 0.2922601745961531 -0.8894882445454682 1.5888142286627096 -1.0193056247066854 1.0069441299018116 -1.6148791713108825 0.755009747956202 -1.7069934962704503 -1.6233523852305833 0.034869320245691 0.11147808595265644 -0.5621907014920716 0.8240521582494308 -0.7377362720381306 -0.44059962816849196 -0.04922160420736285 0.29647494453246376 0.707815333910802 1.0283102358458458 -0.2963704067204993 -1.0967744417591856 0.2748802578067312 1.7293681028891177 -0.9371537458291129 red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/000077500000000000000000000000001402627751500252265ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/blue.txt000066400000000000000000000122071402627751500267200ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points1  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│  └────────────────────────────────────────┘  -1  3red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/canvassize.txt000066400000000000000000000012131402627751500301320ustar00rootroot00000000000000 Scatter  ┌──────────┐ 2 │' :      '│  │'':'''''''│  │  :       │  │  :       │ -5 │. :      .│  └──────────┘  -1  3red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/default.txt000066400000000000000000000120061402627751500274120ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│  └────────────────────────────────────────┘  -1  3red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/densityplot.txt000066400000000000000000000144401402627751500303500ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 5 │                                        │  │                             ░░         │  │                        ░░░ ░ ░░  ░░    │  │                   ░ ░░░░░░░▒▒░▒░░░▒    │  │                  ░░░▒▒░▒▓▒▒▒▒▒░░▓░░░ ░ │  │           ░   ░░░░▒░▒░▒▒▒▒▓▒▓▓▓▒▓▒░░░░░│  │         ░ ░░░░░░░░▒▒░▒▒▓▓▒▒▓▓▓▓▒▓░░░░░ │  │         ░░░░░▒░░▒░▓▒░▒▒▒▓░▒▒▒▓▒░▒▒ ▒   │  │        ░░▒▒░▒▒█▓▓▒▒▒░▓▒░▒▒▒▒ ░░░░ ░    │  │       ░░░░░▒▒▓▓▒▒▓█▓▓█▒░▒▒░ ░░   ░     │  │       ░░░░▒▒▒▒▒▒▒▓▒▒▒▒░░░░░            │  │        ░  ░░▒░▒░▒▒▒░▒▒░░               │  │         ░ ░░░░░░ ░░  ░                 │  │                                        │ -3 │                                        │  └────────────────────────────────────────┘  -3  4red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/densityplot_parameters.txt000066400000000000000000000146561402627751500326040ustar00rootroot00000000000000 Title  ┌────────────────────────────────────────┐ 5 │                                        │ foo  │                             ░░         │ bar  │                        ░░░ ░ ░░  ░░    │  │                   ░ ░░░░░░░▒▒░▒░░░▒    │  │                  ░░░▒▒░▒▓▒▒▒▒▒░░▓░░░ ░ │  │           ░   ░░░░▒░▒░▒▒▒▒▓▒▓▓▓▒▓▒░░░░░│  │         ░ ░░░░░░░░▒▒░▒▒▓▓▒▒▓▓▓▓▒▓░░░░░ │  │         ░░░░░▒░░▒░▓▒░▒▒▒▓░▒▒▒▓▒░▒▒ ▒   │  │        ░░▒▒░▒▒█▓▓▒▒▒░▓▒░▒▒▒▒ ░░░░ ░    │  │       ░░░░░▒▒▓▓▒▒▓█▓▓█▒░▒▒░ ░░   ░     │  │       ░░░░▒▒▒▒▒▒▒▓▒▒▒▒░░░░░            │  │        ░  ░░▒░▒░▒▒▒░▒▒░░               │  │         ░ ░░░░░░ ░░  ░                 │  │                                        │ -3 │                                        │  └────────────────────────────────────────┘  -3  4  xred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/limits.txt000066400000000000000000000120521402627751500272700ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2.5 │⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -5.5 │⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀│  └────────────────────────────────────────┘  -1.5  3.5red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/nocolor.txt000066400000000000000000000047601402627751500274510ustar00rootroot00000000000000 Scatter ┌────────────────────────────────────────┐ 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points1 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points2 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀│ points3 │⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ y │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│ └────────────────────────────────────────┘ -1 3 xred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/nogrid.txt000066400000000000000000000120061402627751500272500ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│  └────────────────────────────────────────┘  -1  3red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/parameters1.txt000066400000000000000000000123731402627751500302210ustar00rootroot00000000000000 Scatter  ┌────────────────────────────────────────┐ 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points1  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ y  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│  └────────────────────────────────────────┘  -1  3  xred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/parameters2.txt000066400000000000000000000124271402627751500302220ustar00rootroot00000000000000 Scatter  ┌────────────────────────────────────────┐ 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points1  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points2  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ y  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│  └────────────────────────────────────────┘  -1  3  xred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/parameters3.txt000066400000000000000000000124631402627751500302230ustar00rootroot00000000000000 Scatter  ┌────────────────────────────────────────┐ 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points1  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ points2  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀│ points3  │⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ y  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -5 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│  └────────────────────────────────────────┘  -1  3  xred-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/range1.txt000066400000000000000000000120061402627751500271430ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 10 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ 6 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  1  5red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/range2.txt000066400000000000000000000120061402627751500271440ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 10 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ 6 │⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  11  15red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/scale1.txt000066400000000000000000000121401402627751500271350ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ -14.998 │⠁⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -15.005 │⡀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  -1000  4000red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/scale2.txt000066400000000000000000000120741402627751500271440ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2000 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈│ -6000 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  14.999  15.003red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/scale3.txt000066400000000000000000000125721402627751500271500ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 1.2796649117521434e+218 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -1.2796649117521434e+218 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  └────────────────────────────────────────┘  0  2red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/scatterplot/y_only.txt000066400000000000000000000120061402627751500272770ustar00rootroot00000000000000 ┌────────────────────────────────────────┐ 2 │⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒⠒│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│  │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ -5 │⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀│  └────────────────────────────────────────┘  1  5red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/stemplot/000077500000000000000000000000001402627751500245315ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/stemplot/b2b_integers.txt000066400000000000000000000006071402627751500276420ustar00rootroot00000000000000 98652211 | 0 | 145589 95543000 | 1 | 11344889 4410 | 2 | 23344666788 9743221100 | 3 | 3358888 98866432211110 | 4 | 11189 5310 | 5 | 0133377778 8764331 | 6 | 012356789 8553210 | 7 | 025569 944400 | 8 | 1558999 98755442210 | 9 | 0123466899 0 | 10 | 0 Key: 1|0 = 10 The decimal is 1 digit(s) to the right of | red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/stemplot/b2b_strings.txt000066400000000000000000000002011402627751500275010ustar00rootroot00000000000000png_ | a | p eaa | b | | c | aah o | d | g | e | l | f | lr | g | n | h | | i | u | j | u red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/stemplot/float.txt000066400000000000000000000002201402627751500263710ustar00rootroot00000000000000-1 | 0077 -0 | 0000234556677788999 0 | 01222356788899999 1 | 034889 2 | 127 3 | 1 Key: 1|0 = 10 The decimal is 1 digit(s) to the right of | red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/stemplot/float_scale1.txt000066400000000000000000000002061402627751500276250ustar00rootroot00000000000000-4 | 0 -3 | 05 -2 | 05 -1 | 05 -0 | 5 0 | 05 1 | 05 2 | 05 3 | 05 4 | 0 Key: 1|0 = 1 The decimal is 0 digit(s) to the right of | red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/stemplot/ints_divider.txt000066400000000000000000000003631402627751500277570ustar00rootroot00000000000000 0 😄 11225689 1 😄 00034559 2 😄 0144 3 😄 0011223479 4 😄 01111223466889 5 😄 0135 6 😄 1334678 7 😄 0123558 8 😄 004449 9 😄 01224455789 10 😄 0 Key: 1😄0 = 10 The decimal is 1 digit(s) to the right of 😄 red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/stemplot/pos_ints.txt000066400000000000000000000003141402627751500271260ustar00rootroot00000000000000 0 | 11225689 1 | 00034559 2 | 0144 3 | 0011223479 4 | 01111223466889 5 | 0135 6 | 1334678 7 | 0123558 8 | 004449 9 | 01224455789 10 | 0 Key: 1|0 = 10 The decimal is 1 digit(s) to the right of | red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/stemplot/posneg_ints.txt000066400000000000000000000010001402627751500276110ustar00rootroot00000000000000-10 | 0 -9 | 0011222444456789999 -8 | 11233455789 -7 | 0001112334556678999 -6 | 1344556666789 -5 | 1223334455666779 -4 | 012334566667778889 -3 | 0001244556777788 -2 | 0111233445556666778889999 -1 | 23345566677899 -0 | 123333345566677888999 0 | 001135677888999 1 | 0333446678999 2 | 0022334567779 3 | 0123457889 4 | 44799 5 | 01334455666999 6 | 22245677889 7 | 011233556777899 8 | 012344444555666777999 9 | 113345689 10 | 0 Key: 1|0 = 10 The decimal is 1 digit(s) to the right of | red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/stemplot/range.txt000066400000000000000000000006351402627751500263720ustar00rootroot00000000000000-10 | 0 -9 | 0123456789 -8 | 0123456789 -7 | 0123456789 -6 | 0123456789 -5 | 0123456789 -4 | 0123456789 -3 | 0123456789 -2 | 0123456789 -1 | 0123456789 -0 | 123456789 0 | 0123456789 1 | 0123456789 2 | 0123456789 3 | 0123456789 4 | 0123456789 5 | 0123456789 6 | 0123456789 7 | 0123456789 8 | 0123456789 9 | 0123456789 10 | 0 Key: 1|0 = 10 The decimal is 1 digit(s) to the right of | red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/stemplot/strings.txt000066400000000000000000000000741402627751500267640ustar00rootroot00000000000000a | _gnp b | aae c | d | o e | g f | g | h | i | j | u red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/stemplot/strings_2c.txt000066400000000000000000000001001402627751500273360ustar00rootroot00000000000000a_ | _ ag | e an | t ap | p ba | rz be | e do | g eg | g ju | n red-data-tools-unicode_plot.rb-b4b6a31/test/fixtures/stemplot/strings_pad.txt000066400000000000000000000000741402627751500276100ustar00rootroot00000000000000a | ?gnp b | aae c | d | o e | g f | g | h | i | j | u red-data-tools-unicode_plot.rb-b4b6a31/test/helper.rb000066400000000000000000000001061402627751500226120ustar00rootroot00000000000000require_relative "helper/fixture" require_relative "helper/with_term" red-data-tools-unicode_plot.rb-b4b6a31/test/helper/000077500000000000000000000000001402627751500222705ustar00rootroot00000000000000red-data-tools-unicode_plot.rb-b4b6a31/test/helper/fixture.rb000066400000000000000000000004071402627751500243040ustar00rootroot00000000000000require 'pathname' module Helper module Fixture def fixture_dir test_dir = Pathname(File.expand_path("../..", __FILE__)) test_dir.join("fixtures") end def fixture_path(*components) fixture_dir.join(*components) end end end red-data-tools-unicode_plot.rb-b4b6a31/test/helper/with_term.rb000066400000000000000000000010661402627751500246220ustar00rootroot00000000000000require 'stringio' module Helper module WithTerm def with_sio(tty: true) sio = StringIO.new def sio.tty?; true; end if tty result = yield(sio) sio.close [result, sio.string] end def with_term(tty=true) with_sio(tty: tty) do |sio| begin orig_stdout, $stdout = $stdout, sio orig_env = ENV.to_h.dup ENV['TERM'] = 'xterm-256color' yield ensure $stdout = orig_stdout ENV.replace(orig_env) if orig_env end end end end end red-data-tools-unicode_plot.rb-b4b6a31/test/run-test.rb000066400000000000000000000004201402627751500231130ustar00rootroot00000000000000base_dir = File.expand_path("../..", __FILE__) lib_dir = File.join(base_dir, "lib") test_dir = File.join(base_dir, "test") $LOAD_PATH.unshift(lib_dir) require "test/unit" require "unicode_plot" require_relative "helper" exit Test::Unit::AutoRunner.run(true, test_dir) red-data-tools-unicode_plot.rb-b4b6a31/test/test-barplot.rb000066400000000000000000000147111402627751500237620ustar00rootroot00000000000000class BarplotTest < Test::Unit::TestCase include Helper::Fixture include Helper::WithTerm sub_test_case("UnicodePlot.barplot") do test("errors") do assert_raise(ArgumentError) do UnicodePlot.barplot([:a], [-1, 2]) end assert_raise(ArgumentError) do UnicodePlot.barplot([:a, :b], [-1, 2]) end end sub_test_case("with invalid arguments") do test("unknown border type") do assert_raise(ArgumentError.new("unknown border type: invalid_border_name")) do UnicodePlot.barplot(data: {bar: 23, foo: 37}, border: :invalid_border_name) end end end test("colored") do data = { bar: 23, foo: 37 } plot = UnicodePlot.barplot(data: data) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/default.txt").read, output) plot = UnicodePlot.barplot([:bar, :foo], [23, 37]) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/default.txt").read, output) end test("not colored") do data = { bar: 23, foo: 37 } plot = UnicodePlot.barplot(data: data) output = StringIO.open do |sio| sio.print(plot) sio.close sio.string end assert_equal(fixture_path("barplot/nocolor.txt").read, output) end test("mixed") do data = { bar: 23.0, 2.1 => 10, foo: 37.0 } plot = UnicodePlot.barplot(data: data) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/default_mixed.txt").read, output) end sub_test_case("xscale: :log10") do test("default") do plot = UnicodePlot.barplot( [:a, :b, :c, :d, :e], [0, 1, 10, 100, 1000], title: "Logscale Plot", xscale: :log10 ) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/log10.txt").read, output) end test("with custom label") do plot = UnicodePlot.barplot( [:a, :b, :c, :d, :e], [0, 1, 10, 100, 1000], title: "Logscale Plot", xlabel: "custom label", xscale: :log10 ) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/log10_label.txt").read, output) end end sub_test_case("with parameters") do test("parameters1") do plot = UnicodePlot.barplot( ["Paris", "New York", "Moskau", "Madrid"], [2.244, 8.406, 11.92, 3.165], title: "Relative sizes of cities", xlabel: "population [in mil]", color: :blue, margin: 7, padding: 3 ) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/parameters1.txt").read, output) end test("parameters1_nolabels") do plot = UnicodePlot.barplot( ["Paris", "New York", "Moskau", "Madrid"], [2.244, 8.406, 11.92, 3.165], title: "Relative sizes of cities", xlabel: "population [in mil]", color: :blue, margin: 7, padding: 3, labels: false ) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/parameters1_nolabels.txt").read, output) end test("parameters2") do plot = UnicodePlot.barplot( ["Paris", "New York", "Moskau", "Madrid"], [2.244, 8.406, 11.92, 3.165], title: "Relative sizes of cities", xlabel: "population [in mil]", color: :yellow, border: :solid, symbol: "=", width: 60 ) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/parameters2.txt").read, output) end end test("ranges") do plot = UnicodePlot.barplot(2..6, 11..15) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/ranges.txt").read, output) end test("all zeros") do plot = UnicodePlot.barplot([5, 4, 3, 2, 1], [0, 0, 0, 0, 0]) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/edgecase_zeros.txt").read, output) end test("one large") do plot = UnicodePlot.barplot([:a, :b, :c, :d], [1, 1, 1, 1000000]) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/edgecase_onelarge.txt").read, output) end end sub_test_case("UnicodePlot.barplot!") do test("errors") do plot = UnicodePlot.barplot([:bar, :foo], [23, 37]) assert_raise(ArgumentError) do UnicodePlot.barplot!(plot, ["zoom"], [90, 80]) end assert_raise(ArgumentError) do UnicodePlot.barplot!(plot, ["zoom", "boom"], [90]) end UnicodePlot.barplot!(plot, "zoom", 90.1) end test("return value") do plot = UnicodePlot.barplot([:bar, :foo], [23, 37]) assert_same(plot, UnicodePlot.barplot!(plot, ["zoom"], [90])) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/default2.txt").read, output) plot = UnicodePlot.barplot([:bar, :foo], [23, 37]) assert_same(plot, UnicodePlot.barplot!(plot, "zoom", 90)) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/default2.txt").read, output) plot = UnicodePlot.barplot([:bar, :foo], [23, 37]) assert_same(plot, UnicodePlot.barplot!(plot, data: { zoom: 90 })) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/default2.txt").read, output) end test("ranges") do plot = UnicodePlot.barplot(2..6, 11..15) assert_same(plot, UnicodePlot.barplot!(plot, 9..10, 20..21)) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("barplot/ranges2.txt").read, output) end end end red-data-tools-unicode_plot.rb-b4b6a31/test/test-boxplot.rb000066400000000000000000000064111402627751500240040ustar00rootroot00000000000000class BoxplotTest < Test::Unit::TestCase include Helper::Fixture include Helper::WithTerm sub_test_case("UnicodePlot.boxplot") do sub_test_case("with invalid arguments") do test("unknown border type") do assert_raise(ArgumentError.new("unknown border type: invalid_border_name")) do UnicodePlot.boxplot([1, 2, 3, 4, 5], border: :invalid_border_name) end end end sub_test_case("print to tty") do test("without name") do plot = UnicodePlot.boxplot([1, 2, 3, 4, 5]) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("boxplot/default.txt").read, output) end test("with name") do plot = UnicodePlot.boxplot("series1", [1, 2, 3, 4, 5]) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("boxplot/default_name.txt").read, output) end end sub_test_case("with parameters") do def setup @plot = UnicodePlot.boxplot("series1", [1, 2, 3, 4, 5], title: "Test", xlim: [-1, 8], color: :blue, width: 50, border: :solid, xlabel: "foo") end test("print to tty") do _, output = with_term { @plot.render($stdout, newline: false) } assert_equal(fixture_path("boxplot/default_parameters.txt").read, output) end test("print to non-tty IO") do output = StringIO.open do |sio| @plot.render(sio, newline: false) sio.close sio.string end assert_equal(fixture_path("boxplot/default_parameters_nocolor.txt").read, output) end end data([5, 6, 10, 20, 40].map.with_index {|max_x, i| ["max_x: #{max_x}", [i + 1, max_x]] }.to_h) test("with scaling") do i, max_x = data plot = UnicodePlot.boxplot([1, 2, 3, 4, 5], xlim: [0, max_x]) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("boxplot/scale#{i}.txt").read, output) end test("multi-series") do plot = UnicodePlot.boxplot(["one", "two"], [ [1, 2, 3, 4, 5], [2, 3, 4, 5, 6, 7, 8, 9] ], title: "Multi-series", xlabel: "foo", color: :yellow) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("boxplot/multi1.txt").read, output) assert_same(plot, UnicodePlot.boxplot!(plot, "one more", [-1, 2, 3, 4, 11])) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("boxplot/multi2.txt").read, output) assert_same(plot, UnicodePlot.boxplot!(plot, [4, 2, 2.5, 4, 14], name: "last one")) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("boxplot/multi3.txt").read, output) end end end red-data-tools-unicode_plot.rb-b4b6a31/test/test-canvas.rb000066400000000000000000000124501402627751500235700ustar00rootroot00000000000000module CanvasTestCases include Helper::Fixture include Helper::WithTerm CANVAS_CLASSES = { ascii: UnicodePlot::AsciiCanvas, braille: UnicodePlot::BrailleCanvas, density: UnicodePlot::DensityCanvas, dot: UnicodePlot::DotCanvas, block: UnicodePlot::BlockCanvas }.freeze def self.included(mod) mod.module_eval do def setup # seed!(1337) # x1, y1 = rand(20), rand(20) # x2, y2 = rand(50), rand(50) @x1 = [0.226582, 0.504629, 0.933372, 0.522172, 0.505208, 0.0997825, 0.0443222, 0.722906, 0.812814, 0.245457, 0.11202, 0.000341996, 0.380001, 0.505277, 0.841177, 0.326561, 0.810857, 0.850456, 0.478053, 0.179066] @y1 = [0.44701, 0.219519, 0.677372, 0.746407, 0.735727, 0.574789, 0.538086, 0.848053, 0.110351, 0.796793, 0.987618, 0.801862, 0.365172, 0.469959, 0.306373, 0.704691, 0.540434, 0.405842, 0.805117, 0.014829] @x2 = [0.486366, 0.911547, 0.900818, 0.641951, 0.546221, 0.036135, 0.931522, 0.196704, 0.710775, 0.969291, 0.32546, 0.632833, 0.815576, 0.85278, 0.577286, 0.887004, 0.231596, 0.288337, 0.881386, 0.0952668, 0.609881, 0.393795, 0.84808, 0.453653, 0.746048, 0.924725, 0.100012, 0.754283, 0.769802, 0.997368, 0.0791693, 0.234334, 0.361207, 0.1037, 0.713739, 0.510725, 0.649145, 0.233949, 0.812092, 0.914384, 0.106925, 0.570467, 0.594956, 0.118498, 0.699827, 0.380363, 0.843282, 0.28761, 0.541469, 0.568466] @y2 = [0.417777, 0.774845, 0.00230619, 0.907031, 0.971138, 0.0524795, 0.957415, 0.328894, 0.530493, 0.193359, 0.768422, 0.783238, 0.607772, 0.0261113, 0.0849032, 0.461164, 0.613067, 0.785021, 0.988875, 0.131524, 0.0657328, 0.466453, 0.560878, 0.925428, 0.238691, 0.692385, 0.203687, 0.441146, 0.229352, 0.332706, 0.113543, 0.537354, 0.965718, 0.437026, 0.960983, 0.372294, 0.0226533, 0.593514, 0.657878, 0.450696, 0.436169, 0.445539, 0.0534673, 0.0882236, 0.361795, 0.182991, 0.156862, 0.734805, 0.166076, 0.1172] canvas_class = CANVAS_CLASSES[self.class::CANVAS_NAME] @canvas = canvas_class.new(40, 10, origin_x: 0, origin_y: 0, plot_width: 1, plot_height: 1) end test("empty") do if self.class::CANVAS_NAME == :braille _, output = with_term { @canvas.show(UnicodePlot::IOContext.new($stdout)) } assert_equal(fixture_path("canvas/empty_braille_show.txt").read, output) else _, output = with_term { @canvas.show(UnicodePlot::IOContext.new($stdout)) } assert_equal(fixture_path("canvas/empty_show.txt").read, output) end end sub_test_case("with drawing") do def setup super @canvas.line!(0, 0, 1, 1, :blue) @canvas.points!(@x1, @y1, :white) @canvas.pixel!(2, 4, :cyan) @canvas.points!(@x2, @y2, :red) @canvas.line!(0, 1, 0.5, 0, :green) @canvas.point!(0.05, 0.3, :cyan) @canvas.lines!([1, 2], [2, 1]) @canvas.line!(0, 0, 9, 9999, :yellow) @canvas.line!(0, 0, 1, 1, :blue) @canvas.line!(0.1, 0.7, 0.9, 0.6, :red) end test("print_row") do _, output = with_term { @canvas.print_row(UnicodePlot::IOContext.new($stdout), 2) } assert_equal(fixture_path("canvas/#{self.class::CANVAS_NAME}_printrow.txt").read, output) end test("print") do _, output = with_term { @canvas.print(UnicodePlot::IOContext.new($stdout)) } assert_equal(fixture_path("canvas/#{self.class::CANVAS_NAME}_print.txt").read, output) end test("print_nocolor") do _, output = with_term(false) { @canvas.print(UnicodePlot::IOContext.new($stdout)) } assert_equal(fixture_path("canvas/#{self.class::CANVAS_NAME}_print_nocolor.txt").read, output) end test("sow") do _, output = with_term { @canvas.show(UnicodePlot::IOContext.new($stdout)) } assert_equal(fixture_path("canvas/#{self.class::CANVAS_NAME}_show.txt").read, output) end test("show_nocolor") do _, output = with_term(false) { @canvas.show(UnicodePlot::IOContext.new($stdout)) } assert_equal(fixture_path("canvas/#{self.class::CANVAS_NAME}_show_nocolor.txt").read, output) end end end end end class BrailleCanvasTest < Test::Unit::TestCase CANVAS_NAME = :braille include CanvasTestCases end class AsciiCanvasTest < Test::Unit::TestCase CANVAS_NAME = :ascii include CanvasTestCases end class DensityCanvasTest < Test::Unit::TestCase CANVAS_NAME = :density include CanvasTestCases end class DotCanvasTest < Test::Unit::TestCase CANVAS_NAME = :dot include CanvasTestCases end class BlockCanvasTest < Test::Unit::TestCase CANVAS_NAME = :block include CanvasTestCases end red-data-tools-unicode_plot.rb-b4b6a31/test/test-densityplot.rb000066400000000000000000000030551402627751500246740ustar00rootroot00000000000000class DensityplotTest < Test::Unit::TestCase include Helper::Fixture include Helper::WithTerm def setup randn = fixture_path("randn_1338_2000.txt").read.each_line.map(&:to_f) @dx = randn[0, 1000].compact @dy = randn[1000, 1000].compact assert_equal(1000, @dx.length) assert_equal(1000, @dy.length) end sub_test_case("with invalid arguments") do test("unknown border type") do assert_raise(ArgumentError.new("unknown border type: invalid_border_name")) do UnicodePlot.densityplot(@dx, @dy, border: :invalid_border_name) end end end test("default") do plot = UnicodePlot.densityplot(@dx, @dy) dx2 = @dx.map {|x| x + 2 } dy2 = @dy.map {|y| y + 2 } assert_same(plot, UnicodePlot.densityplot!(plot, dx2, dy2)) _, output = with_term { plot.render($stdout, newline: false) } expected = fixture_path("scatterplot/densityplot.txt").read assert_equal(output, expected) end test("parameters") do plot = UnicodePlot.densityplot(@dx, @dy, name: "foo", color: :red, title: "Title", xlabel: "x") dx2 = @dx.map {|x| x + 2 } dy2 = @dy.map {|y| y + 2 } assert_same(plot, UnicodePlot.densityplot!(plot, dx2, dy2, name: "bar")) _, output = with_term { plot.render($stdout, newline: false) } expected = fixture_path("scatterplot/densityplot_parameters.txt").read assert_equal(output, expected) end end red-data-tools-unicode_plot.rb-b4b6a31/test/test-histogram.rb000066400000000000000000000107161402627751500243150ustar00rootroot00000000000000class HistogramTest < Test::Unit::TestCase include Helper::Fixture include Helper::WithTerm sub_test_case("UnicodePlot.histogram") do def setup @x = fixture_path("randn.txt").read.lines.map(&:to_f) end sub_test_case("with invalid arguments") do test("unknown border type") do assert_raise(ArgumentError.new("unknown border type: invalid_border_name")) do UnicodePlot.histogram(@x, border: :invalid_border_name) end end end test("default") do plot = UnicodePlot.histogram(@x) _, output = with_term { plot.render($stdout) } assert_equal("\n", output[-1]) assert_equal(fixture_path("histogram/default.txt").read, output.chomp) end test("nocolor") do plot = UnicodePlot.histogram(@x) output = StringIO.open do |sio| plot.render(sio) sio.close sio.string end assert_equal("\n", output[-1]) assert_equal(fixture_path("histogram/default_nocolor.txt").read, output.chomp) end test("losed: :left") do plot = UnicodePlot.histogram(@x, closed: :left) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("histogram/default.txt").read, output) end test("x 100") do x100 = @x.map {|a| a * 100 } plot = UnicodePlot.histogram(x100) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("histogram/default_1e2.txt").read, output) end test("x0.01") do x100 = @x.map {|a| a * 0.01 } plot = UnicodePlot.histogram(x100) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("histogram/default_1e-2.txt").read, output) end test("xscale: :log10") do plot = UnicodePlot.histogram(@x, xscale: :log10) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("histogram/log10.txt").read, output) end test("xscale: :log10 with custom label") do plot = UnicodePlot.histogram(@x, xscale: :log10, xlabel: "custom label") _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("histogram/log10_label.txt").read, output) end test("nbins: 5, closed: :right") do plot = UnicodePlot.histogram(@x, nbins: 5, closed: :right) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("histogram/hist_params.txt").read, output) end test("with title, xlabel, color, margin, and padding") do plot = UnicodePlot.histogram(@x, title: "My Histogram", xlabel: "Absolute Frequency", color: :blue, margin: 7, padding: 3) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("histogram/parameters1.txt").read, output) end test("with title, xlabel, color, margin, padding, and labels: false") do plot = UnicodePlot.histogram(@x, title: "My Histogram", xlabel: "Absolute Frequency", color: :blue, margin: 7, padding: 3, labels: false) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("histogram/parameters1_nolabels.txt").read, output) end test("with title, xlabel, color, border, symbol, and width") do plot = UnicodePlot.histogram(@x, title: "My Histogram", xlabel: "Absolute Frequency", color: :yellow, border: :solid, symbol: "=", width: 50) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("histogram/parameters2.txt").read, output) end test("issue #24") do assert_nothing_raised do UnicodePlot.histogram([1, 2]) end end end end red-data-tools-unicode_plot.rb-b4b6a31/test/test-lineplot.rb000066400000000000000000000251761402627751500241540ustar00rootroot00000000000000require 'date' class LineplotTest < Test::Unit::TestCase include Helper::Fixture include Helper::WithTerm sub_test_case("UnicodePlot.lineplot") do def setup @x = [-1, 1, 3, 3, -1] @y = [2, 0, -5, 2, -5] end test("ArgumentError") do assert_raise(ArgumentError) { UnicodePlot.lineplot() } assert_raise(ArgumentError) { UnicodePlot.lineplot(Math.method(:sin), @x, @y) } assert_raise(ArgumentError) { UnicodePlot.lineplot([], 0, 3) } assert_raise(ArgumentError) { UnicodePlot.lineplot([], @x) } assert_raise(ArgumentError) { UnicodePlot.lineplot([]) } assert_raise(ArgumentError) { UnicodePlot.lineplot([1, 2], [1, 2, 3]) } assert_raise(ArgumentError) { UnicodePlot.lineplot([1, 2, 3], [1, 2]) } assert_raise(ArgumentError) { UnicodePlot.lineplot([1, 2, 3], 1..2) } assert_raise(ArgumentError) { UnicodePlot.lineplot(1..3, [1, 2]) } assert_raise(ArgumentError) { UnicodePlot.lineplot(1..3, 1..2) } end sub_test_case("with invalid arguments") do test("unknown border type") do assert_raise(ArgumentError.new("unknown border type: invalid_border_name")) do UnicodePlot.lineplot(@x, @y, border: :invalid_border_name) end end end sub_test_case("with numeric array") do test("default") do plot = UnicodePlot.lineplot(@x, @y) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/default.txt").read, output) plot = UnicodePlot.lineplot(@x.map(&:to_f), @y) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/default.txt").read, output) plot = UnicodePlot.lineplot(@x, @y.map(&:to_f)) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/default.txt").read, output) end test("y only") do plot = UnicodePlot.lineplot(@y) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/y_only.txt").read, output) end test("range") do plot = UnicodePlot.lineplot(6..10) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/range1.txt").read, output) plot = UnicodePlot.lineplot(11..15, 6..10) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/range2.txt").read, output) end end test("axis scaling and offsets") do plot = UnicodePlot.lineplot( @x.map {|x| x * 1e+3 + 15 }, @y.map {|y| y * 1e-3 - 15 } ) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/scale1.txt").read, output) plot = UnicodePlot.lineplot( @x.map {|x| x * 1e-3 + 15 }, @y.map {|y| y * 1e+3 - 15 } ) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/scale2.txt").read, output) tx = [-1.0, 2, 3, 700000] ty = [1.0, 2, 9, 4000000] plot = UnicodePlot.lineplot(tx, ty) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/scale3.txt").read, output) plot = UnicodePlot.lineplot(tx, ty, width: 5, height: 5) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/scale3_small.txt").read, output) end test("dates") do d = [*Date.new(1999, 12, 31) .. Date.new(2000, 1, 30)] v = 0.step(3*Math::PI, by: 3*Math::PI / 30) y1 = v.map(&Math.method(:sin)) plot = UnicodePlot.lineplot(d, y1, name: "sin", height: 5, xlabel: "date") _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/dates1.txt").read, output) y2 = v.map(&Math.method(:cos)) assert_same(plot, UnicodePlot.lineplot!(plot, d, y2, name: "cos")) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/dates2.txt").read, output) end test("line with intercept and slope") do plot = UnicodePlot.lineplot(@y) assert_same(plot, UnicodePlot.lineplot!(plot, -3, 1)) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/slope1.txt").read, output) assert_same(plot, UnicodePlot.lineplot!(plot, -4, 0.5, color: :cyan, name: "foo")) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/slope2.txt").read, output) end test("limits") do plot = UnicodePlot.lineplot(@x, @y, xlim: [-1.5, 3.5], ylim: [-5.5, 2.5]) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/limits.txt").read, output) end test("nogrid") do plot = UnicodePlot.lineplot(@x, @y, grid: false) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/nogrid.txt").read, output) end test("color: :blue") do plot = UnicodePlot.lineplot(@x, @y, color: :blue, name: "points1") _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/blue.txt").read, output) end test("parameters") do plot = UnicodePlot.lineplot(@x, @y, name: "points1", title: "Scatter", xlabel: "x", ylabel: "y") _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/parameters1.txt").read, output) assert_same(plot, UnicodePlot.lineplot!(plot, [0.5, 1, 1.5], name: "points2")) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/parameters2.txt").read, output) assert_same(plot, UnicodePlot.lineplot!(plot, [-0.5, 0.5, 1.5], [0.5, 1, 1.5], name: "points3")) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/parameters3.txt").read, output) output = StringIO.open do |sio| plot.render(sio, newline: false) sio.close sio.string end assert_equal(fixture_path("lineplot/nocolor.txt").read, output) end test("canvas size") do plot = UnicodePlot.lineplot(@x, @y, title: "Scatter", canvas: :dot, width: 10, height: 5) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/canvassize.txt").read, output) end test("fixed line y-interpolation bug (issue 32)") do ys = [261, 272, 277, 283, 289, 294, 298, 305, 309, 314, 319, 320, 322, 323, 324] xs = ys.size.times.to_a plot = UnicodePlot.lineplot(xs, ys, height: 26, ylim: [0, 700]) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/issue32_fix.txt").read, output) end # TODO: functions sub_test_case("stairs") do def setup @sx = [1, 2, 4, 7, 8] @sy = [1, 3, 4, 2, 7] end test("pre") do plot = UnicodePlot.stairs(@sx, @sy, style: :pre) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/stairs_pre.txt").read, output) end test("post") do # inferred post plot = UnicodePlot.stairs(@sx, @sy) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/stairs_post.txt").read, output) # explicit post plot = UnicodePlot.stairs(@sx, @sy, style: :post) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/stairs_post.txt").read, output) end test("with parameters") do plot = UnicodePlot.stairs(@sx, @sy, title: "Foo", color: :red, xlabel: "x", name: "1") sx2 = @sx.map { |val| val - 0.2 } sy2 = @sy.map { |val| val + 1.5 } plot2 = UnicodePlot.stairs!(plot, sx2, sy2, name: "2") assert_equal(plot.class, plot2.class) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/stairs_parameters.txt").read, output) # add a 3rd staircase and check again plot3 = UnicodePlot.stairs!(plot, @sx, @sy, name: "3", style: :pre) assert_equal(plot.class, plot3.class) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/stairs_parameters2.txt").read, output) # check with color disabled output = StringIO.open do |sio| plot.render(sio) sio.close sio.string end assert_equal("\n", output[-1]) assert_equal(fixture_path("lineplot/stairs_parameters2_nocolor.txt").read, output.chomp) end test("special weird case") do plot = UnicodePlot.stairs(@sx, [1, 3, 4, 2, 7000]) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/stairs_edgecase.txt").read, output) end test("annotations") do plot = UnicodePlot.stairs(@sx, @sy, width: 10, padding: 3) plot.annotate!(:tl, "Hello") plot.annotate!(:t, "how are") plot.annotate!(:tr, "you?") plot.annotate!(:bl, "Hello") plot.annotate!(:b, "how are") plot.annotate!(:br, "you?") UnicodePlot.lineplot!(plot, 1, 0.5) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("lineplot/squeeze_annotations.txt").read, output) end end end end red-data-tools-unicode_plot.rb-b4b6a31/test/test-plot.rb000066400000000000000000000021631402627751500232730ustar00rootroot00000000000000require 'stringio' class TestPlot < Test::Unit::TestCase include Helper::WithTerm sub_test_case("#render") do test("render to $stdout when no arguments") do sio = StringIO.new UnicodePlot.barplot(data: {a: 23, b: 37}).render(sio) begin save_stdout, $stdout = $stdout, StringIO.new UnicodePlot.barplot(data: {a: 23, b: 37}).render assert do sio.string == $stdout.string end ensure $stdout = save_stdout end end test("color: true") do _, tty_output = with_sio(tty: true) {|sio| UnicodePlot.barplot(data: {a: 23, b: 37}).render(sio) } _, notty_output = with_sio(tty: false) {|sio| UnicodePlot.barplot(data: {a: 23, b: 37}).render(sio, color: true) } assert_equal(tty_output, notty_output) end test("color: false") do _, tty_output = with_sio(tty: true) {|sio| UnicodePlot.barplot(data: {a: 23, b: 37}).render(sio, color: false) } _, notty_output = with_sio(tty: false) {|sio| UnicodePlot.barplot(data: {a: 23, b: 37}).render(sio) } assert_equal(tty_output, notty_output) end end end red-data-tools-unicode_plot.rb-b4b6a31/test/test-scatterplot.rb000066400000000000000000000121151402627751500246570ustar00rootroot00000000000000class ScatterplotTest < Test::Unit::TestCase include Helper::Fixture include Helper::WithTerm def setup @x = [-1, 1, 3, 3, -1] @y = [2, 0, -5, 2, -5] end test("errors") do assert_raise(ArgumentError) do UnicodePlot.scatterplot() end assert_raise(ArgumentError) do UnicodePlot.scatterplot([1, 2], [1, 2, 3]) end assert_raise(ArgumentError) do UnicodePlot.scatterplot([1, 2, 3], [1, 2]) end assert_raise(ArgumentError) do UnicodePlot.scatterplot(1..3, 1..2) end end sub_test_case("with invalid arguments") do test("unknown border type") do assert_raise(ArgumentError.new("unknown border type: invalid_border_name")) do UnicodePlot.scatterplot(@x, @y, border: :invalid_border_name) end end end test("default") do plot = UnicodePlot.scatterplot(@x, @y) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("scatterplot/default.txt").read, output) end test("y only") do plot = UnicodePlot.scatterplot(@y) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("scatterplot/y_only.txt").read, output) end test("one range") do plot = UnicodePlot.scatterplot(6..10) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("scatterplot/range1.txt").read, output) end test("two ranges") do plot = UnicodePlot.scatterplot(11..15, 6..10) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("scatterplot/range2.txt").read, output) end test("scale1") do x = @x.map {|a| a * 1e3 + 15 } y = @y.map {|a| a * 1e-3 - 15 } plot = UnicodePlot.scatterplot(x, y) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("scatterplot/scale1.txt").read, output) end test("scale2") do x = @x.map {|a| a * 1e-3 + 15 } y = @y.map {|a| a * 1e3 - 15 } plot = UnicodePlot.scatterplot(x, y) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("scatterplot/scale2.txt").read, output) end test("scale3") do miny = -1.2796649117521434e218 maxy = -miny plot = UnicodePlot.scatterplot([1], [miny], xlim: [1, 1], ylim: [miny, maxy]) _, output = with_term { plot.render($stdout, newline: false) } expected = fixture_path("scatterplot/scale3.txt").read assert_equal(expected, output) end test("limits") do plot = UnicodePlot.scatterplot(@x, @y, xlim: [-1.5, 3.5], ylim: [-5.5, 2.5]) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("scatterplot/limits.txt").read, output) end test("nogrid") do plot = UnicodePlot.scatterplot(@x, @y, grid: false) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("scatterplot/nogrid.txt").read, output) end test("blue") do plot = UnicodePlot.scatterplot(@x, @y, color: :blue, name: "points1") _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("scatterplot/blue.txt").read, output) end test("parameters") do plot = UnicodePlot.scatterplot(@x, @y, name: "points1", title: "Scatter", xlabel: "x", ylabel: "y") _, output = with_term { plot.render($stdout, newline: false) } expected = fixture_path("scatterplot/parameters1.txt").read assert_equal(expected, output) assert_same(plot, UnicodePlot.scatterplot!(plot, [0.5, 1, 1.5], name: "points2")) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("scatterplot/parameters2.txt").read, output) assert_same(plot, UnicodePlot.scatterplot!(plot, [-0.5, 0.5, 1.5], [0.5, 1, 1.5], name: "points3")) _, output = with_term { plot.render($stdout, newline: false) } assert_equal(fixture_path("scatterplot/parameters3.txt").read, output) output = StringIO.open do |sio| plot.render(sio, newline: false) sio.close sio.string end assert_equal(fixture_path("scatterplot/nocolor.txt").read, output) end test("canvas size") do plot = UnicodePlot.scatterplot(@x, @y, title: "Scatter", canvas: :dot, width: 10, height: 5) _, output = with_term { plot.render($stdout, newline: false) } expected = fixture_path("scatterplot/canvassize.txt").read assert_equal(expected, output) end end red-data-tools-unicode_plot.rb-b4b6a31/test/test-stemplot.rb000066400000000000000000000116771402627751500241760ustar00rootroot00000000000000# coding: utf-8 class HistogramTest < Test::Unit::TestCase include Helper::Fixture include Helper::WithTerm sub_test_case("UnicodePlot.stemplot") do def setup @randoms = fixture_path("randn.txt").read.lines.take(50).map(&:to_f) @int80a = [40, 53, 33, 8, 30, 78, 68, 63, 80, 75, 73, 75, 61, 24, 84, 84, 51, 31, 94, 63, 72, 9, 80, 1, 84, 1, 13, 55, 46, 41, 99, 100, 39, 41, 10, 70, 67, 21, 50, 41, 49, 24, 32, 42, 32, 37, 44, 10, 48, 64, 41, 46, 94, 15, 15, 5, 6, 97, 48, 14, 2, 92, 10, 2, 91, 89, 20, 98, 19, 66, 43, 95, 90, 34, 71, 42, 31, 92, 95, 30] @int80b = [23, 24, 70, 61, 26, 57, 28, 18, 69, 53, 92, 11, 33, 38, 85, 58, 38, 27, 14, 62, 57, 38, 91, 11, 66, 23, 63, 28, 98, 9, 53, 26, 1, 93, 96, 49, 8, 89, 19, 18, 68, 51, 4, 57, 79, 90, 72, 99, 41, 57, 100, 94, 5, 13, 24, 76, 5, 60, 26, 41, 89, 99, 22, 81, 41, 48, 65, 67, 38, 53, 96, 85, 75, 89, 35, 75, 88, 50, 14, 33] @int300 = [-30, -7, 37, -42, -15, 8, 62, 22, -3, -32, -35, -48, -29, 8, -75, 27, 84, 81, -21, 9, 23, 86, -30, 29, 47, 89, -3, 38, 22, 31, 49, 84, -5, -28, -26, -66, 68, 59, -92, -3, -23, 100, -73, 19, -37, 89, -21, 23, 71, 14, -98, 49, -3, -1, -8, 67, -55, -30, -55, 93, 69, -20, -79, -91, -23, -46, 84, -49, -12, 35, -74, -2, -84, -34, -28, 98, -70, -72, 71, 86, 24, 64, -99, -76, -37, 54, 53, 72, -31, -53, 85, 10, -17, -8, -35, -16, -3, 26, 68, -92, 20, -70, 87, -78, 95, -88, -85, -7, 67, -47, -46, 0, -24, -48, 53, -53, -26, 79, -51, -40, -95, -37, 44, 77, -66, 85, 14, 5, -25, -85, -54, -17, -94, -52, -75, -79, 79, -53, -16, -27, -43, -94, -66, -56, -47, -56, -21, 7, 73, -19, 87, -64, -46, -81, 19, -13, -44, -87, -22, 18, 54, -9, 84, 50, 85, 62, 8, 99, -94, -65, 59, 93, 84, 16, 82, -16, 77, 55, -63, -13, -34, -77, 55, 87, -99, -82, 9, 73, 75, -94, -6, 9, 89, 27, 70, 56, -38, -67, -46, 59, 91, -26, 30, -81, -6, -29, -66, 25, 17, -25, -9, -90, 20, -71, 1, -47, -76, 39, -29, -19, -45, 91, -92, -6, -59, 34, 51, -61, -41, -90, 77, 83, -83, -25, -29, -64, 16, -91, -14, 7, -71, -57, -71, 76, -9, -43, -89, 86, 56, 56, 27, 3, -5, 13, -99, 13, -97, -68, 94, -15, 6, -8, -28, -52, 38, -96, -54, 13, -36, 78, -24, 32, 96, -57, -56, -27, -79, -73, -18, 44, -48, -65, -4, 80, -69, -26, -38, 66, 62, 65, -83, -100, -37, 1, -99, 75, 33, 19, 0, -70] @words_1 = %w[apple junk ant age bee bar baz dog egg a] @words_2 = %w[ape flan can cat juice elf gnome child fruit] end test("range input") do _, output = with_term { UnicodePlot.stemplot(-100..100) } assert_equal(fixture_path("stemplot/range.txt").read, output) end test("positive integers") do _, output = with_term { UnicodePlot.stemplot(@int80a) } assert_equal(fixture_path("stemplot/pos_ints.txt").read, output) end test("with happy divider") do _, output = with_term { UnicodePlot.stemplot(@int80a, divider: "😄") } assert_equal(fixture_path("stemplot/ints_divider.txt").read, output) end test("positive and negative integers") do _, output = with_term { UnicodePlot.stemplot(@int300) } assert_equal(fixture_path("stemplot/posneg_ints.txt").read, output) end test("floats") do x10 = @randoms.map {|a| a * 10 } #p x10.sort #UnicodePlot.stemplot(x10) _, output = with_term { UnicodePlot.stemplot(x10) } assert_equal(fixture_path("stemplot/float.txt").read, output) end test("floats, scale=1") do floats = (-8..8).to_a.map { |a| a / 2.0 } _, output = with_term { UnicodePlot.stemplot(floats, scale: 1) } assert_equal(fixture_path("stemplot/float_scale1.txt").read, output) end test("back-to-back stemplot with integers") do _, output = with_term { UnicodePlot.stemplot(@int80a, @int80b) } assert_equal(fixture_path("stemplot/b2b_integers.txt").read, output) end test("stemplot with strings") do _, output = with_term { UnicodePlot.stemplot(@words_1) } assert_equal(fixture_path("stemplot/strings.txt").read, output) end test("back-to-back stemplot with strings") do _, output = with_term { UnicodePlot.stemplot(@words_1, @words_2) } assert_equal(fixture_path("stemplot/b2b_strings.txt").read, output) end test("stemplot with strings, two-char scale") do _, output = with_term { UnicodePlot.stemplot(@words_1, scale: 100, trim: true) } assert_equal(fixture_path("stemplot/strings_2c.txt").read, output) end test("stemplot with strings, two-char scale, string_padchar") do _, output = with_term { UnicodePlot.stemplot(@words_1, string_padchar: '?') } assert_equal(fixture_path("stemplot/strings_pad.txt").read, output) end test("string stemplot cannot take scale less than 10") do assert_raise(ArgumentError) do UnicodePlot.stemplot(@words_1, scale: 9) end end test("cannot mix string/number in back to back stemplot") do assert_raise(ArgumentError) do UnicodePlot.stemplot(@words_1, @int80a) end end end end red-data-tools-unicode_plot.rb-b4b6a31/test/test-utils.rb000066400000000000000000000007101402627751500234510ustar00rootroot00000000000000class UnicodePlotTest < Test::Unit::TestCase test("UnicodePlot.canvas_types") do available_canvas_types = [:ascii, :block, :braille, :density, :dot] assert_equal(available_canvas_types.sort, UnicodePlot.canvas_types.sort) end test("UnicodePlot.border_types") do available_border_types = [:solid, :corners, :barplot] assert_equal(available_border_types.sort, UnicodePlot.border_types.sort) end end red-data-tools-unicode_plot.rb-b4b6a31/unicode_plot.gemspec000066400000000000000000000025761402627751500240750ustar00rootroot00000000000000lib = File.expand_path("../lib", __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require "unicode_plot/version" Gem::Specification.new do |spec| spec.name = "unicode_plot" version_components = [ UnicodePlot::Version::MAJOR.to_s, UnicodePlot::Version::MINOR.to_s, UnicodePlot::Version::MICRO.to_s, UnicodePlot::Version::TAG ] spec.version = version_components.compact.join(".") spec.authors = ["mrkn"] spec.email = ["mrkn@mrkn.jp"] spec.summary = %q{Plot your data by Unicode characters} spec.description = %q{Plot your data by Unicode characters} spec.homepage = "https://github.com/red-data-tools/unicode_plot.rb" spec.license = "MIT" spec.metadata ||= {} spec.metadata["documentation_uri"] = "https://red-data-tools.github.io/unicode_plot.rb/#{spec.version}/" spec.files = ["README.md", "Rakefile", "Gemfile", "#{spec.name}.gemspec"] spec.files << "LICENSE.txt" spec.files.concat Dir.glob("lib/**/*.rb") spec.test_files.concat Dir.glob("test/**/*.rb") spec.bindir = "exe" spec.executables = spec.files.grep(%r{^exe/}) {|f| File.basename(f) } spec.require_paths = ["lib"] spec.add_runtime_dependency "enumerable-statistics", ">= 2.0.1" spec.add_development_dependency "bundler", ">= 1.17" spec.add_development_dependency "rake" spec.add_development_dependency "test-unit" spec.add_development_dependency "yard" end