diff --git a/README.md b/README.md index 4c73167..53c1f97 100644 --- a/README.md +++ b/README.md @@ -6,42 +6,6 @@ core written in Rust rather than in any form of softcode. Only user data forms p Even the map is programmed in a normal text editor, and can be tested locally before being deployed to the game. -# Age verification file - -The Blastmud game is for adults only (18 years of age or older). In order to make a complete game, three -components are required: - -* This game server codebase - which is publicly available and shareable under a permissive (3-clause BSD-style license). It isn't playable as a game by itself. -* A client. Openly available software such as telnet, tintin++, or mudlet can be used as this component. -* A closed-source age verification file, to be placed as `age-verification.yml` alongside the `gameserver.conf` file. This file is copyrighted with all rights reserved (except for the use by the person it is intended for to run the game) and cannot legally be given to anyone else. The initial author of Blastmud intends to provide an `age-verification.yml` file to anyone I am satisfied is not a minor. - -## Why does a Free/Open Source project deliberately include a requirement for a non-Open Source file? - -In the jurisdiction where the initial author is based, it is illegal to distribute unclassified or R18+ classified games (defined as playable software / data / some combination of it) to people under 18. Restricting access to all components of the game would be an impediment for easy collaboration on the game. - -So a decision was made to only distribute a non-playable Free / Open Source component without restrictions (and to ensure this non-playable component doesn't, by itself, meet the definition of either a computer game or a submittable publication). - -## I obtained an `age-verification.yml` from the initial author - can I share it / publish it? - -No, this file is licensed solely to you and it is a breach of copyright law to publish it without consent from the initial author. A takedown request for the material might be sent, the shared `age-verification.yml` might be revoked in future versions of the server codebase, and you could even be sued for copyright infringement. - -Depending on your jurisdiction, publishing a complete game (including `age-verification.yml`) to people who are under 18 could also be a crime. - -If you attempt to use the official Blastmud GitHub project (or any other resources) to share `age-verification.yml` (e.g. through issues or pull requests), the material will be deleted and you will be blocked from further interaction with the project (unless we are satisfied it was accidental). - -You are allowed to put it on a computer system / server where it is only accessible to a limited number of people known to you, as long as you have verified all those people are 18 or over, and know not to further distribute the file. - -## Can I change / remove the code so it doesn't need `age-verification.yml`? - -The license for Blastmud allows you to change the code and redistribute your changes. If you are forking Blastmud to create your own game engine, you could change -the age verification keypair or entirely remove the code. You may not call such a modified game Blastmud. Please be aware that if -you modify the code to create a complete computer game, in some jurisdictions you might have to get your fork classified, and might -have legal obligations not to distribute it to anyone under a certain age. - -Regarding the use of official Blastmud resources such as our GitHub project and game server instance: to ensure minors are protected, you must not post versions of Blastmud that disable the checking of `age-verification.yml` (or post any other complete unclassified game or game that is unsuitable for minors of any age), nor post patches, pull requests, or instructions for doing the same. You may be blocked from further interaction with the project if you do this (unless we are satisfied it was accidental). - -Please note the game displays an "R18+" symbol from the Classifications (Publications, Films and Computer Games) (Markings and Consumer Advice) Determination 2014, which is a symbol that can only legally be displayed if your game has that classification. If you fork the code and distribute a modified version, you will be required to change the name, but if you change the name, you will need to get your fork formally classified (for example, by submitting it to the Google Play store and obtaining a classification via the Ratings Tool). - # Architecture Blastmud consists of the following main components: @@ -52,7 +16,7 @@ Blastmud consists of the following main components: # Status -Blastmud is not yet playable, it is under development. +Blastmud is under active development, but is currently playable. # Schema management We only keep the latest version in version control, and use migra (pip3 install migra) to identify changes between diff --git a/blastmud_game/src/av.rs b/blastmud_game/src/av.rs deleted file mode 100644 index eaf579f..0000000 --- a/blastmud_game/src/av.rs +++ /dev/null @@ -1,41 +0,0 @@ -use crate::DResult; -use base64::{self, Engine}; -use ring::signature; -use serde::Deserialize; -use std::error::Error; -pub(crate) use std::fs; - -#[derive(Deserialize)] -struct AV { - copyright: String, - serial: u64, - cn: String, - assertion: String, - sig: String, -} - -static KEY_BYTES: [u8; 65] = [ - 0x04, 0x4f, 0xa0, 0x8b, 0x32, 0xa7, 0x7f, 0xc1, 0x0a, 0xfc, 0x51, 0x95, 0x93, 0x57, 0x05, 0xb3, - 0x0f, 0xad, 0x16, 0x05, 0x3c, 0x7c, 0xfc, 0x02, 0xd2, 0x7a, 0x63, 0xff, 0xd3, 0x09, 0xaa, 0x5b, - 0x78, 0xfe, 0xa8, 0xc2, 0xc3, 0x02, 0xc2, 0xe6, 0xaf, 0x81, 0xc7, 0xa3, 0x03, 0xfa, 0x4d, 0xf1, - 0xf9, 0xfc, 0x0a, 0x36, 0xef, 0x6b, 0x1e, 0x9d, 0xce, 0x6e, 0x60, 0xc6, 0xa8, 0xb3, 0x02, 0x35, - 0x7e, -]; - -pub fn check() -> DResult<()> { - let av: AV = serde_yaml::from_str(&fs::read_to_string("age-verification.yml")?) - .map_err(|error| Box::new(error) as Box)?; - if av.copyright != "This file is protected by copyright and may not be used or reproduced except as authorised by the copyright holder. All rights reserved." || - av.assertion != "age>=18" { - Err(Box::::from("Invalid age-verification.yml"))?; - } - - let sign_text = format!("cn={};{};serial={}", av.cn, av.assertion, av.serial); - let key: signature::UnparsedPublicKey<&[u8]> = - signature::UnparsedPublicKey::new(&signature::ECDSA_P256_SHA256_ASN1, &KEY_BYTES); - key.verify( - &sign_text.as_bytes(), - &base64::engine::general_purpose::STANDARD_NO_PAD.decode(av.sig)?, - ) - .map_err(|_| Box::::from("Invalid age-verification.yml signature")) -} diff --git a/blastmud_game/src/main.rs b/blastmud_game/src/main.rs index 5c55786..a4bfd7b 100644 --- a/blastmud_game/src/main.rs +++ b/blastmud_game/src/main.rs @@ -1,6 +1,6 @@ #![cfg_attr(test, allow(unused))] use db::DBPool; -use log::{error, info, LevelFilter}; +use log::{info, LevelFilter}; use serde::Deserialize; use simple_logger::SimpleLogger; use std::error::Error; @@ -10,7 +10,6 @@ use tokio::signal::unix::{signal, SignalKind}; #[cfg(feature = "yamldump")] use static_content::dumper::dump_static_content; -mod av; mod db; mod language; mod listener; @@ -43,11 +42,6 @@ async fn main() -> DResult<()> { .init() .unwrap(); - av::check().or_else(|e| -> Result<(), Box> { - error!("Couldn't verify age-verification.yml - this is not a complete game. Check README.md: {}", e); - Err(e) - })?; - #[cfg(feature = "yamldump")] dump_static_content()?; diff --git a/blastmud_game/src/message_handler/new_session.rs b/blastmud_game/src/message_handler/new_session.rs index 104ef7b..02025d6 100644 --- a/blastmud_game/src/message_handler/new_session.rs +++ b/blastmud_game/src/message_handler/new_session.rs @@ -8,31 +8,31 @@ use std::default::Default; // ANSI art version of the symbol we are legally required to display per: // https://www.legislation.gov.au/Details/F2017C00102 // https://dom111.github.io/image-to-ansi/ can help convert it. -const AUS_RATING_SYMBOL: &'static str = "\x1b[48;5;234m \x1b[38;5;252;48;5;235m▄\x1b[38;5;255;48;5;242m▄\x1b[38;5;15;48;5;250m▄\x1b[38;5;15;48;5;254m▄\x1b[38;5;15;48;5;255m▄▄▄\x1b[38;5;15;48;5;254m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;15;48;5;255m▄\x1b[38;5;255;48;5;254m▄\x1b[38;5;15;48;5;250m▄\x1b[38;5;15;48;5;242m▄\x1b[38;5;249;48;5;236m▄\x1b[38;5;237;48;5;234m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[m -\x1b[38;5;242;48;5;235m▄\x1b[38;5;255;48;5;251m▄\x1b[38;5;254;48;5;15m▄\x1b[38;5;240;48;5;254m▄\x1b[38;5;233;48;5;245m▄\x1b[38;5;233;48;5;239m▄\x1b[38;5;234;48;5;238m▄\x1b[38;5;234;48;5;239m▄\x1b[38;5;233;48;5;238m▄\x1b[38;5;234;48;5;237m▄\x1b[38;5;234;48;5;238m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;234;48;5;237m▄\x1b[38;5;233;48;5;240m▄\x1b[38;5;232;48;5;8m▄\x1b[38;5;239;48;5;255m▄\x1b[38;5;188;48;5;15m▄\x1b[38;5;15;48;5;250m▄\x1b[38;5;8;48;5;234m▄\x1b[38;5;232;48;5;234m▄\x1b[m -\x1b[38;5;254;48;5;250m▄\x1b[48;5;15m \x1b[38;5;239;48;5;246m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;236;48;5;233m▄\x1b[38;5;236;48;5;234m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;240;48;5;8m▄\x1b[38;5;15;48;5;15m▄\x1b[38;5;254;48;5;251m▄\x1b[38;5;235;48;5;233m▄\x1b[m -\x1b[38;5;254;48;5;254m▄\x1b[38;5;15;48;5;15m▄\x1b[38;5;238;48;5;238m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;232;48;5;233m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;233m▄\x1b[48;5;234m \x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[48;5;234m \x1b[38;5;235;48;5;233m▄\x1b[38;5;236;48;5;233m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;236;48;5;238m▄\x1b[38;5;15;48;5;15m▄\x1b[38;5;254;48;5;254m▄\x1b[48;5;235m \x1b[m -\x1b[38;5;254;48;5;254m▄\x1b[48;5;15m \x1b[38;5;238;48;5;236m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;235;48;5;235m▄\x1b[48;5;235m \x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[48;5;234m \x1b[38;5;235;48;5;234m▄\x1b[38;5;236;48;5;234m▄\x1b[38;5;233;48;5;232m▄\x1b[38;5;239;48;5;238m▄\x1b[38;5;255;48;5;15m▄\x1b[38;5;254;48;5;255m▄\x1b[38;5;235;48;5;234m▄\x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[48;5;238m \x1b[48;5;233m \x1b[48;5;234m \x1b[48;5;235m \x1b[48;5;234m \x1b[38;5;234;48;5;235m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;236;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;233;48;5;234m▄\x1b[48;5;234m \x1b[38;5;235;48;5;234m▄\x1b[38;5;236;48;5;233m▄\x1b[38;5;232;48;5;236m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;235;48;5;234m▄▄\x1b[48;5;234m \x1b[48;5;238m \x1b[48;5;15m \x1b[48;5;254m \x1b[48;5;235m \x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[48;5;238m \x1b[48;5;233m \x1b[48;5;234m \x1b[48;5;235m \x1b[48;5;234m \x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;236;48;5;232m▄\x1b[38;5;247;48;5;238m▄\x1b[38;5;254;48;5;245m▄\x1b[38;5;251;48;5;239m▄\x1b[38;5;237;48;5;232m▄\x1b[38;5;232;48;5;235m▄\x1b[38;5;235;48;5;232m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;235m▄▄\x1b[38;5;234;48;5;232m▄\x1b[38;5;234;48;5;235m▄\x1b[48;5;234m \x1b[48;5;238m \x1b[48;5;15m \x1b[48;5;254m \x1b[48;5;235m \x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[48;5;238m \x1b[48;5;233m \x1b[48;5;234m \x1b[48;5;235m \x1b[48;5;234m \x1b[38;5;235;48;5;235m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;252;48;5;235m▄\x1b[38;5;247;48;5;7m▄\x1b[38;5;232;48;5;145m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;0;48;5;247m▄\x1b[38;5;248;48;5;254m▄\x1b[38;5;254;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;232;48;5;235m▄\x1b[38;5;237;48;5;233m▄\x1b[38;5;233;48;5;235m▄\x1b[48;5;234m \x1b[48;5;238m \x1b[48;5;15m \x1b[48;5;254m \x1b[48;5;235m \x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[48;5;238m \x1b[48;5;233m \x1b[48;5;234m \x1b[48;5;235m \x1b[48;5;234m \x1b[38;5;234;48;5;233m▄\x1b[38;5;251;48;5;236m▄\x1b[38;5;247;48;5;7m▄\x1b[38;5;0;48;5;145m▄\x1b[38;5;0;48;5;234m▄\x1b[38;5;235;48;5;232m▄\x1b[38;5;232;48;5;235m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;234;48;5;0m▄\x1b[38;5;0;48;5;145m▄\x1b[38;5;248;48;5;254m▄\x1b[38;5;254;48;5;236m▄\x1b[38;5;236;48;5;233m▄\x1b[38;5;232;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;233;48;5;235m▄\x1b[48;5;234m \x1b[48;5;238m \x1b[48;5;15m \x1b[48;5;254m \x1b[48;5;235m \x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[38;5;238;48;5;238m▄\x1b[38;5;232;48;5;234m▄\x1b[48;5;235m \x1b[48;5;234m \x1b[38;5;235;48;5;234m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;236;48;5;233m▄\x1b[38;5;251;48;5;235m▄\x1b[38;5;248;48;5;251m▄\x1b[38;5;233;48;5;247m▄\x1b[38;5;247;48;5;59m▄\x1b[38;5;15;48;5;242m▄\x1b[38;5;255;48;5;8m▄\x1b[38;5;15;48;5;243m▄▄\x1b[38;5;15;48;5;242m▄\x1b[38;5;254;48;5;237m▄\x1b[38;5;247;48;5;233m▄\x1b[48;5;232m \x1b[38;5;233;48;5;248m▄\x1b[38;5;248;48;5;254m▄\x1b[38;5;7;48;5;237m▄\x1b[38;5;237;48;5;233m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;233;48;5;236m▄\x1b[38;5;237;48;5;233m▄\x1b[38;5;8;48;5;233m▄\x1b[38;5;236;48;5;234m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;241;48;5;233m▄\x1b[38;5;245;48;5;233m▄\x1b[38;5;8;48;5;233m▄\x1b[38;5;234;48;5;236m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;236;48;5;234m▄\x1b[38;5;234;48;5;236m▄\x1b[38;5;235;48;5;234m▄▄▄\x1b[38;5;234;48;5;234m▄\x1b[48;5;234m \x1b[38;5;238;48;5;236m▄\x1b[38;5;15;48;5;15m▄\x1b[38;5;253;48;5;255m▄\x1b[38;5;234;48;5;235m▄\x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[38;5;236;48;5;238m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;232;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;7;48;5;234m▄\x1b[38;5;249;48;5;7m▄\x1b[38;5;233;48;5;248m▄\x1b[38;5;236;48;5;233m▄\x1b[38;5;232;48;5;0m▄\x1b[38;5;250;48;5;252m▄\x1b[48;5;15m \x1b[38;5;145;48;5;255m▄\x1b[38;5;234;48;5;188m▄\x1b[38;5;235;48;5;251m▄\x1b[38;5;236;48;5;255m▄\x1b[38;5;251;48;5;15m▄\x1b[38;5;15;48;5;15m▄\x1b[38;5;250;48;5;243m▄\x1b[38;5;234;48;5;0m▄\x1b[38;5;232;48;5;234m▄\x1b[38;5;233;48;5;249m▄\x1b[38;5;145;48;5;253m▄\x1b[38;5;252;48;5;237m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;236;48;5;233m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;102;48;5;238m▄\x1b[38;5;246;48;5;255m▄\x1b[38;5;254;48;5;255m▄\x1b[38;5;235;48;5;237m▄\x1b[38;5;251;48;5;239m▄\x1b[38;5;246;48;5;188m▄\x1b[38;5;0;48;5;247m▄\x1b[38;5;235;48;5;252m▄\x1b[38;5;254;48;5;250m▄\x1b[38;5;240;48;5;235m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;233;48;5;236m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;232m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;236;48;5;234m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;237;48;5;238m▄\x1b[48;5;15m \x1b[38;5;255;48;5;254m▄\x1b[38;5;234;48;5;235m▄\x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[38;5;239;48;5;239m▄\x1b[38;5;0;48;5;234m▄\x1b[38;5;238;48;5;232m▄\x1b[38;5;249;48;5;236m▄\x1b[38;5;248;48;5;251m▄\x1b[38;5;232;48;5;248m▄\x1b[38;5;232;48;5;235m▄\x1b[38;5;235;48;5;232m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;232m▄\x1b[38;5;7;48;5;249m▄\x1b[38;5;15;48;5;15m▄\x1b[38;5;253;48;5;246m▄\x1b[38;5;238;48;5;0m▄\x1b[38;5;237;48;5;234m▄\x1b[38;5;102;48;5;0m▄\x1b[38;5;254;48;5;145m▄\x1b[48;5;15m \x1b[38;5;248;48;5;252m▄\x1b[38;5;233;48;5;232m▄\x1b[38;5;234;48;5;236m▄\x1b[38;5;236;48;5;0m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;233;48;5;248m▄\x1b[38;5;247;48;5;253m▄\x1b[38;5;252;48;5;237m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;238;48;5;237m▄\x1b[38;5;255;48;5;188m▄\x1b[38;5;236;48;5;235m▄\x1b[38;5;238;48;5;249m▄\x1b[38;5;254;48;5;247m▄\x1b[38;5;250;48;5;0m▄\x1b[38;5;253;48;5;237m▄\x1b[38;5;248;48;5;254m▄\x1b[38;5;234;48;5;239m▄\x1b[38;5;232;48;5;234m▄\x1b[38;5;232;48;5;233m▄\x1b[38;5;102;48;5;239m▄\x1b[38;5;247;48;5;59m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;238;48;5;237m▄\x1b[48;5;15m \x1b[38;5;254;48;5;255m▄\x1b[38;5;235;48;5;234m▄\x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[38;5;239;48;5;236m▄\x1b[38;5;233;48;5;232m▄\x1b[38;5;235;48;5;102m▄\x1b[38;5;251;48;5;15m▄\x1b[38;5;247;48;5;233m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;232;48;5;233m▄\x1b[38;5;249;48;5;7m▄\x1b[38;5;15;48;5;255m▄\x1b[38;5;15;48;5;15m▄\x1b[38;5;253;48;5;15m▄\x1b[48;5;15m \x1b[38;5;15;48;5;15m▄\x1b[38;5;254;48;5;15m▄\x1b[38;5;237;48;5;252m▄\x1b[38;5;234;48;5;237m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;232;48;5;234m▄\x1b[38;5;247;48;5;232m▄\x1b[38;5;188;48;5;254m▄\x1b[38;5;235;48;5;252m▄\x1b[38;5;234;48;5;0m▄\x1b[38;5;237;48;5;237m▄\x1b[38;5;252;48;5;255m▄\x1b[38;5;238;48;5;233m▄\x1b[38;5;252;48;5;243m▄\x1b[38;5;240;48;5;188m▄\x1b[38;5;232;48;5;8m▄\x1b[38;5;233;48;5;145m▄\x1b[38;5;252;48;5;145m▄\x1b[38;5;243;48;5;235m▄\x1b[38;5;239;48;5;239m▄\x1b[38;5;248;48;5;246m▄\x1b[38;5;252;48;5;249m▄\x1b[38;5;252;48;5;254m▄\x1b[38;5;145;48;5;243m▄\x1b[38;5;8;48;5;240m▄\x1b[38;5;0;48;5;234m▄\x1b[38;5;237;48;5;239m▄\x1b[48;5;15m \x1b[38;5;253;48;5;253m▄\x1b[38;5;235;48;5;235m▄\x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[38;5;239;48;5;237m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;235;48;5;251m▄\x1b[38;5;252;48;5;248m▄\x1b[38;5;249;48;5;234m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;249;48;5;249m▄\x1b[38;5;255;48;5;15m▄\x1b[38;5;145;48;5;250m▄\x1b[38;5;232;48;5;0m▄\x1b[38;5;235;48;5;247m▄\x1b[38;5;255;48;5;15m▄\x1b[38;5;15;48;5;255m▄\x1b[38;5;251;48;5;240m▄\x1b[38;5;235;48;5;232m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;236;48;5;234m▄\x1b[38;5;0;48;5;234m▄\x1b[38;5;248;48;5;232m▄\x1b[38;5;252;48;5;248m▄\x1b[38;5;237;48;5;254m▄\x1b[38;5;233;48;5;236m▄\x1b[38;5;234;48;5;233m▄▄\x1b[38;5;238;48;5;238m▄\x1b[38;5;253;48;5;254m▄\x1b[38;5;238;48;5;236m▄\x1b[38;5;242;48;5;251m▄\x1b[38;5;253;48;5;243m▄\x1b[38;5;145;48;5;0m▄\x1b[38;5;249;48;5;233m▄\x1b[38;5;251;48;5;188m▄\x1b[38;5;237;48;5;242m▄\x1b[38;5;232;48;5;233m▄\x1b[38;5;235;48;5;232m▄\x1b[38;5;239;48;5;102m▄\x1b[38;5;242;48;5;248m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;238;48;5;238m▄\x1b[48;5;15m \x1b[38;5;254;48;5;253m▄\x1b[38;5;235;48;5;235m▄\x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[38;5;238;48;5;237m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;236;48;5;233m▄\x1b[38;5;233;48;5;236m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;232m▄\x1b[38;5;235;48;5;188m▄\x1b[38;5;252;48;5;248m▄\x1b[38;5;249;48;5;233m▄\x1b[38;5;0;48;5;232m▄\x1b[38;5;7;48;5;251m▄\x1b[38;5;15;48;5;255m▄\x1b[38;5;249;48;5;250m▄\x1b[38;5;233;48;5;232m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;236;48;5;246m▄\x1b[38;5;255;48;5;15m▄▄\x1b[38;5;254;48;5;239m▄\x1b[38;5;234;48;5;232m▄\x1b[38;5;246;48;5;233m▄\x1b[38;5;254;48;5;247m▄\x1b[38;5;236;48;5;254m▄\x1b[38;5;232;48;5;237m▄\x1b[38;5;235;48;5;232m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;234;48;5;242m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;232;48;5;240m▄\x1b[38;5;233;48;5;246m▄\x1b[38;5;234;48;5;243m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;234;48;5;236m▄\x1b[38;5;233;48;5;236m▄\x1b[38;5;235;48;5;234m▄\x1b[48;5;235m \x1b[38;5;233;48;5;233m▄\x1b[38;5;238;48;5;237m▄\x1b[38;5;15;48;5;15m▄\x1b[38;5;255;48;5;255m▄\x1b[38;5;234;48;5;234m▄\x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[38;5;238;48;5;237m▄\x1b[38;5;232;48;5;234m▄\x1b[38;5;236;48;5;235m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;232;48;5;236m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;232;48;5;235m▄\x1b[38;5;234;48;5;251m▄\x1b[38;5;188;48;5;248m▄\x1b[38;5;247;48;5;242m▄\x1b[38;5;235;48;5;245m▄\x1b[38;5;233;48;5;243m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;0;48;5;243m▄\x1b[38;5;233;48;5;247m▄\x1b[48;5;246m \x1b[38;5;252;48;5;7m▄\x1b[38;5;237;48;5;253m▄\x1b[38;5;233;48;5;236m▄\x1b[38;5;234;48;5;232m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;234;48;5;235m▄▄\x1b[38;5;234;48;5;236m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;234;48;5;236m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;239;48;5;239m▄\x1b[38;5;15;48;5;255m▄\x1b[48;5;255m \x1b[38;5;235;48;5;234m▄\x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[38;5;238;48;5;238m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;237;48;5;233m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;252m▄\x1b[38;5;251;48;5;246m▄\x1b[38;5;145;48;5;235m▄\x1b[38;5;234;48;5;232m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;247;48;5;234m▄\x1b[38;5;254;48;5;246m▄\x1b[38;5;237;48;5;252m▄\x1b[38;5;232;48;5;238m▄\x1b[38;5;233;48;5;232m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;236m▄\x1b[38;5;234;48;5;232m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;236;48;5;234m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;234;48;5;235m▄▄\x1b[38;5;235;48;5;234m▄▄\x1b[38;5;234;48;5;235m▄▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;233;48;5;236m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;233;48;5;236m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;238;48;5;238m▄\x1b[38;5;15;48;5;15m▄\x1b[38;5;254;48;5;254m▄\x1b[38;5;234;48;5;235m▄\x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[48;5;238m \x1b[48;5;233m \x1b[48;5;234m \x1b[48;5;235m \x1b[48;5;234m \x1b[48;5;235m \x1b[48;5;234m \x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;237;48;5;7m▄\x1b[38;5;248;48;5;145m▄\x1b[38;5;254;48;5;233m▄\x1b[38;5;251;48;5;248m▄\x1b[38;5;237;48;5;253m▄\x1b[38;5;233;48;5;238m▄\x1b[38;5;234;48;5;0m▄\x1b[38;5;236;48;5;235m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;235m▄\x1b[48;5;234m \x1b[48;5;238m \x1b[48;5;15m \x1b[48;5;254m \x1b[48;5;235m \x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[48;5;238m \x1b[48;5;233m \x1b[48;5;234m \x1b[48;5;235m \x1b[48;5;234m \x1b[48;5;235m \x1b[48;5;234m \x1b[38;5;234;48;5;233m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;232m▄\x1b[38;5;232;48;5;238m▄\x1b[38;5;233;48;5;247m▄\x1b[38;5;233;48;5;238m▄\x1b[38;5;235;48;5;232m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;234;48;5;235m▄▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;233m▄\x1b[48;5;234m \x1b[48;5;238m \x1b[48;5;15m \x1b[48;5;254m \x1b[48;5;235m \x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[48;5;238m \x1b[48;5;233m \x1b[48;5;234m \x1b[48;5;235m \x1b[48;5;234m \x1b[48;5;235m \x1b[48;5;234m \x1b[38;5;233;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[48;5;234m \x1b[38;5;235;48;5;234m▄\x1b[48;5;234m \x1b[38;5;235;48;5;234m▄\x1b[38;5;233;48;5;236m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄▄▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;234;48;5;235m▄\x1b[48;5;234m \x1b[48;5;238m \x1b[48;5;15m \x1b[48;5;254m \x1b[48;5;235m \x1b[m -\x1b[48;5;254m \x1b[48;5;15m \x1b[48;5;238m \x1b[48;5;233m \x1b[48;5;234m \x1b[48;5;235m \x1b[48;5;234m \x1b[48;5;235m \x1b[48;5;234m \x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;236m▄\x1b[38;5;235;48;5;233m▄▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;235m▄▄\x1b[38;5;234;48;5;234m▄\x1b[48;5;234m \x1b[48;5;238m \x1b[48;5;15m \x1b[48;5;254m \x1b[48;5;235m \x1b[m -\x1b[38;5;253;48;5;255m▄\x1b[38;5;15;48;5;15m▄\x1b[38;5;240;48;5;237m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;233;48;5;236m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;232m▄\x1b[38;5;239;48;5;238m▄\x1b[38;5;255;48;5;15m▄\x1b[38;5;255;48;5;255m▄\x1b[38;5;234;48;5;234m▄\x1b[m -\x1b[38;5;242;48;5;145m▄\x1b[48;5;15m \x1b[38;5;255;48;5;245m▄\x1b[38;5;239;48;5;0m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;232;48;5;233m▄\x1b[38;5;233;48;5;235m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;232;48;5;236m▄\x1b[38;5;233;48;5;234m▄▄\x1b[38;5;239;48;5;233m▄\x1b[38;5;254;48;5;102m▄\x1b[38;5;15;48;5;15m▄\x1b[38;5;8;48;5;253m▄\x1b[38;5;0;48;5;233m▄\x1b[m -\x1b[38;5;233;48;5;236m▄\x1b[38;5;237;48;5;249m▄\x1b[38;5;249;48;5;15m▄\x1b[38;5;15;48;5;253m▄\x1b[38;5;15;48;5;102m▄\x1b[38;5;15;48;5;238m▄▄\x1b[38;5;15;48;5;239m▄▄\x1b[38;5;15;48;5;238m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;15;48;5;59m▄\x1b[38;5;15;48;5;8m▄\x1b[38;5;15;48;5;254m▄\x1b[38;5;248;48;5;15m▄\x1b[38;5;238;48;5;145m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[m -\x1b[49;38;5;233m▀▀\x1b[49;38;5;235m▀\x1b[49;38;5;242m▀\x1b[49;38;5;249m▀\x1b[49;38;5;254m▀\x1b[49;38;5;255m▀\x1b[49;38;5;253m▀▀\x1b[49;38;5;255m▀\x1b[49;38;5;254m▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\x1b[49;38;5;255m▀\x1b[49;38;5;254m▀\x1b[49;38;5;7m▀\x1b[49;38;5;243m▀\x1b[49;38;5;235m▀\x1b[49;38;5;233m▀\x1b[49;38;5;234m▀\x1b[49;38;5;233m▀\x1b[m"; +const AUS_RATING_SYMBOL: &'static str = "\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄▄▄\x1b[38;5;234;48;5;235m▄▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[m +\x1b[38;5;233;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;236;48;5;234m▄\x1b[38;5;235;48;5;234m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;236;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[m +\x1b[38;5;234;48;5;234m▄▄▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;236;48;5;233m▄\x1b[38;5;145;48;5;236m▄\x1b[38;5;230;48;5;245m▄\x1b[38;5;187;48;5;250m▄\x1b[38;5;186;48;5;188m▄\x1b[38;5;186;48;5;253m▄▄▄▄\x1b[38;5;186;48;5;254m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;186;48;5;253m▄▄▄\x1b[38;5;187;48;5;251m▄\x1b[38;5;230;48;5;247m▄\x1b[38;5;188;48;5;239m▄\x1b[38;5;240;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄▄\x1b[m +\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;250;48;5;245m▄\x1b[38;5;187;48;5;230m▄\x1b[38;5;185;48;5;143m▄\x1b[38;5;220;48;5;185m▄\x1b[38;5;11;48;5;185m▄\x1b[38;5;11;48;5;221m▄\x1b[38;5;11;48;5;185m▄\x1b[38;5;11;48;5;184m▄\x1b[38;5;11;48;5;220m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;11;48;5;185m▄\x1b[38;5;11;48;5;221m▄\x1b[38;5;11;48;5;185m▄\x1b[38;5;184;48;5;143m▄\x1b[38;5;185;48;5;229m▄\x1b[38;5;224;48;5;252m▄\x1b[38;5;240;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[m +\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;254;48;5;253m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;221;48;5;185m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[38;5;220;48;5;11m▄\x1b[38;5;11;48;5;11m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;220;48;5;11m▄▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;220;48;5;11m▄\x1b[38;5;227;48;5;11m▄\x1b[38;5;185;48;5;179m▄\x1b[38;5;255;48;5;230m▄\x1b[38;5;243;48;5;243m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[m +\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;253;48;5;254m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;184;48;5;185m▄\x1b[38;5;11;48;5;11m▄▄\x1b[38;5;220;48;5;220m▄\x1b[38;5;11;48;5;11m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;220;48;5;220m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[38;5;185;48;5;185m▄\x1b[38;5;230;48;5;230m▄\x1b[38;5;243;48;5;243m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;234;48;5;234m▄▄\x1b[m +\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;253;48;5;253m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;11;48;5;184m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;220;48;5;11m▄\x1b[38;5;11;48;5;220m▄\x1b[38;5;184;48;5;11m▄▄\x1b[38;5;184;48;5;220m▄\x1b[38;5;184;48;5;11m▄▄▄▄▄▄▄▄▄▄\x1b[38;5;178;48;5;11m▄▄\x1b[38;5;184;48;5;11m▄▄▄▄▄▄▄\x1b[38;5;184;48;5;220m▄\x1b[38;5;184;48;5;11m▄▄▄\x1b[38;5;185;48;5;11m▄\x1b[38;5;184;48;5;227m▄\x1b[38;5;11;48;5;11m▄▄▄▄\x1b[38;5;185;48;5;185m▄\x1b[38;5;230;48;5;230m▄\x1b[38;5;242;48;5;242m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;234;48;5;234m▄▄\x1b[m +\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;253;48;5;253m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;184;48;5;220m▄\x1b[38;5;11;48;5;11m▄▄\x1b[38;5;227;48;5;11m▄\x1b[38;5;3;48;5;58m▄\x1b[38;5;142;48;5;58m▄\x1b[38;5;185;48;5;94m▄\x1b[38;5;184;48;5;58m▄▄▄\x1b[38;5;184;48;5;3m▄\x1b[38;5;184;48;5;94m▄\x1b[38;5;185;48;5;58m▄\x1b[38;5;184;48;5;58m▄▄▄▄\x1b[38;5;184;48;5;94m▄▄\x1b[38;5;184;48;5;58m▄▄▄▄▄▄\x1b[38;5;184;48;5;94m▄\x1b[38;5;185;48;5;94m▄\x1b[38;5;184;48;5;94m▄\x1b[38;5;184;48;5;58m▄▄▄\x1b[38;5;58;48;5;58m▄\x1b[38;5;184;48;5;184m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[38;5;185;48;5;185m▄\x1b[48;5;230m \x1b[48;5;242m \x1b[48;5;233m \x1b[48;5;234m \x1b[m +\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;253;48;5;253m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;221;48;5;220m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;220;48;5;11m▄\x1b[38;5;227;48;5;227m▄\x1b[38;5;94;48;5;58m▄\x1b[38;5;178;48;5;142m▄\x1b[38;5;227;48;5;220m▄\x1b[38;5;178;48;5;11m▄\x1b[38;5;100;48;5;11m▄\x1b[38;5;3;48;5;11m▄▄\x1b[38;5;3;48;5;227m▄\x1b[38;5;3;48;5;221m▄\x1b[38;5;3;48;5;11m▄\x1b[38;5;142;48;5;11m▄\x1b[38;5;185;48;5;11m▄\x1b[38;5;227;48;5;11m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[38;5;185;48;5;11m▄\x1b[38;5;142;48;5;11m▄\x1b[38;5;3;48;5;11m▄▄\x1b[38;5;3;48;5;227m▄\x1b[38;5;142;48;5;227m▄\x1b[38;5;184;48;5;11m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[38;5;220;48;5;220m▄\x1b[38;5;58;48;5;58m▄\x1b[38;5;184;48;5;178m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[38;5;185;48;5;185m▄\x1b[48;5;230m \x1b[48;5;242m \x1b[38;5;233;48;5;233m▄\x1b[38;5;234;48;5;234m▄▄\x1b[m +\x1b[38;5;234;48;5;234m▄▄▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;253;48;5;253m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;220;48;5;220m▄\x1b[38;5;11;48;5;11m▄▄\x1b[38;5;227;48;5;227m▄\x1b[38;5;94;48;5;58m▄\x1b[38;5;142;48;5;142m▄\x1b[38;5;227;48;5;227m▄\x1b[38;5;142;48;5;142m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;237;48;5;233m▄\x1b[38;5;58;48;5;233m▄\x1b[38;5;58;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;233;48;5;58m▄\x1b[38;5;236;48;5;143m▄\x1b[38;5;185;48;5;11m▄▄\x1b[38;5;58;48;5;184m▄\x1b[38;5;234;48;5;58m▄\x1b[38;5;233;48;5;236m▄\x1b[38;5;236;48;5;234m▄\x1b[38;5;58;48;5;233m▄\x1b[38;5;237;48;5;233m▄\x1b[38;5;234;48;5;236m▄\x1b[38;5;234;48;5;58m▄\x1b[38;5;58;48;5;184m▄\x1b[38;5;185;48;5;11m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;184;48;5;184m▄\x1b[38;5;58;48;5;58m▄\x1b[38;5;184;48;5;184m▄\x1b[48;5;11m \x1b[38;5;11;48;5;11m▄▄\x1b[38;5;185;48;5;185m▄\x1b[48;5;230m \x1b[48;5;242m \x1b[48;5;233m \x1b[48;5;234m \x1b[m +\x1b[38;5;234;48;5;234m▄▄▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;253;48;5;253m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;220;48;5;220m▄\x1b[48;5;11m \x1b[38;5;227;48;5;227m▄\x1b[48;5;3m \x1b[38;5;142;48;5;142m▄\x1b[38;5;11;48;5;227m▄\x1b[38;5;142;48;5;142m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;142;48;5;101m▄\x1b[38;5;11;48;5;185m▄\x1b[38;5;11;48;5;184m▄▄\x1b[38;5;143;48;5;58m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;3;48;5;142m▄\x1b[38;5;100;48;5;143m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;137;48;5;58m▄\x1b[38;5;227;48;5;185m▄\x1b[38;5;11;48;5;191m▄\x1b[38;5;11;48;5;185m▄\x1b[38;5;184;48;5;58m▄\x1b[38;5;58;48;5;234m▄\x1b[38;5;58;48;5;235m▄\x1b[38;5;136;48;5;143m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;184;48;5;184m▄\x1b[38;5;58;48;5;58m▄\x1b[38;5;184;48;5;184m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[38;5;185;48;5;185m▄\x1b[38;5;230;48;5;230m▄\x1b[38;5;242;48;5;242m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[m +\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;253;48;5;253m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;220;48;5;220m▄\x1b[38;5;11;48;5;11m▄▄\x1b[38;5;227;48;5;227m▄\x1b[38;5;94;48;5;3m▄\x1b[38;5;142;48;5;142m▄\x1b[38;5;11;48;5;227m▄\x1b[38;5;142;48;5;142m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;59;48;5;136m▄\x1b[38;5;137;48;5;227m▄\x1b[38;5;137;48;5;11m▄\x1b[38;5;3;48;5;227m▄\x1b[38;5;237;48;5;143m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;0m▄\x1b[38;5;143;48;5;136m▄\x1b[38;5;3;48;5;101m▄\x1b[38;5;234;48;5;232m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;142;48;5;143m▄\x1b[38;5;11;48;5;220m▄\x1b[38;5;184;48;5;11m▄\x1b[38;5;100;48;5;11m▄\x1b[38;5;3;48;5;227m▄\x1b[38;5;101;48;5;221m▄\x1b[38;5;100;48;5;228m▄\x1b[38;5;142;48;5;227m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;184;48;5;184m▄\x1b[38;5;58;48;5;58m▄\x1b[38;5;184;48;5;184m▄\x1b[48;5;11m \x1b[38;5;11;48;5;11m▄\x1b[38;5;185;48;5;185m▄\x1b[38;5;230;48;5;230m▄\x1b[38;5;242;48;5;242m▄\x1b[48;5;233m \x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[m +\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;253;48;5;253m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;220;48;5;221m▄\x1b[38;5;11;48;5;11m▄▄\x1b[38;5;227;48;5;227m▄\x1b[48;5;94m \x1b[38;5;143;48;5;142m▄\x1b[38;5;191;48;5;227m▄\x1b[38;5;143;48;5;142m▄\x1b[38;5;236;48;5;235m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;235;48;5;234m▄▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;58;48;5;233m▄\x1b[38;5;142;48;5;235m▄\x1b[38;5;11;48;5;3m▄\x1b[38;5;11;48;5;185m▄\x1b[38;5;3;48;5;64m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;142;48;5;142m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;143;48;5;100m▄\x1b[38;5;58;48;5;234m▄▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;58;48;5;3m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;184;48;5;184m▄\x1b[38;5;58;48;5;58m▄\x1b[38;5;184;48;5;184m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[38;5;185;48;5;185m▄\x1b[38;5;230;48;5;230m▄\x1b[38;5;242;48;5;242m▄\x1b[48;5;233m \x1b[38;5;234;48;5;234m▄▄\x1b[m +\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[48;5;235m \x1b[48;5;253m \x1b[38;5;186;48;5;186m▄\x1b[38;5;220;48;5;220m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[38;5;3;48;5;3m▄\x1b[38;5;142;48;5;142m▄\x1b[38;5;11;48;5;227m▄\x1b[38;5;142;48;5;142m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;137;48;5;100m▄\x1b[38;5;11;48;5;185m▄\x1b[38;5;11;48;5;184m▄▄\x1b[38;5;11;48;5;221m▄\x1b[38;5;220;48;5;11m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;11;48;5;220m▄\x1b[38;5;136;48;5;100m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;3;48;5;142m▄\x1b[38;5;227;48;5;220m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;227;48;5;227m▄\x1b[38;5;142;48;5;221m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;3;48;5;94m▄\x1b[38;5;11;48;5;220m▄\x1b[38;5;184;48;5;220m▄\x1b[38;5;58;48;5;58m▄\x1b[38;5;184;48;5;184m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[38;5;185;48;5;185m▄\x1b[38;5;230;48;5;230m▄\x1b[38;5;242;48;5;242m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;234;48;5;234m▄▄\x1b[m +\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[48;5;235m \x1b[38;5;253;48;5;253m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;220;48;5;220m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[38;5;3;48;5;3m▄\x1b[38;5;142;48;5;142m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;142;48;5;142m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;233;48;5;232m▄\x1b[38;5;137;48;5;137m▄\x1b[38;5;227;48;5;227m▄\x1b[38;5;11;48;5;11m▄▄\x1b[38;5;11;48;5;220m▄▄\x1b[38;5;220;48;5;11m▄▄\x1b[38;5;11;48;5;185m▄\x1b[38;5;100;48;5;235m▄\x1b[38;5;236;48;5;233m▄\x1b[38;5;233;48;5;235m▄\x1b[38;5;234;48;5;100m▄\x1b[38;5;235;48;5;143m▄\x1b[38;5;233;48;5;106m▄\x1b[38;5;234;48;5;236m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;3;48;5;237m▄\x1b[38;5;184;48;5;184m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;184;48;5;184m▄\x1b[38;5;58;48;5;58m▄\x1b[38;5;184;48;5;184m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[48;5;185m \x1b[38;5;230;48;5;230m▄\x1b[48;5;242m \x1b[48;5;233m \x1b[48;5;234m \x1b[38;5;235;48;5;235m▄\x1b[m +\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;235;48;5;235m▄\x1b[48;5;253m \x1b[38;5;186;48;5;186m▄\x1b[38;5;221;48;5;184m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;220;48;5;11m▄\x1b[38;5;221;48;5;227m▄\x1b[38;5;3;48;5;94m▄\x1b[38;5;185;48;5;142m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;220;48;5;142m▄\x1b[38;5;178;48;5;58m▄\x1b[38;5;185;48;5;236m▄\x1b[38;5;221;48;5;142m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[38;5;11;48;5;220m▄\x1b[38;5;11;48;5;11m▄▄▄▄▄\x1b[38;5;11;48;5;142m▄\x1b[38;5;185;48;5;58m▄\x1b[38;5;179;48;5;236m▄\x1b[38;5;179;48;5;235m▄\x1b[38;5;185;48;5;236m▄\x1b[38;5;184;48;5;58m▄\x1b[38;5;227;48;5;100m▄\x1b[38;5;11;48;5;185m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;220;48;5;11m▄\x1b[38;5;221;48;5;185m▄\x1b[38;5;58;48;5;58m▄\x1b[38;5;184;48;5;184m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;220;48;5;11m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;185;48;5;185m▄\x1b[38;5;230;48;5;230m▄\x1b[38;5;242;48;5;242m▄\x1b[48;5;233m \x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[m +\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;234m▄▄\x1b[48;5;235m \x1b[38;5;253;48;5;253m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;184;48;5;220m▄\x1b[38;5;11;48;5;11m▄▄\x1b[38;5;220;48;5;221m▄\x1b[38;5;58;48;5;58m▄\x1b[38;5;3;48;5;142m▄\x1b[38;5;100;48;5;227m▄▄▄▄\x1b[38;5;100;48;5;11m▄▄▄\x1b[38;5;136;48;5;11m▄▄\x1b[38;5;136;48;5;220m▄\x1b[38;5;100;48;5;11m▄▄▄▄\x1b[38;5;136;48;5;11m▄\x1b[38;5;100;48;5;11m▄\x1b[38;5;100;48;5;227m▄▄\x1b[38;5;100;48;5;11m▄▄\x1b[38;5;136;48;5;11m▄\x1b[38;5;100;48;5;11m▄▄▄\x1b[38;5;100;48;5;185m▄\x1b[38;5;58;48;5;58m▄\x1b[38;5;178;48;5;178m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;11;48;5;220m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;179;48;5;185m▄\x1b[38;5;230;48;5;230m▄\x1b[38;5;242;48;5;242m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;234;48;5;234m▄▄\x1b[m +\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[48;5;235m \x1b[38;5;253;48;5;253m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;184;48;5;220m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;11;48;5;220m▄\x1b[38;5;11;48;5;11m▄\x1b[38;5;11;48;5;142m▄\x1b[38;5;11;48;5;100m▄▄▄▄▄▄▄▄▄\x1b[38;5;11;48;5;136m▄\x1b[38;5;11;48;5;100m▄▄▄▄▄▄▄▄▄▄\x1b[38;5;227;48;5;100m▄\x1b[38;5;11;48;5;100m▄▄▄▄▄▄\x1b[38;5;11;48;5;220m▄\x1b[38;5;11;48;5;11m▄▄▄\x1b[38;5;185;48;5;185m▄\x1b[48;5;230m \x1b[38;5;242;48;5;242m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;234;48;5;234m▄\x1b[48;5;234m \x1b[m +\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;253;48;5;253m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;220;48;5;11m▄\x1b[38;5;11;48;5;11m▄▄\x1b[38;5;220;48;5;11m▄\x1b[38;5;11;48;5;11m▄▄▄▄▄▄▄▄▄\x1b[48;5;11m \x1b[38;5;11;48;5;11m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;185;48;5;185m▄\x1b[38;5;230;48;5;230m▄\x1b[38;5;242;48;5;242m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;234;48;5;234m▄▄\x1b[m +\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;254;48;5;254m▄\x1b[38;5;186;48;5;186m▄\x1b[38;5;221;48;5;185m▄\x1b[38;5;11;48;5;11m▄▄\x1b[38;5;11;48;5;220m▄▄▄\x1b[38;5;11;48;5;11m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;227;48;5;11m▄\x1b[38;5;179;48;5;185m▄\x1b[38;5;255;48;5;229m▄\x1b[38;5;242;48;5;243m▄\x1b[38;5;233;48;5;234m▄\x1b[38;5;234;48;5;234m▄▄\x1b[m +\x1b[38;5;234;48;5;234m▄▄▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;247;48;5;252m▄\x1b[38;5;230;48;5;187m▄\x1b[38;5;143;48;5;185m▄\x1b[38;5;185;48;5;11m▄\x1b[38;5;227;48;5;11m▄\x1b[38;5;11;48;5;11m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;227;48;5;11m▄\x1b[38;5;185;48;5;11m▄\x1b[38;5;185;48;5;185m▄\x1b[38;5;186;48;5;143m▄\x1b[38;5;252;48;5;230m▄\x1b[38;5;237;48;5;241m▄\x1b[38;5;234;48;5;233m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[m +\x1b[38;5;234;48;5;234m▄▄▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;234;48;5;239m▄\x1b[38;5;59;48;5;188m▄\x1b[38;5;251;48;5;229m▄\x1b[38;5;254;48;5;185m▄\x1b[38;5;230;48;5;179m▄\x1b[38;5;224;48;5;185m▄\x1b[38;5;230;48;5;185m▄\x1b[38;5;255;48;5;185m▄\x1b[38;5;230;48;5;185m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;229;48;5;185m▄\x1b[38;5;255;48;5;179m▄\x1b[38;5;230;48;5;143m▄\x1b[38;5;252;48;5;186m▄\x1b[38;5;8;48;5;230m▄\x1b[38;5;235;48;5;8m▄\x1b[38;5;233;48;5;233m▄\x1b[38;5;234;48;5;234m▄▄▄\x1b[m +\x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;240m▄\x1b[38;5;234;48;5;243m▄▄\x1b[38;5;234;48;5;242m▄\x1b[38;5;233;48;5;242m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;234;48;5;242m▄\x1b[38;5;234;48;5;241m▄\x1b[38;5;234;48;5;242m▄\x1b[38;5;233;48;5;241m▄\x1b[38;5;234;48;5;237m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;235;48;5;234m▄▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄\x1b[m +\x1b[38;5;235;48;5;235m▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄▄▄▄▄▄▄▄▄▄▄▄\x1b[38;5;234;48;5;235m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;233m▄\x1b[38;5;234;48;5;234m▄\x1b[38;5;235;48;5;235m▄\x1b[38;5;234;48;5;234m▄▄▄▄\x1b[38;5;235;48;5;234m▄\x1b[38;5;235;48;5;235m▄▄\x1b[m +"; pub async fn handle(session: &ListenerSession, source: String, pool: &DBPool) -> DResult<()> { pool.start_session( @@ -45,8 +45,8 @@ pub async fn handle(session: &ListenerSession, source: String, pool: &DBPool) -> .await?; pool.queue_for_session(&session, Some(&(ansi!("\ Welcome to BlastMud - a text-based post-apocalyptic \ - game restricted to adults (18+)\r\n").to_owned() + AUS_RATING_SYMBOL + ansi!("\r\n\ - Restricted to 18 and over. High impact violence. Online interactivity.\r\n\ + game\r\n").to_owned() + AUS_RATING_SYMBOL + ansi!("\r\n\ + Parental guidance recommended. Violence. Online interactivity.\r\n\ \r\n\ Some commands to get you started:\r\n\ \tregister username> password> email> to register as a new user.\r\n\ diff --git a/blastmud_game/src/message_handler/user_commands/agree.rs b/blastmud_game/src/message_handler/user_commands/agree.rs index 77d02f9..7cf2f28 100644 --- a/blastmud_game/src/message_handler/user_commands/agree.rs +++ b/blastmud_game/src/message_handler/user_commands/agree.rs @@ -8,8 +8,8 @@ use chrono::Utc; pub struct Verb; static REQUIRED_AGREEMENTS: [&str;4] = [ - "I acknowledge that BlastMud is for adults only, and certify that I am over 18 years of age \ - (or any higher relevant age of majority in my country) and want to view this content.", + "I acknowledge that I am over 12 years of age, and that if I am under 16 years of age, I have permission \ + from a parent or legal guardian to play the game.", "THIS GAME IS PROVIDED BY THE CREATORS, STAFF, VOLUNTEERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR \ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND \ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE CREATORS, STAFF, VOLUNTEERS OR \ @@ -25,7 +25,11 @@ static REQUIRED_AGREEMENTS: [&str;4] = [ is personally identifying information, or is objectionable or abhorrent (including, without \ limitation, any content related to sexual violence, real or fictional children under 18, bestiality, \ the promotion or glorification of proscribed drug use, or fetishes that involve degrading or \ - inflicting pain on someone for the enjoyment of others). I agree to defend, indemnify, and hold \ + inflicting pain on someone for the enjoyment of others), or which promotes terrorism. \ + I acknowledge that the game and services provided in connection with it are open to players under \ + 18 years of age, and agree that I will not send any sexual or age-restricted content to any player \ + I have not verified is over 18, nor attempt to groom any such player for sexual activity at a later time. \ + I agree to defend, indemnify, and hold \ harmless the creators, staff, volunteers and contributors in any matter relating to content sent \ (or re-sent) by me, in any matter arising from the game sending content to me, and in any matter \ consequential to sharing my password, using an insecure password, or otherwise allowing or taking \