#ifndef GTX__GRATRIX_HPP #define GTX__GRATRIX_HPP #include #include #include #include #include #include #include #include #include "rack.hpp" #define GTX__N 6 #define GTX__2PI 6.283185307179586476925 #define GTX__IO_RADIUS 26.0 #define GTX__SAVE_SVG 0 #define GTX__WIDGET() // do { std::cout << "Gratrix Module : " << __FUNCTION__ << "();" << std::endl; } while(0); using namespace rack; RACK_PLUGIN_DECLARE(Gratrix); #ifdef USE_VST2 #define plugin "Gratrix" #endif // USE_VST2 namespace rack_plugin_Gratrix { struct MicroModule { std::vector params; std::vector inputs; std::vector outputs; std::vector lights; MicroModule(int numParams, int numInputs, int numOutputs, int numLights = 0) { params.resize(numParams); inputs.resize(numInputs); outputs.resize(numOutputs); lights.resize(numLights); } }; //============================================================================================================ //! \brief Simple cache structure. template struct Cache { bool valid; T value; Cache() { reset(); } void reset() { valid = false; } void set(const T &that) { valid = true; value = that; } bool test(const T &that) { return valid && value != that; } }; //============================================================================================================ //! \name UI Port components struct PortInMed : SVGPort { PortInMed() { background->svg = SVG::load(assetPlugin(plugin, "res/components/PortInMedium.svg")); background->wrap(); box.size = background->box.size; } static Vec size() { return Vec(25.0, 25.0); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec(12.5, 12.5); } // Copied from SVG so no need to pre-load. }; struct PortOutMed : SVGPort { PortOutMed() { background->svg = SVG::load(assetPlugin(plugin, "res/components/PortOutMedium.svg")); background->wrap(); box.size = background->box.size; } static Vec size() { return Vec(25.0, 25.0); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec(12.5, 12.5); } // Copied from SVG so no need to pre-load. }; struct PortInSml : SVGPort { PortInSml() { background->svg = SVG::load(assetPlugin(plugin, "res/components/PortInSmall.svg")); background->wrap(); box.size = background->box.size; } static Vec size() { return Vec(18, 18); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec( 9, 9); } // Copied from SVG so no need to pre-load. }; struct PortOutSml : SVGPort { PortOutSml() { background->svg = SVG::load(assetPlugin(plugin, "res/components/PortOutSmall.svg")); background->wrap(); box.size = background->box.size; } static Vec size() { return Vec(18, 18); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec( 9, 9); } // Copied from SVG so no need to pre-load. }; //============================================================================================================ //! \name UI Knob components struct KnobFreeHug : RoundKnob { KnobFreeHug() { setSVG(SVG::load(assetPlugin(plugin, "res/components/KnobFreeHuge.svg"))); box.size = Vec(56, 56); } static Vec size() { return Vec(56.0, 56.0); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec(28.0, 28.0); } // Copied from SVG so no need to pre-load. }; struct KnobSnapHug : RoundKnob { KnobSnapHug() { setSVG(SVG::load(assetPlugin(plugin, "res/components/KnobSnapHuge.svg"))); box.size = Vec(56, 56); snap = true; } static Vec size() { return Vec(56.0, 56.0); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec(28.0, 28.0); } // Copied from SVG so no need to pre-load. }; struct KnobFreeLrg : RoundKnob { KnobFreeLrg() { setSVG(SVG::load(assetPlugin(plugin, "res/components/KnobFreeLarge.svg"))); box.size = Vec(46, 46); } static Vec size() { return Vec(46.0, 46.0); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec(23.0, 23.0); } // Copied from SVG so no need to pre-load. }; struct KnobSnapLrg : RoundKnob { KnobSnapLrg() { setSVG(SVG::load(assetPlugin(plugin, "res/components/KnobSnapLarge.svg"))); box.size = Vec(46, 46); snap = true; } static Vec size() { return Vec(46.0, 46.0); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec(23.0, 23.0); } // Copied from SVG so no need to pre-load. }; struct KnobFreeMed : RoundKnob { KnobFreeMed() { setSVG(SVG::load(assetPlugin(plugin, "res/components/KnobFreeMedium.svg"))); box.size = Vec(38, 38); } static Vec size() { return Vec(38.0, 38.0); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec(19.0, 19.0); } // Copied from SVG so no need to pre-load. }; struct KnobSnapMed : RoundKnob { KnobSnapMed() { setSVG(SVG::load(assetPlugin(plugin, "res/components/KnobSnapMedium.svg"))); box.size = Vec(38, 38); snap = true; } static Vec size() { return Vec(38.0, 38.0); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec(19.0, 19.0); } // Copied from SVG so no need to pre-load. }; struct KnobFreeSml : RoundKnob { KnobFreeSml() { setSVG(SVG::load(assetPlugin(plugin, "res/components/KnobFreeSmall.svg"))); box.size = Vec(28, 28); } static Vec size() { return Vec(28.0, 28.0); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec(14.0, 14.0); } // Copied from SVG so no need to pre-load. }; struct KnobSnapSml : RoundKnob { KnobSnapSml() { setSVG(SVG::load(assetPlugin(plugin, "res/components/KnobSnapSmall.svg"))); box.size = Vec(28, 28); snap = true; } static Vec size() { return Vec(28.0, 28.0); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec(14.0, 14.0); } // Copied from SVG so no need to pre-load. }; struct KnobFreeTny : RoundKnob { KnobFreeTny() { setSVG(SVG::load(assetPlugin(plugin, "res/components/KnobFreeTiny.svg"))); box.size = Vec(28, 28); } static Vec size() { return Vec(28.0, 28.0); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec(14.0, 14.0); } // Copied from SVG so no need to pre-load. }; struct KnobSnapTny : RoundKnob { KnobSnapTny() { setSVG(SVG::load(assetPlugin(plugin, "res/components/KnobSnapTiny.svg"))); box.size = Vec(28, 28); snap = true; } static Vec size() { return Vec(28.0, 28.0); } // Copied from SVG so no need to pre-load. static Vec pos() { return Vec(14.0, 14.0); } // Copied from SVG so no need to pre-load. }; //============================================================================================================ //! \brief Create output function that creates the UI component centered. template Port *createInputGTX(Vec pos, Module *module, int outputId) { return Port::create(pos.minus(TPort::pos()), Port::INPUT, module, outputId); } //============================================================================================================ //! \brief Create output function that creates the UI component centered. template Port *createOutputGTX(Vec pos, Module *module, int outputId) { return Port::create(pos.minus(TPort::pos()), Port::OUTPUT, module, outputId); } //============================================================================================================ //! \brief Create param function that creates the UI component centered. template ParamWidget *createParamGTX(Vec pos, Module *module, int paramId, float minValue, float maxValue, float defaultValue) { return ParamWidget::create(pos.minus(TParamWidget::pos()), module, paramId, minValue, maxValue, defaultValue); } //============================================================================================================ //! \brief ... inline double dx(double i, std::size_t n) { return std::sin(GTX__2PI * static_cast(i) / static_cast(n)); } inline double dy(double i, std::size_t n) { return -std::cos(GTX__2PI * static_cast(i) / static_cast(n)); } inline double dx(double i ) { return dx(i, GTX__N); } inline double dy(double i ) { return dy(i, GTX__N); } inline int gx(double i) { return static_cast(std::floor(0.5 + ((i+0.5) * 90))); } inline int gy(double i) { return static_cast(std::floor(8.5 + ((i+1.0) * 102))); } inline int fx(double i) { return gx(i); } inline int fy(double i) { return gy(i - 0.1); } inline double rad_n_b() { return 27; } inline double rad_n_m() { return 18; } inline double rad_n_s() { return 14; } inline double rad_l_m() { return 4.75; } inline double rad_l_s() { return 3.25; } inline double rad_but() { return 9; } inline double rad_scr() { return 8; } inline double rad_prt() { return 12.5; } inline Vec tog(double x, double y) { return Vec(x - 7, y - 10); } inline Vec n_b(double x, double y) { return Vec(x - rad_n_b(), y - rad_n_b()); } inline Vec n_m(double x, double y) { return Vec(x - rad_n_m(), y - rad_n_m()); } inline Vec n_s(double x, double y) { return Vec(x - rad_n_s(), y - rad_n_s()); } inline Vec l_m(double x, double y) { return Vec(x - rad_l_m(), y - rad_l_m()); } inline Vec l_s(double x, double y) { return Vec(x - rad_l_s(), y - rad_l_s()); } inline Vec but(double x, double y) { return Vec(x - rad_but(), y - rad_but()); } inline Vec scr(double x, double y) { return Vec(x - rad_scr(), y - rad_scr()); } inline Vec prt(double x, double y) { return Vec(x - rad_prt(), y - rad_prt()); } inline Vec tog(const Vec &a) { return tog(a.x, a.y); } inline Vec n_b(const Vec &a) { return n_b(a.x, a.y); } inline Vec n_m(const Vec &a) { return n_m(a.x, a.y); } inline Vec n_s(const Vec &a) { return n_s(a.x, a.y); } inline Vec l_m(const Vec &a) { return l_m(a.x, a.y); } inline Vec l_s(const Vec &a) { return l_s(a.x, a.y); } inline Vec but(const Vec &a) { return but(a.x, a.y); } inline Vec scr(const Vec &a) { return scr(a.x, a.y); } inline Vec prt(const Vec &a) { return prt(a.x, a.y); } inline double px( std::size_t i) { return GTX__IO_RADIUS * dx(i); } inline double py( std::size_t i) { return GTX__IO_RADIUS * dy(i); } inline double px(double j, std::size_t i) { return gx(j) + px(i); } inline double py(double j, std::size_t i) { return gy(j) + py(i); } #if GTX__SAVE_SVG //============================================================================================================ //! \brief Generates SVG file for use as module background. class PanelGen { std::ofstream os; Vec box; public: PanelGen(const std::string &fn, const Vec &box, const std::string &title = "") : box(box) { os.open(fn); os << "" << std::endl; if (!title.empty()) { os << "" << std::endl; font(); os << "" << std::endl; } rect(Vec(-5, -5), Vec(box.x+10, box.y+10), "fill:#CEE1FD;stroke:black;stroke-width:1"); rect(Vec(-5, -5), Vec(box.x+10, 30 + 5), "fill:#BED7FC;stroke:black;stroke-width:1"); rect(Vec(-5, box.y-20), Vec(box.x+10, 20 + 5), "fill:#BED7FC;stroke:black;stroke-width:1"); if (!title.empty()) { line(Vec(1.5*15, 14), Vec(box.x-1.5*15, 14), "stroke:#7092BE;stroke-width:2"); line(Vec(1.5*15, 18), Vec(box.x-1.5*15, 18), "stroke:#7092BE;stroke-width:2"); line(Vec(1.5*15, 22), Vec(box.x-1.5*15, 22), "stroke:#7092BE;stroke-width:2"); circle(Vec( 1.5*15, 7), 17, "fill:#BED7FC;stroke:none"); circle(Vec(box.x-1.5*15, 7), 17, "fill:#BED7FC;stroke:none"); text(Vec(box.x / 2, 22), title , "font-family: '01 DigitGraphics'; font-weight: bold; font-style: normal; font-size:13; text-anchor:middle; fill:#BED7FC;stroke:#BED7FC;stroke-width:9"); text(Vec(box.x / 2, 22), "|"+title+"|", "font-family: '01 DigitGraphics'; font-weight: bold; font-style: normal; font-size:13; text-anchor:middle; fill:#BED7FC;stroke:#BED7FC;stroke-width:3"); text(Vec(box.x / 2, 22), title , "font-family: '01 DigitGraphics'; font-weight: bold; font-style: normal; font-size:13; text-anchor:middle; fill:black;"); text(Vec(box.x / 2, box.y - 6), (box.x <= 6*15 ? "GTX" : "GRATRIX"), "font-family: '01 DigitGraphics'; font-weight: bold; font-style: normal; font-size:10; text-anchor:middle; fill:#777777;"); } // grid(); } void tog(double x, double y, const std::string &title = "", const std::string &subtitle = "") { tog_raw(fx(x), fy(y), title, subtitle); } void tog_raw(double x, double y, const std::string &title = "", const std::string &subtitle = "") { text(Vec(x, y - 15), title, 10); text(Vec(x, y + 23), subtitle, 10); } void tog_raw2(double x, double y, const std::string &title = "", const std::string &subtitle = "") { text(Vec(x, y - 14), title, 8); text(Vec(x, y + 20), subtitle, 8); } void nob_big(double x, double y, const std::string &title = "") { return nob_big_raw(fx(x), fy(y), title); } void nob_big_raw(double x, double y, const std::string &title = "", const std::string &subtitle = "") { text(Vec(x, y - rad_n_b() - 10), title, 11); text(Vec(x, y + rad_n_b() + 15), subtitle, 10); } void nob_med(double x, double y, const std::string &title = "") { return nob_med_raw(fx(x), fy(y), title); } void nob_med_raw(double x, double y, const std::string &title = "") { if (!title.empty()) { text(Vec(x, y - rad_n_m() - 5), title, 10); } } void nob_sml(double x, double y, const std::string &title = "") { return nob_sml_raw(fx(x), fy(y), title); } void nob_sml_raw(double x, double y, const std::string &title = "") { text(Vec(x, y - rad_n_s() - 5), title, 10); } void but2(double x, double y, const std::string &title = "") { int xx = fx(x); int yy = fy(y); text(Vec(xx + rad_prt() + 4, yy + 2), title, 10, "start"); } void prt_in(double x, double y, const std::string &title = "", const std::string &subtitle = "") { return prt_in_raw(gx(x), gy(y), title, subtitle); } void prt_in_raw(double x, double y, const std::string &title = "", const std::string &subtitle = "") { text(Vec(x, y - rad_prt() - 7), title, 10); text(Vec(x, y + rad_prt() + 15), subtitle, 10); } void prt_in2(double x, double y, const std::string &title = "", const std::string &subtitle = "") { int xx = fx(x); int yy = fy(y); text(Vec(xx, yy - rad_prt() - 7), title, 10); text(Vec(xx, yy + rad_prt() + 7 + 8), subtitle, 10); } void prt_out(double x, double y, const std::string &title = "", const std::string &subtitle = "") { int xx = (y == 0.0) ? fx(x) : gx(x); int yy = (y == 0.0) ? fy(y) : gy(y); text(Vec(xx, yy - rad_prt() - 7), title, 10); text(Vec(xx, yy + rad_prt() + 15), subtitle, 10); } void bus_inx(double x, double y, const std::string &title = "") { text(Vec(gx(x), gy(y) - 44), title, 10); } void bus_in(double x, double y, const std::string &title = "") { circle(Vec(gx(x), gy(y)), 40, "fill:#BED7FC;stroke:#7092BE;stroke-width:1"); text(Vec(gx(x), gy(y) - 44), title, 10); } void bus_out(double x, double y, const std::string &title = "") { circle(Vec(gx(x), gy(y)), 40, "fill:#7092BE;stroke:#7092BE;stroke-width:1"); text(Vec(gx(x), gy(y) - 44), title, 10); } void text(const Vec &p1, const std::string &t, double size, const std::string &anchor = "middle") { std::ostringstream oss; oss << "font-family: '01 DigitGraphics'; font-weight: bold; font-style: normal; font-size:" << size << "; text-anchor:" << anchor << "; fill:black;"; text(p1, t, oss.str()); } void text(const Vec &p1, const std::string &t, const std::string &style) { if (!t.empty()) { os << "" << t << "" << std::endl; } } void line(const Vec &p1, const Vec &p2, const std::string &style) { os << "\"" << std::endl; } void rect(const Vec &p1, const Vec &p2, const std::string &style) { os << "" << std::endl; } void circle(const Vec &p1, float r, const std::string &style) { os << "" << std::endl; } void grid() { for (std::size_t i=0; i" << std::endl; os.close(); } void font() { os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; os << "" << std::endl; } }; #endif } // namespace rack_plugin_Gratrix using namespace rack_plugin_Gratrix; //============================================================================================================ //! \name Module Widgets #endif