[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-marketing] branch master updated: FSF 2023
From: |
gnunet |
Subject: |
[taler-marketing] branch master updated: FSF 2023 |
Date: |
Tue, 14 Mar 2023 16:34:27 +0100 |
This is an automated email from the git hooks/post-receive script.
sebasjm pushed a commit to branch master
in repository marketing.
The following commit(s) were added to refs/heads/master by this push:
new 12e2c76 FSF 2023
12e2c76 is described below
commit 12e2c761b5d7a1d1c7fe6d3d583eec54d9087283
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Tue Mar 14 12:34:18 2023 -0300
FSF 2023
---
2023-fsf/operations.png | Bin 0 -> 456010 bytes
2023-fsf/shirt.json | 11 +
2023-fsf/slides.html | 614 ++++++++++++++++++++++++++++++++++++++++++++++++
2023-fsf/walkthrough.sh | 350 +++++++++++++++++++++++++++
2023-fsf/wicmp.jpg | Bin 0 -> 91693 bytes
5 files changed, 975 insertions(+)
diff --git a/2023-fsf/operations.png b/2023-fsf/operations.png
new file mode 100644
index 0000000..5544c59
Binary files /dev/null and b/2023-fsf/operations.png differ
diff --git a/2023-fsf/shirt.json b/2023-fsf/shirt.json
new file mode 100644
index 0000000..b8197ff
--- /dev/null
+++ b/2023-fsf/shirt.json
@@ -0,0 +1,11 @@
+{
+ "description_i18n": {},
+ "taxes": [],
+ "price": "LIBRE:2",
+ "product_id": "awesome-shirt",
+ "image":
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAPoCAYAAAAmy5qxAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOy9WZPkyJEm+KkZAD8iz6pkVpNs9iEjO7Ii+7Bv+7T//2VnpWV2ZF+22WQ3p4usqrwi4/ALMNN9UFMzAxwRGZFHZESWfmSWe3wOGOwCoGqqakrMzLgDMDOIKH9+Se5bxVz7jLufnN5W9Rw1zjjjPo6r+RrGGWecccY9TM7hjkB0rBh8KW7a4G+JMzws3Ke5Y5xxD5XTZ3v93DfOOOOMM+7hcnemgEwrYNzHcYb7j/skuBln3LfEGQwGg+HbAHH1lGf+si5Mc+V/Ke5rm5a+BKdtNe5+c3c5z40z7tfA6T1WH2OcccYZZ9zD5UYKiOF+4z4IAsZ9mDMYDJ8XX/tFaZxxxhln3Ofl7twFy2AwGAwGg8FgMPx60d
[...]
+ "description": "GNU head",
+ "unit": "shirt",
+ "total_stock": 10,
+ "total_lost": 0
+}
diff --git a/2023-fsf/slides.html b/2023-fsf/slides.html
new file mode 100644
index 0000000..4516ea3
--- /dev/null
+++ b/2023-fsf/slides.html
@@ -0,0 +1,614 @@
+<!DOCTYPE html>
+ <html class="sl-root decks export loaded ua-phantomjs>
+ <head>
+ <meta name="viewport" content="width=device-width,
initial-scale=1.0">
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <title>Free/Libre payment system: Slides</title>
+ <meta name="description" content="Slides">
+ <style>/*! normalize.css v2.1.0 | MIT License |
git.io/normalize */@import
url("https://static.slid.es/fonts/v3/montserrat/montserrat.css");@import
url("https://static.slid.es/fonts/v3/opensans/opensans.css");@import
url("https://static.slid.es/fonts/v3/lato/lato.css");@import
url("https://static.slid.es/fonts/v3/asul/asul.css");@import
url("https://static.slid.es/fonts/v3/josefinsans/josefinsans.css");@import
url("https://static.slid.es/fonts/v3/league/league_gothic.css");@import url(
[...]
+ * Main styles for Slides
+ *
+ * @author Hakim El Hattab
+
*/*{-webkit-box-sizing:border-box;box-sizing:border-box}:-webkit-full-screen{width:100%;height:100%}:-ms-fullscreen{width:100%;height:100%}:fullscreen{width:100%;height:100%}html,body{padding:0;margin:0;color:#252525;font-family:"Inter",
Helvetica, sans-serif;font-size:16px}html:before,body:before{content:''
!important}html{-webkit-font-smoothing:subpixel-antialiased
!important}html.sl-root:not(.loaded) *{-webkit-transition:none
!important;transition:none !important}body{overflow-y:scro [...]
+* reveal.js 4.4.0
+* https://revealjs.com
+* MIT licensed
+*
+* Copyright (C) 2011-2023 Hakim El Hattab, https://hakim.se
+*/.reveal .r-stretch,.reveal .stretch{max-width:none;max-height:none}.reveal
pre.r-stretch code,.reveal pre.stretch
code{height:100%;max-height:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.reveal
.r-fit-text{display:inline-block;white-space:nowrap}.reveal
.r-stack{display:grid}.reveal .r-stack>*{grid-area:1/1;margin:auto}.reveal
.r-hstack,.reveal
.r-vstack{display:-webkit-box;display:-ms-flexbox;display:flex}.reveal
.r-hstack img,.reveal .r-hstack video,.reveal .r-vstack img [...]
+</style>
+
+ <meta name="csrf-param" content="authenticity_token" />
+<meta name="csrf-token"
content="HTc1bi5XBY/3jbNFU8dbKS95BQdUdcLBAEyIe1sUzdiM+LFD8U3Q3TFo25w5FrGrtg9CaorPdWf4umZRcjSCsw=="
/>
+ <style id="user-css-output" type="text/css"></style>
+ </head>
+ <body class="reveal-viewport theme-font-overpass2
theme-color-white-blue"">
+ <div class="reveal">
+ <div class="slides">
+ <section data-background-color="rgb(229, 230,
226)" data-id="adcbd21327ef4697306efb547bbeddb3"><div class="sl-block"
data-block-type="text" style="width: 876px; left: 42px; top: 204px; height:
auto;" data-block-id="31aa0f5fa9fcb2efb973c11cd4b2b2ec"><div
class="sl-block-content" data-placeholder-tag="h1" style="z-index: 12;
font-size: 160%; padding: 20px; line-height: 1.04;" data-has-line-height=""
data-placeholder-text="Text"><h1>GNU Taler</h1></div></div>
+<div class="sl-block" data-block-type="line" data-name="line-a5c0c7"
style="width: auto; height: auto; left: 323px; top: 326px;"
data-block-id="d1fa4bd7a3a12c6467811b0c2371039b"><div class="sl-block-content"
data-line-x1="0" data-line-y1="0" data-line-x2="314" data-line-y2="0"
data-line-color="#ffffff" data-line-start-type="none" data-line-end-type="none"
style="z-index: 13;" data-line-width="4px"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" preserveaspectratio="xMidYMid"
width= [...]
+<div class="sl-block" data-block-type="text" style="width: 877px; left: 41px;
top: 326px; height: auto;" data-name="text-d18e72"
data-block-id="65f7779b8cdc76ddaebb58decc3d6af7"><div class="sl-block-content"
data-placeholder-tag="p" style="z-index: 14; text-align: center; color: rgb(0,
0, 0); font-size: 120%; padding: 20px;"
data-placeholder-text="Text"><p>Free/Libre Payment system with guaranteed
privacy</p></div></div></section><section data-background-color="rgb(229, 230,
226)" data-i [...]
+
+
+<div class="sl-block" data-block-type="text" style="width: 800px; left: 80px;
top: 90.5px; height: auto;" data-name="text-c29943"
data-block-id="7620695fedc0a10d115a0e9ebd4ca6f3"><div class="sl-block-content"
data-placeholder-tag="h2" style="text-align: left; z-index: 10;"
data-placeholder-text="Text"><h2><strong>What is GNU
taler</strong></h2></div></div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
left: 80px; top: 141px;" data-name="line-79aed3"
data-block-id="6f19a0b4cbc764b8474168b7325dea90"><div class="sl-block-content"
data-line-x1="0" data-line-y1="0" data-line-x2="106.61835748792271"
data-line-y2="0" data-line-color="#000000" data-line-start-type="none"
data-line-end-type="none" style="z-index: 16;" data-line-width="4px"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" preserveaspectratio="xM [...]
+<div class="sl-block sl-block-group" data-block-type="group"
data-name="group-4cebe8" style="height: auto;"
data-block-id="ce058fc65aa91f9b255eb327dfea5d50"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 326px 239.5px; z-index: 11;
transition-duration: 0.6s; transition-delay: 0.4s;"
data-animation-type="slide-left">
+<div class="sl-block" data-block-type="text" style="width: 510px; left: 71px;
top: 206px; height: auto;" data-name="text-c5947b"
data-block-id="e1c8a7180cf6597078d1d6d42944d30a"><a class="sl-block-style"
style="z-index: 14;" href="#/our-services"><div class="sl-block-content"
data-placeholder-tag="p" style="text-align: left; z-index: 14; font-size: 110%;
border-width: 4px; line-height: 1.17; border-color: rgb(0, 0, 0); padding:
10px; color: rgb(0, 0, 0);" data-has-line-height="" data-pla [...]
+<div class="sl-block" data-block-type="line" data-name="line-29000e"
style="width: auto; height: auto; min-width: 0px; min-height: 0px; left: 83px;
top: 272px;" data-block-id="0683581585df6c1a9e931a085ac96dc1"><a
class="sl-block-content" data-line-x1="0" data-line-y1="0" data-line-x2="433"
data-line-y2="0" data-line-color="#222222" data-line-start-type="none"
data-line-end-type="line-arrow" style="z-index: 15;" data-line-width="4px"
href="#/our-services"><svg xmlns="http://www.w3.org/200 [...]
+</div></div>
+<div class="sl-block sl-block-group" data-block-type="group" style="height:
auto;" data-name="group-6497f2"
data-block-id="2c1fad5d7a30ba8fce2d00c26fd53e55"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 326px 341px; z-index: 17;
transition-duration: 0.6s; transition-delay: 0.5s;"
data-animation-type="slide-left">
+<div class="sl-block" data-block-type="text" style="width: 510px; left: 71px;
top: 309px; height: auto;" data-name="text-7aea17"
data-block-id="3954e4dddf096e14e3f171b804fbe3fb"><a class="sl-block-style"
style="z-index: 20;" href="#/process"><div class="sl-block-content"
data-placeholder-tag="p" style="text-align: left; z-index: 20; font-size: 110%;
border-width: 4px; line-height: 1.17; border-color: rgb(0, 0, 0); padding:
10px; color: rgb(0, 0, 0);" data-has-line-height="" data-placehol [...]
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
min-width: 0px; min-height: 0px; left: 83px; top: 372px;"
data-name="line-674866" data-block-id="ac46a79af27f127035be359f5b25dd01"><a
class="sl-block-content" data-line-x1="0" data-line-y1="0" data-line-x2="433"
data-line-y2="0" data-line-color="#222222" data-line-start-type="none"
data-line-end-type="line-arrow" style="z-index: 21;" data-line-width="4px"
href="#/process"><svg xmlns="http://www.w3.org/2000/svg [...]
+</div></div>
+<div class="sl-block sl-block-group" data-block-type="group" style="height:
auto;" data-name="group-eacb85"
data-block-id="c4490af70d8152bcdec308a06e45dd36"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 326px 447px; z-index: 22;
transition-duration: 0.6s; transition-delay: 0.6s;"
data-animation-type="slide-left">
+<div class="sl-block" data-block-type="text" style="width: 510px; left: 71px;
top: 415px; height: auto;" data-name="text-71eca7"
data-block-id="a84d842c4a5e8b7c4fc85c27d344a284"><a class="sl-block-style"
style="z-index: 25;" href="#/team"><div class="sl-block-content"
data-placeholder-tag="p" style="text-align: left; z-index: 25; font-size: 110%;
border-width: 4px; line-height: 1.17; border-color: rgb(0, 0, 0); padding:
10px; color: rgb(0, 0, 0);" data-has-line-height="" data-placeholder [...]
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
min-width: 0px; min-height: 0px; left: 83px; top: 478px;"
data-name="line-f42094" data-block-id="c9ac1f22a8894543c346d779ac39aea5"><a
class="sl-block-content" data-line-x1="0" data-line-y1="0" data-line-x2="433"
data-line-y2="0" data-line-color="#222222" data-line-start-type="none"
data-line-end-type="line-arrow" style="z-index: 26;" data-line-width="4px"
href="#/team"><svg xmlns="http://www.w3.org/2000/svg" v [...]
+</div></div>
+<div class="sl-block sl-block-group" data-block-type="group" style="height:
auto;" data-name="group-3745a8"
data-block-id="4a412a3c8401eb9b1a0633cd12de0fdd"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 326px 560px; z-index: 27;
transition-duration: 0.6s; transition-delay: 0.7s;"
data-animation-type="slide-left">
+<div class="sl-block" data-block-type="text" style="width: 510px; left: 71px;
top: 528px; height: auto;" data-name="text-515ed0"
data-block-id="a6eda61064bf02cb40e23c82f252e048"><a class="sl-block-style"
style="z-index: 30;" href="#/our-clients"><div class="sl-block-content"
data-placeholder-tag="p" style="text-align: left; z-index: 30; font-size: 110%;
border-width: 4px; line-height: 1.17; border-color: rgb(0, 0, 0); padding:
10px; color: rgb(0, 0, 0);" data-has-line-height="" data-plac [...]
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
min-width: 0px; min-height: 0px; left: 83px; top: 591px;"
data-name="line-edd75d" data-block-id="84c81f27e87eca7a33a45c381c33da56"><a
class="sl-block-content" data-line-x1="0" data-line-y1="0" data-line-x2="433"
data-line-y2="0" data-line-color="#222222" data-line-start-type="none"
data-line-end-type="line-arrow" style="z-index: 31;" data-line-width="4px"
href="#/our-clients"><svg xmlns="http://www.w3.org/2000 [...]
+</div></div></section><section data-background-color="rgb(229, 230, 226)"
data-id="b355d7ca28add7c265f382a9fa38972d">
+
+
+<div class="sl-block" data-block-type="text" style="width: 800px; left: 80px;
top: 90.5px; height: auto;" data-name="text-c29943"
data-block-id="0dcea35ea8bfcce116b0b6b812bb9422"><div class="sl-block-content"
data-placeholder-tag="h2" style="text-align: left; z-index: 10;"
data-placeholder-text="Text"><h2><strong>MAP</strong></h2></div></div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
left: 80px; top: 141px;" data-name="line-79aed3"
data-block-id="2bc419ea6ccd137fa0d54612531e0727"><div class="sl-block-content"
data-line-x1="0" data-line-y1="0" data-line-x2="106.61835748792271"
data-line-y2="0" data-line-color="#000000" data-line-start-type="none"
data-line-end-type="none" style="z-index: 11;" data-line-width="4px"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" preserveaspectratio="xM [...]
+
+
+
+<div class="sl-block" data-block-type="line" data-name="line-d32e2e"
style="width: auto; height: auto; min-width: 0px; min-height: 0px; left: 320px;
top: 210px;" data-block-id="efc708f898021c866a15bf6f12aa4139"><div
class="sl-block-content" data-line-x1="0" data-line-y1="302" data-line-x2="0"
data-line-y2="0" data-line-color="#000000" data-line-start-type="none"
data-line-end-type="none" style="z-index: 12;"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" preserveaspectratio="xMidY
[...]
+<div class="sl-block" data-block-type="line" data-name="line-55297c"
style="width: auto; height: auto; min-width: 0px; min-height: 0px; left: 80px;
top: 350px;" data-block-id="641fd7272cad9f822b7d1c8f198dcc33"><div
class="sl-block-content" data-line-x1="0" data-line-y1="0" data-line-x2="473"
data-line-y2="0" data-line-color="#000000" data-line-start-type="none"
data-line-end-type="none" style="z-index: 13;"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" preserveaspectratio="xMidYM
[...]
+<div class="sl-block" data-block-type="text" data-name="text-3d469c"
style="height: auto; width: 308px; left: 560px; top: 400.5px;"
data-block-id="5a411c3f7e7e2255d3e6a8c9a4237d07"><div class="sl-block-content"
data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 14;
text-align: center;">
+<p><strong>physical</strong></p>
+</div></div>
+<div class="sl-block" data-block-type="text" style="height: auto; width:
308px; left: 560px; top: 260.5px;" data-name="text-53a0f7"
data-block-id="c0ef02c59e025222d848c72d4b7ca3f1"><div class="sl-block-content"
data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 15;
text-align: center;">
+<p><strong>digital</strong></p>
+</div></div>
+<div class="sl-block" data-block-type="text" style="height: auto; width:
234px; left: 43px; top: 540.5px;" data-name="text-72d968"
data-block-id="473f5ea06b8ad0f31c78a9773b67c137"><div class="sl-block-content"
data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 16;
text-align: center;">
+<p><strong>account</strong></p>
+</div></div>
+<div class="sl-block" data-block-type="text" data-name="text-d39275"
style="height: auto; width: 232px; left: 328px; top: 540.5px;"
data-block-id="e24ded70569b2b683919e256ce3ff4ba"><div class="sl-block-content"
data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 17;">
+<p><strong>token</strong></p>
+</div></div>
+<div class="sl-block" data-block-type="text" data-name="text-0663be"
style="height: auto; width: 159px; left: 359px; top: 400.5px;"
data-block-id="93c8f503d835eaf669b82530f2145154"><div class="sl-block-content"
data-placeholder-tag="p" data-placeholder-text="Text" style="z-index:
18;"><p>cash</p></div></div>
+<div class="sl-block" data-block-type="text" data-name="text-84f6f4"
style="height: auto; width: 236px; left: 55px; top: 260.5px;"
data-block-id="74e039fd88e9d963a846b0296bab1e85"><div class="sl-block-content"
data-placeholder-tag="p" data-placeholder-text="Text" style="z-index:
19;"><p>wire transfer and crypto</p></div></div>
+<div class="sl-block" data-block-type="text" style="height: auto; width:
236px; left: 55px; top: 400.5px;" data-name="text-97a7e1"
data-block-id="8eebe1ae0007e5069cad6959a8f61c69"><div class="sl-block-content"
data-placeholder-tag="p" data-placeholder-text="Text" style="z-index:
20;"><p>ledger book</p></div></div>
+<div class="sl-block" data-block-type="text" data-name="text-b2118e"
style="height: auto; width: 159px; left: 359px; top: 260.5px;"
data-block-id="dd319fd70fc17d615d5eaacc80cbcb9f"><div class="sl-block-content"
data-placeholder-tag="p" data-placeholder-text="Text" style="z-index: 21;">
+<p>GNU Taler</p>
+</div></div></section><section data-background-color="rgb(229, 230, 226)"
data-id="939cf62975df86bc79e10fa4f587cf54">
+
+
+<div class="sl-block" data-block-type="text" style="width: 800px; left: 80px;
top: 90.5px; height: auto;" data-name="text-c29943"
data-block-id="bb17af172b39791b2dea0eb9c8c80ca6"><div class="sl-block-content"
data-placeholder-tag="h2" style="text-align: left; z-index: 10;"
data-placeholder-text="Text"><h2><strong>MAP</strong></h2></div></div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
left: 80px; top: 141px;" data-name="line-79aed3"
data-block-id="0459da4c2074096d3fe415661857d36d"><div class="sl-block-content"
data-line-x1="0" data-line-y1="0" data-line-x2="106.61835748792271"
data-line-y2="0" data-line-color="#000000" data-line-start-type="none"
data-line-end-type="none" style="z-index: 11;" data-line-width="4px"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" preserveaspectratio="xM [...]
+
+
+
+<div class="sl-block" data-block-type="text" data-name="text-5918d4"
style="height: auto; width: 247.625px; left: 338.5px; top: 227.75px;"
data-block-id="0894c630dcd95e0d221485740041d294"><div class="sl-block-content
fragment" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index:
12;" data-fragment-index="0">
+<h3>exchange</h3>
+</div></div>
+<div class="sl-block" data-block-type="text" data-name="text-738a02"
style="height: auto; width: 221px; left: 107.812px; top: 548.75px;"
data-block-id="75a0e59a5d1abf82e43f3428ec9cfd19"><div class="sl-block-content
fragment" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index:
13;" data-fragment-index="1">
+<h3>wallet</h3>
+</div></div>
+<div class="sl-block" data-block-type="text" style="height: auto; width:
271px; left: 581.188px; top: 548.25px;" data-name="text-691836"
data-block-id="dfb38f352de82ac75dc3f5c995cb433d"><div class="sl-block-content
fragment" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index:
14;" data-fragment-index="3">
+<h3>merchant</h3>
+</div></div>
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
left: 218.312px; top: 293.75px;" data-name="line-b44c95"
data-block-id="dad80af53c125b222250534a2c669a13"><div class="sl-block-content
fragment" data-line-x1="164.125" data-line-y1="0" data-line-x2="0"
data-line-y2="245" data-line-color="#000000" data-line-start-type="none"
data-line-end-type="arrow" style="z-index: 15;" data-line-width="4px"
data-fragment-index="2"><svg xmlns="http://www.w3.org/2000/svg" vers [...]
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
left: 321.5px; top: 559px;" data-name="line-93c6bb"
data-block-id="6d03c2cd97219ae0a161741b51ebb348"><div class="sl-block-content
fragment" data-line-x1="0" data-line-y1="0" data-line-x2="266.875"
data-line-y2="0.5" data-line-color="#000000" data-line-start-type="line-arrow"
data-line-end-type="none" style="z-index: 16;" data-line-width="4px"
data-fragment-index="4"><svg xmlns="http://www.w3.org/2000/svg" vers [...]
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
left: 542.312px; top: 293.75px;" data-name="line-3dd52e"
data-block-id="4cafb8a29bd69cae21d55701a46a2168"><div class="sl-block-content
fragment" data-line-x1="0" data-line-y1="0" data-line-x2="157.875"
data-line-y2="245" data-line-color="#000000" data-line-start-type="line-arrow"
data-line-end-type="none" style="z-index: 17;" data-line-width="4px"
data-fragment-index="6"><svg xmlns="http://www.w3.org/2000/svg" [...]
+<div class="sl-block" data-block-type="text" data-name="text-65e231"
style="height: auto; width: 273.727px; left: 127.673px; top: 374.171px;"
data-block-id="976e526bc85448144b49f1cf355ce080"><div class="sl-block-style"
style="z-index: 18; transform: rotate(-56deg);"><div class="sl-block-content
fragment" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index:
18;" data-fragment-index="2">
+<p><span style="font-size:0.7em">1.withdraw coins</span></p>
+</div></div></div>
+<div class="sl-block" data-block-type="text" style="height: auto; width:
273.727px; left: 307.45px; top: 485.344px;" data-name="text-83aaa2"
data-block-id="8c4939464e181537d8e239b1c780af63"><div class="sl-block-content
fragment" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index:
19;" data-fragment-index="4">
+<p><span style="font-size:0.7em">2. send ticket</span></p>
+</div></div>
+<div class="sl-block" data-block-type="text" style="height: auto; width:
273.727px; left: 521.713px; top: 381.547px;" data-name="text-8b825b"
data-block-id="f6cc63c372ce29e84991ad486c63a12b"><div class="sl-block-style"
style="z-index: 20; transform: rotate(55deg);"><div class="sl-block-content
fragment" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index:
20;" data-fragment-index="6">
+<p><span style="font-size:0.7em">4. deposit</span></p>
+</div></div></div>
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
left: 321.5px; top: 610.25px;" data-name="line-c2b5cb"
data-block-id="feab8625fe5fd474c2addbd28d86e675"><div class="sl-block-content
fragment" data-line-x1="0" data-line-y1="0" data-line-x2="266.875"
data-line-y2="0.5" data-line-color="#000000" data-line-start-type="none"
data-line-end-type="arrow" style="z-index: 21;" data-line-width="4px"
data-fragment-index="5"><svg xmlns="http://www.w3.org/2000/svg" versio [...]
+<div class="sl-block" data-block-type="text" style="height: auto; width:
273.727px; left: 310.812px; top: 560.25px;" data-name="text-d58d73"
data-block-id="7debbf6a8038eb4e5c1d9074347fc08b"><div class="sl-block-content
fragment" data-placeholder-tag="p" data-placeholder-text="Text" style="z-index:
22;" data-fragment-index="5">
+<p><span style="font-size:0.7em">3. pay / sign</span></p>
+</div></div></section><section data-background-color="rgb(229, 230, 226)"
data-id="2a38da9768bc157577c467d384b92386">
+
+<div class="sl-block" data-block-type="image" style="width: 806.4px; height:
434.811px; left: 80px; top: 210px; min-width: 1px; min-height: 1px;"
data-name="image-b5bf01" data-block-id="f1394a5e1889747ef36aafc975560bdc"><div
class="sl-block-content" style="z-index: 10;"><img class=""
data-natural-width="2500" data-natural-height="1348" data-lazy-loaded=""
data-src="./operations.png"></div></div>
+<div class="sl-block" data-block-type="text" style="width: 800px; left: 80px;
top: 90.5px; height: auto;" data-name="text-c29943"
data-block-id="ccb6a87f3f4d80a3c8e3f120766894ec"><div class="sl-block-content"
data-placeholder-tag="h2" style="text-align: left; z-index: 11;"
data-placeholder-text="Text"><h2>flow</h2></div></div>
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
left: 80px; top: 141px;" data-name="line-79aed3"
data-block-id="48c35205050536e440bd897d0ee45b8f"><div class="sl-block-content"
data-line-x1="0" data-line-y1="0" data-line-x2="106.61835748792271"
data-line-y2="0" data-line-color="#000000" data-line-start-type="none"
data-line-end-type="none" style="z-index: 12;" data-line-width="4px"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" preserveaspectratio="xM [...]
+
+
+<div class="sl-block" data-block-type="text" style="width: 800px; left: 80px;
top: 90.5px; height: auto;" data-name="text-c29943"
data-block-id="0e6ff5a21af1399c35d56049f7e44c56"><div class="sl-block-content"
data-placeholder-tag="h2" style="text-align: left; z-index: 10;"
data-placeholder-text="Text"><h2><strong>Components</strong></h2></div></div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
left: 80px; top: 141px;" data-name="line-79aed3"
data-block-id="2b83945884855395f7e5ce2896be1695"><div class="sl-block-content"
data-line-x1="0" data-line-y1="0" data-line-x2="106.61835748792271"
data-line-y2="0" data-line-color="#000000" data-line-start-type="none"
data-line-end-type="none" style="z-index: 16;" data-line-width="4px"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" preserveaspectratio="xM [...]
+<div class="sl-block sl-block-group" data-block-type="group"
data-name="group-4cebe8" style="height: auto;"
data-block-id="d3a8d16419d5fefc1dff2abd4a7baaa4"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 475.5px 239.5px; z-index: 11;
transition-duration: 0.6s; transition-delay: 0.4s;"
data-animation-type="slide-left">
+<div class="sl-block" data-block-type="text" style="width: 809px; left: 71px;
top: 206px; height: auto;" data-name="text-c5947b"
data-block-id="5334a970df6864d7c99ecd251722a934"><a class="sl-block-style"
style="z-index: 14;" href="#/our-services"><div class="sl-block-content"
data-placeholder-tag="p" style="text-align: left; z-index: 14; font-size: 110%;
border-width: 4px; line-height: 1.17; border-color: rgb(0, 0, 0); padding:
10px; color: rgb(0, 0, 0);" data-has-line-height="" data-pla [...]
+<div class="sl-block" data-block-type="line" data-name="line-29000e"
style="width: auto; height: auto; min-width: 0px; min-height: 0px; left:
90.0353px; top: 272px;" data-block-id="79b7b9de179102bf704cf800b1933f8a"><a
class="sl-block-content" data-line-x1="0" data-line-y1="0"
data-line-x2="686.856862745098" data-line-y2="0" data-line-color="#222222"
data-line-start-type="none" data-line-end-type="line-arrow" style="z-index:
15;" data-line-width="4px" href="#/our-services"><svg xmlns="htt [...]
+</div></div>
+<div class="sl-block sl-block-group" data-block-type="group" style="height:
auto;" data-name="group-6497f2"
data-block-id="9c606ca7533097c9de10cefc446f6732"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 475.5px 341px; z-index: 17;
transition-duration: 0.6s; transition-delay: 0.5s;"
data-animation-type="slide-left">
+<div class="sl-block" data-block-type="text" style="width: 809px; left: 71px;
top: 309px; height: auto;" data-name="text-7aea17"
data-block-id="0cfc5f581b3b5799c5ff1fbf97b04765"><a class="sl-block-style"
style="z-index: 20;" href="#/process"><div class="sl-block-content"
data-placeholder-tag="p" style="text-align: left; z-index: 20; font-size: 110%;
border-width: 4px; line-height: 1.17; border-color: rgb(0, 0, 0); padding:
10px; color: rgb(0, 0, 0);" data-has-line-height="" data-placehol [...]
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
min-width: 0px; min-height: 0px; left: 90.0352px; top: 372px;"
data-name="line-674866" data-block-id="9e9e2432aad67fc24de906d03f79bd9d"><a
class="sl-block-content" data-line-x1="0" data-line-y1="0"
data-line-x2="686.856862745098" data-line-y2="0" data-line-color="#222222"
data-line-start-type="none" data-line-end-type="line-arrow" style="z-index:
21;" data-line-width="4px" href="#/process"><svg xmlns="http://w [...]
+</div></div>
+<div class="sl-block sl-block-group" data-block-type="group" style="height:
auto;" data-name="group-eacb85"
data-block-id="c6ddaba4367b9e99c8fa4f9bef6344fb"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 475.5px 447px; z-index: 22;
transition-duration: 0.6s; transition-delay: 0.6s;"
data-animation-type="slide-left">
+<div class="sl-block" data-block-type="text" style="width: 809px; left: 71px;
top: 415px; height: auto;" data-name="text-71eca7"
data-block-id="97eb3ad85ff0c0c47d366b81b37b61ce"><a class="sl-block-style"
style="z-index: 25;" href="#/team"><div class="sl-block-content"
data-placeholder-tag="p" style="text-align: left; z-index: 25; font-size: 110%;
border-width: 4px; line-height: 1.17; border-color: rgb(0, 0, 0); padding:
10px; color: rgb(0, 0, 0);" data-has-line-height="" data-placeholder [...]
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
min-width: 0px; min-height: 0px; left: 90.0354px; top: 478px;"
data-name="line-f42094" data-block-id="4b733f2060afef03239ccf8b3272e270"><a
class="sl-block-content" data-line-x1="0" data-line-y1="0"
data-line-x2="686.8568627450982" data-line-y2="0" data-line-color="#222222"
data-line-start-type="none" data-line-end-type="line-arrow" style="z-index:
26;" data-line-width="4px" href="#/team"><svg xmlns="http://www [...]
+</div></div>
+<div class="sl-block sl-block-group" data-block-type="group" style="height:
auto;" data-name="group-3745a8"
data-block-id="cdf201f5e882500b4156e60df44f46f4"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 475.5px 560px; z-index: 27;
transition-duration: 0.6s; transition-delay: 0.7s;"
data-animation-type="slide-left">
+<div class="sl-block" data-block-type="text" style="width: 809px; left: 71px;
top: 528px; height: auto;" data-name="text-515ed0"
data-block-id="19dc383efc426554ea2a5546eadb9105"><a class="sl-block-style"
style="z-index: 30;" href="#/our-clients"><div class="sl-block-content"
data-placeholder-tag="p" style="text-align: left; z-index: 30; font-size: 110%;
border-width: 4px; line-height: 1.17; border-color: rgb(0, 0, 0); padding:
10px; color: rgb(0, 0, 0);" data-has-line-height="" data-plac [...]
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
min-width: 0px; min-height: 0px; left: 90.0353px; top: 591px;"
data-name="line-edd75d" data-block-id="0944b2ab210eff054b216ee213c62130"><a
class="sl-block-content" data-line-x1="0" data-line-y1="0"
data-line-x2="686.8568627450979" data-line-y2="0" data-line-color="#222222"
data-line-start-type="none" data-line-end-type="line-arrow" style="z-index:
31;" data-line-width="4px" href="#/our-clients"><svg xmlns="htt [...]
+</div></div></section><section data-background-color="rgb(229, 230, 226)"
data-id="742882618ddbdb5bff0985c9c7295826"><div class="sl-block"
data-block-type="text" style="width: 876px; left: 42px; top: 204px; height:
auto;" data-block-id="678ad7e7894004a312da70c8dc1634a8"><div
class="sl-block-content" data-placeholder-tag="h1" style="z-index: 10;
font-size: 160%; padding: 20px; line-height: 1.04;" data-has-line-height=""
data-placeholder-text="Text"><h1>DEMO</h1></div></div>
+<div class="sl-block" data-block-type="line" data-name="line-a5c0c7"
style="width: auto; height: auto; left: 323px; top: 326px;"
data-block-id="f9cdea00574342980b888c1dfb5fb473"><div class="sl-block-content"
data-line-x1="0" data-line-y1="0" data-line-x2="314" data-line-y2="0"
data-line-color="#ffffff" data-line-start-type="none" data-line-end-type="none"
style="z-index: 11;" data-line-width="4px"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" preserveaspectratio="xMidYMid"
width= [...]
+<div class="sl-block" data-block-type="text" style="width: 877px; left: 41px;
top: 326px; height: auto;" data-name="text-d18e72"
data-block-id="4ffb03f828a0aea2449d6fb2fdfe3413"><div class="sl-block-content"
data-placeholder-tag="p" style="z-index: 12; text-align: center; color: rgb(0,
0, 0); font-size: 120%; padding: 20px;"
data-placeholder-text="Text"><p>Creating a full GNU Taler
system</p></div></div></section><section
data-id="0e896dcd366440acb529b787f5d76c7a">
+
+
+
+
+
+
+
+
+
+
+<div class="sl-block" data-block-type="text" style="width: 800px; left: 80px;
top: 44.5px; height: auto;" data-name="text-c29943"
data-block-id="5db737888b3e42fda991d9684f31ad12"><div class="sl-block-content"
data-placeholder-tag="h2" style="text-align: center; z-index: 10; padding: 5px;
line-height: 1.17; font-size: 110%;" data-has-line-height=""
data-placeholder-text="Text"><h2>Not covered</h2></div></div>
+<div class="sl-block" data-block-type="line" data-name="line-29000e"
style="width: auto; height: auto; left: 430px; top: 95.5px;"
data-block-id="0381806fefdd9508e7fba5c8833557f7"><div class="sl-block-content"
data-line-x1="0" data-line-y1="0" data-line-x2="95" data-line-y2="0"
data-line-color="#f2ede8" data-line-start-type="none" data-line-end-type="none"
style="z-index: 50;" data-line-width="4px"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" preserveaspectratio="xMidYMid"
width= [...]
+<div class="sl-block sl-block-group" data-block-type="group"
data-name="group-fb20c8" style="height: auto;"
data-block-id="906ce5b2c824253afdf1b9723d9188cc"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 171.5px 385px; z-index: 11;
transition-duration: 0.6s; transition-delay: 0.3s;"
data-animation-type="slide-right">
+
+<div class="sl-block" data-block-type="shape" style="width: 224px; height:
350px; left: 59.5px; top: 210px;" data-name="shape-e1e4ba"
data-block-id="31ff61a8647c7d0c0e5207c1807cf895"><div class="sl-block-content"
data-shape-type="rect" data-shape-fill-color="rgb(242, 237, 232)"
data-shape-stretch="true" style="z-index: 18;"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%"
preserveaspectratio="none" viewbox="0 0 224 350"><rect width="224" height="350"
rx="0 [...]
+
+
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
min-width: 0px; min-height: 0px; left: 129px; top: 358.875px;"
data-name="line-d102fc" data-block-id="ff3a9c019e18b6ed12550ae1c20ba8c5"><div
class="sl-block-content" data-line-x1="0" data-line-y1="0" data-line-x2="85"
data-line-y2="0" data-line-color="#000000" data-line-start-type="none"
data-line-end-type="none" style="z-index: 23;" data-line-width="3px"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" p [...]
+<div class="sl-block" data-block-type="shape" style="width: 70px; height:
70px; left: 136.5px; top: 260.875px;" data-name="shape-4a0161"
data-block-id="713e20ce3a965b19beb0b5ab2d6de3c7"><div class="sl-block-content"
data-shape-type="circle" data-shape-fill-color="rgb(255, 255, 255)"
data-shape-stretch="true" style="z-index: 20;"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%"
preserveaspectratio="none" viewbox="0 0 70 70"><ellipse rx="35" ry="35" cx="35"
[...]
+<div class="sl-block" data-block-type="shape" data-name="shape-6493da"
style="width: 40px; height: 40px; left: 151.5px; top: 275.875px;"
data-block-id="0afe8efc8af5d7c6480fa8147f1e74a5"><div class="sl-block-content"
data-shape-type="symbol-bolt" data-shape-fill-color="rgb(0, 0, 0)"
data-shape-stretch="false" style="z-index: 22;"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%"
preserveaspectratio="xMidYMid" viewbox="0 0 32 32"><g class="shape-element"
fill [...]
+<div class="sl-block" data-block-type="text" style="width: 224px; left:
59.5px; top: 388.125px; height: auto;"
data-block-id="8bfe1bea5b464d2d6ebc417b47a436f9"><div class="sl-block-content"
data-placeholder-tag="h2" style="text-align: center; z-index: 19; font-size:
60%; padding: 5px;" data-placeholder-text="Text"><h2>KYC / AML</h2></div></div>
+<div class="sl-block" data-block-type="text" style="width: 224px; left:
59.5px; top: 423.125px; height: auto;" data-name="text-96a5c5"
data-block-id="a1e80317f912316144a94992d56b01a8"><div class="sl-block-content"
data-placeholder-tag="p" style="z-index: 21; text-align: center; font-size:
50%; padding: 14px;" data-placeholder-text="Text"><p>GNU Taler exchange comes
with builtin features for Know Your Customer and Anti-Money
Laundering</p></div></div>
+</div></div>
+<div class="sl-block sl-block-group" data-block-type="group"
data-name="group-0aae99" style="height: auto;"
data-block-id="392a04e1249e88b7bb7ec158e2438c5a"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 482.5px 385px; z-index: 24;
transition-duration: 0.6s; transition-delay: 0.5s;"
data-animation-type="slide-up">
+
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
min-width: 0px; min-height: 0px; left: 440px; top: 358.875px;"
data-name="line-2005ca" data-block-id="4fbf0215743076392785c5ba08ef7d51"><div
class="sl-block-content" data-line-x1="0" data-line-y1="0" data-line-x2="85"
data-line-y2="0" data-line-color="#000000" data-line-start-type="none"
data-line-end-type="none" style="z-index: 36;" data-line-width="3px"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" p [...]
+<div class="sl-block" data-block-type="shape" data-name="shape-6841f7"
style="width: 224px; height: 350px; left: 370.5px; top: 210px;"
data-block-id="06a81089582da11a07284b84f9d0c1ea"><div class="sl-block-content"
data-shape-type="rect" data-shape-fill-color="rgb(242, 237, 232)"
data-shape-stretch="true" style="z-index: 31;"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%"
preserveaspectratio="none" viewbox="0 0 224 350"><rect width="224" height="350"
rx=" [...]
+<div class="sl-block" data-block-type="shape" style="width: 70px; height:
70px; left: 447.5px; top: 260.875px;" data-name="shape-615153"
data-block-id="fb657784fe4616d0043156cafe5c81ee"><div class="sl-block-content"
data-shape-type="circle" data-shape-fill-color="rgb(255, 255, 255)"
data-shape-stretch="true" style="z-index: 32;"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%"
preserveaspectratio="none" viewbox="0 0 70 70"><ellipse rx="35" ry="35" cx="35"
[...]
+<div class="sl-block" data-block-type="shape" style="width: 40px; height:
40px; left: 462.5px; top: 275.875px;" data-name="shape-f69db8"
data-block-id="8e7645e6f0046808db933e44ba36f5f3"><div class="sl-block-content"
data-shape-type="symbol-home" data-shape-fill-color="rgb(0, 0, 0)"
data-shape-stretch="false" style="z-index: 35;"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%"
preserveaspectratio="xMidYMid" viewbox="0 0 32 32"><g class="shape-element"
fill [...]
+<div class="sl-block" data-block-type="text" style="width: 224px; left:
370.5px; top: 388.125px; height: auto;" data-name="text-2291a2"
data-block-id="ac84f73567c6df10de8d45ce2478a081"><div class="sl-block-content"
data-placeholder-tag="h2" style="text-align: center; z-index: 34; font-size:
60%; padding: 5px;" data-placeholder-text="Text"><h2>Wallet
Backup</h2></div></div>
+<div class="sl-block" data-block-type="text" style="width: 224px; left:
370.5px; top: 423.125px; height: auto;" data-name="text-74a71a"
data-block-id="3b927c4ab6e9af7ce9810831ef05a506"><div class="sl-block-content"
data-placeholder-tag="p" style="z-index: 33; text-align: center; font-size:
50%; padding: 14px;" data-placeholder-text="Text"><p>Since GNU Taler wallets
have value-base token loosing the wallet means loosing cash. Integrated backups
allow user to save a copy and restore it.</p [...]
+</div></div>
+<div class="sl-block sl-block-group" data-block-type="group"
data-name="group-422dd2" style="height: auto;"
data-block-id="86fc8328ee51ed2fe374dd84442c51dd"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 788.5px 385px; z-index: 37;
transition-duration: 0.6s; transition-delay: 0.7s;"
data-animation-type="slide-left">
+
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
min-width: 0px; min-height: 0px; left: 746px; top: 358.875px;"
data-name="line-828d92" data-block-id="b5ab572faf6292e9b7acd6ab78ea26b5"><div
class="sl-block-content" data-line-x1="0" data-line-y1="0" data-line-x2="85"
data-line-y2="0" data-line-color="#000000" data-line-start-type="none"
data-line-end-type="none" style="z-index: 49;" data-line-width="3px"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" p [...]
+<div class="sl-block" data-block-type="shape" style="width: 224px; height:
350px; left: 676.5px; top: 210px;" data-name="shape-edb4ad"
data-block-id="b7ce9ec3ecc2afade9cd3e9b88ea09a4"><div class="sl-block-content"
data-shape-type="rect" data-shape-fill-color="rgb(242, 237, 232)"
data-shape-stretch="true" style="z-index: 44;"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%"
preserveaspectratio="none" viewbox="0 0 224 350"><rect width="224" height="350"
rx=" [...]
+<div class="sl-block" data-block-type="shape" style="width: 70px; height:
70px; left: 753.5px; top: 260.875px;" data-name="shape-5147c7"
data-block-id="699bb235ec34a8b92646ec8eb9cf069e"><div class="sl-block-content"
data-shape-type="circle" data-shape-fill-color="rgb(255, 255, 255)"
data-shape-stretch="true" style="z-index: 45;"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%"
preserveaspectratio="none" viewbox="0 0 70 70"><ellipse rx="35" ry="35" cx="35"
[...]
+<div class="sl-block" data-block-type="shape" style="width: 40px; height:
40px; left: 768.5px; top: 275.875px;" data-name="shape-67b404"
data-block-id="b7a23ac0d4444c45d95424824ffdf324"><div class="sl-block-content"
data-shape-type="symbol-earth" data-shape-fill-color="rgb(0, 0, 0)"
data-shape-stretch="false" style="z-index: 48;"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%"
preserveaspectratio="xMidYMid" viewbox="-9.5367431640625e-7 -9.5367431640625e-7
[...]
+<div class="sl-block" data-block-type="text" style="width: 224px; left:
676.5px; top: 388.125px; height: auto;" data-name="text-d3fbcf"
data-block-id="a3086e02e0dfa8b13132797cf7fc6aff"><div class="sl-block-content"
data-placeholder-tag="h2" style="text-align: center; z-index: 47; font-size:
60%; padding: 5px;" data-placeholder-text="Text"><h2>AGE
Restriction</h2></div></div>
+<div class="sl-block" data-block-type="text" style="width: 224px; left:
676.5px; top: 423.125px; height: auto;" data-name="text-fc4f90"
data-block-id="6a834d9528d45e0d139c367262a52379"><div class="sl-block-content"
data-placeholder-tag="p" style="z-index: 46; text-align: center; font-size:
50%; padding: 14px;" data-placeholder-text="Text"><p>With GNU Taler wallet
parents can withdraw coins into child wallet that can't be spent on age
restricted goods</p></div></div>
+</div></div></section><section data-id="bbb30d8e209567866406e019a2617a59"><div
class="sl-block" data-block-type="text" style="width: 457.75px; left: 487.75px;
top: 348.75px; height: auto;"
data-block-id="54d6286086699ab7962ee4eca60da973"><div class="sl-block-content"
data-placeholder-tag="ul" style="z-index: 11; text-align: left; border-width:
1px; padding: 12px;" data-placeholder-text="Text">
+<blockquote>
+<p class="visible">sold almost 20% of our food and drinks via GNU Taler!</p>
+</blockquote>
+
+<p class="visible"> </p>
+
+<ul>
+ <li class="visible">
+ <p><a href="https://github.com/SpitfireX/taler-pos"
target="_blank">Point of sale</a></p>
+ </li>
+ <li class="visible">
+ <p><a href="https://github.com/Windfisch/taler-podman"
target="_blank">Setup scripts</a></p>
+ </li>
+ <li class="visible">
+ <p><a href="https://media.ccc.de/v/jev22-9081-gnu_taler"
target="_blank">Presentation</a></p>
+ </li>
+</ul>
+</div></div>
+<div class="sl-block" data-block-type="line" data-name="line-29000e"
style="width: auto; height: auto; left: 511px; top: 348.75px;"
data-block-id="1c865020c4013bee87a18d34136db94c"><div class="sl-block-content"
data-line-x1="0" data-line-y1="0" data-line-x2="100" data-line-y2="0"
data-line-color="#f2ede8" data-line-start-type="none" data-line-end-type="none"
style="z-index: 13; transition-duration: 0.6s; transition-delay: 0.5s;"
data-line-width="4px" data-animation-type="slide-down"><svg [...]
+<div class="sl-block" data-block-type="text" style="width: 444.5px; left:
501px; top: 172.75px; height: auto;" data-name="text-6dae06"
data-block-id="f489dcaffaf647ccea231275e9f8729e"><div class="sl-block-content"
data-placeholder-tag="h2" style="text-align: left; z-index: 12;
transition-duration: 0.6s; transition-delay: 0.5s; padding: 10px; font-size:
110%;" data-animation-type="slide-down" data-placeholder-text="Text">
+<h2><span
style="font-size:0.9em"><strong>Wintergalaktischen</strong></span></h2>
+
+<h2><strong>Club Mate Party</strong></h2>
+</div></div>
+<div class="sl-block" data-block-type="image" data-name="image-dba733"
style="width: 466.667px; height: 700px; left: 0px; top: 0px; min-width: 1px;
min-height: 1px;" data-block-id="ae44553380389c02b6fb17c3742d7a04"><div
class="sl-block-content" style="z-index: 10; transition-duration: 0.6s;
transition-delay: 0.3s;" data-animation-type="slide-left"><img style="left:
-389px; top: 0px; width: 1244px; height: 700px;" data-natural-width="1024"
data-natural-height="576" data-lazy-loaded="" dat [...]
+
+
+<div class="sl-block" data-block-type="text" style="width: 800px; left: 80px;
top: 90.5px; height: auto;" data-name="text-c29943"
data-block-id="fa18991f1d65f22053944c834ade9a23"><div class="sl-block-content"
data-placeholder-tag="h2" style="text-align: left; z-index: 10;"
data-placeholder-text="Text"><h2><strong>HELP Wanted</strong></h2></div></div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
left: 80px; top: 141px;" data-name="line-79aed3"
data-block-id="525219eaf90e7f66b7163f025a7a211a"><div class="sl-block-content"
data-line-x1="0" data-line-y1="0" data-line-x2="106.61835748792271"
data-line-y2="0" data-line-color="#000000" data-line-start-type="none"
data-line-end-type="none" style="z-index: 16;" data-line-width="4px"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" preserveaspectratio="xM [...]
+<div class="sl-block sl-block-group" data-block-type="group"
data-name="group-4cebe8" style="height: auto;"
data-block-id="452169b272667c6432c208c8d86a0125"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 326px 239.5px; z-index: 11;
transition-duration: 0.6s; transition-delay: 0.4s;"
data-animation-type="slide-left">
+<div class="sl-block" data-block-type="text" style="width: 510px; left: 71px;
top: 206px; height: auto;" data-name="text-c5947b"
data-block-id="0fb5828501778f6b046e0a79f9c3c0bc"><a class="sl-block-style"
style="z-index: 14;" href="#/our-services"><div class="sl-block-content"
data-placeholder-tag="p" style="text-align: left; z-index: 14; font-size: 110%;
border-width: 4px; line-height: 1.17; border-color: rgb(0, 0, 0); padding:
10px; color: rgb(0, 0, 0);" data-has-line-height="" data-pla [...]
+<div class="sl-block" data-block-type="line" data-name="line-29000e"
style="width: auto; height: auto; min-width: 0px; min-height: 0px; left: 83px;
top: 272px;" data-block-id="43d8c5d9fe59981bd616b7e0a80e5ae5"><a
class="sl-block-content" data-line-x1="0" data-line-y1="0" data-line-x2="433"
data-line-y2="0" data-line-color="#222222" data-line-start-type="none"
data-line-end-type="line-arrow" style="z-index: 15;" data-line-width="4px"
href="#/our-services"><svg xmlns="http://www.w3.org/200 [...]
+</div></div>
+<div class="sl-block sl-block-group" data-block-type="group" style="height:
auto;" data-name="group-6497f2"
data-block-id="8ef8936e7f2ae415c8e5dd8ccf6d2cfe"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 326px 341px; z-index: 17;
transition-duration: 0.6s; transition-delay: 0.5s;"
data-animation-type="slide-left">
+<div class="sl-block" data-block-type="text" style="width: 510px; left: 71px;
top: 309px; height: auto;" data-name="text-7aea17"
data-block-id="8de4fa7a83e7ea183bae335c63fca17c"><a class="sl-block-style"
style="z-index: 20;" href="#/process"><div class="sl-block-content"
data-placeholder-tag="p" style="text-align: left; z-index: 20; font-size: 110%;
border-width: 4px; line-height: 1.17; border-color: rgb(0, 0, 0); padding:
10px; color: rgb(0, 0, 0);" data-has-line-height="" data-placehol [...]
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
min-width: 0px; min-height: 0px; left: 83px; top: 372px;"
data-name="line-674866" data-block-id="6ce4b95565b2fa671ec758dd91061ce6"><a
class="sl-block-content" data-line-x1="0" data-line-y1="0" data-line-x2="433"
data-line-y2="0" data-line-color="#222222" data-line-start-type="none"
data-line-end-type="line-arrow" style="z-index: 21;" data-line-width="4px"
href="#/process"><svg xmlns="http://www.w3.org/2000/svg [...]
+</div></div>
+<div class="sl-block sl-block-group" data-block-type="group" style="height:
auto;" data-name="group-eacb85"
data-block-id="3ec141ac2cf652f60cc43f7cf57b79bd"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 326px 447px; z-index: 22;
transition-duration: 0.6s; transition-delay: 0.6s;"
data-animation-type="slide-left">
+<div class="sl-block" data-block-type="text" style="width: 510px; left: 71px;
top: 415px; height: auto;" data-name="text-71eca7"
data-block-id="c2e888923dbe0d88c37a5c1fe3975e0c"><a class="sl-block-style"
style="z-index: 25;" href="#/team"><div class="sl-block-content"
data-placeholder-tag="p" style="text-align: left; z-index: 25; font-size: 110%;
border-width: 4px; line-height: 1.17; border-color: rgb(0, 0, 0); padding:
10px; color: rgb(0, 0, 0);" data-has-line-height="" data-placeholder [...]
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
min-width: 0px; min-height: 0px; left: 83px; top: 478px;"
data-name="line-f42094" data-block-id="e92732aa99014eb6675920b69e0f2b6d"><a
class="sl-block-content" data-line-x1="0" data-line-y1="0" data-line-x2="433"
data-line-y2="0" data-line-color="#222222" data-line-start-type="none"
data-line-end-type="line-arrow" style="z-index: 26;" data-line-width="4px"
href="#/team"><svg xmlns="http://www.w3.org/2000/svg" v [...]
+</div></div>
+<div class="sl-block sl-block-group" data-block-type="group" style="height:
auto;" data-name="group-3745a8"
data-block-id="e0b2740190900723218f550682ccd53d"><div class="sl-block-content
sl-block-group-content" style="transform-origin: 326px 560px; z-index: 27;
transition-duration: 0.6s; transition-delay: 0.7s;"
data-animation-type="slide-left">
+<div class="sl-block" data-block-type="text" style="width: 510px; left: 71px;
top: 528px; height: auto;" data-name="text-515ed0"
data-block-id="aa1f6c70ba84d08932af06789d0d718a"><a class="sl-block-style"
style="z-index: 30;" href="#/our-clients"><div class="sl-block-content"
data-placeholder-tag="p" style="text-align: left; z-index: 30; font-size: 110%;
border-width: 4px; line-height: 1.17; border-color: rgb(0, 0, 0); padding:
10px; color: rgb(0, 0, 0);" data-has-line-height="" data-plac [...]
+<div class="sl-block" data-block-type="line" style="width: auto; height: auto;
min-width: 0px; min-height: 0px; left: 83px; top: 591px;"
data-name="line-edd75d" data-block-id="9c773ed4cf0a42887d152b3175df7afc"><a
class="sl-block-content" data-line-x1="0" data-line-y1="0" data-line-x2="433"
data-line-y2="0" data-line-color="#222222" data-line-start-type="none"
data-line-end-type="line-arrow" style="z-index: 31;" data-line-width="4px"
href="#/our-clients"><svg xmlns="http://www.w3.org/2000 [...]
+</div></div></section><section data-id="5e062cb5ee29920f28ec0fb4946d2beb"><div
class="sl-block" data-block-type="text" style="width: 919px; left: 20.5px; top:
159px; height: auto;" data-name="text-c1a7f2"
data-block-id="a1cd07757cb7474daa22592ba6c69f48"><div class="sl-block-style"
style="z-index: 10; transform: rotate(0deg);"><div class="sl-block-content"
data-placeholder-tag="h1" style="z-index: 10; font-size: 160%; color: rgb(0, 0,
0); padding: 20px; line-height: 1.04;" data-has-line-h [...]
+<div class="sl-block" data-block-type="line" data-name="line-a5c0c7"
style="width: auto; height: auto; left: 323px; top: 281px;"
data-block-id="ca9570f0243788d6bb42b61232fa1b9a"><div class="sl-block-content"
data-line-x1="0" data-line-y1="0" data-line-x2="314" data-line-y2="0"
data-line-color="#000000" data-line-start-type="none" data-line-end-type="none"
style="z-index: 11;" data-line-width="4px"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" preserveaspectratio="xMidYMid"
width= [...]
+
+<div class="sl-block" data-block-type="text" style="width: 320px; left: 80px;
top: 422px; height: auto;" data-name="text-47de13"
data-block-id="8fc3cd713b3c9b73d5038eb7cd125191"><a class="sl-block-style"
style="z-index: 12;" href="mailto:email@example.com" target="_blank"><div
class="sl-block-content" data-placeholder-tag="p" style="text-align: left;
z-index: 12; font-size: 110%; color: rgb(0, 0, 0); background-color: rgb(231,
230, 227); border-style: solid; border-width: 4px; padding: 1 [...]
+<div class="sl-block" data-block-type="shape" style="width: 30px; height:
30px; left: 348px; top: 441px;" data-name="shape-055d95"
data-block-id="a71390c98c14c912acd9d14255a513ef"><div class="sl-block-content"
data-shape-type="symbol-mail" data-shape-fill-color="#000000"
data-shape-stretch="false" style="z-index: 13;"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%"
preserveaspectratio="xMidYMid" viewbox="0 3.999999761581421 32 24"><g
class="shape-element" [...]
+<div class="sl-block" data-block-type="text" style="width: 320px; left: 560px;
top: 420px; height: auto;" data-name="text-47af47"
data-block-id="2a251d3ba1992a514dc975cc69fc70b6"><div class="sl-block-content"
data-placeholder-tag="p" style="text-align: left; z-index: 14; font-size: 110%;
color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0); border-style: solid;
border-width: 4px; padding: 12px; line-height: 1.17; border-color: rgb(231,
230, 227);" data-has-line-height="" data-placehol [...]
+<div class="sl-block" data-block-type="shape" style="width: 30px; height:
30px; left: 828px; top: 439px;" data-name="shape-62cae7"
data-block-id="1acf4eec8fe986071d2e892143cb3a3b"><div class="sl-block-content"
data-shape-type="symbol-iphone" data-shape-fill-color="#000000"
data-shape-stretch="false" style="z-index: 15;"><svg
xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%"
preserveaspectratio="xMidYMid" viewbox="0 0 24 32"><g class="shape-element"
fill="#000000 [...]
+<div class="sl-block" data-block-type="text" style="height: auto; width:
600px; left: 180px; top: 560px;" data-name="text-a8d130"
data-block-id="6eb2f2d3323f5b3b3067f841e362968d"><div class="sl-block-content"
data-placeholder-tag="p" data-placeholder-text="Text" style="z-index:
17;"><p>Sebastian Javier Marchano</p></div></div></section>
+ </div>
+ </div>
+
+
+<script>
+ var SLConfig =
{"current_user":{"id":233396,"username":"sebasjm","name":"Sebastian
Marchano","description":"","thumbnail_url":"https://lh3.googleusercontent.com/-K0BTr9B1jmo/AAAAAAAAAAI/AAAAAAAAD7k/xf6W0oNxnxw/photo.jpg","account_type":"default","team_id":null,"settings":{"id":39747,"present_controls":true,"present_upsizing":true,"present_pointer":false,"present_notes":true,"default_deck_tag_id":null,"editor_grid":true,"editor_grid_on_top":false,"editor_snap":true,"editor_fixed_notes":f
[...]
+</script>
+
+ <script>
+ !function(t){function
e(t,e,r,n,i){this._listener=e,this._isOnce=r,this.context=n,this._signal=t,this._priority=i||0}function
r(t,e){if("function"!=typeof t)throw new Error("listener is a required param
of {fn}() and should be a Function.".replace("{fn}",e))}function
n(){this._bindings=[],this._prevParams=null;var
t=this;this.dispatch=function(){n.prototype.dispatch.apply(t,arguments)}}e.prototype={active:!0,params:null,execute:function(t){var
e,r;return this.active&&this._listener&&( [...]
+/*!
+{
+ "name": "History API",
+ "property": "history",
+ "caniuse": "history",
+ "tags": ["history"],
+ "authors": ["Hay Kranen", "Alexander Farkas"],
+ "notes": [{
+ "name": "W3C Spec",
+ "href": "https://www.w3.org/TR/html51/browsers.html#the-history-interface"
+ }, {
+ "name": "MDN documentation",
+ "href": "https://developer.mozilla.org/en-US/docs/Web/API/window.history"
+ }],
+ "polyfills": ["historyjs", "html5historyapi"]
+}
+!*/
+(S=new S).addTest("history",function(){var
e=navigator.userAgent;return(-1===e.indexOf("Android
2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile
Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows
Phone")||"file:"===location.protocol)&&(t.history&&"pushState"in t.history)}),
+/*!
+{
+ "name": "SVG",
+ "property": "svg",
+ "caniuse": "svg",
+ "tags": ["svg"],
+ "authors": ["Erik Dahlstrom"],
+ "polyfills": [
+ "svgweb",
+ "raphael",
+ "amplesdk",
+ "canvg",
+ "svg-boilerplate",
+ "sie",
+ "dojogfx",
+ "fabricjs"
+ ]
+}
+!*/
+S.addTest("svg",!!e.createElementNS&&!!e.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect),
+/*!
+{
+ "name": "Local Storage",
+ "property": "localstorage",
+ "caniuse": "namevalue-storage",
+ "tags": ["storage"],
+ "knownBugs": [],
+ "notes": [],
+ "warnings": [],
+ "polyfills": [
+ "joshuabell-polyfill",
+ "cupcake",
+ "storagepolyfill",
+ "amplifyjs",
+ "yui-cacheoffline"
+ ]
+}
+!*/
+S.addTest("localstorage",function(){var t="modernizr";try{return
localStorage.setItem(t,t),localStorage.removeItem(t),!0}catch(e){return!1}});var
A=k._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split("
"):["",""];k._prefixes=A;var
M=e.documentElement,z="svg"===M.nodeName.toLowerCase(),T="Moz O ms
Webkit",C=k._config.usePrefixes?T.toLowerCase().split(" "):[];k._domPrefixes=C,
+/*!
+{
+ "name": "CSS position: sticky",
+ "property": "csspositionsticky",
+ "tags": ["css"],
+ "builderAliases": ["css_positionsticky"],
+ "notes": [{
+ "name": "Chrome bug report",
+ "href":"https://code.google.com/p/chromium/issues/detail?id=322972"
+ }],
+ "warnings": [ "using position:sticky on anything but top aligned elements is
buggy in Chrome < 37 and iOS <=7+" ]
+}
+!*/
+S.addTest("csspositionsticky",function(){var
t="position:",e="sticky",r=o("a").style;return
r.cssText=t+A.join(e+";"+t).slice(0,-t.length),-1!==r.position.indexOf(e)});
+/*!
+{
+ "name": "CSS Supports",
+ "property": "supports",
+ "caniuse": "css-featurequeries",
+ "tags": ["css"],
+ "builderAliases": ["css_supports"],
+ "notes": [{
+ "name": "W3 Spec",
+ "href": "http://dev.w3.org/csswg/css3-conditional/#at-supports"
+ },{
+ "name": "Related Github Issue",
+ "href": "https://github.com/Modernizr/Modernizr/issues/648"
+ },{
+ "name": "W3 Info",
+ "href":
"http://dev.w3.org/csswg/css3-conditional/#the-csssupportsrule-interface"
+ }]
+}
+!*/
+var B="CSS"in t&&"supports"in t.CSS,L="supportsCSS"in
t;S.addTest("supports",B||L);var N=k._config.usePrefixes?T.split("
"):[];k._cssomPrefixes=N;var E,O,q=k.testStyles=c,I=function(e){var
n,i=A.length,a=t.CSSRule;if(void 0===a)return
r;if(!e)return!1;if((n=(e=e.replace(/^@/,"")).replace(/-/g,"_").toUpperCase()+"_RULE")in
a)return"@"+e;for(var o=0;o<i;o++){var s=A[o];if(s.toUpperCase()+"_"+n in
a)return"@-"+s.toLowerCase()+"-"+e}return!1};k.atRule=I,O={}.hasOwnProperty,E=n(O,"undefined")
[...]
+/*!
+{
+ "name": "Webp Animation",
+ "async": true,
+ "property": "webpanimation",
+ "aliases": ["webp-animation"],
+ "tags": ["image"],
+ "authors": ["Krister Kari", "Rich Bradshaw", "Ryan Seddon", "Paul Irish"],
+ "notes": [{
+ "name": "WebP Info",
+ "href": "https://developers.google.com/speed/webp/"
+ },{
+ "name": "Chromium blog - Chrome 32 Beta: Animated WebP images and faster
Chrome for Android touch input",
+ "href":
"https://blog.chromium.org/2013/11/chrome-32-beta-animated-webp-images-and.html"
+ }]
+}
+!*/
+S.addAsyncTest(function(){var t=new
Image;t.onerror=function(){m("webpanimation",!1,{aliases:["webp-animation"]})},t.onload=function(){m("webpanimation",1==t.width,{aliases:["webp-animation"]})},t.src="data:image/webp;base64,UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA"});var
R={elem:o("modernizr")};S._q.push(function(){delete R.elem});var
P={style:R.elem.style};S._q.unshift(function(){delete P.style});k.testProp [...]
+/*!
+{
+ "name": "CSS Animations",
+ "property": "cssanimations",
+ "caniuse": "css-animation",
+ "polyfills": ["transformie", "csssandpaper"],
+ "tags": ["css"],
+ "warnings": ["Android < 4 will pass this test, but can only animate a single
property at a time"],
+ "notes": [{
+ "name" : "Article: 'Dispelling the Android CSS animation myths'",
+ "href": "https://goo.gl/OGw5Gm"
+ }]
+}
+!*/
+S.addTest("cssanimations",x("animationName","a",!0)),
+/*!
+{
+ "name": "Background Size",
+ "property": "backgroundsize",
+ "tags": ["css"],
+ "knownBugs": ["This will false positive in Opera Mini -
https://github.com/Modernizr/Modernizr/issues/396"],
+ "notes": [{
+ "name": "Related Issue",
+ "href": "https://github.com/Modernizr/Modernizr/issues/396"
+ }]
+}
+!*/
+S.addTest("backgroundsize",x("backgroundSize","100%",!0)),
+/*!
+{
+ "name": "CSS Grid (old & new)",
+ "property": ["cssgrid", "cssgridlegacy"],
+ "authors": ["Faruk Ates"],
+ "tags": ["css"],
+ "notes": [{
+ "name": "The new, standardized CSS Grid",
+ "href": "https://www.w3.org/TR/css3-grid-layout/"
+ }, {
+ "name": "The _old_ CSS Grid (legacy)",
+ "href": "https://www.w3.org/TR/2011/WD-css3-grid-layout-20110407/"
+ }]
+}
+!*/
+S.addTest("cssgridlegacy",x("grid-columns","10px",!0)),S.addTest("cssgrid",x("grid-template-rows","none",!0)),
+/*!
+{
+ "name": "Flexbox",
+ "property": "flexbox",
+ "caniuse": "flexbox",
+ "tags": ["css"],
+ "notes": [{
+ "name": "The _new_ flexbox",
+ "href": "http://dev.w3.org/csswg/css3-flexbox"
+ }],
+ "warnings": [
+ "A `true` result for this detect does not imply that the `flex-wrap`
property is supported; see the `flexwrap` detect."
+ ]
+}
+!*/
+S.addTest("flexbox",x("flexBasis","1px",!0)),
+/*!
+{
+ "name": "CSS Transforms",
+ "property": "csstransforms",
+ "caniuse": "transforms2d",
+ "tags": ["css"]
+}
+!*/
+S.addTest("csstransforms",function(){return-1===navigator.userAgent.indexOf("Android
2.")&&x("transform","scale(1)",!0)}),
+/*!
+{
+ "name": "CSS Transforms 3D",
+ "property": "csstransforms3d",
+ "caniuse": "transforms3d",
+ "tags": ["css"],
+ "warnings": [
+ "Chrome may occassionally fail this test on some systems; more info:
https://code.google.com/p/chromium/issues/detail?id=129004"
+ ]
+}
+!*/
+S.addTest("csstransforms3d",function(){var
t=!!x("perspective","1px",!0),e=S._config.usePrefixes;if(t&&(!e||"webkitPerspective"in
M.style)){var r,n="#modernizr{width:0;height:0}";S.supports?r="@supports
(perspective: 1px)":(r="@media
(transform-3d)",e&&(r+=",(-webkit-transform-3d)")),q(n+(r+="{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}"),function(e){t=7===e.offsetWidth&&18===e.offsetHeight})}return
t}),
+/*!
+{
+ "name": "CSS Transitions",
+ "property": "csstransitions",
+ "caniuse": "css-transitions",
+ "tags": ["css"]
+}
+!*/
+S.addTest("csstransitions",x("transition","all",!0));var
_=k.prefixed=function(t,e,r){return
0===t.indexOf("@")?I(t):(-1!=t.indexOf("-")&&(t=l(t)),e?y(t,e,r):y(t,"pfx"))};
+/*!
+{
+ "name": "Fullscreen API",
+ "property": "fullscreen",
+ "caniuse": "fullscreen",
+ "notes": [{
+ "name": "MDN documentation",
+ "href": "https://developer.mozilla.org/en/API/Fullscreen"
+ }],
+ "polyfills": ["screenfulljs"],
+ "builderAliases": ["fullscreen_api"]
+}
+!*/S.addTest("fullscreen",!(!_("exitFullscreen",e,!1)&&!_("cancelFullScreen",e,!1))),i(),a(b),delete
k.addTest,delete k.addAsyncTest;for(var
D=0;D<S._q.length;D++)S._q[D]();t.Modernizr=S}(window,document),function(t,e){"object"==typeof
exports&&"object"==typeof module?module.exports=e():"function"==typeof
define&&define.amd?define([],e):"object"==typeof
exports?exports.katex=e():t.katex=e()}("undefined"!=typeof
self?self:this,function(){return function(t){function e(n){if(r[n])return r[n
[...]
+var t=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var e
in
this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);for(var
r=0;r<this.children.length;r++)t.appendChild(this.children[r].toNode());return
t},e.toMarkup=function(){var t="<svg";for(var e in
this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&(t+="
"+e+"='"+this.attributes[e]+"'");t+=">";for(var
r=0;r<this.children.length;r++)t+=thi [...]
+8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.67,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55
[...]
+o("math",vt,"close","\u23b1","\\rmoustache",!0),o("math",vt,"open","\u23b0","\\lmoustache",!0),o("math",vt,"close","\u27ef","\\rgroup",!0),o("math",vt,"open","\u27ee","\\lgroup",!0),o("math",vt,xt,"\u2213","\\mp",!0),o("math",vt,xt,"\u2296","\\ominus",!0),o("math",vt,xt,"\u228e","\\uplus",!0),o("math",vt,xt,"\u2293","\\sqcap",!0),o("math",vt,xt,"\u2217","\\ast"),o("math",vt,xt,"\u2294","\\sqcup",!0),o("math",vt,xt,"\u25ef","\\bigcirc"),o("math",vt,xt,"\u2219","\\bullet"),o("math",vt,xt,"
[...]
+}else if("bottom"===t.positionType)l=-t.positionData;else{var
u=t.children[0];if("elem"!==u.type)throw new Error('First child must have type
"elem".');if("shift"===t.positionType)l=-u.elem.depth-t.positionData;else{if("firstBaseline"!==t.positionType)throw
new Error("Invalid positionType
"+t.positionType+".");l=-u.elem.depth}}return{children:t.children,depth:l}}(t),r=e.children,n=e.depth,i=0,a=0;a<r.length;a++){var
o=r[a];if("elem"===o.type){var s=o.elem;i=Math.max(i,s.maxFontSize,s.heig [...]
+n=.833/o):"large"===a.type?(c=1080*lr[a.size],h=(lr[a.size]+s)/o,l=(lr[a.size]+s+.08)/o,(r=ir("sqrtSize"+a.size,l,c,s,e)).style.minWidth="1.02em",n=1/o):(l=t+s+.08,h=t+s,c=Math.floor(1e3*t+s)+80,(r=ir("sqrtTall",l,c,s,e)).style.minWidth="0.742em",n=1.056),r.height=h,r.style.height=l+"em",{span:r,advanceWidth:n,ruleWidth:(e.fontMetrics().sqrtRuleThickness+s)*o}},gr=function(t,e,r,n,i){if("<"===t||"\\lt"===t||"\u27e8"===t?t="\\langle":">"!==t&&"\\gt"!==t&&"\u27e9"!==t||(t="\\rangle"),R.con
[...]
+;return(h instanceof
at||"\\oiint"===i.name||"\\oiiint"===i.name)&&!i.suppressBaseShift&&(x=(h.height-h.depth)/2-e.fontMetrics().axisHeight,b=h.italic),a?jr(h,r,n,e,c,b,x):(x&&(h.style.position="relative",h.style.top=x+"em"),h)},Gr=function(t,e){var
r;if(t.symbol)r=new
Te("mo",[Le(t.name,t.mode)]),R.contains(Ur,t.name)&&r.setAttribute("largeop","false");else
if(t.body)r=new Te("mo",Oe(t.body,e));else{r=new Te("mi",[new
Ce(t.name.slice(1))]);var n=new Te("mo",[Le("\u2061","text")]);r=t.pa [...]
+T("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),T("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),T("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}"),T("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}"),T("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}"),T("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}"),T("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}"),T("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}"),T("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}"),T("\\nshortparallel","\
[...]
+return null}function d(t,e){this.X=t,this.fa=e}function
p(t,e,r,n){this.c=null!=t?t:null,this.g=null!=e?e:null,this.A=null!=r?r:null,this.e=null!=n?n:null}function
f(t){var
e=null,r=null,n=null,i=null;return(t=Z.exec(t))&&(null!==t[1]&&t[1]&&(e=parseInt(t[1],10)),null!==t[2]&&t[2]&&(r=parseInt(t[2],10)),null!==t[3]&&t[3]&&(n=parseInt(t[3],10)),null!==t[4]&&t[4]&&(i=/^[0-9]+$/.test(t[4])?parseInt(t[4],10):t[4])),new
p(e,r,n,i)}function g(t,e,r,n,i,a,o,s){this.M=t,this.k=s}function v(t){th [...]
+switchToCDN:function(t,e){document.querySelectorAll(t).forEach(function(t){var
r=t.getAttribute(e);0===r.lastIndexOf(SL.config.S3_HOST,0)&&t.setAttribute(e,r.replace(SL.config.S3_HOST,SL.config.CDN_HOST))},this)}},SL("deck").util={extend:function(t){return
Array.prototype.forEach.call(arguments,function(e){for(var r in
e)t[r]=e[r]},t),t},renderMath:function(t){SL.deck.util.renderMathBlocks(t),SL.deck.util.renderInlineMath(t)},renderMathBlocks:function(t){t||(t=document.querySelector(".re
[...]
+ </script>
+ <script>
+ !function(t,e){"object"==typeof
exports&&"object"==typeof module?module.exports=e():"function"==typeof
define&&define.amd?define([],e):"object"==typeof
exports?exports.katex=e():t.katex=e()}("undefined"!=typeof
self?self:this,function(){return function(t){function e(n){if(r[n])return
r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return
t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var r={};return
e.m=t,e.c=r,e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{enumerable:!0,
[...]
+;for(var
r=0;r<this.children.length;r++)t.appendChild(this.children[r].toNode());return
t},e.toMarkup=function(){var t="<svg";for(var e in
this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&(t+="
"+e+"='"+this.attributes[e]+"'");t+=">";for(var
r=0;r<this.children.length;r++)t+=this.children[r].toMarkup();return
t+"</svg>"},t}(),st=function(){function t(t,e){this.pathName=void
0,this.alternate=void 0,this.pathName=t,this.alternate=e}var
e=t.prototype;return e.toNode= [...]
+8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],886
[...]
+o("math",vt,bt,"\u2296","\\ominus",!0),o("math",vt,bt,"\u228e","\\uplus",!0),o("math",vt,bt,"\u2293","\\sqcap",!0),o("math",vt,bt,"\u2217","\\ast"),o("math",vt,bt,"\u2294","\\sqcup",!0),o("math",vt,bt,"\u25ef","\\bigcirc"),o("math",vt,bt,"\u2219","\\bullet"),o("math",vt,bt,"\u2021","\\ddagger"),o("math",vt,bt,"\u2240","\\wr",!0),o("math",vt,bt,"\u2a3f","\\amalg"),o("math",vt,bt,"&","\\And"),o("math",vt,kt,"\u27f5","\\longleftarrow",!0),o("math",vt,kt,"\u21d0","\\Leftarrow",!0),o("math",v
[...]
+if("firstBaseline"!==t.positionType)throw new Error("Invalid positionType
"+t.positionType+".");l=-d.elem.depth}}return{children:t.children,depth:l}}(t),r=e.children,n=e.depth,i=0,a=0;a<r.length;a++){var
o=r[a];if("elem"===o.type){var
s=o.elem;i=Math.max(i,s.maxFontSize,s.height)}}i+=2;var
l=te(["pstrut"],[]);l.style.height=i+"em";for(var
c=[],u=n,h=n,d=n,m=0;m<r.length;m++){var
p=r[m];if("kern"===p.type)d+=p.size;else{var
f=p.elem,g=p.wrapperClasses||[],v=p.wrapperStyle||{},y=te(g,[l,f] [...]
+(r=ir("sqrtTall",l,u,s,e)).style.minWidth="0.742em",n=1.056),r.height=c,r.style.height=l+"em",{span:r,advanceWidth:n,ruleWidth:(e.fontMetrics().sqrtRuleThickness+s)*o}},gr=function(t,e,r,n,i){if("<"===t||"\\lt"===t||"\u27e8"===t?t="\\langle":">"!==t&&"\\gt"!==t&&"\u27e9"!==t||(t="\\rangle"),B.contains(ar,t)||B.contains(sr,t))return
tr(t,e,!1,r,n,i);if(B.contains(or,t))return nr(t,lr[e],!1,r,n,i);throw new
z("Illegal delimiter: '"+t+"'")},vr=pr,yr=function(t,e,r,n,i,a){var
o=n.fontMetrics [...]
+c.style.top=b+"em"),c)},Wr=function(t,e){var r;if(t.symbol)r=new
Re("mo",[Le(t.name,t.mode)]),B.contains(_r,t.name)&&r.setAttribute("largeop","false");else
if(t.body)r=new Re("mo",Ie(t.body,e));else{r=new Re("mi",[new
Te(t.name.slice(1))]);var n=new
Re("mo",[Le("\u2061","text")]);r=t.parentIsSupSub?new
Re("mo",[r,n]):g([r,n])}return
r},Gr={"\u220f":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22c0":"\\bigwedge","\u22c1":"\\bigvee","\u22c2":"\\bigcap","\u22c3":"\\bigcup","\u2a00":"\\b
[...]
+R("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}"),R("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}"),R("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}"),R("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}"),R("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}"),R("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}"),R("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}"),R("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}"),R("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u2
[...]
+;return
Ut=e(e(e(e(e({},zp),Ut),n),r),Id()),a(),window.addEventListener("load",L,!1),de.load(Ut.plugins,Ut.dependencies).then(o),new
Promise(function(t){return Ht.on("ready",t)})}function
a(){!0===Ut.embedded?Kt.viewport=Ld(t,".reveal-viewport")||t:(Kt.viewport=document.body,document.documentElement.classList.add("reveal-full-page")),Kt.viewport.classList.add("reveal-viewport")}function
o(){_t=!0,s(),l(),p(),d(),m(),X(),f(),le.readURL(),ie.update(!0),setTimeout(function(){Kt.slides.class
[...]
+ur&&!a.call(s,o)||(e[o]=s[o]);return
e}:vr;or({target:"Object",stat:!0,forced:Object.assign!==br},{assign:br});var
xr,wr,kr=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not
a function");return t},Sr=kr,Ar=function(t,e,r){if(Sr(t),void 0===e)return
t;switch(r){case 0:return function(){return t.call(e)};case 1:return
function(r){return t.call(e,r)};case 2:return function(r,n){return
t.call(e,r,n)};case 3:return function(r,n,i){return t.call(e,r,n,i)}}return
function() [...]
+;for(var e in
location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,function(e){t[e.split("=").shift()]=e.split("=").pop()}),t){var
r=t[e];t[e]=Rd(unescape(r))}return void 0!==t.dependencies&&delete
t.dependencies,t},Pd=function(t){var e=arguments.length>1&&void
0!==arguments[1]?arguments[1]:0;if(t){var r,n=t.style.height;return
t.style.height="0px",t.parentNode.style.height="auto",r=e-t.parentNode.offsetHeight,t.style.height=n+"px",t.parentNode.style.removeProperty("height"),r}return
e},Od [...]
+})}},{key:"getUnmatchedAutoAnimateElements",value:function(t){var
e=this;return[].slice.call(t.children).reduce(function(t,r){var
n=r.querySelector("[data-auto-animate-target]");return
r.hasAttribute("data-auto-animate-target")||n||t.push(r),r.querySelector("[data-auto-animate-target]")&&(t=t.concat(e.getUnmatchedAutoAnimateElements(r))),t},[])}}]),t}(),ap=function(){function
t(e){i(this,t),this.Reveal=e}return
o(t,[{key:"configure",value:function(t,e){!1===t.fragments?this.disable():!1=
[...]
+;for(var r=this,n=this.tryEntries.length-1;n>=0;--n){var
i=this.tryEntries[n],a=i.completion;if("root"===i.tryLoc)return
e("end");if(i.tryLoc<=this.prev){var
o=v.call(i,"catchLoc"),s=v.call(i,"finallyLoc");if(o&&s){if(this.prev<i.catchLoc)return
e(i.catchLoc,!0);if(this.prev<i.finallyLoc)return e(i.finallyLoc)}else
if(o){if(this.prev<i.catchLoc)return e(i.catchLoc,!0)}else{if(!s)throw new
Error("try statement without catch or
finally");if(this.prev<i.finallyLoc)return e(i.finallyLoc)}}}} [...]
+ </script>
+ <script>
+ !function(e,t){"object"==typeof
exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof
define&&define.amd?define(t):(e=e||self).RevealHighlight=t()}(this,function(){"use
strict";function e(e,t,a){return
e(a={path:t,exports:{},require:function(e,t){return function(){throw new
Error("Dynamic requires are not currently supported by
@rollup/plugin-commonjs")}(null==t&&a.path)}},a.exports),a.exports}function
t(e,t){return RegExp(e,t)}function a(e){return(a="function"==ty [...]
+;nr?r&&!i&&(e=e.source):e instanceof
ir&&(i&&(t=Na.call(e)),e=e.source),rr&&(a=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var
o=jt(nr?new Jn(e,t):Jn(e,t),n?this:er,ir);return
rr&&a&&Xn(o,{sticky:a}),o},or=function(e){e in
ir||Kn(ir,e,{configurable:!0,get:function(){return
Jn[e]},set:function(t){Jn[e]=t}})},sr=jn(Jn),lr=0;sr.length>lr;)or(sr[lr++]);er.constructor=ir,ir.prototype=er,be(N,"RegExp",ir)}!function(){var
e=Re("RegExp"),t=$.f;v&&e&&!e[$n]&&t(e,$n,{configurable:!0,get:functi [...]
+built_in:"\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0440\u0430\u043d\u0438\u0446
\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0440\u043e\u043a
\u0441\u0438\u043c\u0432\u043e\u043b\u0442\u0430\u0431\u0443\u043b\u044f\u0446\u0438\u0438
ansitooem oemtoansi
\u0432\u0432\u0435\u0441\u0442\u0438\u0432\u0438\u0434\u0441\u0443\u0431\u043a\u043e\u043d\u0442\u043e
\u0432\u0432\u0435\u0441\u0442\u0438\u043f\u0435\u0440\u0435\u [...]
+"class":"web\u0446\u0432\u0435\u0442\u0430
windows\u0446\u0432\u0435\u0442\u0430
windows\u0448\u0440\u0438\u0444\u0442\u044b
\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a
\u0440\u0430\u043c\u043a\u0438\u0441\u0442\u0438\u043b\u044f
\u0441\u0438\u043c\u0432\u043e\u043b\u044b
\u0446\u0432\u0435\u0442\u0430\u0441\u0442\u0438\u043b\u044f
\u0448\u0440\u0438\u0444\u0442\u044b\u0441\u0442\u0438\u043b\u044f
\u0430\u0432\u0442\u043e\u [...]
+type:"com\u043e\u0431\u044a\u0435\u043a\u0442
ftp\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435
http\u0437\u0430\u043f\u0440\u043e\u0441
http\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0442\u0432\u0435\u0442
http\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435
ws\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f
ws\u043f\u0440\u043e\u043a\u0441\u0438 xbase
\u0430\u043d\u0430\u043b\u0438\u0437\u0434\u0430\u043d\u043d\u044b\u0445
\u0430\u043d\u043d [...]
+built_in:"alias application boolean class constant date file integer list
number real record string text activate beep count delay launch log offset read
round run say summarize write character characters contents day frontmost id
item length month name paragraph paragraphs rest reverse running time version
weekday word words
year"},contains:[t,e.C_NUMBER_MODE,{className:"built_in",begin:"\\b(clipboard
info|the clipboard|info for|list (disks|folder)|mount volume|path
to|(close|open for) [...]
+built_in:"break cd continue eval exec exit export getopts hash pwd readonly
return shift test times trap umask unset alias bind builtin caller command
declare echo enable help let local logout mapfile printf read readarray source
type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone
comparguments compcall compctl compdescribe compfiles compgroups compquote
comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg
float functions getcap getln hist [...]
+begin:"^(
{4}|\\t)",end:"(\\n)$"}],relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}},Li=function(e){var
t={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"}]},a={className:"subst",variants:[{begin:"\\${",end:"}"}],keywords:"true
false null this is new
super"},n={className:"string",variants:[{begin:"r'''",end:" [...]
+contains:[e.BACKSLASH_ESCAPE]},r={begin:"/",end:"/",keywords:t,contains:[n,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE]},i={begin:/[a-z][a-z0-9_]*(\([a-z0-9_,
]*\))?[
\t]+/,excludeBegin:!0,end:"$",endsWithParent:!0,contains:[n,r,{className:"comment",begin:/([
]*[a-z0-9&#*=?@>\\<:\-,()$\[\]_.{}!+%^]+)+/,relevance:0}]};return{name:"GAMS",aliases:["gms"],case_insensitive:!0,keywords:t,contains:[e.COMMENT(/^\$ontext/,/^\$offtext/),{clas
[...]
+built_in:"is_real is_string is_array is_undefined is_int32 is_int64 is_ptr
is_vec3 is_vec4 is_matrix is_bool typeof variable_global_exists
variable_global_get variable_global_set variable_instance_exists
variable_instance_get variable_instance_set variable_instance_get_names
array_length_1d array_length_2d array_height_2d array_equals array_create
array_copy random random_range irandom irandom_range random_set_seed
random_get_seed randomize randomise choose abs round floor ceil sign frac [...]
+literal:"self other all noone global local undefined pointer_invalid
pointer_null path_action_stop path_action_restart path_action_continue
path_action_reverse true false pi GM_build_date GM_version GM_runtime_version
timezone_local timezone_utc gamespeed_fps gamespeed_microseconds ev_create
ev_destroy ev_step ev_alarm ev_keyboard ev_mouse ev_collision ev_other ev_draw
ev_draw_begin ev_draw_end ev_draw_pre ev_draw_post ev_keypress ev_keyrelease
ev_trigger ev_left_button ev_right_button [...]
+contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]};return{name:"TOML,
also
INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{begin:/^[a-z0-9\[\]_\.-]+(?=\s*=\s*)/,className:"attr",starts:{end:/$/,contains:[a,{begin:/\[/,end:/\]/,contains:[a,r,n,i,t,"self"],relevance:0},r,n,i,t]}}]}},Co=function(e){return{name:"IRPF90",case_
[...]
+built_in:"SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT
SYSRES_CONST_ACCES_RIGHT_TYPE_FULL SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW
SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE SYSRES_CONST_ACCESS_NO_ACCESS_VIEW
SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE
SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE
SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE
SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE
SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE
SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE SYSRES_CONST_AC [...]
+"class":"AltState Application CallType ComponentTokens CreatedJobs
CreatedNotices ControlState DialogResult Dialogs EDocuments
EDocumentVersionSource Folders GlobalIDs Job Jobs InputValue LookUpReference
LookUpRequisiteNames LookUpSearch Object ParentComponent Processes References
Requisite ReportName Reports Result Scripts Searches SelectedAttachments
SelectedItems SelectMode Sender ServerEvents ServiceFactory ShiftState SubTask
SystemDialogs Tasks Wizard Wizards Work \u0412\u044b\u0437 [...]
+built_in:"ANY AbstractArray AbstractChannel AbstractFloat AbstractMatrix
AbstractRNG AbstractSerializer AbstractSet AbstractSparseArray
AbstractSparseMatrix AbstractSparseVector AbstractString AbstractUnitRange
AbstractVecOrMat AbstractVector Any ArgumentError Array AssertionError
Associative Base64DecodePipe Base64EncodePipe Bidiagonal BigFloat BigInt
BitArray BitMatrix BitVector Bool BoundsError BufferStream CachingPool
CapturedException CartesianIndex CartesianRange Cchar Cdouble Cflo [...]
+begin:"\\b(?:XP_ERROR_(?:EXPERIENCES_DISABLED|EXPERIENCE_(?:DISABLED|SUSPENDED)|INVALID_(?:EXPERIENCE|PARAMETERS)|KEY_NOT_FOUND|MATURITY_EXCEEDED|NONE|NOT_(?:FOUND|PERMITTED(?:_LAND)?)|NO_EXPERIENCE|QUOTA_EXCEEDED|RETRY_UPDATE|STORAGE_EXCEPTION|STORE_DISABLED|THROTTLED|UNKNOWN_ERROR)|JSON_APPEND|STATUS_(?:PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(?:_OBJECT)?|(?:DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(?:FOUND|SUPPORTED)|INTERNAL_ERROR|WHI
[...]
+keywords:"AASTriangle AbelianGroup Abort AbortKernels AbortProtect
AbortScheduledTask Above Abs AbsArg AbsArgPlot Absolute AbsoluteCorrelation
AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing
AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness
AbsoluteTime AbsoluteTiming AcceptanceThreshold AccountingForm Accumulate
Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions
Activate Active ActiveClassification ActiveClassificationObje [...]
+contains:[e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}},Vo=function(e){var
t={relevance:0,contains:[{begin:"('|\\.')+"}]};return{name:"Matlab",keywords:{keyword:"break
case catch classdef continue else elseif end enumerated events for function
global if methods otherwise parfor persistent properties return spmd switch try
while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh
tan tand tanh atan atand atan2 atanh sec secd s [...]
+keywords:"int float string vector matrix if else switch case default while do
for in break continue global proc return about abs addAttr
addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory
addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air
alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight
angle angleBetween animCone animCurveEditor animDisplay animView annotate
appendStringArray applicationName applyAttrPreset [...]
+built_in:"int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float
float32 float64 bool char string cstring pointer expr stmt void auto any range
array openarray varargs seq set clong culong cchar cschar cshort cint csize
clonglong cfloat cdouble clongdouble cuchar cushort cuint culonglong
cstringarray
semistatic"},contains:[{className:"meta",begin:/{\./,end:/\.}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([
[...]
+begin:/\bRETURNS\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\b/,keywords:{keyword:"RETURNS",type:"LANGUAGE_HANDLER
TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER
TSM_HANDLER"}},{begin:"\\b("+r+")\\s*\\("},{begin:"\\.("+n+")\\b"},{begin:"\\b("+n+")\\s+PATH\\b",keywords:{keyword:"PATH",type:a.replace("PATH
","")}},{className:"type",begin:"\\b("+n+")\\b"},{className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},{className:"string",begin:"(e|
[...]
+;return{name:"Roboconf",aliases:["graph","instances"],case_insensitive:!0,keywords:"import",contains:[{begin:"^facet
[a-zA-Z-_][^\\n{]+\\{",end:"}",keywords:"facet",contains:[t,e.HASH_COMMENT_MODE]},{begin:"^\\s*instance
of [a-zA-Z-_][^\\n{]+\\{",end:"}",keywords:"name count channels instance-data
instance-state instance
of",illegal:/\S/,contains:["self",t,e.HASH_COMMENT_MODE]},{begin:"^[a-zA-Z-_][^\\n{]+\\{",end:"}",contains:[t,e.HASH_COMMENT_MODE]},e.HASH_COMMENT_MODE]}},Ms=function(e)
[...]
+built_in:"abs accTime acos action actionIDs actionKeys actionKeysImages
actionKeysNames actionKeysNamesArray actionName actionParams activateAddons
activatedAddons activateKey add3DENConnection add3DENEventHandler add3DENLayer
addAction addBackpack addBackpackCargo addBackpackCargoGlobal addBackpackGlobal
addCamShake addCuratorAddons addCuratorCameraArea addCuratorEditableObjects
addCuratorEditingArea addCuratorPoints addEditorObject addEventHandler addForce
addGoggles addGroupIcon addHa [...]
+keyword:"as abort abs absolute acc acce accep accept access accessed
accessible account acos action activate add addtime admin administer advanced
advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all
allocate allow alter always analyze ancillary and anti any anydata anydataset
anyschema anytype apply archive archived archivelog are as asc ascii asin
assembly assertion associate asynchronous at atan atn2 attr attri attrib
attribu attribut attribute attributes audit auth [...]
+keywords:"if else in foreach for forv forva forval forvalu forvalue forvalues
by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust
ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms
anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm
areg areg_p args arima arima_dr arima_estat arima_p as asmprobit
asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser
assert avplot avplot_7 avplots avplots_7 [...]
+contains:[e.COMMENT(/\{#/,/#}/),{className:"template-tag",begin:/\{%/,end:/%}/,contains:[{className:"name",begin:/\w+/,keywords:r,starts:{endsWithParent:!0,contains:[n,a],relevance:0}}]},{className:"template-variable",begin:/\{\{/,end:/}}/,contains:["self",n,a]}]}},il=function(e){var
t={keyword:"in if for while finally var new function do return void else break
catch instanceof with throw case default try this switch continue typeof delete
let yield const class public private protected g [...]
+keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam
aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts
call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg
cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das
dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb
fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp
fcompp fcos fdecstp fdisi [...]
+Hr.registerLanguage("step21",$s),Hr.registerLanguage("stylus",Ks),Hr.registerLanguage("subunit",js),Hr.registerLanguage("swift",Xs),Hr.registerLanguage("taggerscript",Zs),Hr.registerLanguage("yaml",Js),Hr.registerLanguage("tap",el),Hr.registerLanguage("tcl",tl),Hr.registerLanguage("thrift",al),Hr.registerLanguage("tp",nl),Hr.registerLanguage("twig",rl),Hr.registerLanguage("typescript",il),Hr.registerLanguage("vala",ol),Hr.registerLanguage("vbnet",sl),Hr.registerLanguage("vbscript",ll),Hr
[...]
+/*!
+ * reveal.js plugin that adds syntax highlight support.
+ */
+var
Tl={id:"highlight",HIGHLIGHT_STEP_DELIMITER:"|",HIGHLIGHT_LINE_DELIMITER:",",HIGHLIGHT_LINE_RANGE_DELIMITER:"-",hljs:Sl,init:function(e){var
t=e.getConfig().highlight||{};t.highlightOnLoad="boolean"!=typeof
t.highlightOnLoad||t.highlightOnLoad,t.escapeHTML="boolean"!=typeof
t.escapeHTML||t.escapeHTML,[].slice.call(e.getRevealElement().querySelectorAll("pre
code")).forEach(function(e){e.hasAttribute("data-trim")&&"function"==typeof
e.innerHTML.trim&&(e.innerHTML=function(e){function t [...]
+ </script>
+ <script>
+ Reveal.initialize({
+ width: SLConfig.deck.width,
+ height: SLConfig.deck.height,
+ margin: 0.05,
+
+
+ hash: true,
+ controls: true,
+ progress: true,
+ mouseWheel: false,
+ showNotes: SLConfig.deck.share_notes ?
'separate-page' : false,
+ slideNumber: SLConfig.deck.slide_number,
+ fragmentInURL: true,
+
+ autoSlide: SLConfig.deck.auto_slide_interval ||
0,
+ autoSlideStoppable: true,
+
+ autoAnimateMatcher: SL.deck.AutoAnimate.matcher,
+
+ rollingLinks: false,
+ center: SLConfig.deck.center || false,
+ shuffle: SLConfig.deck.shuffle || false,
+ loop: SLConfig.deck.should_loop || false,
+ rtl: SLConfig.deck.rtl || false,
+ navigationMode: SLConfig.deck.navigation_mode,
+
+ transition: SLConfig.deck.transition,
+ backgroundTransition:
SLConfig.deck.background_transition,
+
+ pdfMaxPagesPerSlide: 1,
+
+ highlight: {
+ escapeHTML: false
+ },
+
+ plugins: [ RevealHighlight ]
+ });
+ </script>
+
+
+
+ </body>
+</html>
diff --git a/2023-fsf/walkthrough.sh b/2023-fsf/walkthrough.sh
new file mode 100755
index 0000000..597efe0
--- /dev/null
+++ b/2023-fsf/walkthrough.sh
@@ -0,0 +1,350 @@
+#!/usr/bin/env bash
+# This file is in the public domain.
+
+#########
+# This is an example of the steps needed to install and run GNU Taler
+########
+
+# This script assume root privileges.
+# Use this if you know what you are doing.
+
+export LANGUAGE=C
+export LC_ALL=C
+export LANG=C
+export LC_CTYPE=C
+
+set -e
+
+export CURRENCY=LIBRE
+export EXCHANGE_IBAN=DE940993
+export MERCHANT_IBAN=DE463312
+export ALICE_IBAN=DE474361
+export BOB_IBAN=DE731371
+
+read -p "Setup GNU Taler for $CURRENCY!. Press any key to start..."
+echo ==========================================================================
+echo ==========================================================================
+echo ==========================================================================
+echo "1/8 Update and install tools"
+
+apt update
+apt install -y gnupg less vim procps curl inetutils-ping jq net-tools man
+
+echo ----------------------------------------
+read -p "1/8 tools installed. Press any key to continue..."
+echo ==========================================================================
+echo ==========================================================================
+echo ==========================================================================
+echo "2/8 Setup dns config and database "
+
+#using this hosts as alias for localhost
+#it will be useful for nginx configuration
+echo 127.0.0.1 bank.taler auditor.taler exchange.taler merchant.taler | tee -a
/etc/hosts
+
+#install database and create a default user for the whole setup
+apt install -y postgresql
+service postgresql start
+su - postgres -c "createuser -d -l -r -s root"
+psql postgres -c "ALTER USER root PASSWORD 'root'"
+
+#create the database that we are going to use
+createdb auditor
+createdb exchange
+createdb merchant
+createdb sandbox
+createdb nexus
+
+echo ----------------------------------------
+read -p "2/8 databases created. Press any key to continue..."
+echo ==========================================================================
+echo ==========================================================================
+echo ==========================================================================
+echo "3/8 Install GNU Taler components "
+
+yes no | apt install -y \
+ libeufin-sandbox \
+ libeufin-nexus \
+ taler-exchange \
+ taler-auditor \
+ taler-merchant \
+ taler-harness \
+ taler-wallet-cli
+
+echo ----------------------------------------
+read -p "3/8 all components installed. Press any key to continue..."
+echo ==========================================================================
+echo ==========================================================================
+echo ==========================================================================
+echo "4/8 Setup NGINX reverse proxy"
+
+apt install -y nginx
+
+#enable sandbox and config server to http://bank.taler/
+ln -s /etc/nginx/sites-available/libeufin-sandbox /etc/nginx/sites-enabled/
+sed 's/server_name localhost/server_name bank.taler/' -i
/etc/nginx/sites-available/libeufin-sandbox
+
+#enable auditor and config server to http://auditor.taler/
+ln -s /etc/nginx/sites-available/taler-auditor /etc/nginx/sites-enabled/
+sed 's/server_name localhost/server_name auditor.taler/' -i
/etc/nginx/sites-available/taler-auditor
+sed 's_location /taler-auditor/_location /_' -i
/etc/nginx/sites-available/taler-auditor
+
+#enable exchange and config server to http://exchange.taler/
+ln -s /etc/nginx/sites-available/taler-exchange /etc/nginx/sites-enabled/
+sed 's/server_name localhost/server_name exchange.taler/' -i
/etc/nginx/sites-available/taler-exchange
+sed 's_location /taler-exchange/_location /_' -i
/etc/nginx/sites-available/taler-exchange
+
+#enable merchant and config server to http://merchant.taler/
+ln -s /etc/nginx/sites-available/taler-merchant /etc/nginx/sites-enabled/
+sed 's/server_name localhost/server_name merchant.taler/' -i
/etc/nginx/sites-available/taler-merchant
+sed 's_location /taler-merchant/_location /_' -i
/etc/nginx/sites-available/taler-merchant
+
+#set nginx user to root se we dont have problems reading sockets with root
ownership
+sed 's/^user www-data/user root/' -i /etc/nginx/nginx.conf
+
+#notify all services that are exposed with other host
+sed 's/X-Forwarded-Host "localhost"/X-Forwarded-Host $host/' -i
/etc/nginx/sites-available/*
+
+nginx
+
+echo ----------------------------------------
+read -p "4/8 web interface exposed. Press any key to continue..."
+echo ==========================================================================
+echo ==========================================================================
+echo ==========================================================================
+echo "5/8 Setup BANK instance and some accounts"
+
+export
LIBEUFIN_SANDBOX_DB_CONNECTION="jdbc:postgresql://localhost:5432/sandbox?user=root&password=root"
+export LIBEUFIN_SANDBOX_URL="http://localhost:5016/"
+export LIBEUFIN_SANDBOX_USERNAME="admin"
+export LIBEUFIN_SANDBOX_ADMIN_PASSWORD="bank"
+export LIBEUFIN_SANDBOX_PASSWORD=$LIBEUFIN_SANDBOX_ADMIN_PASSWORD
+
+export
LIBEUFIN_NEXUS_DB_CONNECTION="jdbc:postgresql://localhost:5432/nexus?user=root&password=root"
+export LIBEUFIN_NEXUS_URL="http://localhost:5017/"
+export LIBEUFIN_NEXUS_USERNAME="nexus_admin"
+export LIBEUFIN_NEXUS_PASSWORD="secret_nexus"
+
+# bank configuration
+libeufin-sandbox config \
+ --bank-debt-limit 1000000 \
+ --users-debt-limit 10000 \
+ --with-signup-bonus \
+ --currency $CURRENCY \
+ --captcha-url http://bank.taler/ \
+ default
+
+mkdir /etc/libeufin/
+cat >/etc/libeufin/demobank-ui-settings.js <<EOF
+globalThis.talerDemobankSettings = {
+ backendBaseURL: "http://bank.taler/demobanks/default/",
+ allowRegistrations: true,
+ bankName: "FSF Bank"
+}
+EOF
+
+libeufin-sandbox default-exchange --demobank default http://exchange.taler/
payto://iban/$EXCHANGE_IBAN
+
+# nexus configuration
+libeufin-nexus superuser $LIBEUFIN_NEXUS_USERNAME --password
$LIBEUFIN_NEXUS_PASSWORD
+
+# start services
+libeufin-sandbox serve --port 5016 --ipv4-only --no-localhost-only >
log.sandbox 2> err.sandbox &
+libeufin-nexus serve --port 5017 --ipv4-only --no-localhost-only > log.nexus
2> err.nexus &
+
+echo "5/8 Waiting for nexus and sanbox to be ready"
+grep -q "Application started:" <(tail -f err.sandbox -n +0)
+grep -q "Application started:" <(tail -f err.nexus -n +0)
+
+echo "5/8 Creating accounts"
+LIBEUFIN_SANDBOX_USERNAME="exchange" LIBEUFIN_SANDBOX_PASSWORD="123"
libeufin-cli sandbox demobank register \
+ --iban $EXCHANGE_IBAN --name "Exchange company" --public
+LIBEUFIN_SANDBOX_USERNAME="merchant" LIBEUFIN_SANDBOX_PASSWORD="123"
libeufin-cli sandbox demobank register \
+ --iban $MERCHANT_IBAN --name "Merchant company" --public
+LIBEUFIN_SANDBOX_USERNAME="alice" LIBEUFIN_SANDBOX_PASSWORD="123"
libeufin-cli sandbox demobank register \
+ --iban $ALICE_IBAN --name "Alice" --no-public
+LIBEUFIN_SANDBOX_USERNAME="bob" LIBEUFIN_SANDBOX_PASSWORD="123"
libeufin-cli sandbox demobank register \
+ --iban $BOB_IBAN --name "Bob" --no-public
+
+echo "5/8 Creating the EBICs connection between sandbox and nexus"
+### open sandbox to nexus
+libeufin-cli sandbox ebicshost create --host-id ebicHost
+libeufin-cli sandbox demobank new-ebicssubscriber \
+ --host-id ebicHost \
+ --partner-id ebicPartner \
+ --user-id ebicExchange \
+ --bank-account exchange
+
+### connection nexus to sandbox
+libeufin-cli connections new-ebics-connection \
+ --ebics-url http://localhost:5016/ebicsweb \
+ --host-id ebicHost \
+ --partner-id ebicPartner \
+ --ebics-user-id ebicExchange \
+ nexus-conn
+
+libeufin-cli connections connect nexus-conn
+libeufin-cli connections download-bank-accounts nexus-conn
+libeufin-cli connections import-bank-account \
+ --offered-account-id exchange \
+ --nexus-bank-account-id nexus-exchange \
+ nexus-conn
+
+libeufin-cli accounts task-schedule nexus-exchange \
+ --task-type=submit \
+ --task-name=submit-payments-5secs \
+ --task-cronspec='*/1 * * * *'
+
+libeufin-cli accounts task-schedule nexus-exchange \
+ --task-type=fetch \
+ --task-name=fetch-5secs \
+ --task-cronspec='*/1 * * * *' \
+ --task-param-level=report \
+ --task-param-range-type=latest
+
+### configuration of nexus
+echo "5/8 Creating nexus facade for the exchange"
+libeufin-cli facades new-taler-wire-gateway-facade \
+ --currency $CURRENCY \
+ --facade-name taler-exchange \
+ nexus-conn nexus-exchange
+
+libeufin-cli users create exchange-nexus --password exchange-nexus-password
+libeufin-cli permissions grant user exchange-nexus \
+ facade taler-exchange \
+ facade.talerwiregateway.transfer
+libeufin-cli permissions grant user exchange-nexus \
+ facade taler-exchange \
+ facade.talerwiregateway.history
+
+
+echo ----------------------------------------
+read -p "5/8 banking system ready. Press any key to continue..."
+echo ==========================================================================
+echo ==========================================================================
+echo ==========================================================================
+echo "6/8 Setup Exchange"
+
+taler-config -s exchange -o master_public_key -V $(taler-exchange-offline
setup)
+taler-config -s exchange -o base_url -V http://exchange.taler/
+
+#database location
+taler-config -s exchangedb-postgres -o config -V postgres:///exchange
+taler-config -s exchange-account-1 -o payto_uri -V
"payto://iban/$EXCHANGE_IBAN?receiver-name=Exchanger"
+taler-config -s exchange-account-1 -o enable_debit -V yes
+taler-config -s exchange-account-1 -o enable_credit -V yes
+
+#nexus connection
+taler-config -s exchange-accountcredentials-1 -o wire_gateway_url -V
http://localhost:5017/facades/taler-exchange/taler-wire-gateway/
+taler-config -s exchange-accountcredentials-1 -o username -V exchange-nexus
+taler-config -s exchange-accountcredentials-1 -o password -V
exchange-nexus-password
+
+#monetary policy
+taler-config -s taler -o currency -V $CURRENCY
+taler-config -s taler -o aml_threshold -V $CURRENCY:10000
+taler-config -s taler -o currency_round_unit -V $CURRENCY:0.1
+
+taler-harness deployment gen-coin-config \
+ --min-amount $CURRENCY:0.1 \
+ --max-amount $CURRENCY:20 >> /etc/taler/taler.conf
+
+
+for coinSection in $(taler-config --list-sections | grep COIN); do
+ taler-config -s $coinSection -o duration_withdraw -V "1 year"
+done
+
+taler-exchange-dbinit
+
+taler-exchange-secmod-eddsa -l log.secmod.eddsa -L debug &
+taler-exchange-secmod-rsa -l log.secmod.rsa -L debug &
+taler-exchange-secmod-cs -l log.secmod.cs -L debug &
+taler-exchange-httpd -l log.exchange -L debug &
+
+echo "6/8 Waiting for exchange HTTP service"
+sleep 1
+grep -q "Updating keys of denomination" <(tail -F log.secmod.rsa -n +0)
+
+echo "6/8 Enable exchange wire transfer"
+
+#enable account and wire fee configuration
+taler-exchange-offline \
+ enable-account $(taler-config -s exchange-account-1 -o payto_uri) \
+ global-fee 2023 $CURRENCY:0 $CURRENCY:0 $CURRENCY:0 1year 1year 10 \
+ wire-fee 2023 iban $CURRENCY:0.1 $CURRENCY:0.1 \
+ upload;
+
+taler-exchange-offline download sign upload
+
+echo "6/8 Waiting for key signed"
+curl --unix-socket /run/taler/exchange-httpd/exchange-http.sock \
+ --max-time 2 \
+ --retry-connrefused \
+ --retry-delay 1 \
+ --retry 10 \
+ http://exchange.taler/keys &> /dev/null
+
+taler-exchange-wirewatch -l log.wirewatch -L debug &
+taler-exchange-transfer -l log.transfer -L debug &
+taler-exchange-aggregator -l log.aggregator -L debug &
+taler-exchange-closer -l log.closer -L debug &
+
+
+echo ----------------------------------------
+read -p "6/8 exchange ready. Press any key to continue..."
+echo ==========================================================================
+echo ==========================================================================
+echo ==========================================================================
+echo "7/8 Setup auditor"
+
+taler-config -s auditor -o base_url -V http://auditor.taler/
+taler-config -s auditordb-postgres -o config -V postgres:///auditor
+
+#add exchange into the auditor
+taler-auditor-exchange -m $(taler-config -s exchange -o master_public_key) -u
$(taler-config -s exchange -o base_url)
+
+taler-auditor-dbinit
+
+echo "7/8 Notify the exchange about the auditor"
+
+taler-exchange-offline enable-auditor $(taler-auditor-offline setup)
$(taler-config -s auditor -o base_url) the_auditor upload
+
+taler-auditor-httpd -l log.auditor -L debug &
+
+echo ----------------------------------------
+read -p "7/8 auditor ready. Press any key to continue..."
+echo ==========================================================================
+echo ==========================================================================
+echo ==========================================================================
+echo "8/8 Setup merchant"
+
+taler-config -s merchantdb-postgres -o config -V postgres:///merchant
+
+taler-config -s merchant-exchange-fsf -o exchange_base_url -V $(taler-config
-s exchange -o base_url)
+taler-config -s merchant-exchange-fsf -o master_key -V $(taler-config -s
exchange -o master_public_key)
+taler-config -s merchant-exchange-fsf -o currency -V $CURRENCY
+
+taler-config -s merchant-auditor-fsf -o auditor_base_url -V $(taler-config -s
auditor -o base_url)
+taler-config -s merchant-auditor-fsf -o auditor_key -V $(taler-auditor-offline
setup)
+taler-config -s merchant-auditor-fsf -o currency -V $CURRENCY
+
+taler-merchant-dbinit
+
+taler-merchant-httpd -a secret-token:secret -l log.merchant -L debug &
+
+echo "8/8 creating the first instance"
+sleep 1
+curl 'http://merchant.taler/management/instances' \
+ --unix-socket /var/run/taler/merchant-httpd/merchant-http.sock \
+ -X POST -H 'Authorization: Bearer secret-token:secret' \
+ --data-raw
'{"id":"default","payto_uris":["payto://iban/'$MERCHANT_IBAN'?receiver-name=merchant"],"default_pay_delay":{"d_us":7200000000},"default_wire_fee_amortization":1,"default_wire_transfer_delay":{"d_us":172800000000},"name":"FSF","email":"","default_max_deposit_fee":"'$CURRENCY':3","default_max_wire_fee":"'$CURRENCY':3","auth":{"method":"token","token":"secret-token:secret"},"address":{},"jurisdiction":{}}'
+
+curl 'http://merchant.taler/instances/default/private/products' \
+ --unix-socket /var/run/taler/merchant-httpd/merchant-http.sock \
+ -X POST -H 'Authorization: Bearer secret-token:secret' \
+ -d @shirt.json
+
+echo ----------------------------------------
+read -p "8/8 merchant ready. Press any key to close."
+echo ==========================================================================
+echo ==========================================================================
+echo ==========================================================================
+
diff --git a/2023-fsf/wicmp.jpg b/2023-fsf/wicmp.jpg
new file mode 100644
index 0000000..963b248
Binary files /dev/null and b/2023-fsf/wicmp.jpg differ
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-marketing] branch master updated: FSF 2023,
gnunet <=