1- #ifndef SlmData_H
2- #define SlmData_H
1+ #ifndef SLM_DATA_H
2+ #define SLM_DATA_H
33
44#include < string>
55#include < vector>
@@ -15,6 +15,7 @@ inline std::string concatenateTexts(const std::vector<std::string>& texts) {
1515}
1616
1717// Text parts for training
18+ // Used by the <slm_basic_train_ex.cpp> example
1819const std::vector<std::string> shakespeare_text_parts = {
1920 R"( QUEEN ELIZABETH:
2021Send to her, by the man that slew her brothers,
@@ -590,4 +591,159 @@ And you shall understand from me her mind.
590591
591592)" ;
592593
593- #endif // SlmData_H
594+ // Retrieves the contents of an internal "plain text" file
595+ // Used by the <slm_advanced_train_ex.cpp> example
596+ const std::string get_internal_data_file ()
597+ {
598+ dlib::base64 base64_coder;
599+ dlib::compress_stream::kernel_1ea compressor;
600+ std::ostringstream sout;
601+ std::istringstream sin;
602+
603+ sout << " QT8JNRyIvUkLem5lyDM28N2jHsZ8QbVJftbxUAb+POOMDyYijyrFN3tmZ2bGDEr2sp+RI6hYVcrs" ;
604+ sout << " iWZ6IuTswZDqPQfxnObLRcOjNf8volT05DrVOEV3jGYnVKakok2oU1ptoKozH3fVhj3L6+Gmd17D" ;
605+ sout << " MsgzBDH2xF74KyhsPmvn7PICSGEeipD4kSf28nRGUZbqW+C0zbVjFH5+ct0An3x70dH6orb51ZG4" ;
606+ sout << " 5n+A2170qip5ScyTUcaT1jI2vxS5pNkRa7bvg4ambdY1F2w3rdgKqiJZMHhP6BKfE3f5YNhpWTRc" ;
607+ sout << " Wr8komzNMVxD3URfSsNnzsgk8XKVbzsAvxWE9hr/6M/ObA2WviOEqh6Kk1xtSGyodq9r7xfaYUyf" ;
608+ sout << " YDz5BSqZzsL1Zp+MqE0s/BhFBG/QYU0MbV9x6v2qvkLJQndkEOSfeMqPU6mItZahqnWhRi2cLRbU" ;
609+ sout << " wRflvZPttqxoT+8TijkhYWs3hTdJs7I8fIJGKN58eY8QPt5j3OmLFFmJux2Cs+CIJWaNs0l1nJgb" ;
610+ sout << " /rSbDR2ksyR7fr1n5qxwKpVhHzWxnHLbXwkChZ4q7bFKKXgoH7AnHz3wu2ToES7yfv34rQLO9bY1" ;
611+ sout << " AXMetkdqntJ+AETV9UvWzpOHYOxGocZfWw5Fyz+6txoWJ+5iroOy1IoA2KBonIqG8g5F6LfWgwSp" ;
612+ sout << " gaFkWQrBgWp+Ump4PnA5OP+/OJAP2TF3eVbr34N/BO7tLFmrQi6ukPM3CfmE6FmflNqaCvgyLs2G" ;
613+ sout << " DOJY8kylAp779fCWBpd/kTm7BDBTPOMLWYAcT6OK02EAcanlV88Ldd4DOM7pLP3PhPZBBNhl/MYZ" ;
614+ sout << " 5tOkpwV4Ivmz57C97Q6TzMAU2/gBtjAKteIYYbvMl7xdPI2toImavLI9MpPYXJw0TGHymAacJ+yF" ;
615+ sout << " FpD7kjTxwQF+ILgRSjTH8At54cbI4Y2Gyf+mCVr9qNvOTOvnDo0uIlxCiLK2oilOriV70QVMa8pU" ;
616+ sout << " dVnew4z32w0MATHYjQgWg/TFXpimLbQst/lRKhW0+l5KdVe/P/jPIwB7UR3MQPg3T8p8WIuXB+TX" ;
617+ sout << " VKEF+vJN2NJ1icNpA/4I9X/o8DMPXnl70r5HAFIiCulQ8mqkYaDIACOCX1xq/sGLUXmElWTxgars" ;
618+ sout << " EfXzjQTsgATtaARWatOasbTZh7SBH4CCpRnB7fYfIDlB/LJbVPsW4fhOxh5FST92QBUmjKSFNWwd" ;
619+ sout << " BMv6JNqY1h516Yd3WG1lOoFdvDPD0dOnhZL1sOy2jya4o4nIFPQ5+TEtjbsf06Phi9cEYeYdf409" ;
620+ sout << " pNpY6losWJOZUiraf5QFv3rbPryHMx+Zj2z+FHgZ+vsJurMvlHNgGCzpS26azM0l4Ed86g0qd7lc" ;
621+ sout << " nBl40tu+4s3GoZulbscBuofA9wjjRc012TTq40/08o43m/ihTeFM/KoGFlOf2v60OIsq27eab61F" ;
622+ sout << " OsJ1vKycYLZXEzCvMdN66fgetGkTPzF9b5hRILG1PpBtHIJH/+FDUoFVzUJznYWT8EZ7qdW0F5+9" ;
623+ sout << " WlXsL5gQJ7PV4ffSjWYHbw3R50xcsbU8m56VlufWW+L0jhSoCEahYn05HYBGf8D7fDspkGF24La4" ;
624+ sout << " MJhjOSs6r2c4ICgLo9X5Bfncee9nsXLTmi+QdKszy0TmQbEpTrhtP2wzpgMleUHHxMlbin7MP5YW" ;
625+ sout << " 4MITFI53rh06whYd/IbwE7siF4JV7iFNPtT9qu7VC10MqPtIbm8AFxRQfgINAXcokh62bkqVEBEM" ;
626+ sout << " o+H1Lzoji6+TalslrSiyjgYmqQcdtP+47KWPwnOorGud1dYfQu6yplRWhHhmGWUAHKrR4j8XhSbz" ;
627+ sout << " gd5xgfm3kAj1WiIjYWJ5cuZws+KUnQVqDs+3v6w6oDn//pty2Xk4ogVXHVqqzCwWGNmr30ywPjMR" ;
628+ sout << " ce15ZPue6TQZ+hRRaq4RN4m6CZdX0nM684xZNvRsG/JmCbzTrUacjvhBWNOjrbg3PyqrFFIGfnIX" ;
629+ sout << " CRWNJPur+r0tlERGA54kW+8EofT7XwM8co1NdCoPhthnioJNnkEYE7OEhPu3OVwjLTmtC1/fxg4w" ;
630+ sout << " sAeKkrPaPkJWl/rvnTFBZz7iVbAYkMBkps4EwxfzT02hY4H9aWmFqHXhGbuglimDAdBTTr+1FLgJ" ;
631+ sout << " N5kII9wy3x6zSib8T7UGxgLEHp5Z06LZflvCp1PzAYu/m6EzPGx2mKV9zoxeCcP2KLXjXt/k5BQs" ;
632+ sout << " JJvxMg+2cr5ztZOeGmGH5l256HPB6PAX7CqKae5EWgJsVNpk5l5zBiCAL+zZ6ff8bDM0MXlYm7U8" ;
633+ sout << " LvaWOafIAXQEmTsEtsu6Cta/l57M5VxrNLtUgEUB1g/mLiCxZK5CoVhB/O38bGn1los3BJRNUAuA" ;
634+ sout << " f9aUMfyJdg4GcdD6LqhGhiMlgPNcXNRDw+gcpZWbcbBrzJEDEJwxa0unaRCPz3ofVBGuBGcNVOaC" ;
635+ sout << " sRcYWqCud1X1uhteo2wAsQa2PL1OG334n/EK/gn+fmQ++gZtj9hQBZB+OWPu8Ne61J/vuS21AumA" ;
636+ sout << " art4I6UhX05mIlfX9jXqkiRKNyzYmrWDXuKXxRYPsXfA71gmjIix3DIRhOm4ck60LkyRgHX4Rd1Z" ;
637+ sout << " WNEdXGWZLuA5supwGBxP84JkIqP6dJlgG7J+uJJkxWRUrrmuPhJtAKqc2wuk1hQhNh8uPCovj4r7" ;
638+ sout << " 8PQ7T1y3Qb4A4It6we95qScZ+CYxJJuRMn2CTFqWGVXQG4IGSAYYdxrsvhq+COlInIPuuMhLNOWH" ;
639+ sout << " A9AnVXoKA2d6Ai00DGCH+up7prj62JAv+OIZ4MyskajttAQ78pT7N+JfCMAlVPnN5+QUEqIVVpbN" ;
640+ sout << " X2hLZ66Zelxq3NQlxRpcoKfM642bbZdgtIywsRF0tgJw6EkD5HRobz2KqdtS49XjH2j2JwN+wRnC" ;
641+ sout << " 2UJJP45pv3Q6usif9O/FsKZuoLlsZHQQyVZe7+mmvdCY2MGFV/zs4PF3Vsg5wJuNmEnEw2FIiR3Y" ;
642+ sout << " iXal6mZcIIqwi6S7X4KMOF4a210Oij8CpUfMHKvH44tNKavWUO+em4Jr6r/Q9WqKZP2ypv50igVq" ;
643+ sout << " V/Y22dL4RkzlfVAH8/ZzrhlXB0fdFK5zqWiN5wN2oiMSeUtQ/znRLCCNlM8WE57zaZM+eruc5jxy" ;
644+ sout << " dwh0PoidlnqIkrjLntDBnT6yGKDsDieDBv9WLQ0AZVUQXINHnoQAO2dgpzB46KaJNYDJ+ZH3djFW" ;
645+ sout << " LMvuP6s2Ac83ruEJ3NeB03a/neqViQx34PMYKX/zmOvf7DXVj5QVao56CXp1ITOnviEo31PTQ5s4" ;
646+ sout << " pjUlrtEcMwhzvW+yOTLfDLWiUKNOV4MNrVEoBFcGN+X85pHluOFDBSARKaT8vQmVWKcSow7lOGsy" ;
647+ sout << " vLj236mqpUdpDvIHylonTjtnD+JGu1PWJflKEVXB/YDOh8ASovudwgAhCJE1enKNIUcngdRXYDUZ" ;
648+ sout << " d2KNal8mYOmRti3aBCGWv9BFKYn3dLMCP3BAS0V7VXf4tDVAKYOWljOFvOoJv7IGKhfHeLQURaJ7" ;
649+ sout << " RFtx3+4KBXEgBOKDeGu9/XnSkY4Dj9m2sFmjXT9/NRcLZZWOxYbXmD47QjVaV0cUW0G4iJ6xnAnv" ;
650+ sout << " SS+13UFj3xbtlMrIz7Na/B2yTKiw0QTJbSXZ3lSHbELvglDfpUP5re/bb90e3G+IViHdtQKEsaKA" ;
651+ sout << " R71aO4wM6zM6avPomduTxBsd5WpQoHSvvzSNwGzN3C2ATxKXx4XcizZAyjsOqY2oHFS3g+PmRnmp" ;
652+ sout << " we06v0Ea/CX+dZ7Y2Pmx0oGJ6FEgYL7MBPKhJerfjLtEeS9VQe5zPrhO7FpuEqZ1MUV0MO3MaOSF" ;
653+ sout << " Ytn9L63Gc91NTrvcocHnJ6faZ8f7va13+kJVSr9/Y9+07g6LcMezeJKDW0fQ//6JahNi1/VFfP2a" ;
654+ sout << " /G0qFGJrx0hO64NubdS4IcAnmVsyXhxKP1igo3QhlXcw5ZFATcfljYlbh8vkQ5MXRc6+7BILEGRy" ;
655+ sout << " n533RXrIDTAO9tTG8V4G5zqq57X4yMmbh+ALtI9Xteqk4RvcrKXb5PjXeqx9GwL4t0OMLD+cF41n" ;
656+ sout << " su8x7IDh62AdXf7EkIXLjActcdpnsFIR12nzvyhxs+flpCWSCyMwpqy7ASaO/0yYttcTJNNhvlC5" ;
657+ sout << " zp0WgOfvzPu9/CnnARrsYnkJaKSrZAgLvxQf6FZv4ECnQ6yyJIWZOG3BQ3YrWCNYHbHn1hfWaKl2" ;
658+ sout << " esmRMpsNqrlTiIihNwL1ySzJ+oZT9H1M11iqqdUUIyIpDSDOBxN8VyKM38ykqQpl+kCO5rSon7fT" ;
659+ sout << " sagqrJR5wCfXHOUY55ixmf32gq5iq00Ih6WRjLGpHRiSl/dhbAGzxYKSgrBeGZKaTWKpt7BPATcl" ;
660+ sout << " nWLYJsPQYdqSncyLJ3fNzAS1gIoxuAxqbuEpRYobX4wXFZBEn6rn1I9wnivjRgpt+BNOBj2QcFgw" ;
661+ sout << " aJLinc1pcGFaY/mLhH4I9PTYq903a3w4tuw0xALDL/cQKjvbOPXp/lhl67Eyi6ZVOVbkJB34ccKE" ;
662+ sout << " wjWG7LU45b1v2WtzDVfOhu17GM1rk1q9VWKVftDixnIDDeUjx12wsJRZ5V0Jnxs1/ajWrzLbmnND" ;
663+ sout << " EBsiloE1ng3yajyhH4qL9VL/7r4n8MwXlQanpCsIwmiaydKbnjKTxfGMqSeEwHSq0sA0k+hSJXxW" ;
664+ sout << " hDLdgRMdmk/22Z8grtkpJvhU8tamcEPD6QT2xxZP2AunCnsI0FyP/MhFWIfxxFbAxqAAMEZKzl+U" ;
665+ sout << " AjBusrUfEKjTwFCXMzQ63ArMVDl96hmRvQYMmDiBddaoS0QZqaljSWOWO7Syyqht4p8kTZ9zMQ1S" ;
666+ sout << " 7ntDdB63y7GEIOutDpm6LP0Tu+piROxhdrmrf3w3s2u6XmMwhXntIFxbxes04EsqFxQfK6xmb3ws" ;
667+ sout << " NZiidakdtSbOj2QOistt7agZz0JVwe6N863TOVID6FS2fp/73u7mOn5yTTKjFjp83pOf6cQADCzw" ;
668+ sout << " GWdhc5eULE7U9Tx8JSCn7/X48hKbtQT9LS/WcH7lRN96eWG1p+uSLe4Bu5LnW8MvosxIJXdAhNRy" ;
669+ sout << " ct6XLuT5CZt5rGITmKICiKyFdrtPpueLyFIQ0Q3jByNWNrtFo6aQENMSmGM3hQgQfVJNHiKajM9t" ;
670+ sout << " ugsXtQb29TK1SpjyvY4sHLaEiXAPywbHQ14eVcEWa/sjqOavrnrTtWjIEvL2XiZ6KHZYf7yDx6Xq" ;
671+ sout << " NibtkmOtiVxlFXuk1Y52iZ4UUuJft5liEo/jFUX67RHY6xFUqk/tCpzeSL/hME5qw7cx55ROGTcg" ;
672+ sout << " QqLzD3U5G2QqtfBXokVzsXgmY9H4O40VBJi84Im0tWHyhVe/p6oLzLeRevjcDfmuNXM7o3veJajU" ;
673+ sout << " Vu/8X+Zng/m4JF55LWDKpf6ArsxweoThhTmdtrhLjhzkHABhYaZXEd93+jGoY+iKClS2B1/2AOqP" ;
674+ sout << " V5O7zO35eoU99xzIDC6+ZglcGhxFn6uVc13oOwqyQJgojvT7LGtHOsBxpAz8j3+E9S8WDmMzUkEl" ;
675+ sout << " 3J4tO5gZZKVi3qrNqXKs9SowG+mGid170UnPrlp+9XeYorlNdwNVbkOM8/gBDgIZ28LFega2nFtX" ;
676+ sout << " /D8ckqTz2E6bkU6yljZ8rzpCmrHB++8h5W3izJPgsw2JpyTxgeGvq/R6JSqlhccADAc7qHsFBT9c" ;
677+ sout << " W37yC0S0TPQu1E202GQ6dI5a6IPFvhVfhZ+XwByWBm+qyI5BkXFhd7aDXiPJ/6i72InsuQUr6YV6" ;
678+ sout << " qS33wlXMdT69KjNDmJvNMY6H3WWdW7uawPpt4TJCwzGZsw6o8Z51q5Gj1l7mSmENiZUIFBYe/uku" ;
679+ sout << " AE07Z/K5DsamWDrCzB/HByaLCSouElNvRgD0dy74YSuir5o6gkWMlgtLif9Q12tg9a2VN4aEbRGz" ;
680+ sout << " WqiR2REmklVmiSHy6Eqp9kKvtoKHECIaWWXk2i3qqZ79xaBrYuh66Qtq7TTnnoeZSY0APDewwMsX" ;
681+ sout << " 7J0O1sOd7pzxBKoCUpmccPgcOmLzUNU28j1Hz4ehbJX2F1kU6F+IL3kZlOLk+U4Z5Llwz757AS/4" ;
682+ sout << " IuQqtqkfgnLco88sFTlfSezhuMyO0q1d3GFPuqIOBEi5bEBGQG7niZPGfdPeE5al4drM8iMWcXpF" ;
683+ sout << " M1L4Rv7B1BrIhmj+a1tSRYF9j/kNfvW7m7bXjhfeJ4FgSTzrM7F9Q5PAqPeN9UEGHtSviyAiWcqG" ;
684+ sout << " p/ttcZfEcHXqaMZ/SUmhvCasHVEZQTtqaojjIdDh55pOLd/HYQZEiiqZumwSWirmaKEnEFpYIvmn" ;
685+ sout << " gHhvZ03jEoMbkDec3/hCfyKf9iboM0Or6VZyZ5emKv/Gvyz/YEUYOGvWIkyMWJ5SwnEFSMF1Hhvx" ;
686+ sout << " GKZ+VUv7D7yEa/XMcM7llUJ7mPW2ErQa1qM5eLp5kinFDtEw63xYG+nAg8XAT2pss1js/pprv05P" ;
687+ sout << " 53Bu5GaxNw8TiTgJTT9LCRWyc5XmuB+KudTz27gkB+vuX9LQgjwRZxRFZjF0WhvDZZGE8LHCcYuF" ;
688+ sout << " EdIMbihlEeNxJq+0mbyzno5eDQIwl5FdCl+i4cD7dUhhuMVeNFjMuPxEdbXX3RQ0EXkVphZX3N6R" ;
689+ sout << " 3iJJ7H7oLfQhe7W23+UmvCaCx0VLqfdwWt9l+R2mrUItecivLKjSVptHUk3kAK1nTnjBCFFPMhKk" ;
690+ sout << " gVynIOzQp+xasG0OW+3rZxR97TDWnbFj7kl7qY4tGxeln+xfouCRWJCpjTpKlZ45sJH1zSpkqmoh" ;
691+ sout << " xBv9TGmxahVA8flkcKrYP6VdsmY58o4EN1mO0eZKRiZi8kSoDGihIf/agcYNN6gTzJdxYLQVcKjc" ;
692+ sout << " 69KGvZOM8o5ERaPM9Mi5+bctSKCMb9e2OlP1aYPum/84y4IvjAXVK0jecnvwZgNivF//4rDrmNNS" ;
693+ sout << " r+YwTr9wsg4B1fak6GdkwWPSjEnHX1R+Sn+X3i42DF0YJ3AwSB6my5hcXhBo7odoUYeTpSmGTjNo" ;
694+ sout << " N4KKogzsCKnyTIIa2mK+jdtqiDLWJB0jcHnusL3kGRDM6Kd+XhJk4nG6mA5xRFoYuu2IfGkAIwRK" ;
695+ sout << " xlSl9RKix6/VL/OgRIrLLO3Loi6tFvOikTqS7AUMiPzRs0ZHarsx65ThhAHw8u95R+7iSZd+juTZ" ;
696+ sout << " KHjlCgOCXxhTUqkXNc+dQh6coqRI6+Zr8+ETCzRQJMxdY4RFgyYFpAiQf5fYxf11CMZArd0X/L6C" ;
697+ sout << " 0fjkI0ICHiAJGT1/qzaqqoTEFDybcue3EmNv/ZtkE+4nLjX7It8za9cGTSvRGeorOL0fCMEO/Pa+" ;
698+ sout << " /cbY6/D7QdO/cY4unu3CJIB1JmrDL4VV5vo1WaglQHbtpnv+r4+HWO7KLf8dm/f2VcAoIJ4NOvGa" ;
699+ sout << " tGMuiuLJn3Yj0jh/+k/rjgxVDo2yqkJSIUFIwJ9Zd0JK7I9f2vtQwJw0C0grk70rdivsqheSxWWW" ;
700+ sout << " ot/TyryX9Nmsm+igbSzGs2rer4DJb2T4H/vm50cnGOHVs5ttYD9N/SNLb75xXk7FRWV8TXvOSuyh" ;
701+ sout << " QU7Ntc6qDLktj8n4Zc3bXdtuEPNDkWPdJQvcOizwyrMjjd8zZeLWTjWGZtHl/85Km+kob8uYqEmS" ;
702+ sout << " 8pejfi/NuCyvZ3KGRKX90qu6ZRvGLhqMIjwFzzuR1PSSe6SuJkYALMyI5LfDQXoHQ1ksxwFQVLy7" ;
703+ sout << " PHv10rr88rxRbmr6EyqeSrKdGoS6Dee/tpq+8lZsf/eeKb7k/ZhcZEfNumSf7WPsjMgkatsXkikn" ;
704+ sout << " B7CL4IgDWgUWIhE8FS6h3ZK5D2HNeDbzD0jT6iKW7MpT+XcbvcajqPkIs+UsMbL5X9Jrss/b1MkI" ;
705+ sout << " I+1GSj8emDxZA9xUbhjBzX5zGFBBxHzI6FZutmMMdgDRMMwuhpQ9OSgTvTMxK7TnyHVoDcfoHd+4" ;
706+ sout << " e9IywxCOUcKfehSF/AA8U9mSK1QRVd8wEefq04K+iOmwGrnxzKooa3MsFt95/9Fty5CVO6DJ9ABi" ;
707+ sout << " bseoMNu6sAN1rwOBez/v4+u/gXh95MFq/Ps3kLNVOscPACMztm2FpRR+4D1UKJtiw4aMcPLVw2U4" ;
708+ sout << " Re9fg6yUttVnT/2Zpi40DYYBWwcEpu9jYqNXfVvpPnaFEyYyqyuvlO3xAeY9xOU9LBt11wnxqAU/" ;
709+ sout << " d3IsXqMRW/fg3aD0li1uWBMXOtxltWHZiwehDFmQuEvIO801I8DsuZHniGKnVGvs18gwT3+xw79V" ;
710+ sout << " JooLIlUFAB3qPtsMPlgXBlRrjsp4aPZReLwFz5thoI4pXDDjr0FoXfpja8SR8y/2A1JAYkhBoQn1" ;
711+ sout << " eCbp+Lj0GCks1q/BKck3CLJYmfGlEdNRnKbureBdyS9FP+QXivlcYHGX9I3tNE9aaJwGj+x1pXgJ" ;
712+ sout << " FDCHwZS/rI4Z+MYuaDKNPv0gnMAqozvpW7V55nXQn1UpYzfq6bMEB1jVaivfHtFsPaAs5NH3lPNJ" ;
713+ sout << " KTvp9lyce++JND5ucXEy4gbU6KIqjydn92fKiVGitPo2+cdksINDjNuZ0kp/FNpaJZ7eTEzlsoQL" ;
714+ sout << " 1Yuvj23499OP/Ic2eczI0sHb/3etqRtiqlGSJt0tEmviwugXesu/W6h90rw4B6SNJieKtI0BjJdn" ;
715+ sout << " XA7/IdIkFJBhbP+bUWbmyVP3e1gkrumx37i4pk8vUTc4mUgmgEiUtQT5jPPoxLP4Gv/XkihKDJfn" ;
716+ sout << " 39F/u4D4GwK0E2SQCTgvzdFox9RF82Jcr8mqTG4ZioN0eUiztSRKSeCDstFuio61MMXVHZYP7vPR" ;
717+ sout << " UOqHO0JEjHvVxBaliN0rcr3OIGyXnbNMQp7SqLOX6fxgvXTmiBvKDyKrD/uDDuc1h5JhlHr6oqHi" ;
718+ sout << " lRJb9cjWQL5+I4bV4OJcwUsXihSo0aIjgTtgN55MiKlh2tpzyuHo5uJ5v4Yjc/nGAZb5vgt/nK2z" ;
719+ sout << " +4RsfCJ2YEWM5x9/RfShO0RB11qXesVlzCYiI7n9a9theAMWx8GbQNMRFepAkLroxrbhi+r8kBi7" ;
720+ sout << " aD830HnkdsZ+J/xARtgP+hP4AVy62+YTTZmMwmL2o7NsYmnJFEm3StJBfYlVhxvYfi7XksYnh8aC" ;
721+ sout << " 1dpxGlAgnlVkJYrByDKRDN8pl71AfXjco0qEFWX7qNOvnwrIjw6tbhXNwJvnUaltkh928POn2du4" ;
722+ sout << " fScR7d8o3zwKxJsl4ToTArOJ4iMwBKtQm246acDAk6kUigELMmU5/AWN7SbHgmtyGAfhSlp6fj/9" ;
723+ sout << " aq8xRTAeptxyHYVsSQw+23SwGnKLIYscVE3Z8nf6rVff3doYKofr0sgEUKoC6f5ZrIftCg2jWZjh" ;
724+ sout << " QPOR5DtQToLK4qDikasT4MzxumifQgNETkprdBrknTO0FgX9/u6dglySnKuHa3LSTTOg/zN9Wpyq" ;
725+ sout << " pR5lJVWAhj7GDCBePEFdDT76sP7wn8gMzqlECOXNNMjKPINC/T2Y9YxCT2g4N8IEnm4L1cpaEjqF" ;
726+ sout << " idiTgGd1jGhNhC7jLKMzSaC2ZVesNP+kl90zuRTphhQ584qPe3UsvcD9SwQqf2sG/GebOAZOKuir" ;
727+ sout << " RLVHSoehVin2xRsNs6CKF7DhQbxSBrsFq+C9i+1Wvmm9TDtpxcnjhnIrvd/72+F2ltTNBXVls16f" ;
728+ sout << " WDSbZtuATt2VQzq5CfnGlu6u+1VPogAt7LeucGmpQkcfPwL41MysG7DIvs0Wn3eytTcb9bmez/xp" ;
729+ sout << " IxnqFH+fFicLyEt+Cci+uHzuq8TOLXGUoIksdL4yXtNUmGwgq0cIFa6tafOjRe7Zb4wI25K3V6dt" ;
730+ sout << " KxEiyMq1iLSwbEiHZoQg5KMLnhFpRpdk3GEqkjJW9V+r4WV9sR3gPgOtD2HpUfBw3z2Y" ;
731+
732+ // Put the data into the istream sin
733+ sin.str (sout.str ());
734+ sout.str (" " );
735+
736+ // Decode the base64 text into its compressed binary form
737+ base64_coder.decode (sin, sout);
738+ sin.clear ();
739+ sin.str (sout.str ());
740+ sout.str (" " );
741+
742+ // Decompress the data into its original form
743+ compressor.decompress (sin, sout);
744+
745+ // Return the decoded and decompressed data
746+ return sout.str ();
747+ }
748+
749+ #endif // SLM_DATA_H
0 commit comments