From 9f45f939499b39026ffa4162d1662a163306f9a7 Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Tue, 18 Jun 2019 17:00:49 +0300 Subject: [PATCH 01/48] Added more `redirect_uri` checks to prevent redirect to not explicitly listed URI. --- lib/pleroma/web/oauth/oauth_controller.ex | 46 +++++-- test/web/oauth/oauth_controller_test.exs | 150 +++++++++++++++++----- 2 files changed, 153 insertions(+), 43 deletions(-) diff --git a/lib/pleroma/web/oauth/oauth_controller.ex b/lib/pleroma/web/oauth/oauth_controller.ex index 35a7c582e..60e5665fd 100644 --- a/lib/pleroma/web/oauth/oauth_controller.ex +++ b/lib/pleroma/web/oauth/oauth_controller.ex @@ -64,26 +64,34 @@ defp do_authorize(%Plug.Conn{} = conn, params) do defp handle_existing_authorization( %Plug.Conn{assigns: %{token: %Token{} = token}} = conn, - params + %{"redirect_uri" => @oob_token_redirect_uri} ) do - token = Repo.preload(token, :app) + render(conn, "oob_token_exists.html", %{token: token}) + end + + defp handle_existing_authorization( + %Plug.Conn{assigns: %{token: %Token{} = token}} = conn, + %{} = params + ) do + app = Repo.preload(token, :app).app redirect_uri = if is_binary(params["redirect_uri"]) do params["redirect_uri"] else - default_redirect_uri(token.app) + default_redirect_uri(app) end - redirect_uri = redirect_uri(conn, redirect_uri) - - if redirect_uri == @oob_token_redirect_uri do - render(conn, "oob_token_exists.html", %{token: token}) - else + if redirect_uri in String.split(app.redirect_uris) do + redirect_uri = redirect_uri(conn, redirect_uri) url_params = %{access_token: token.token} url_params = UriHelper.append_param_if_present(url_params, :state, params["state"]) url = UriHelper.append_uri_params(redirect_uri, url_params) redirect(conn, external: url) + else + conn + |> put_flash(:error, "Unlisted redirect_uri.") + |> redirect(external: redirect_uri(conn, redirect_uri)) end end @@ -100,18 +108,28 @@ def create_authorization( end end + def after_create_authorization(%Plug.Conn{} = conn, %Authorization{} = auth, %{ + "authorization" => %{"redirect_uri" => @oob_token_redirect_uri} + }) do + render(conn, "oob_authorization_created.html", %{auth: auth}) + end + def after_create_authorization(%Plug.Conn{} = conn, %Authorization{} = auth, %{ "authorization" => %{"redirect_uri" => redirect_uri} = auth_attrs }) do - redirect_uri = redirect_uri(conn, redirect_uri) + app = Repo.preload(auth, :app).app - if redirect_uri == @oob_token_redirect_uri do - render(conn, "oob_authorization_created.html", %{auth: auth}) - else + # An extra safety measure before we redirect (the same check is being performed in `do_create_authorization/2`) + if redirect_uri in String.split(app.redirect_uris) do + redirect_uri = redirect_uri(conn, redirect_uri) url_params = %{code: auth.token} url_params = UriHelper.append_param_if_present(url_params, :state, auth_attrs["state"]) url = UriHelper.append_uri_params(redirect_uri, url_params) redirect(conn, external: url) + else + conn + |> put_flash(:error, "Unlisted redirect_uri.") + |> redirect(external: redirect_uri(conn, redirect_uri)) end end @@ -324,7 +342,7 @@ def callback(%Plug.Conn{} = conn, params) do }) conn - |> put_session(:registration_id, registration.id) + |> put_session_registration_id(registration.id) |> registration_details(%{"authorization" => registration_params}) end else @@ -445,7 +463,7 @@ defp validate_scopes(app, params) do |> Scopes.validates(app.scopes) end - defp default_redirect_uri(%App{} = app) do + def default_redirect_uri(%App{} = app) do app.redirect_uris |> String.split() |> Enum.at(0) diff --git a/test/web/oauth/oauth_controller_test.exs b/test/web/oauth/oauth_controller_test.exs index 242b7fdb3..aae34804d 100644 --- a/test/web/oauth/oauth_controller_test.exs +++ b/test/web/oauth/oauth_controller_test.exs @@ -10,6 +10,7 @@ defmodule Pleroma.Web.OAuth.OAuthControllerTest do alias Pleroma.Registration alias Pleroma.Repo alias Pleroma.Web.OAuth.Authorization + alias Pleroma.Web.OAuth.OAuthController alias Pleroma.Web.OAuth.Token @oauth_config_path [:oauth2, :issue_new_refresh_token] @@ -49,7 +50,7 @@ test "GET /oauth/authorize renders auth forms, including OAuth consumer form", % %{ "response_type" => "code", "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => OAuthController.default_redirect_uri(app), "scope" => "read" } ) @@ -72,7 +73,7 @@ test "GET /oauth/prepare_request encodes parameters as `state` and redirects", % "authorization" => %{ "scope" => "read follow", "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => OAuthController.default_redirect_uri(app), "state" => "a_state" } } @@ -98,11 +99,12 @@ test "GET /oauth/prepare_request encodes parameters as `state` and redirects", % test "with user-bound registration, GET /oauth//callback redirects to `redirect_uri` with `code`", %{app: app, conn: conn} do registration = insert(:registration) + redirect_uri = OAuthController.default_redirect_uri(app) state_params = %{ "scope" => Enum.join(app.scopes, " "), "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => redirect_uri, "state" => "" } @@ -121,7 +123,7 @@ test "with user-bound registration, GET /oauth//callback redirects to ) assert response = html_response(conn, 302) - assert redirected_to(conn) =~ ~r/#{app.redirect_uris}\?code=.+/ + assert redirected_to(conn) =~ ~r/#{redirect_uri}\?code=.+/ end end @@ -132,7 +134,7 @@ test "with user-unbound registration, GET /oauth//callback renders reg state_params = %{ "scope" => "read write", "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => OAuthController.default_redirect_uri(app), "state" => "a_state" } @@ -165,7 +167,7 @@ test "on authentication error, GET /oauth//callback redirects to `redi state_params = %{ "scope" => Enum.join(app.scopes, " "), "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => OAuthController.default_redirect_uri(app), "state" => "" } @@ -199,7 +201,7 @@ test "GET /oauth/registration_details renders registration details form", %{ "authorization" => %{ "scopes" => app.scopes, "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => OAuthController.default_redirect_uri(app), "state" => "a_state", "nickname" => nil, "email" => "john@doe.com" @@ -218,6 +220,7 @@ test "with valid params, POST /oauth/register?op=register redirects to `redirect conn: conn } do registration = insert(:registration, user: nil, info: %{"nickname" => nil, "email" => nil}) + redirect_uri = OAuthController.default_redirect_uri(app) conn = conn @@ -229,7 +232,7 @@ test "with valid params, POST /oauth/register?op=register redirects to `redirect "authorization" => %{ "scopes" => app.scopes, "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => redirect_uri, "state" => "a_state", "nickname" => "availablenick", "email" => "available@email.com" @@ -238,7 +241,36 @@ test "with valid params, POST /oauth/register?op=register redirects to `redirect ) assert response = html_response(conn, 302) - assert redirected_to(conn) =~ ~r/#{app.redirect_uris}\?code=.+/ + assert redirected_to(conn) =~ ~r/#{redirect_uri}\?code=.+/ + end + + test "with unlisted `redirect_uri`, POST /oauth/register?op=register results in HTTP 401", + %{ + app: app, + conn: conn + } do + registration = insert(:registration, user: nil, info: %{"nickname" => nil, "email" => nil}) + unlisted_redirect_uri = "http://cross-site-request.com" + + conn = + conn + |> put_session(:registration_id, registration.id) + |> post( + "/oauth/register", + %{ + "op" => "register", + "authorization" => %{ + "scopes" => app.scopes, + "client_id" => app.client_id, + "redirect_uri" => unlisted_redirect_uri, + "state" => "a_state", + "nickname" => "availablenick", + "email" => "available@email.com" + } + } + ) + + assert response = html_response(conn, 401) end test "with invalid params, POST /oauth/register?op=register renders registration_details page", @@ -254,7 +286,7 @@ test "with invalid params, POST /oauth/register?op=register renders registration "authorization" => %{ "scopes" => app.scopes, "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => OAuthController.default_redirect_uri(app), "state" => "a_state", "nickname" => "availablenickname", "email" => "available@email.com" @@ -286,6 +318,7 @@ test "with valid params, POST /oauth/register?op=connect redirects to `redirect_ } do user = insert(:user, password_hash: Comeonin.Pbkdf2.hashpwsalt("testpassword")) registration = insert(:registration, user: nil) + redirect_uri = OAuthController.default_redirect_uri(app) conn = conn @@ -297,7 +330,7 @@ test "with valid params, POST /oauth/register?op=connect redirects to `redirect_ "authorization" => %{ "scopes" => app.scopes, "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => redirect_uri, "state" => "a_state", "name" => user.nickname, "password" => "testpassword" @@ -306,7 +339,37 @@ test "with valid params, POST /oauth/register?op=connect redirects to `redirect_ ) assert response = html_response(conn, 302) - assert redirected_to(conn) =~ ~r/#{app.redirect_uris}\?code=.+/ + assert redirected_to(conn) =~ ~r/#{redirect_uri}\?code=.+/ + end + + test "with unlisted `redirect_uri`, POST /oauth/register?op=connect results in HTTP 401`", + %{ + app: app, + conn: conn + } do + user = insert(:user, password_hash: Comeonin.Pbkdf2.hashpwsalt("testpassword")) + registration = insert(:registration, user: nil) + unlisted_redirect_uri = "http://cross-site-request.com" + + conn = + conn + |> put_session(:registration_id, registration.id) + |> post( + "/oauth/register", + %{ + "op" => "connect", + "authorization" => %{ + "scopes" => app.scopes, + "client_id" => app.client_id, + "redirect_uri" => unlisted_redirect_uri, + "state" => "a_state", + "name" => user.nickname, + "password" => "testpassword" + } + } + ) + + assert response = html_response(conn, 401) end test "with invalid params, POST /oauth/register?op=connect renders registration_details page", @@ -322,7 +385,7 @@ test "with invalid params, POST /oauth/register?op=connect renders registration_ "authorization" => %{ "scopes" => app.scopes, "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => OAuthController.default_redirect_uri(app), "state" => "a_state", "name" => user.nickname, "password" => "wrong password" @@ -358,7 +421,7 @@ test "renders authentication page", %{app: app, conn: conn} do %{ "response_type" => "code", "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => OAuthController.default_redirect_uri(app), "scope" => "read" } ) @@ -378,7 +441,7 @@ test "properly handles internal calls with `authorization`-wrapped params", %{ "authorization" => %{ "response_type" => "code", "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => OAuthController.default_redirect_uri(app), "scope" => "read" } } @@ -399,7 +462,7 @@ test "renders authentication page if user is already authenticated but `force_lo %{ "response_type" => "code", "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => OAuthController.default_redirect_uri(app), "scope" => "read", "force_login" => "true" } @@ -423,7 +486,7 @@ test "with existing authentication and non-OOB `redirect_uri`, redirects to app %{ "response_type" => "code", "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => OAuthController.default_redirect_uri(app), "state" => "specific_client_state", "scope" => "read" } @@ -433,6 +496,31 @@ test "with existing authentication and non-OOB `redirect_uri`, redirects to app "https://redirect.url?access_token=#{token.token}&state=specific_client_state" end + test "with existing authentication and unlisted non-OOB `redirect_uri`, redirects without credentials", + %{ + app: app, + conn: conn + } do + unlisted_redirect_uri = "http://cross-site-request.com" + token = insert(:oauth_token, app_id: app.id) + + conn = + conn + |> put_session(:oauth_token, token.token) + |> get( + "/oauth/authorize", + %{ + "response_type" => "code", + "client_id" => app.client_id, + "redirect_uri" => unlisted_redirect_uri, + "state" => "specific_client_state", + "scope" => "read" + } + ) + + assert redirected_to(conn) == unlisted_redirect_uri + end + test "with existing authentication and OOB `redirect_uri`, redirects to app with `token` and `state` params", %{ app: app, @@ -461,6 +549,7 @@ test "with existing authentication and OOB `redirect_uri`, redirects to app with test "redirects with oauth authorization" do user = insert(:user) app = insert(:oauth_app, scopes: ["read", "write", "follow"]) + redirect_uri = OAuthController.default_redirect_uri(app) conn = build_conn() @@ -469,14 +558,14 @@ test "redirects with oauth authorization" do "name" => user.nickname, "password" => "test", "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => redirect_uri, "scope" => "read write", "state" => "statepassed" } }) target = redirected_to(conn) - assert target =~ app.redirect_uris + assert target =~ redirect_uri query = URI.parse(target).query |> URI.query_decoder() |> Map.new() @@ -489,6 +578,7 @@ test "redirects with oauth authorization" do test "returns 401 for wrong credentials", %{conn: conn} do user = insert(:user) app = insert(:oauth_app) + redirect_uri = OAuthController.default_redirect_uri(app) result = conn @@ -497,7 +587,7 @@ test "returns 401 for wrong credentials", %{conn: conn} do "name" => user.nickname, "password" => "wrong", "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => redirect_uri, "state" => "statepassed", "scope" => Enum.join(app.scopes, " ") } @@ -506,7 +596,7 @@ test "returns 401 for wrong credentials", %{conn: conn} do # Keep the details assert result =~ app.client_id - assert result =~ app.redirect_uris + assert result =~ redirect_uri # Error message assert result =~ "Invalid Username/Password" @@ -515,6 +605,7 @@ test "returns 401 for wrong credentials", %{conn: conn} do test "returns 401 for missing scopes", %{conn: conn} do user = insert(:user) app = insert(:oauth_app) + redirect_uri = OAuthController.default_redirect_uri(app) result = conn @@ -523,7 +614,7 @@ test "returns 401 for missing scopes", %{conn: conn} do "name" => user.nickname, "password" => "test", "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => redirect_uri, "state" => "statepassed", "scope" => "" } @@ -532,7 +623,7 @@ test "returns 401 for missing scopes", %{conn: conn} do # Keep the details assert result =~ app.client_id - assert result =~ app.redirect_uris + assert result =~ redirect_uri # Error message assert result =~ "This action is outside the authorized scopes" @@ -541,6 +632,7 @@ test "returns 401 for missing scopes", %{conn: conn} do test "returns 401 for scopes beyond app scopes", %{conn: conn} do user = insert(:user) app = insert(:oauth_app, scopes: ["read", "write"]) + redirect_uri = OAuthController.default_redirect_uri(app) result = conn @@ -549,7 +641,7 @@ test "returns 401 for scopes beyond app scopes", %{conn: conn} do "name" => user.nickname, "password" => "test", "client_id" => app.client_id, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => redirect_uri, "state" => "statepassed", "scope" => "read write follow" } @@ -558,7 +650,7 @@ test "returns 401 for scopes beyond app scopes", %{conn: conn} do # Keep the details assert result =~ app.client_id - assert result =~ app.redirect_uris + assert result =~ redirect_uri # Error message assert result =~ "This action is outside the authorized scopes" @@ -577,7 +669,7 @@ test "issues a token for an all-body request" do |> post("/oauth/token", %{ "grant_type" => "authorization_code", "code" => auth.token, - "redirect_uri" => app.redirect_uris, + "redirect_uri" => OAuthController.default_redirect_uri(app), "client_id" => app.client_id, "client_secret" => app.client_secret }) @@ -631,7 +723,7 @@ test "issues a token for request with HTTP basic auth client credentials" do |> post("/oauth/token", %{ "grant_type" => "authorization_code", "code" => auth.token, - "redirect_uri" => app.redirect_uris + "redirect_uri" => OAuthController.default_redirect_uri(app) }) assert %{"access_token" => token, "scope" => scope} = json_response(conn, 200) @@ -676,7 +768,7 @@ test "rejects token exchange with invalid client credentials" do |> post("/oauth/token", %{ "grant_type" => "authorization_code", "code" => auth.token, - "redirect_uri" => app.redirect_uris + "redirect_uri" => OAuthController.default_redirect_uri(app) }) assert resp = json_response(conn, 400) @@ -755,7 +847,7 @@ test "rejects an invalid authorization code" do |> post("/oauth/token", %{ "grant_type" => "authorization_code", "code" => "Imobviouslyinvalid", - "redirect_uri" => app.redirect_uris, + "redirect_uri" => OAuthController.default_redirect_uri(app), "client_id" => app.client_id, "client_secret" => app.client_secret }) From 64bc7ac6192164d116df0f306442a5a36dc60416 Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Tue, 18 Jun 2019 17:15:26 +0300 Subject: [PATCH 02/48] Minor edit (comment). --- lib/pleroma/web/oauth/oauth_controller.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/oauth/oauth_controller.ex b/lib/pleroma/web/oauth/oauth_controller.ex index 60e5665fd..3f8e3b074 100644 --- a/lib/pleroma/web/oauth/oauth_controller.ex +++ b/lib/pleroma/web/oauth/oauth_controller.ex @@ -119,7 +119,7 @@ def after_create_authorization(%Plug.Conn{} = conn, %Authorization{} = auth, %{ }) do app = Repo.preload(auth, :app).app - # An extra safety measure before we redirect (the same check is being performed in `do_create_authorization/2`) + # An extra safety measure before we redirect (also done in `do_create_authorization/2`) if redirect_uri in String.split(app.redirect_uris) do redirect_uri = redirect_uri(conn, redirect_uri) url_params = %{code: auth.token} From a0a1361888a3986d589720a7eb39d49c913154f2 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 19 Jun 2019 03:51:59 +0300 Subject: [PATCH 03/48] Refactor pleroma_ctl copying to a generic function for copying files into the release dir --- mix.exs | 6 +++--- rel/{ => files/bin}/pleroma_ctl | 0 2 files changed, 3 insertions(+), 3 deletions(-) rename rel/{ => files/bin}/pleroma_ctl (100%) diff --git a/mix.exs b/mix.exs index df3253d5a..781560a0a 100644 --- a/mix.exs +++ b/mix.exs @@ -37,14 +37,14 @@ def project do pleroma: [ include_executables_for: [:unix], applications: [ex_syslogger: :load, syslog: :load], - steps: [:assemble, ©_pleroma_ctl/1] + steps: [:assemble, ©_files/1] ] ] ] end - def copy_pleroma_ctl(%{path: target_path} = release) do - File.cp!("./rel/pleroma_ctl", Path.join([target_path, "bin", "pleroma_ctl"])) + def copy_files(%{path: target_path} = release) do + File.cp_r!("./rel/files", target_path) release end diff --git a/rel/pleroma_ctl b/rel/files/bin/pleroma_ctl similarity index 100% rename from rel/pleroma_ctl rename to rel/files/bin/pleroma_ctl From a6e3169cfc5657e5819b3e018bf4c3cdf1c1377a Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 19 Jun 2019 14:40:39 +0300 Subject: [PATCH 04/48] Make possible to override the branch name via a env variable This is useful for the CI builds because they have a detached HEAD or for emulating a feature that is availible only on a particular branch (e.g pleroma_ctl downloads CI artifacts only for develop and master) --- .gitlab-ci.yml | 1 + mix.exs | 1 + 2 files changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 97f96ffc8..fa5dafdb2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -173,6 +173,7 @@ amd64: script: &release - mix deps.get --only prod - mkdir release + - PLEROMA_BUILD_BRANCH=$CI_COMMIT_REF_NAME - mix release --path release diff --git a/mix.exs b/mix.exs index 781560a0a..ac25b7266 100644 --- a/mix.exs +++ b/mix.exs @@ -207,6 +207,7 @@ defp version(version) do branch_name = with {branch_name, 0} <- System.cmd("git", ["rev-parse", "--abbrev-ref", "HEAD"]), + branch_name <- System.get_env("PLEROMA_BUILD_BRANCH") || branch_name, true <- branch_name != "master" do branch_name = String.trim(branch_name) From 66f2cdcdb07b358c53e4c8d4f01bfe80da5883a7 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 19 Jun 2019 14:53:16 +0300 Subject: [PATCH 05/48] pleroma_ctl: add an update command Closes #988 and #1004 --- rel/files/bin/pleroma_ctl | 100 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 96 insertions(+), 4 deletions(-) diff --git a/rel/files/bin/pleroma_ctl b/rel/files/bin/pleroma_ctl index ac7339762..671fd3860 100755 --- a/rel/files/bin/pleroma_ctl +++ b/rel/files/bin/pleroma_ctl @@ -1,13 +1,102 @@ #!/bin/sh # XXX: This should be removed when elixir's releases get custom command support + +detect_flavour() { + arch="$(arch)" + if [ "$arch" = "x86_64" ]; then + arch="amd64" + elif [ "$arch" = "armv7l" ]; then + arch="arm" + elif [ "$arch" = "aarch64" ]; then + arch="arm64" + else + echo "Unsupported arch: $arch" >&2 + exit 1 + fi + + if getconf GNU_LIBC_VERSION >/dev/null; then + libc_postfix="" + elif [ "$(ldd 2>&1 | head -c 9)" = "musl libc" ]; then + libc_postfix="-musl" + elif [ "$(find /lib/libc.musl* | wc -l)" ]; then + libc_postfix="-musl" + else + echo "Unsupported libc" >&2 + exit 1 + fi + + echo "$arch$libc_postfix" +} + +detect_branch() { + version="$(cut -d' ' -f2 <"$RELEASE_ROOT"/releases/start_erl.data)" + branch="$(echo "$version" | cut -d'-' -f 4)" + if [ "$branch" = "develop" ]; then + echo "develop" + elif [ "$branch" = "" ]; then + echo "master" + else + echo "Releases are built only for master and develop branches" >&2 + exit 1 + fi +} +update() { + set -e + RELEASE_ROOT=$(dirname "$SCRIPTPATH") + uri="${PLEROMA_CTL_URI:-https://git.pleroma.social}" + project_id="${PLEROMA_CTL_PROJECT_ID:-2}" + project_branch="$(detect_branch)" + flavour="${PLEROMA_CTL_ARCH:-$(detect_flavour)}" + echo "Detected flavour: $flavour" + tmp="${PLEROMA_CTL_TMP_DIR:-/tmp}" + artifact="$tmp/pleroma.zip" + full_uri="${uri}/api/v4/projects/${project_id}/jobs/artifacts/${project_branch}/download?job=${flavour}" + echo "Downloading the artifact from ${full_uri} to ${artifact}" + curl "$full_uri" -o "${artifact}" + echo "Unpacking ${artifact} to ${tmp}" + unzip -q "$artifact" -d "$tmp" + echo "Copying files over to $RELEASE_ROOT" + if [ "$1" != "--no-rm" ]; then + rm -r "${RELEASE_ROOT:-?}"/* + fi + cp -rf "$tmp/release"/* "$RELEASE_ROOT" + echo "Removing temporary files" + rm -r "$tmp/release" + rm "$artifact" + echo "Done! Please refer to the changelog/release notes for changes and update instructions" + set +e +} + if [ -z "$1" ] || [ "$1" = "help" ]; then + # TODO: Just list the commands on `pleroma_ctl help` and output help for the individual command on `pleroma_ctl help $COMMAND` echo "Usage: $(basename "$0") COMMAND [ARGS] The known commands are: - create Create database schema (needs to be executed only once) - migrate Execute database migrations (needs to be done after updates) - rollback [VERSION] Rollback database migrations (needs to be done before downgrading) + create + Create database schema (needs to be executed only once) + + migrate + Execute database migrations (needs to be done after updates) + + rollback [VERSION] + Rollback database migrations (needs to be done before downgrading) + + update [OPTIONS] + Update the instance using the latest CI artifact for the current branch. + + The only supported option is --no-rm, when set the script won't delete the whole directory, but + just force copy over files from the new release. This wastes more space, but may be useful if + some files are stored inside of the release directories (although you really shouldn't store them + there), or if you want to be able to quickly revert a broken update. + + The script will try to detect your architecture and ABI automatically, but if it is wrong, you can + overwrite it by setting PLEROMA_CTL_ARCH to the desired architecture. + + By default the artifact will be downloaded from https://git.pleroma.social for pleroma/pleroma (project id: 2) + to /tmp/, you can overwrite these settings by setting PLEROMA_CTL_URI, PLEROMA_CTL_PROJECT_ID and PLEROMA_CTL_TMP_DIR + respectievly. + and any mix tasks under Pleroma namespace, for example \`mix pleroma.user COMMAND\` is equivalent to \`$(basename "$0") user COMMAND\` @@ -18,7 +107,10 @@ if [ -z "$1" ] || [ "$1" = "help" ]; then else SCRIPT=$(readlink -f "$0") SCRIPTPATH=$(dirname "$SCRIPT") - if [ "$1" = "migrate" ] || [ "$1" = "rollback" ] || [ "$1" = "create" ] || [ -n "$PLEROMA_CTL_RPC_DISABLED" ]; then + + if [ "$1" = "update" ]; then + update "$2" + elif [ "$1" = "migrate" ] || [ "$1" = "rollback" ] || [ "$1" = "create" ] || [ -n "$PLEROMA_CTL_RPC_DISABLED" ]; then "$SCRIPTPATH"/pleroma eval 'Pleroma.ReleaseTasks.run("'"$*"'")' else "$SCRIPTPATH"/pleroma rpc 'Pleroma.ReleaseTasks.run("'"$*"'")' From 2571e07fbae39728c6edacaab484e44975200b33 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 19 Jun 2019 14:59:12 +0300 Subject: [PATCH 06/48] pleroma_ctl: Rename arch to flavour because it also includes the libc --- rel/files/bin/pleroma_ctl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rel/files/bin/pleroma_ctl b/rel/files/bin/pleroma_ctl index 671fd3860..03b7e57bb 100755 --- a/rel/files/bin/pleroma_ctl +++ b/rel/files/bin/pleroma_ctl @@ -46,7 +46,7 @@ update() { uri="${PLEROMA_CTL_URI:-https://git.pleroma.social}" project_id="${PLEROMA_CTL_PROJECT_ID:-2}" project_branch="$(detect_branch)" - flavour="${PLEROMA_CTL_ARCH:-$(detect_flavour)}" + flavour="${PLEROMA_CTL_FLAVOUR:-$(detect_flavour)}" echo "Detected flavour: $flavour" tmp="${PLEROMA_CTL_TMP_DIR:-/tmp}" artifact="$tmp/pleroma.zip" @@ -90,8 +90,8 @@ if [ -z "$1" ] || [ "$1" = "help" ]; then some files are stored inside of the release directories (although you really shouldn't store them there), or if you want to be able to quickly revert a broken update. - The script will try to detect your architecture and ABI automatically, but if it is wrong, you can - overwrite it by setting PLEROMA_CTL_ARCH to the desired architecture. + The script will try to detect your architecture and ABI and set a flavour automatically, + but if it is wrong, you can overwrite it by setting PLEROMA_CTL_FLAVOUR to the desired flavour. By default the artifact will be downloaded from https://git.pleroma.social for pleroma/pleroma (project id: 2) to /tmp/, you can overwrite these settings by setting PLEROMA_CTL_URI, PLEROMA_CTL_PROJECT_ID and PLEROMA_CTL_TMP_DIR From 736d8ad6be1ccb1514a189ccf2384e9699ea107e Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Wed, 19 Jun 2019 15:57:44 +0000 Subject: [PATCH 07/48] implement anti link spam MRF --- CHANGELOG.md | 1 + docs/config.md | 1 + .../activity_pub/mrf/anti_link_spam_policy.ex | 46 +++++++ .../mrf/anti_link_spam_policy_test.exs | 120 ++++++++++++++++++ 4 files changed, 168 insertions(+) create mode 100644 lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex create mode 100644 test/web/activity_pub/mrf/anti_link_spam_policy_test.exs diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b7e5c9a1..ced0573f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,6 +62,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - MRF: Support for running subchains. - Configuration: `skip_thread_containment` option - Configuration: `rate_limit` option. See `Pleroma.Plugs.RateLimiter` documentation for details. +- MRF: Support for filtering out likely spam messages using naive heuristics. ### Changed - **Breaking:** Configuration: move from Pleroma.Mailer to Pleroma.Emails.Mailer diff --git a/docs/config.md b/docs/config.md index ed8e465c6..4e9697afc 100644 --- a/docs/config.md +++ b/docs/config.md @@ -90,6 +90,7 @@ config :pleroma, Pleroma.Emails.Mailer, * `Pleroma.Web.ActivityPub.MRF.SubchainPolicy`: Selectively runs other MRF policies when messages match (see ``:mrf_subchain`` section) * `Pleroma.Web.ActivityPub.MRF.RejectNonPublic`: Drops posts with non-public visibility settings (See ``:mrf_rejectnonpublic`` section) * `Pleroma.Web.ActivityPub.MRF.EnsureRePrepended`: Rewrites posts to ensure that replies to posts with subjects do not have an identical subject and instead begin with re:. + * `Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy`: Rejects posts from likely spambots using naive heuristics. * `public`: Makes the client API in authentificated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. * `quarantined_instances`: List of ActivityPub instances where private(DMs, followers-only) activities will not be send. * `managed_config`: Whenether the config for pleroma-fe is configured in this config or in ``static/config.json`` diff --git a/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex b/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex new file mode 100644 index 000000000..33ea61f5c --- /dev/null +++ b/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex @@ -0,0 +1,46 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2019 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy do + alias Pleroma.User + + require Logger + + # has the user successfully posted before? + defp user_has_posted_before?(%User{} = u) do + u.info.note_count > 0 || u.info.follower_count > 0 + end + + # does the post contain links? + defp contains_links?(%{"content" => content} = _object) do + content + |> Floki.filter_out("a.mention,a.hashtag,a[rel~=\"tag\"],a.zrl") + |> Floki.attribute("a", "href") + |> length() > 0 + end + + def filter(%{"type" => "Create", "actor" => actor, "object" => object} = message) do + with {:ok, %User{} = u} <- User.get_or_fetch_by_ap_id(actor), + {:contains_links, true} <- {:contains_links, contains_links?(object)}, + {:posted_before, true} <- {:posted_before, user_has_posted_before?(u)} do + {:ok, message} + else + {:contains_links, false} -> + {:ok, message} + + {:posted_before, false} -> + {:reject, nil} + + {:error, _} -> + {:reject, nil} + + e -> + Logger.warn("[MRF anti-link-spam] WTF: unhandled error #{inspect(e)}") + {:reject, nil} + end + end + + # in all other cases, pass through + def filter(message), do: {:ok, message} +end diff --git a/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs b/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs new file mode 100644 index 000000000..a456e863c --- /dev/null +++ b/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs @@ -0,0 +1,120 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2019 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do + use Pleroma.DataCase + import Pleroma.Factory + + alias Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy + + @linkless_message %{ + "type" => "Create", + "object" => %{ + "content" => "hi world!" + } + } + + @linkful_message %{ + "type" => "Create", + "object" => %{ + "content" => "hi world!" + } + } + + describe "with new user" do + test "it allows posts without links" do + user = insert(:user) + + assert user.info.note_count == 0 + + message = + @linkless_message + |> Map.put("actor", user.ap_id) + + {:ok, _message} = AntiLinkSpamPolicy.filter(message) + end + + test "it disallows posts with links" do + user = insert(:user) + + assert user.info.note_count == 0 + + message = + @linkful_message + |> Map.put("actor", user.ap_id) + + {:reject, _} = AntiLinkSpamPolicy.filter(message) + end + end + + describe "with old user" do + test "it allows posts without links" do + user = insert(:user, info: %{note_count: 1}) + + assert user.info.note_count == 1 + + message = + @linkless_message + |> Map.put("actor", user.ap_id) + + {:ok, _message} = AntiLinkSpamPolicy.filter(message) + end + + test "it allows posts with links" do + user = insert(:user, info: %{note_count: 1}) + + assert user.info.note_count == 1 + + message = + @linkful_message + |> Map.put("actor", user.ap_id) + + {:ok, _message} = AntiLinkSpamPolicy.filter(message) + end + end + + describe "with followed new user" do + test "it allows posts without links" do + user = insert(:user, info: %{follower_count: 1}) + + assert user.info.follower_count == 1 + + message = + @linkless_message + |> Map.put("actor", user.ap_id) + + {:ok, _message} = AntiLinkSpamPolicy.filter(message) + end + + test "it allows posts with links" do + user = insert(:user, info: %{follower_count: 1}) + + assert user.info.follower_count == 1 + + message = + @linkful_message + |> Map.put("actor", user.ap_id) + + {:ok, _message} = AntiLinkSpamPolicy.filter(message) + end + end + + describe "with unknown actors" do + test "it rejects posts without links" do + message = + @linkless_message + |> Map.put("actor", "http://invalid.actor") + + {:reject, _} = AntiLinkSpamPolicy.filter(message) + end + + test "it rejects posts with links" do + message = + @linkful_message + |> Map.put("actor", "http://invalid.actor") + + {:reject, _} = AntiLinkSpamPolicy.filter(message) + end + end +end From 21dacd4b15f92726f8a26fb4ec7b06b7f98d97f1 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Wed, 19 Jun 2019 16:33:49 +0000 Subject: [PATCH 08/48] unbreak polls --- .../activity_pub/mrf/anti_link_spam_policy.ex | 2 ++ .../mrf/anti_link_spam_policy_test.exs | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex b/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex index 33ea61f5c..14e5955ee 100644 --- a/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex @@ -20,6 +20,8 @@ defp contains_links?(%{"content" => content} = _object) do |> length() > 0 end + defp contains_links?(_), do: false + def filter(%{"type" => "Create", "actor" => actor, "object" => object} = message) do with {:ok, %User{} = u} <- User.get_or_fetch_by_ap_id(actor), {:contains_links, true} <- {:contains_links, contains_links?(object)}, diff --git a/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs b/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs index a456e863c..284c13336 100644 --- a/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs +++ b/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs @@ -22,6 +22,14 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do } } + @response_message %{ + "type" => "Create", + "object" => %{ + "name" => "yes", + "type" => "Answer" + } + } + describe "with new user" do test "it allows posts without links" do user = insert(:user) @@ -117,4 +125,16 @@ test "it rejects posts with links" do {:reject, _} = AntiLinkSpamPolicy.filter(message) end end + + describe "with contentless-objects" do + test "it does not reject them or error out" do + user = insert(:user, info: %{note_count: 1}) + + message = + @response_message + |> Map.put("actor", user.ap_id) + + {:ok, _message} = AntiLinkSpamPolicy.filter(message) + end + end end From 71fb75b7ef6bb847a381ce1b86bea9bef35a3a14 Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Wed, 19 Jun 2019 22:29:36 +0300 Subject: [PATCH 09/48] User sign out mix task. --- lib/mix/tasks/pleroma/user.ex | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/mix/tasks/pleroma/user.ex b/lib/mix/tasks/pleroma/user.ex index 7eaa49836..3a5382d0f 100644 --- a/lib/mix/tasks/pleroma/user.ex +++ b/lib/mix/tasks/pleroma/user.ex @@ -8,6 +8,7 @@ defmodule Mix.Tasks.Pleroma.User do alias Mix.Tasks.Pleroma.Common alias Pleroma.User alias Pleroma.UserInviteToken + alias Pleroma.Web.OAuth @shortdoc "Manages Pleroma users" @moduledoc """ @@ -49,6 +50,10 @@ defmodule Mix.Tasks.Pleroma.User do mix pleroma.user delete_activities NICKNAME + ## Sign user out from all applications (delete user's OAuth tokens and authorizations). + + mix pleroma.user sign_out NICKNAME + ## Deactivate or activate the user's account. mix pleroma.user toggle_activated NICKNAME @@ -407,6 +412,20 @@ def run(["toggle_confirmed", nickname]) do end end + def run(["sign_out", nickname]) do + Common.start_pleroma() + + with %User{} = user <- User.get_cached_by_nickname(nickname) do + OAuth.Token.delete_user_tokens(user) + OAuth.Authorization.delete_user_authorizations(user) + + Common.shell_info("#{nickname} signed out from all apps.") + else + _ -> + Common.shell_error("No local user #{nickname}") + end + end + defp set_moderator(user, value) do info_cng = User.Info.admin_api_update(user.info, %{is_moderator: value}) From 363618207c03188797be90b8c1cf7b3b293f557d Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Wed, 19 Jun 2019 19:39:53 +0000 Subject: [PATCH 10/48] Apply suggestion to lib/mix/tasks/pleroma/user.ex --- lib/mix/tasks/pleroma/user.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mix/tasks/pleroma/user.ex b/lib/mix/tasks/pleroma/user.ex index 3a5382d0f..0efa745e4 100644 --- a/lib/mix/tasks/pleroma/user.ex +++ b/lib/mix/tasks/pleroma/user.ex @@ -415,7 +415,7 @@ def run(["toggle_confirmed", nickname]) do def run(["sign_out", nickname]) do Common.start_pleroma() - with %User{} = user <- User.get_cached_by_nickname(nickname) do + with %User{local: true} = user <- User.get_cached_by_nickname(nickname) do OAuth.Token.delete_user_tokens(user) OAuth.Authorization.delete_user_authorizations(user) From 8c7a382027b3cf3bf4815a7b0ce753b6e7c7afa5 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Thu, 20 Jun 2019 02:05:19 +0300 Subject: [PATCH 11/48] Rename Pleroma.Mix.Tasks.Common -> Mix.Pleroma and import it's functions instead of aliasing This seems to be the convention for functions that can be reused between different mix tasks in all Elixir projects I've seen and it gets rid on an error message when someone runs mix pleroma.common Also in this commit by accident: - Move benchmark task under a proper namespace - Insert a space after the prompt --- .../{tasks/pleroma/common.ex => pleroma.ex} | 4 +- lib/mix/tasks/{ => pleroma}/benchmark.ex | 6 +- lib/mix/tasks/pleroma/config.ex | 6 +- lib/mix/tasks/pleroma/database.ex | 10 +- lib/mix/tasks/pleroma/instance.ex | 40 ++++--- lib/mix/tasks/pleroma/relay.ex | 10 +- lib/mix/tasks/pleroma/uploads.ex | 16 +-- lib/mix/tasks/pleroma/user.ex | 100 +++++++++--------- 8 files changed, 94 insertions(+), 98 deletions(-) rename lib/mix/{tasks/pleroma/common.ex => pleroma.ex} (94%) rename lib/mix/tasks/{ => pleroma}/benchmark.ex (82%) diff --git a/lib/mix/tasks/pleroma/common.ex b/lib/mix/pleroma.ex similarity index 94% rename from lib/mix/tasks/pleroma/common.ex rename to lib/mix/pleroma.ex index 7d50605af..548c8a0a4 100644 --- a/lib/mix/tasks/pleroma/common.ex +++ b/lib/mix/pleroma.ex @@ -2,7 +2,7 @@ # Copyright © 2017-2018 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only -defmodule Mix.Tasks.Pleroma.Common do +defmodule Mix.Pleroma do @doc "Common functions to be reused in mix tasks" def start_pleroma do Application.put_env(:phoenix, :serve_endpoints, false, persistent: true) @@ -14,7 +14,7 @@ def get_option(options, opt, prompt, defval \\ nil, defname \\ nil) do end def shell_prompt(prompt, defval \\ nil, defname \\ nil) do - prompt_message = "#{prompt} [#{defname || defval}]" + prompt_message = "#{prompt} [#{defname || defval}] " input = if mix_shell?(), diff --git a/lib/mix/tasks/benchmark.ex b/lib/mix/tasks/pleroma/benchmark.ex similarity index 82% rename from lib/mix/tasks/benchmark.ex rename to lib/mix/tasks/pleroma/benchmark.ex index e4b1a638a..d43db7b35 100644 --- a/lib/mix/tasks/benchmark.ex +++ b/lib/mix/tasks/pleroma/benchmark.ex @@ -1,9 +1,9 @@ defmodule Mix.Tasks.Pleroma.Benchmark do + import Mix.Pleroma use Mix.Task - alias Mix.Tasks.Pleroma.Common def run(["search"]) do - Common.start_pleroma() + start_pleroma() Benchee.run(%{ "search" => fn -> @@ -13,7 +13,7 @@ def run(["search"]) do end def run(["tag"]) do - Common.start_pleroma() + start_pleroma() Benchee.run(%{ "tag" => fn -> diff --git a/lib/mix/tasks/pleroma/config.ex b/lib/mix/tasks/pleroma/config.ex index 1fe03088d..4bbb42cea 100644 --- a/lib/mix/tasks/pleroma/config.ex +++ b/lib/mix/tasks/pleroma/config.ex @@ -1,6 +1,6 @@ defmodule Mix.Tasks.Pleroma.Config do use Mix.Task - alias Mix.Tasks.Pleroma.Common + import Mix.Pleroma alias Pleroma.Repo alias Pleroma.Web.AdminAPI.Config @shortdoc "Manages the location of the config" @@ -17,7 +17,7 @@ defmodule Mix.Tasks.Pleroma.Config do """ def run(["migrate_to_db"]) do - Common.start_pleroma() + start_pleroma() if Pleroma.Config.get([:instance, :dynamic_configuration]) do Application.get_all_env(:pleroma) @@ -37,7 +37,7 @@ def run(["migrate_to_db"]) do end def run(["migrate_from_db", env]) do - Common.start_pleroma() + start_pleroma() if Pleroma.Config.get([:instance, :dynamic_configuration]) do config_path = "config/#{env}.migrated.secret.exs" diff --git a/lib/mix/tasks/pleroma/database.ex b/lib/mix/tasks/pleroma/database.ex index 4d480ac3f..e91fb31d1 100644 --- a/lib/mix/tasks/pleroma/database.ex +++ b/lib/mix/tasks/pleroma/database.ex @@ -3,12 +3,12 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Database do - alias Mix.Tasks.Pleroma.Common alias Pleroma.Conversation alias Pleroma.Object alias Pleroma.Repo alias Pleroma.User require Logger + import Mix.Pleroma use Mix.Task @shortdoc "A collection of database related tasks" @@ -45,7 +45,7 @@ def run(["remove_embedded_objects" | args]) do ] ) - Common.start_pleroma() + start_pleroma() Logger.info("Removing embedded objects") Repo.query!( @@ -66,12 +66,12 @@ def run(["remove_embedded_objects" | args]) do end def run(["bump_all_conversations"]) do - Common.start_pleroma() + start_pleroma() Conversation.bump_for_all_activities() end def run(["update_users_following_followers_counts"]) do - Common.start_pleroma() + start_pleroma() users = Repo.all(User) Enum.each(users, &User.remove_duplicated_following/1) @@ -89,7 +89,7 @@ def run(["prune_objects" | args]) do ] ) - Common.start_pleroma() + start_pleroma() deadline = Pleroma.Config.get([:instance, :remote_post_retention_days]) diff --git a/lib/mix/tasks/pleroma/instance.ex b/lib/mix/tasks/pleroma/instance.ex index 44e49cb69..7bf537927 100644 --- a/lib/mix/tasks/pleroma/instance.ex +++ b/lib/mix/tasks/pleroma/instance.ex @@ -4,7 +4,7 @@ defmodule Mix.Tasks.Pleroma.Instance do use Mix.Task - alias Mix.Tasks.Pleroma.Common + import Mix.Pleroma @shortdoc "Manages Pleroma instance" @moduledoc """ @@ -70,7 +70,7 @@ def run(["gen" | rest]) do if proceed? do [domain, port | _] = String.split( - Common.get_option( + get_option( options, :domain, "What domain will your instance use? (e.g pleroma.soykaf.com)" @@ -79,16 +79,16 @@ def run(["gen" | rest]) do ) ++ [443] name = - Common.get_option( + get_option( options, :instance_name, "What is the name of your instance? (e.g. Pleroma/Soykaf)" ) - email = Common.get_option(options, :admin_email, "What is your admin email address?") + email = get_option(options, :admin_email, "What is your admin email address?") notify_email = - Common.get_option( + get_option( options, :notify_email, "What email address do you want to use for sending email notifications?", @@ -96,7 +96,7 @@ def run(["gen" | rest]) do ) indexable = - Common.get_option( + get_option( options, :indexable, "Do you want search engines to index your site? (y/n)", @@ -104,21 +104,19 @@ def run(["gen" | rest]) do ) === "y" db_configurable? = - Common.get_option( + get_option( options, :db_configurable, "Do you want to be able to configure instance from admin part? (y/n)", "y" ) === "y" - dbhost = - Common.get_option(options, :dbhost, "What is the hostname of your database?", "localhost") + dbhost = get_option(options, :dbhost, "What is the hostname of your database?", "localhost") - dbname = - Common.get_option(options, :dbname, "What is the name of your database?", "pleroma_dev") + dbname = get_option(options, :dbname, "What is the name of your database?", "pleroma_dev") dbuser = - Common.get_option( + get_option( options, :dbuser, "What is the user used to connect to your database?", @@ -126,7 +124,7 @@ def run(["gen" | rest]) do ) dbpass = - Common.get_option( + get_option( options, :dbpass, "What is the password used to connect to your database?", @@ -166,31 +164,31 @@ def run(["gen" | rest]) do dbpass: dbpass ) - Common.shell_info( + shell_info( "Writing config to #{config_path}. You should rename it to config/prod.secret.exs or config/dev.secret.exs." ) File.write(config_path, result_config) - Common.shell_info("Writing #{psql_path}.") + shell_info("Writing #{psql_path}.") File.write(psql_path, result_psql) write_robots_txt(indexable) - Common.shell_info( + shell_info( "\n" <> """ To get started: 1. Verify the contents of the generated files. - 2. Run `sudo -u postgres psql -f #{Common.escape_sh_path(psql_path)}`. + 2. Run `sudo -u postgres psql -f #{escape_sh_path(psql_path)}`. """ <> if config_path in ["config/dev.secret.exs", "config/prod.secret.exs"] do "" else - "3. Run `mv #{Common.escape_sh_path(config_path)} 'config/prod.secret.exs'`." + "3. Run `mv #{escape_sh_path(config_path)} 'config/prod.secret.exs'`." end ) else - Common.shell_error( + shell_error( "The task would have overwritten the following files:\n" <> (Enum.map(paths, &"- #{&1}\n") |> Enum.join("")) <> "Rerun with `--force` to overwrite them." @@ -215,10 +213,10 @@ defp write_robots_txt(indexable) do if File.exists?(robots_txt_path) do File.cp!(robots_txt_path, "#{robots_txt_path}.bak") - Common.shell_info("Backing up existing robots.txt to #{robots_txt_path}.bak") + shell_info("Backing up existing robots.txt to #{robots_txt_path}.bak") end File.write(robots_txt_path, robots_txt) - Common.shell_info("Writing #{robots_txt_path}.") + shell_info("Writing #{robots_txt_path}.") end end diff --git a/lib/mix/tasks/pleroma/relay.ex b/lib/mix/tasks/pleroma/relay.ex index 213ae24d2..83ed0ed02 100644 --- a/lib/mix/tasks/pleroma/relay.ex +++ b/lib/mix/tasks/pleroma/relay.ex @@ -4,7 +4,7 @@ defmodule Mix.Tasks.Pleroma.Relay do use Mix.Task - alias Mix.Tasks.Pleroma.Common + import Mix.Pleroma alias Pleroma.Web.ActivityPub.Relay @shortdoc "Manages remote relays" @@ -24,24 +24,24 @@ defmodule Mix.Tasks.Pleroma.Relay do Example: ``mix pleroma.relay unfollow https://example.org/relay`` """ def run(["follow", target]) do - Common.start_pleroma() + start_pleroma() with {:ok, _activity} <- Relay.follow(target) do # put this task to sleep to allow the genserver to push out the messages :timer.sleep(500) else - {:error, e} -> Common.shell_error("Error while following #{target}: #{inspect(e)}") + {:error, e} -> shell_error("Error while following #{target}: #{inspect(e)}") end end def run(["unfollow", target]) do - Common.start_pleroma() + start_pleroma() with {:ok, _activity} <- Relay.unfollow(target) do # put this task to sleep to allow the genserver to push out the messages :timer.sleep(500) else - {:error, e} -> Common.shell_error("Error while following #{target}: #{inspect(e)}") + {:error, e} -> shell_error("Error while following #{target}: #{inspect(e)}") end end end diff --git a/lib/mix/tasks/pleroma/uploads.ex b/lib/mix/tasks/pleroma/uploads.ex index 8855b5538..be45383ee 100644 --- a/lib/mix/tasks/pleroma/uploads.ex +++ b/lib/mix/tasks/pleroma/uploads.ex @@ -4,7 +4,7 @@ defmodule Mix.Tasks.Pleroma.Uploads do use Mix.Task - alias Mix.Tasks.Pleroma.Common + import Mix.Pleroma alias Pleroma.Upload alias Pleroma.Uploaders.Local require Logger @@ -24,7 +24,7 @@ defmodule Mix.Tasks.Pleroma.Uploads do """ def run(["migrate_local", target_uploader | args]) do delete? = Enum.member?(args, "--delete") - Common.start_pleroma() + start_pleroma() local_path = Pleroma.Config.get!([Local, :uploads]) uploader = Module.concat(Pleroma.Uploaders, target_uploader) @@ -38,10 +38,10 @@ def run(["migrate_local", target_uploader | args]) do Pleroma.Config.put([Upload, :uploader], uploader) end - Common.shell_info("Migrating files from local #{local_path} to #{to_string(uploader)}") + shell_info("Migrating files from local #{local_path} to #{to_string(uploader)}") if delete? do - Common.shell_info( + shell_info( "Attention: uploaded files will be deleted, hope you have backups! (--delete ; cancel with ^C)" ) @@ -78,7 +78,7 @@ def run(["migrate_local", target_uploader | args]) do |> Enum.filter(& &1) total_count = length(uploads) - Common.shell_info("Found #{total_count} uploads") + shell_info("Found #{total_count} uploads") uploads |> Task.async_stream( @@ -90,7 +90,7 @@ def run(["migrate_local", target_uploader | args]) do :ok error -> - Common.shell_error("failed to upload #{inspect(upload.path)}: #{inspect(error)}") + shell_error("failed to upload #{inspect(upload.path)}: #{inspect(error)}") end end, timeout: 150_000 @@ -99,10 +99,10 @@ def run(["migrate_local", target_uploader | args]) do # credo:disable-for-next-line Credo.Check.Warning.UnusedEnumOperation |> Enum.reduce(0, fn done, count -> count = count + length(done) - Common.shell_info("Uploaded #{count}/#{total_count} files") + shell_info("Uploaded #{count}/#{total_count} files") count end) - Common.shell_info("Done!") + shell_info("Done!") end end diff --git a/lib/mix/tasks/pleroma/user.ex b/lib/mix/tasks/pleroma/user.ex index 0efa745e4..ab158f57e 100644 --- a/lib/mix/tasks/pleroma/user.ex +++ b/lib/mix/tasks/pleroma/user.ex @@ -5,7 +5,7 @@ defmodule Mix.Tasks.Pleroma.User do use Mix.Task import Ecto.Changeset - alias Mix.Tasks.Pleroma.Common + import Mix.Pleroma alias Pleroma.User alias Pleroma.UserInviteToken alias Pleroma.Web.OAuth @@ -120,7 +120,7 @@ def run(["new", nickname, email | rest]) do admin? = Keyword.get(options, :admin, false) assume_yes? = Keyword.get(options, :assume_yes, false) - Common.shell_info(""" + shell_info(""" A user will be created with the following information: - nickname: #{nickname} - email: #{email} @@ -133,10 +133,10 @@ def run(["new", nickname, email | rest]) do - admin: #{if(admin?, do: "true", else: "false")} """) - proceed? = assume_yes? or Common.shell_yes?("Continue?") + proceed? = assume_yes? or shell_yes?("Continue?") if proceed? do - Common.start_pleroma() + start_pleroma() params = %{ nickname: nickname, @@ -150,7 +150,7 @@ def run(["new", nickname, email | rest]) do changeset = User.register_changeset(%User{}, params, need_confirmation: false) {:ok, _user} = User.register(changeset) - Common.shell_info("User #{nickname} created") + shell_info("User #{nickname} created") if moderator? do run(["set", nickname, "--moderator"]) @@ -164,43 +164,43 @@ def run(["new", nickname, email | rest]) do run(["reset_password", nickname]) end else - Common.shell_info("User will not be created.") + shell_info("User will not be created.") end end def run(["rm", nickname]) do - Common.start_pleroma() + start_pleroma() with %User{local: true} = user <- User.get_cached_by_nickname(nickname) do User.perform(:delete, user) - Common.shell_info("User #{nickname} deleted.") + shell_info("User #{nickname} deleted.") else _ -> - Common.shell_error("No local user #{nickname}") + shell_error("No local user #{nickname}") end end def run(["toggle_activated", nickname]) do - Common.start_pleroma() + start_pleroma() with %User{} = user <- User.get_cached_by_nickname(nickname) do {:ok, user} = User.deactivate(user, !user.info.deactivated) - Common.shell_info( + shell_info( "Activation status of #{nickname}: #{if(user.info.deactivated, do: "de", else: "")}activated" ) else _ -> - Common.shell_error("No user #{nickname}") + shell_error("No user #{nickname}") end end def run(["reset_password", nickname]) do - Common.start_pleroma() + start_pleroma() with %User{local: true} = user <- User.get_cached_by_nickname(nickname), {:ok, token} <- Pleroma.PasswordResetToken.create_token(user) do - Common.shell_info("Generated password reset token for #{user.nickname}") + shell_info("Generated password reset token for #{user.nickname}") IO.puts( "URL: #{ @@ -213,15 +213,15 @@ def run(["reset_password", nickname]) do ) else _ -> - Common.shell_error("No local user #{nickname}") + shell_error("No local user #{nickname}") end end def run(["unsubscribe", nickname]) do - Common.start_pleroma() + start_pleroma() with %User{} = user <- User.get_cached_by_nickname(nickname) do - Common.shell_info("Deactivating #{user.nickname}") + shell_info("Deactivating #{user.nickname}") User.deactivate(user) {:ok, friends} = User.get_friends(user) @@ -229,7 +229,7 @@ def run(["unsubscribe", nickname]) do Enum.each(friends, fn friend -> user = User.get_cached_by_id(user.id) - Common.shell_info("Unsubscribing #{friend.nickname} from #{user.nickname}") + shell_info("Unsubscribing #{friend.nickname} from #{user.nickname}") User.unfollow(user, friend) end) @@ -238,16 +238,16 @@ def run(["unsubscribe", nickname]) do user = User.get_cached_by_id(user.id) if Enum.empty?(user.following) do - Common.shell_info("Successfully unsubscribed all followers from #{user.nickname}") + shell_info("Successfully unsubscribed all followers from #{user.nickname}") end else _ -> - Common.shell_error("No user #{nickname}") + shell_error("No user #{nickname}") end end def run(["set", nickname | rest]) do - Common.start_pleroma() + start_pleroma() {options, [], []} = OptionParser.parse( @@ -279,33 +279,33 @@ def run(["set", nickname | rest]) do end else _ -> - Common.shell_error("No local user #{nickname}") + shell_error("No local user #{nickname}") end end def run(["tag", nickname | tags]) do - Common.start_pleroma() + start_pleroma() with %User{} = user <- User.get_cached_by_nickname(nickname) do user = user |> User.tag(tags) - Common.shell_info("Tags of #{user.nickname}: #{inspect(tags)}") + shell_info("Tags of #{user.nickname}: #{inspect(tags)}") else _ -> - Common.shell_error("Could not change user tags for #{nickname}") + shell_error("Could not change user tags for #{nickname}") end end def run(["untag", nickname | tags]) do - Common.start_pleroma() + start_pleroma() with %User{} = user <- User.get_cached_by_nickname(nickname) do user = user |> User.untag(tags) - Common.shell_info("Tags of #{user.nickname}: #{inspect(tags)}") + shell_info("Tags of #{user.nickname}: #{inspect(tags)}") else _ -> - Common.shell_error("Could not change user tags for #{nickname}") + shell_error("Could not change user tags for #{nickname}") end end @@ -326,14 +326,12 @@ def run(["invite" | rest]) do end) |> Enum.into(%{}) - Common.start_pleroma() + start_pleroma() with {:ok, val} <- options[:expires_at], options = Map.put(options, :expires_at, val), {:ok, invite} <- UserInviteToken.create_invite(options) do - Common.shell_info( - "Generated user invite token " <> String.replace(invite.invite_type, "_", " ") - ) + shell_info("Generated user invite token " <> String.replace(invite.invite_type, "_", " ")) url = Pleroma.Web.Router.Helpers.redirect_url( @@ -345,14 +343,14 @@ def run(["invite" | rest]) do IO.puts(url) else error -> - Common.shell_error("Could not create invite token: #{inspect(error)}") + shell_error("Could not create invite token: #{inspect(error)}") end end def run(["invites"]) do - Common.start_pleroma() + start_pleroma() - Common.shell_info("Invites list:") + shell_info("Invites list:") UserInviteToken.list_invites() |> Enum.each(fn invite -> @@ -366,7 +364,7 @@ def run(["invites"]) do " | Max use: #{max_use} Left use: #{max_use - invite.uses}" end - Common.shell_info( + shell_info( "ID: #{invite.id} | Token: #{invite.token} | Token type: #{invite.invite_type} | Used: #{ invite.used }#{expire_info}#{using_info}" @@ -375,54 +373,54 @@ def run(["invites"]) do end def run(["revoke_invite", token]) do - Common.start_pleroma() + start_pleroma() with {:ok, invite} <- UserInviteToken.find_by_token(token), {:ok, _} <- UserInviteToken.update_invite(invite, %{used: true}) do - Common.shell_info("Invite for token #{token} was revoked.") + shell_info("Invite for token #{token} was revoked.") else - _ -> Common.shell_error("No invite found with token #{token}") + _ -> shell_error("No invite found with token #{token}") end end def run(["delete_activities", nickname]) do - Common.start_pleroma() + start_pleroma() with %User{local: true} = user <- User.get_cached_by_nickname(nickname) do {:ok, _} = User.delete_user_activities(user) - Common.shell_info("User #{nickname} statuses deleted.") + shell_info("User #{nickname} statuses deleted.") else _ -> - Common.shell_error("No local user #{nickname}") + shell_error("No local user #{nickname}") end end def run(["toggle_confirmed", nickname]) do - Common.start_pleroma() + start_pleroma() with %User{} = user <- User.get_cached_by_nickname(nickname) do {:ok, user} = User.toggle_confirmation(user) message = if user.info.confirmation_pending, do: "needs", else: "doesn't need" - Common.shell_info("#{nickname} #{message} confirmation.") + shell_info("#{nickname} #{message} confirmation.") else _ -> - Common.shell_error("No local user #{nickname}") + shell_error("No local user #{nickname}") end end def run(["sign_out", nickname]) do - Common.start_pleroma() + start_pleroma() with %User{local: true} = user <- User.get_cached_by_nickname(nickname) do OAuth.Token.delete_user_tokens(user) OAuth.Authorization.delete_user_authorizations(user) - Common.shell_info("#{nickname} signed out from all apps.") + shell_info("#{nickname} signed out from all apps.") else _ -> - Common.shell_error("No local user #{nickname}") + shell_error("No local user #{nickname}") end end @@ -435,7 +433,7 @@ defp set_moderator(user, value) do {:ok, user} = User.update_and_set_cache(user_cng) - Common.shell_info("Moderator status of #{user.nickname}: #{user.info.is_moderator}") + shell_info("Moderator status of #{user.nickname}: #{user.info.is_moderator}") user end @@ -448,7 +446,7 @@ defp set_admin(user, value) do {:ok, user} = User.update_and_set_cache(user_cng) - Common.shell_info("Admin status of #{user.nickname}: #{user.info.is_admin}") + shell_info("Admin status of #{user.nickname}: #{user.info.is_admin}") user end @@ -461,7 +459,7 @@ defp set_locked(user, value) do {:ok, user} = User.update_and_set_cache(user_cng) - Common.shell_info("Locked status of #{user.nickname}: #{user.info.locked}") + shell_info("Locked status of #{user.nickname}: #{user.info.locked}") user end end From f8c64dd4c0efec2a66d1082339ea850669662822 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Thu, 20 Jun 2019 02:20:20 +0300 Subject: [PATCH 12/48] Release Tasks: Ensure the application is loaded before getting the modules Needed for non-rpc tasks to work --- lib/pleroma/release_tasks.ex | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/pleroma/release_tasks.ex b/lib/pleroma/release_tasks.ex index eb6eff61c..d6720cd05 100644 --- a/lib/pleroma/release_tasks.ex +++ b/lib/pleroma/release_tasks.ex @@ -17,6 +17,7 @@ def run(args) do end defp mix_task(task, args) do + Application.load(:pleroma) {:ok, modules} = :application.get_key(:pleroma, :modules) module = From fe3a830b80ea0b0831d393b3e293550b52d7d45a Mon Sep 17 00:00:00 2001 From: rinpatch Date: Thu, 20 Jun 2019 02:34:19 +0300 Subject: [PATCH 13/48] Remove a useless binding from config template call --- lib/mix/tasks/pleroma/instance.ex | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/mix/tasks/pleroma/instance.ex b/lib/mix/tasks/pleroma/instance.ex index 7bf537927..1d89827ba 100644 --- a/lib/mix/tasks/pleroma/instance.ex +++ b/lib/mix/tasks/pleroma/instance.ex @@ -148,7 +148,6 @@ def run(["gen" | rest]) do dbname: dbname, dbuser: dbuser, dbpass: dbpass, - version: Pleroma.Mixfile.project() |> Keyword.get(:version), secret: secret, signing_salt: signing_salt, web_push_public_key: Base.url_encode64(web_push_public_key, padding: false), From 144e2e3e0bc78591ed8e8800d3858c699eded5af Mon Sep 17 00:00:00 2001 From: rinpatch Date: Thu, 20 Jun 2019 03:40:00 +0300 Subject: [PATCH 14/48] Remove deprecated dedupe_media from the config template --- lib/mix/tasks/pleroma/sample_config.eex | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/mix/tasks/pleroma/sample_config.eex b/lib/mix/tasks/pleroma/sample_config.eex index 73d9217be..0c4e49f0d 100644 --- a/lib/mix/tasks/pleroma/sample_config.eex +++ b/lib/mix/tasks/pleroma/sample_config.eex @@ -16,7 +16,6 @@ config :pleroma, :instance, notify_email: "<%= notify_email %>", limit: 5000, registrations_open: true, - dedupe_media: false, dynamic_configuration: <%= db_configurable? %> config :pleroma, :media_proxy, From 69070e641d9390a2ae46946c16f82e8b737942da Mon Sep 17 00:00:00 2001 From: rinpatch Date: Thu, 20 Jun 2019 03:59:16 +0300 Subject: [PATCH 15/48] Allow setting upload/static directories in the config generator --- lib/mix/tasks/pleroma/instance.ex | 28 ++++++++++++++++++++++--- lib/mix/tasks/pleroma/sample_config.eex | 3 +++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/lib/mix/tasks/pleroma/instance.ex b/lib/mix/tasks/pleroma/instance.ex index 1d89827ba..2c4e414cf 100644 --- a/lib/mix/tasks/pleroma/instance.ex +++ b/lib/mix/tasks/pleroma/instance.ex @@ -31,6 +31,8 @@ defmodule Mix.Tasks.Pleroma.Instance do - `--dbpass DBPASS` - the password to use for the database connection - `--indexable Y/N` - Allow/disallow indexing site by search engines - `--db-configurable Y/N` - Allow/disallow configuring instance from admin part + - `--uploads-dir` - the directory uploads go in when using a local uploader + - `--static-dir` - the directory custom public files should be read from (custom emojis, frontend bundle overrides, robots.txt, etc.) """ def run(["gen" | rest]) do @@ -50,7 +52,9 @@ def run(["gen" | rest]) do dbuser: :string, dbpass: :string, indexable: :string, - db_configurable: :string + db_configurable: :string, + uploads_dir: :string, + static_dir: :string ], aliases: [ o: :output, @@ -107,7 +111,7 @@ def run(["gen" | rest]) do get_option( options, :db_configurable, - "Do you want to be able to configure instance from admin part? (y/n)", + "Do you want to store the configuration in the database (allows controlling it from admin-fe)? (y/n)", "y" ) === "y" @@ -132,6 +136,22 @@ def run(["gen" | rest]) do "autogenerated" ) + uploads_dir = + get_option( + options, + :upload_dir, + "What directory should media uploads go in (when using the local uploader)?", + Pleroma.Config.get([Pleroma.Uploaders.Local, :uploads]) + ) + + static_dir = + get_option( + options, + :static_dir, + "What directory should custom public files be read from (custom emojis, frontend bundle overrides, robots.txt, etc.)?", + Pleroma.Config.get([:instance, :static_dir]) + ) + secret = :crypto.strong_rand_bytes(64) |> Base.encode64() |> binary_part(0, 64) signing_salt = :crypto.strong_rand_bytes(8) |> Base.encode64() |> binary_part(0, 8) {web_push_public_key, web_push_private_key} = :crypto.generate_key(:ecdh, :prime256v1) @@ -152,7 +172,9 @@ def run(["gen" | rest]) do signing_salt: signing_salt, web_push_public_key: Base.url_encode64(web_push_public_key, padding: false), web_push_private_key: Base.url_encode64(web_push_private_key, padding: false), - db_configurable?: db_configurable? + db_configurable?: db_configurable?, + static_dir: static_dir, + uploads_dir: uploads_dir ) result_psql = diff --git a/lib/mix/tasks/pleroma/sample_config.eex b/lib/mix/tasks/pleroma/sample_config.eex index 0c4e49f0d..8b45acb05 100644 --- a/lib/mix/tasks/pleroma/sample_config.eex +++ b/lib/mix/tasks/pleroma/sample_config.eex @@ -37,6 +37,9 @@ config :web_push_encryption, :vapid_details, public_key: "<%= web_push_public_key %>", private_key: "<%= web_push_private_key %>" +config :pleroma, :instance, static_dir: "<%= static_dir %>" +config :pleroma, Pleroma.Uploaders.Local, uploads: "<%= uploads_dir %>" + # Enable Strict-Transport-Security once SSL is working: # config :pleroma, :http_security, # sts: true From 630ac6a921bc80a93f5f994731c1085fd1b9d3e8 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Thu, 20 Jun 2019 03:01:03 +0000 Subject: [PATCH 16/48] docs: better description for mrf anti link spam --- CHANGELOG.md | 2 +- docs/config.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ced0573f6..0dc8b547d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,7 +62,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - MRF: Support for running subchains. - Configuration: `skip_thread_containment` option - Configuration: `rate_limit` option. See `Pleroma.Plugs.RateLimiter` documentation for details. -- MRF: Support for filtering out likely spam messages using naive heuristics. +- MRF: Support for filtering out likely spam messages by rejecting posts from new users that contain links. ### Changed - **Breaking:** Configuration: move from Pleroma.Mailer to Pleroma.Emails.Mailer diff --git a/docs/config.md b/docs/config.md index 4e9697afc..b75193545 100644 --- a/docs/config.md +++ b/docs/config.md @@ -90,7 +90,7 @@ config :pleroma, Pleroma.Emails.Mailer, * `Pleroma.Web.ActivityPub.MRF.SubchainPolicy`: Selectively runs other MRF policies when messages match (see ``:mrf_subchain`` section) * `Pleroma.Web.ActivityPub.MRF.RejectNonPublic`: Drops posts with non-public visibility settings (See ``:mrf_rejectnonpublic`` section) * `Pleroma.Web.ActivityPub.MRF.EnsureRePrepended`: Rewrites posts to ensure that replies to posts with subjects do not have an identical subject and instead begin with re:. - * `Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy`: Rejects posts from likely spambots using naive heuristics. + * `Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy`: Rejects posts from likely spambots by rejecting posts from new users that contain links. * `public`: Makes the client API in authentificated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. * `quarantined_instances`: List of ActivityPub instances where private(DMs, followers-only) activities will not be send. * `managed_config`: Whenether the config for pleroma-fe is configured in this config or in ``static/config.json`` From 4974988f0353341e7f89decb3b95cda9ced372b7 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Thu, 20 Jun 2019 11:02:05 +0300 Subject: [PATCH 17/48] Export PLEROMA_BUILD_BRANCH --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fa5dafdb2..f8711f299 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -173,7 +173,7 @@ amd64: script: &release - mix deps.get --only prod - mkdir release - - PLEROMA_BUILD_BRANCH=$CI_COMMIT_REF_NAME + - export PLEROMA_BUILD_BRANCH=$CI_COMMIT_REF_NAME - mix release --path release From 0e31d195af89551e58070390f74e917c5d1ce0fc Mon Sep 17 00:00:00 2001 From: rinpatch Date: Thu, 20 Jun 2019 08:12:56 +0000 Subject: [PATCH 18/48] Apply suggestion to rel/files/bin/pleroma_ctl --- rel/files/bin/pleroma_ctl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rel/files/bin/pleroma_ctl b/rel/files/bin/pleroma_ctl index 03b7e57bb..62368115e 100755 --- a/rel/files/bin/pleroma_ctl +++ b/rel/files/bin/pleroma_ctl @@ -95,7 +95,7 @@ if [ -z "$1" ] || [ "$1" = "help" ]; then By default the artifact will be downloaded from https://git.pleroma.social for pleroma/pleroma (project id: 2) to /tmp/, you can overwrite these settings by setting PLEROMA_CTL_URI, PLEROMA_CTL_PROJECT_ID and PLEROMA_CTL_TMP_DIR - respectievly. + respectively. and any mix tasks under Pleroma namespace, for example \`mix pleroma.user COMMAND\` is From f07003e2183c4e13a428614bd0ce39c9e84e2da2 Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Thu, 20 Jun 2019 17:54:16 +0300 Subject: [PATCH 19/48] Fixed mix version computed for underscore-containing branches to be of SemVer format. --- mix.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index 7f8e36cbb..30584cc92 100644 --- a/mix.exs +++ b/mix.exs @@ -212,7 +212,7 @@ defp version(version) do true <- branch_name != "master" do branch_name = String.trim(branch_name) - |> String.replace(~r/\W+/, "-") + |> String.replace(~r/[\W_]+/, "-") "-" <> branch_name end From e3e8a7dc0e0f3d3abde90c93a0650e7188d13b12 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Thu, 20 Jun 2019 18:27:17 +0300 Subject: [PATCH 20/48] Disable rpc for instance gen --- rel/files/bin/pleroma_ctl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rel/files/bin/pleroma_ctl b/rel/files/bin/pleroma_ctl index 62368115e..b0e1874a9 100755 --- a/rel/files/bin/pleroma_ctl +++ b/rel/files/bin/pleroma_ctl @@ -110,7 +110,7 @@ else if [ "$1" = "update" ]; then update "$2" - elif [ "$1" = "migrate" ] || [ "$1" = "rollback" ] || [ "$1" = "create" ] || [ -n "$PLEROMA_CTL_RPC_DISABLED" ]; then + elif [ "$1" = "migrate" ] || [ "$1" = "rollback" ] || [ "$1" = "create" ] || [ "$1 $2" = "instance gen" ] || [ -n "$PLEROMA_CTL_RPC_DISABLED" ]; then "$SCRIPTPATH"/pleroma eval 'Pleroma.ReleaseTasks.run("'"$*"'")' else "$SCRIPTPATH"/pleroma rpc 'Pleroma.ReleaseTasks.run("'"$*"'")' From 32320c1ee94a999082f10c9f9a3c6d55ced21e21 Mon Sep 17 00:00:00 2001 From: Alexander Strizhakov Date: Thu, 20 Jun 2019 17:43:57 +0000 Subject: [PATCH 21/48] Fixes for dynamic configuration --- config/dev.exs | 4 ++-- config/prod.exs | 4 ++-- lib/mix/tasks/pleroma/config.ex | 3 ++- test/tasks/config_test.exs | 2 +- test/web/admin_api/admin_api_controller_test.exs | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/config/dev.exs b/config/dev.exs index 71b11f7c3..7e1e3b4be 100644 --- a/config/dev.exs +++ b/config/dev.exs @@ -60,5 +60,5 @@ ) end -if File.exists?("./config/dev.migrated.secret.exs"), - do: import_config("./config/dev.migrated.secret.exs") +if File.exists?("./config/dev.exported_from_db.secret.exs"), + do: import_config("dev.exported_from_db.secret.exs") diff --git a/config/prod.exs b/config/prod.exs index 42edccf64..9c205cbd2 100644 --- a/config/prod.exs +++ b/config/prod.exs @@ -64,5 +64,5 @@ # which should be versioned separately. import_config "prod.secret.exs" -if File.exists?("./config/prod.migrated.secret.exs"), - do: import_config("./config/prod.migrated.secret.exs") +if File.exists?("./config/prod.exported_from_db.secret.exs"), + do: import_config("prod.exported_from_db.secret.exs") diff --git a/lib/mix/tasks/pleroma/config.ex b/lib/mix/tasks/pleroma/config.ex index 1fe03088d..d008871a1 100644 --- a/lib/mix/tasks/pleroma/config.ex +++ b/lib/mix/tasks/pleroma/config.ex @@ -40,9 +40,10 @@ def run(["migrate_from_db", env]) do Common.start_pleroma() if Pleroma.Config.get([:instance, :dynamic_configuration]) do - config_path = "config/#{env}.migrated.secret.exs" + config_path = "config/#{env}.exported_from_db.secret.exs" {:ok, file} = File.open(config_path, [:write]) + IO.write(file, "use Mix.Config\r\n") Repo.all(Config) |> Enum.each(fn config -> diff --git a/test/tasks/config_test.exs b/test/tasks/config_test.exs index 7d3b1860c..d448b0444 100644 --- a/test/tasks/config_test.exs +++ b/test/tasks/config_test.exs @@ -5,7 +5,7 @@ defmodule Mix.Tasks.Pleroma.ConfigTest do setup_all do Mix.shell(Mix.Shell.Process) - temp_file = "config/temp.migrated.secret.exs" + temp_file = "config/temp.exported_from_db.secret.exs" dynamic = Pleroma.Config.get([:instance, :dynamic_configuration]) diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index 18f64f2b7..2a5912645 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -1334,7 +1334,7 @@ test "with settings in db", %{conn: conn} do setup %{conn: conn} do admin = insert(:user, info: %{is_admin: true}) - temp_file = "config/test.migrated.secret.exs" + temp_file = "config/test.exported_from_db.secret.exs" on_exit(fn -> Application.delete_env(:pleroma, :key1) From fc6e661672c17a57991ad94754b005be05f68621 Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Fri, 21 Jun 2019 16:47:16 +0700 Subject: [PATCH 22/48] Fix rate limiter tests --- test/plugs/rate_limiter_test.exs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/plugs/rate_limiter_test.exs b/test/plugs/rate_limiter_test.exs index b3798bf03..b8d6aff89 100644 --- a/test/plugs/rate_limiter_test.exs +++ b/test/plugs/rate_limiter_test.exs @@ -20,7 +20,7 @@ test "ip/1" do end test "it restricts by opts" do - scale = 100 + scale = 1000 limit = 5 Pleroma.Config.put([:rate_limit, @limiter_name], {scale, limit}) @@ -64,7 +64,7 @@ test "it restricts by opts" do test "optional limits for authenticated users" do Ecto.Adapters.SQL.Sandbox.checkout(Pleroma.Repo) - scale = 100 + scale = 1000 limit = 5 Pleroma.Config.put([:rate_limit, @limiter_name], [{1, 10}, {scale, limit}]) From b6af80f769195b5047ee8da07166f022c2e29b0a Mon Sep 17 00:00:00 2001 From: feld Date: Fri, 21 Jun 2019 11:36:32 +0000 Subject: [PATCH 23/48] Revert "Merge branch 'fix/ogp-title' into 'develop'" This reverts merge request !1277 --- .../rich_media/parsers/meta_tags_parser.ex | 33 +++++-------------- .../rich_media/ogp-missing-title.html | 12 ------- test/web/rich_media/parser_test.exs | 22 ------------- 3 files changed, 8 insertions(+), 59 deletions(-) delete mode 100644 test/fixtures/rich_media/ogp-missing-title.html diff --git a/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex b/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex index 82f1cce29..4a7c5eae0 100644 --- a/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex +++ b/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex @@ -1,19 +1,15 @@ defmodule Pleroma.Web.RichMedia.Parsers.MetaTagsParser do def parse(html, data, prefix, error_message, key_name, value_name \\ "content") do - meta_data = - html - |> get_elements(key_name, prefix) - |> Enum.reduce(data, fn el, acc -> - attributes = normalize_attributes(el, prefix, key_name, value_name) + with elements = [_ | _] <- get_elements(html, key_name, prefix), + meta_data = + Enum.reduce(elements, data, fn el, acc -> + attributes = normalize_attributes(el, prefix, key_name, value_name) - Map.merge(acc, attributes) - end) - |> maybe_put_title(html) - - if Enum.empty?(meta_data) do - {:error, error_message} - else + Map.merge(acc, attributes) + end) do {:ok, meta_data} + else + _e -> {:error, error_message} end end @@ -31,17 +27,4 @@ defp normalize_attributes(html_node, prefix, key_name, value_name) do %{String.to_atom(data[key_name]) => data[value_name]} end - - defp maybe_put_title(%{title: _} = meta, _), do: meta - - defp maybe_put_title(meta, html) do - case get_page_title(html) do - "" -> meta - title -> Map.put_new(meta, :title, title) - end - end - - defp get_page_title(html) do - Floki.find(html, "title") |> Floki.text() - end end diff --git a/test/fixtures/rich_media/ogp-missing-title.html b/test/fixtures/rich_media/ogp-missing-title.html deleted file mode 100644 index fcdbedfc6..000000000 --- a/test/fixtures/rich_media/ogp-missing-title.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - The Rock (1996) - - - - - - - diff --git a/test/web/rich_media/parser_test.exs b/test/web/rich_media/parser_test.exs index a49ba9549..3a9cc1854 100644 --- a/test/web/rich_media/parser_test.exs +++ b/test/web/rich_media/parser_test.exs @@ -9,15 +9,6 @@ defmodule Pleroma.Web.RichMedia.ParserTest do } -> %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/ogp.html")} - %{ - method: :get, - url: "http://example.com/ogp-missing-title" - } -> - %Tesla.Env{ - status: 200, - body: File.read!("test/fixtures/rich_media/ogp-missing-title.html") - } - %{ method: :get, url: "http://example.com/twitter-card" @@ -60,19 +51,6 @@ test "parses ogp" do }} end - test "falls back to when ogp:title is missing" do - assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/ogp-missing-title") == - {:ok, - %{ - image: "http://ia.media-imdb.com/images/rock.jpg", - title: "The Rock (1996)", - description: - "Directed by Michael Bay. With Sean Connery, Nicolas Cage, Ed Harris, John Spencer.", - type: "video.movie", - url: "http://www.imdb.com/title/tt0117500/" - }} - end - test "parses twitter card" do assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/twitter-card") == {:ok, From 259ffe00620ae8dd0cbfd5313024107e59f96ffc Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov <ivant.business@gmail.com> Date: Fri, 21 Jun 2019 17:19:29 +0300 Subject: [PATCH 24/48] Fixed branch name substitutions for mix version (to comply to SemVer format). --- mix.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index 30584cc92..0981ee856 100644 --- a/mix.exs +++ b/mix.exs @@ -212,7 +212,7 @@ defp version(version) do true <- branch_name != "master" do branch_name = String.trim(branch_name) - |> String.replace(~r/[\W_]+/, "-") + |> String.replace(~r/[^0-9a-z\-\.]+/i, "-") "-" <> branch_name end From e76115989a0867d5a37a869b560153c2e7c060fd Mon Sep 17 00:00:00 2001 From: rinpatch <rinpatch@sdf.org> Date: Fri, 21 Jun 2019 19:30:25 +0300 Subject: [PATCH 25/48] Move config templates to priv so they can be found in releases --- lib/mix/tasks/pleroma/instance.ex | 11 ++++++----- .../tasks/pleroma => priv/templates}/robots_txt.eex | 0 .../pleroma => priv/templates}/sample_config.eex | 0 .../tasks/pleroma => priv/templates}/sample_psql.eex | 0 4 files changed, 6 insertions(+), 5 deletions(-) rename {lib/mix/tasks/pleroma => priv/templates}/robots_txt.eex (100%) rename {lib/mix/tasks/pleroma => priv/templates}/sample_config.eex (100%) rename {lib/mix/tasks/pleroma => priv/templates}/sample_psql.eex (100%) diff --git a/lib/mix/tasks/pleroma/instance.ex b/lib/mix/tasks/pleroma/instance.ex index 2c4e414cf..c6738dbcc 100644 --- a/lib/mix/tasks/pleroma/instance.ex +++ b/lib/mix/tasks/pleroma/instance.ex @@ -155,10 +155,11 @@ def run(["gen" | rest]) do secret = :crypto.strong_rand_bytes(64) |> Base.encode64() |> binary_part(0, 64) signing_salt = :crypto.strong_rand_bytes(8) |> Base.encode64() |> binary_part(0, 8) {web_push_public_key, web_push_private_key} = :crypto.generate_key(:ecdh, :prime256v1) + template_dir = Application.app_dir(:pleroma, "priv") <> "/templates" result_config = EEx.eval_file( - "sample_config.eex" |> Path.expand(__DIR__), + template_dir <> "/sample_config.eex", domain: domain, port: port, email: email, @@ -179,7 +180,7 @@ def run(["gen" | rest]) do result_psql = EEx.eval_file( - "sample_psql.eex" |> Path.expand(__DIR__), + template_dir <> "/sample_psql.eex", dbname: dbname, dbuser: dbuser, dbpass: dbpass @@ -193,7 +194,7 @@ def run(["gen" | rest]) do shell_info("Writing #{psql_path}.") File.write(psql_path, result_psql) - write_robots_txt(indexable) + write_robots_txt(indexable, template_dir) shell_info( "\n" <> @@ -217,10 +218,10 @@ def run(["gen" | rest]) do end end - defp write_robots_txt(indexable) do + defp write_robots_txt(indexable, template_dir) do robots_txt = EEx.eval_file( - Path.expand("robots_txt.eex", __DIR__), + template_dir <> "/robots_txt.eex", indexable: indexable ) diff --git a/lib/mix/tasks/pleroma/robots_txt.eex b/priv/templates/robots_txt.eex similarity index 100% rename from lib/mix/tasks/pleroma/robots_txt.eex rename to priv/templates/robots_txt.eex diff --git a/lib/mix/tasks/pleroma/sample_config.eex b/priv/templates/sample_config.eex similarity index 100% rename from lib/mix/tasks/pleroma/sample_config.eex rename to priv/templates/sample_config.eex diff --git a/lib/mix/tasks/pleroma/sample_psql.eex b/priv/templates/sample_psql.eex similarity index 100% rename from lib/mix/tasks/pleroma/sample_psql.eex rename to priv/templates/sample_psql.eex From 960d6b54e8575b828d34fcf0b69e634dc4d33fe0 Mon Sep 17 00:00:00 2001 From: rinpatch <rinpatch@sdf.org> Date: Fri, 21 Jun 2019 21:56:49 +0300 Subject: [PATCH 26/48] use Config in generated config when available Mix.Config is deprecated and does not work on OTP releases. However we can't fully switch to Config because it is not present in Elixir < 1.9. I tried to evaluate if Config is available at runtime, but for some weird reason OTP releases crash if I do that. --- priv/templates/sample_config.eex | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/priv/templates/sample_config.eex b/priv/templates/sample_config.eex index 8b45acb05..526593d0a 100644 --- a/priv/templates/sample_config.eex +++ b/priv/templates/sample_config.eex @@ -3,7 +3,11 @@ # NOTE: This file should not be committed to a repo or otherwise made public # without removing sensitive information. -use Mix.Config +<%= if Code.ensure_loaded?(Config) do + "import Config" +else + "use Mix.Config" +end %> config :pleroma, Pleroma.Web.Endpoint, url: [host: "<%= domain %>", scheme: "https", port: <%= port %>], From 127a5a7d6567124b834a1f5399a0032c1c1f849d Mon Sep 17 00:00:00 2001 From: William Pitcock <nenolod@dereferenced.org> Date: Fri, 21 Jun 2019 22:27:14 +0000 Subject: [PATCH 27/48] change the anti-link-spam MRF implementation to use old_user? instead of the previous name --- lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex b/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex index 14e5955ee..2da3eac2f 100644 --- a/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex @@ -8,7 +8,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy do require Logger # has the user successfully posted before? - defp user_has_posted_before?(%User{} = u) do + defp old_user?(%User{} = u) do u.info.note_count > 0 || u.info.follower_count > 0 end @@ -25,13 +25,13 @@ defp contains_links?(_), do: false def filter(%{"type" => "Create", "actor" => actor, "object" => object} = message) do with {:ok, %User{} = u} <- User.get_or_fetch_by_ap_id(actor), {:contains_links, true} <- {:contains_links, contains_links?(object)}, - {:posted_before, true} <- {:posted_before, user_has_posted_before?(u)} do + {:old_user, true} <- {:old_user, old_user?(u)} do {:ok, message} else {:contains_links, false} -> {:ok, message} - {:posted_before, false} -> + {:old_user, false} -> {:reject, nil} {:error, _} -> From f4009b6706781f7d6caf75a29cc6e700e7c7e88f Mon Sep 17 00:00:00 2001 From: rinpatch <rinpatch@sdf.org> Date: Sat, 22 Jun 2019 02:29:49 +0300 Subject: [PATCH 28/48] Fallback to Config if Mix.Config does not exist, even if Config does not exist either For some weird reason Code.ensure_loaded?(Config) is false on OTP releases even though `use Config` from config files works just fine. --- priv/templates/sample_config.eex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/priv/templates/sample_config.eex b/priv/templates/sample_config.eex index 526593d0a..8cadb995e 100644 --- a/priv/templates/sample_config.eex +++ b/priv/templates/sample_config.eex @@ -3,7 +3,7 @@ # NOTE: This file should not be committed to a repo or otherwise made public # without removing sensitive information. -<%= if Code.ensure_loaded?(Config) do +<%= if Code.ensure_loaded?(Config) or not Code.ensure_loaded?(Mix.Config) do "import Config" else "use Mix.Config" From 481932309fdec83b1cfb46afda3b982d5e388497 Mon Sep 17 00:00:00 2001 From: William Pitcock <nenolod@dereferenced.org> Date: Fri, 21 Jun 2019 23:42:50 +0000 Subject: [PATCH 29/48] mix: update bbcode dependency to v0.1.1 --- mix.exs | 2 +- mix.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mix.exs b/mix.exs index 9fdf6e83a..0f57c4dae 100644 --- a/mix.exs +++ b/mix.exs @@ -108,7 +108,7 @@ defp deps do {:ex_aws, "~> 2.0"}, {:ex_aws_s3, "~> 2.0"}, {:earmark, "~> 1.3"}, - {:bbcode, "~> 0.1"}, + {:bbcode, "~> 0.1.1"}, {:ex_machina, "~> 2.3", only: :test}, {:credo, "~> 0.9.3", only: [:dev, :test]}, {:mock, "~> 0.3.3", only: :test}, diff --git a/mix.lock b/mix.lock index 6528db98d..cae8d7d84 100644 --- a/mix.lock +++ b/mix.lock @@ -2,7 +2,7 @@ "accept": {:hex, :accept, "0.3.5", "b33b127abca7cc948bbe6caa4c263369abf1347cfa9d8e699c6d214660f10cd1", [:rebar3], [], "hexpm"}, "auto_linker": {:git, "https://git.pleroma.social/pleroma/auto_linker.git", "95e8188490e97505c56636c1379ffdf036c1fdde", [ref: "95e8188490e97505c56636c1379ffdf036c1fdde"]}, "base64url": {:hex, :base64url, "0.0.1", "36a90125f5948e3afd7be97662a1504b934dd5dac78451ca6e9abf85a10286be", [:rebar], [], "hexpm"}, - "bbcode": {:hex, :bbcode, "0.1.0", "400e618b640b635261611d7fb7f79d104917fc5b084aae371ab6b08477cb035b", [:mix], [{:nimble_parsec, "~> 0.5", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm"}, + "bbcode": {:hex, :bbcode, "0.1.1", "0023e2c7814119b2e620b7add67182e3f6019f92bfec9a22da7e99821aceba70", [:mix], [{:nimble_parsec, "~> 0.5", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm"}, "benchee": {:hex, :benchee, "1.0.1", "66b211f9bfd84bd97e6d1beaddf8fc2312aaabe192f776e8931cb0c16f53a521", [:mix], [{:deep_merge, "~> 1.0", [hex: :deep_merge, repo: "hexpm", optional: false]}], "hexpm"}, "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm"}, "cachex": {:hex, :cachex, "3.0.2", "1351caa4e26e29f7d7ec1d29b53d6013f0447630bbf382b4fb5d5bad0209f203", [:mix], [{:eternal, "~> 1.2", [hex: :eternal, repo: "hexpm", optional: false]}, {:unsafe, "~> 1.0", [hex: :unsafe, repo: "hexpm", optional: false]}], "hexpm"}, From ebee9f59d84c31b755611033d4abe2938201a65e Mon Sep 17 00:00:00 2001 From: rinpatch <rinpatch@sdf.org> Date: Sat, 22 Jun 2019 04:17:04 +0300 Subject: [PATCH 30/48] Ecto tasks: Resolve relative path using the application directory instead of cwd and load the application before doing anything In OTP releases cwd != app directory and the configuration is read only if the application is loaded --- lib/mix/pleroma.ex | 4 ++++ lib/mix/tasks/pleroma/ecto/ecto.ex | 11 ++++++++++- lib/mix/tasks/pleroma/ecto/migrate.ex | 2 ++ lib/mix/tasks/pleroma/ecto/rollback.ex | 2 ++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/mix/pleroma.ex b/lib/mix/pleroma.ex index 548c8a0a4..1b758ea33 100644 --- a/lib/mix/pleroma.ex +++ b/lib/mix/pleroma.ex @@ -9,6 +9,10 @@ def start_pleroma do {:ok, _} = Application.ensure_all_started(:pleroma) end + def load_pleroma do + Application.load(:pleroma) + end + def get_option(options, opt, prompt, defval \\ nil, defname \\ nil) do Keyword.get(options, opt) || shell_prompt(prompt, defval, defname) end diff --git a/lib/mix/tasks/pleroma/ecto/ecto.ex b/lib/mix/tasks/pleroma/ecto/ecto.ex index af09cb289..324f57fdd 100644 --- a/lib/mix/tasks/pleroma/ecto/ecto.ex +++ b/lib/mix/tasks/pleroma/ecto/ecto.ex @@ -9,6 +9,15 @@ defmodule Mix.Tasks.Pleroma.Ecto do def ensure_migrations_path(repo, opts) do path = opts[:migrations_path] || Path.join(source_repo_priv(repo), "migrations") + path = + case Path.type(path) do + :relative -> + Path.join(Application.app_dir(:pleroma), path) + + :absolute -> + path + end + if not File.dir?(path) do raise_missing_migrations(Path.relative_to_cwd(path), repo) end @@ -22,7 +31,7 @@ def ensure_migrations_path(repo, opts) do def source_repo_priv(repo) do config = repo.config() priv = config[:priv] || "priv/#{repo |> Module.split() |> List.last() |> Macro.underscore()}" - Path.join(File.cwd!(), priv) + Path.join(Application.app_dir(:pleroma), priv) end defp raise_missing_migrations(path, repo) do diff --git a/lib/mix/tasks/pleroma/ecto/migrate.ex b/lib/mix/tasks/pleroma/ecto/migrate.ex index 22eafe76f..855c977f6 100644 --- a/lib/mix/tasks/pleroma/ecto/migrate.ex +++ b/lib/mix/tasks/pleroma/ecto/migrate.ex @@ -4,6 +4,7 @@ defmodule Mix.Tasks.Pleroma.Ecto.Migrate do use Mix.Task + import Mix.Pleroma require Logger @shortdoc "Wrapper on `ecto.migrate` task." @@ -37,6 +38,7 @@ defmodule Mix.Tasks.Pleroma.Ecto.Migrate do @impl true def run(args \\ []) do + load_pleroma() {opts, _} = OptionParser.parse!(args, strict: @switches, aliases: @aliases) opts = diff --git a/lib/mix/tasks/pleroma/ecto/rollback.ex b/lib/mix/tasks/pleroma/ecto/rollback.ex index 0033ceba4..2ffb0901c 100644 --- a/lib/mix/tasks/pleroma/ecto/rollback.ex +++ b/lib/mix/tasks/pleroma/ecto/rollback.ex @@ -4,6 +4,7 @@ defmodule Mix.Tasks.Pleroma.Ecto.Rollback do use Mix.Task + import Mix.Pleroma require Logger @shortdoc "Wrapper on `ecto.rollback` task" @@ -36,6 +37,7 @@ defmodule Mix.Tasks.Pleroma.Ecto.Rollback do @impl true def run(args \\ []) do + load_pleroma() {opts, _} = OptionParser.parse!(args, strict: @switches, aliases: @aliases) opts = From 19f16e829d2f5f800483aeb1f48aefca2504d1e6 Mon Sep 17 00:00:00 2001 From: rinpatch <rinpatch@sdf.org> Date: Sat, 22 Jun 2019 04:33:46 +0300 Subject: [PATCH 31/48] Load the application before executing the create task --- lib/pleroma/release_tasks.ex | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/pleroma/release_tasks.ex b/lib/pleroma/release_tasks.ex index d6720cd05..8afabf463 100644 --- a/lib/pleroma/release_tasks.ex +++ b/lib/pleroma/release_tasks.ex @@ -44,6 +44,8 @@ def rollback(args) do end def create do + Application.load(:pleroma) + case @repo.__adapter__.storage_up(@repo.config) do :ok -> IO.puts("The database for #{inspect(@repo)} has been created") From f0fccb75783bcac406133d8cb3d4d3a485189092 Mon Sep 17 00:00:00 2001 From: Alex S <alex.strizhakov@gmail.com> Date: Sat, 22 Jun 2019 09:01:30 +0300 Subject: [PATCH 32/48] fix for int and modules --- lib/pleroma/web/admin_api/config.ex | 11 +++++-- .../admin_api/admin_api_controller_test.exs | 29 +++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/admin_api/config.ex b/lib/pleroma/web/admin_api/config.ex index b7072f050..ddcfc87d5 100644 --- a/lib/pleroma/web/admin_api/config.ex +++ b/lib/pleroma/web/admin_api/config.ex @@ -77,8 +77,15 @@ defp do_convert(values) when is_list(values), do: for(val <- values, do: do_conv defp do_convert({k, v} = value) when is_tuple(value), do: %{k => do_convert(v)} - defp do_convert(value) when is_binary(value) or is_atom(value) or is_map(value), - do: value + defp do_convert(value) when is_binary(value) or is_map(value) or is_number(value), do: value + + defp do_convert(value) when is_atom(value) do + string = to_string(value) + + if String.starts_with?(string, "Elixir."), + do: String.trim_leading(string, "Elixir."), + else: value + end @spec transform(any()) :: binary() def transform(entity) when is_map(entity) do diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index 2a5912645..17a872b21 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -1463,5 +1463,34 @@ test "update config setting & delete", %{conn: conn} do assert Application.get_env(:pleroma, :keyaa1) == "another_value" refute Application.get_env(:pleroma, :keyaa2) end + + test "common config example", %{conn: conn} do + conn = + post(conn, "/api/pleroma/admin/config", %{ + configs: [ + %{ + "key" => "Pleroma.Captcha", + "value" => %{ + "enabled" => ":false", + "method" => "Pleroma.Captcha.Kocaptcha", + "seconds_valid" => "i:60" + } + } + ] + }) + + assert json_response(conn, 200) == %{ + "configs" => [ + %{ + "key" => "Pleroma.Captcha", + "value" => [ + %{"enabled" => false}, + %{"method" => "Pleroma.Captcha.Kocaptcha"}, + %{"seconds_valid" => 60} + ] + } + ] + } + end end end From 642630140702cb22cafc2f2307c2ce2c031c95c7 Mon Sep 17 00:00:00 2001 From: William Pitcock <nenolod@dereferenced.org> Date: Sat, 22 Jun 2019 06:44:47 +0000 Subject: [PATCH 33/48] notifications: fix notification generation for non-create activities in 300d94c62, an Object.normalize() call was introduced. calling Object.normalize() on an activity with a non-object URI (say, a user) causes Really Bad Things to happen. so don't do that. --- lib/pleroma/notification.ex | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex index e25692006..a414afbbf 100644 --- a/lib/pleroma/notification.ex +++ b/lib/pleroma/notification.ex @@ -127,8 +127,7 @@ def dismiss(%{id: user_id} = _user, id) do end end - def create_notifications(%Activity{data: %{"to" => _, "type" => type}} = activity) - when type in ["Create", "Like", "Announce", "Follow"] do + def create_notifications(%Activity{data: %{"to" => _, "type" => "Create"}} = activity) do object = Object.normalize(activity) unless object && object.data["type"] == "Answer" do @@ -140,6 +139,13 @@ def create_notifications(%Activity{data: %{"to" => _, "type" => type}} = activit end end + def create_notifications(%Activity{data: %{"to" => _, "type" => type}} = activity) + when type in ["Like", "Announce", "Follow"] do + users = get_notified_from_activity(activity) + notifications = Enum.map(users, fn user -> create_notification(activity, user) end) + {:ok, notifications} + end + def create_notifications(_), do: {:ok, []} # TODO move to sql, too. From 3ac5ecbac1e00c6f5b59dfd8c120875e22080a09 Mon Sep 17 00:00:00 2001 From: rinpatch <rinpatch@sdf.org> Date: Sat, 22 Jun 2019 12:54:16 +0300 Subject: [PATCH 34/48] Support RUM indexes in the config generator --- lib/mix/tasks/pleroma/instance.ex | 16 ++++++++++++++-- priv/templates/sample_config.eex | 1 + priv/templates/sample_psql.eex | 5 +++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/mix/tasks/pleroma/instance.ex b/lib/mix/tasks/pleroma/instance.ex index c6738dbcc..997eabbeb 100644 --- a/lib/mix/tasks/pleroma/instance.ex +++ b/lib/mix/tasks/pleroma/instance.ex @@ -29,6 +29,7 @@ defmodule Mix.Tasks.Pleroma.Instance do - `--dbname DBNAME` - the name of the database to use - `--dbuser DBUSER` - the user (aka role) to use for the database connection - `--dbpass DBPASS` - the password to use for the database connection + - `--rum Y/N` - Whether to enable RUM indexes - `--indexable Y/N` - Allow/disallow indexing site by search engines - `--db-configurable Y/N` - Allow/disallow configuring instance from admin part - `--uploads-dir` - the directory uploads go in when using a local uploader @@ -51,6 +52,7 @@ def run(["gen" | rest]) do dbname: :string, dbuser: :string, dbpass: :string, + rum: :string, indexable: :string, db_configurable: :string, uploads_dir: :string, @@ -136,6 +138,14 @@ def run(["gen" | rest]) do "autogenerated" ) + rum_enabled = + get_option( + options, + :rum, + "Would you like to use RUM indices?", + "n" + ) === "y" + uploads_dir = get_option( options, @@ -175,7 +185,8 @@ def run(["gen" | rest]) do web_push_private_key: Base.url_encode64(web_push_private_key, padding: false), db_configurable?: db_configurable?, static_dir: static_dir, - uploads_dir: uploads_dir + uploads_dir: uploads_dir, + rum_enabled: rum_enabled ) result_psql = @@ -183,7 +194,8 @@ def run(["gen" | rest]) do template_dir <> "/sample_psql.eex", dbname: dbname, dbuser: dbuser, - dbpass: dbpass + dbpass: dbpass, + rum_enabled: rum_enabled ) shell_info( diff --git a/priv/templates/sample_config.eex b/priv/templates/sample_config.eex index 8cadb995e..2d4a49328 100644 --- a/priv/templates/sample_config.eex +++ b/priv/templates/sample_config.eex @@ -41,6 +41,7 @@ config :web_push_encryption, :vapid_details, public_key: "<%= web_push_public_key %>", private_key: "<%= web_push_private_key %>" +config :pleroma, :database, rum_enabled: <%= rum_enabled %> config :pleroma, :instance, static_dir: "<%= static_dir %>" config :pleroma, Pleroma.Uploaders.Local, uploads: "<%= uploads_dir %>" diff --git a/priv/templates/sample_psql.eex b/priv/templates/sample_psql.eex index f0ac05e57..627839a68 100644 --- a/priv/templates/sample_psql.eex +++ b/priv/templates/sample_psql.eex @@ -5,3 +5,8 @@ CREATE DATABASE <%= dbname %> OWNER <%= dbuser %>; CREATE EXTENSION IF NOT EXISTS citext; CREATE EXTENSION IF NOT EXISTS pg_trgm; CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; +<%= if rum_enabled do + "CREATE EXTENSION IF NOT EXISTS rum;" +else +"" +end %> From 58c4d5312bcf461fdff2984bad61d40cd1f5677a Mon Sep 17 00:00:00 2001 From: lain <lain@soykaf.club> Date: Sat, 22 Jun 2019 15:12:57 +0200 Subject: [PATCH 35/48] Revert "Revert "Merge branch 'fix/ogp-title' into 'develop'"" This reverts commit b6af80f769195b5047ee8da07166f022c2e29b0a. --- .../rich_media/parsers/meta_tags_parser.ex | 33 ++++++++++++++----- .../rich_media/ogp-missing-title.html | 12 +++++++ test/web/rich_media/parser_test.exs | 22 +++++++++++++ 3 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 test/fixtures/rich_media/ogp-missing-title.html diff --git a/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex b/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex index 4a7c5eae0..82f1cce29 100644 --- a/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex +++ b/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex @@ -1,15 +1,19 @@ defmodule Pleroma.Web.RichMedia.Parsers.MetaTagsParser do def parse(html, data, prefix, error_message, key_name, value_name \\ "content") do - with elements = [_ | _] <- get_elements(html, key_name, prefix), - meta_data = - Enum.reduce(elements, data, fn el, acc -> - attributes = normalize_attributes(el, prefix, key_name, value_name) + meta_data = + html + |> get_elements(key_name, prefix) + |> Enum.reduce(data, fn el, acc -> + attributes = normalize_attributes(el, prefix, key_name, value_name) - Map.merge(acc, attributes) - end) do - {:ok, meta_data} + Map.merge(acc, attributes) + end) + |> maybe_put_title(html) + + if Enum.empty?(meta_data) do + {:error, error_message} else - _e -> {:error, error_message} + {:ok, meta_data} end end @@ -27,4 +31,17 @@ defp normalize_attributes(html_node, prefix, key_name, value_name) do %{String.to_atom(data[key_name]) => data[value_name]} end + + defp maybe_put_title(%{title: _} = meta, _), do: meta + + defp maybe_put_title(meta, html) do + case get_page_title(html) do + "" -> meta + title -> Map.put_new(meta, :title, title) + end + end + + defp get_page_title(html) do + Floki.find(html, "title") |> Floki.text() + end end diff --git a/test/fixtures/rich_media/ogp-missing-title.html b/test/fixtures/rich_media/ogp-missing-title.html new file mode 100644 index 000000000..fcdbedfc6 --- /dev/null +++ b/test/fixtures/rich_media/ogp-missing-title.html @@ -0,0 +1,12 @@ +<html prefix="og: http://ogp.me/ns#"> + +<head> + <title>The Rock (1996) + + + + + + + diff --git a/test/web/rich_media/parser_test.exs b/test/web/rich_media/parser_test.exs index 3a9cc1854..a49ba9549 100644 --- a/test/web/rich_media/parser_test.exs +++ b/test/web/rich_media/parser_test.exs @@ -9,6 +9,15 @@ defmodule Pleroma.Web.RichMedia.ParserTest do } -> %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/ogp.html")} + %{ + method: :get, + url: "http://example.com/ogp-missing-title" + } -> + %Tesla.Env{ + status: 200, + body: File.read!("test/fixtures/rich_media/ogp-missing-title.html") + } + %{ method: :get, url: "http://example.com/twitter-card" @@ -51,6 +60,19 @@ test "parses ogp" do }} end + test "falls back to when ogp:title is missing" do + assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/ogp-missing-title") == + {:ok, + %{ + image: "http://ia.media-imdb.com/images/rock.jpg", + title: "The Rock (1996)", + description: + "Directed by Michael Bay. With Sean Connery, Nicolas Cage, Ed Harris, John Spencer.", + type: "video.movie", + url: "http://www.imdb.com/title/tt0117500/" + }} + end + test "parses twitter card" do assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/twitter-card") == {:ok, From 0e415921cd46c2efdc551bc7bcff6fd7f1123735 Mon Sep 17 00:00:00 2001 From: lain <lain@soykaf.club> Date: Sat, 22 Jun 2019 16:22:59 +0200 Subject: [PATCH 36/48] Rich Media Parser: Do not return just a title if nothing else is there. --- .../rich_media/parsers/meta_tags_parser.ex | 4 +- test/fixtures/rich_media/non_ogp_embed.html | 1479 +++++++++++++++++ test/web/rich_media/parser_test.exs | 11 + 3 files changed, 1493 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/rich_media/non_ogp_embed.html diff --git a/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex b/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex index 82f1cce29..fb79630e4 100644 --- a/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex +++ b/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex @@ -34,13 +34,15 @@ defp normalize_attributes(html_node, prefix, key_name, value_name) do defp maybe_put_title(%{title: _} = meta, _), do: meta - defp maybe_put_title(meta, html) do + defp maybe_put_title(meta, html) when meta != %{} do case get_page_title(html) do "" -> meta title -> Map.put_new(meta, :title, title) end end + defp maybe_put_title(meta, _), do: meta + defp get_page_title(html) do Floki.find(html, "title") |> Floki.text() end diff --git a/test/fixtures/rich_media/non_ogp_embed.html b/test/fixtures/rich_media/non_ogp_embed.html new file mode 100644 index 000000000..62a1d677a --- /dev/null +++ b/test/fixtures/rich_media/non_ogp_embed.html @@ -0,0 +1,1479 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta http-equiv="CACHE-CONTROL" content="NO-CACHE"> + <meta charset="UTF-8"> + <link rel="apple-touch-icon-precomposed" sizes="57x57" href="https://img.mfcimg.com/images/favicons/apple-touch-icon-57x57.png?nc=1" /> +<link rel="apple-touch-icon-precomposed" sizes="114x114" href="https://img.mfcimg.com/images/favicons/apple-touch-icon-114x114.png?nc=1" /> +<link rel="apple-touch-icon-precomposed" sizes="72x72" href="https://img.mfcimg.com/images/favicons/apple-touch-icon-72x72.png?nc=1" /> +<link rel="apple-touch-icon-precomposed" sizes="144x144" href="https://img.mfcimg.com/images/favicons/apple-touch-icon-144x144.png?nc=1" /> +<link rel="apple-touch-icon-precomposed" sizes="60x60" href="https://img.mfcimg.com/images/favicons/apple-touch-icon-60x60.png?nc=1" /> +<link rel="apple-touch-icon-precomposed" sizes="120x120" href="https://img.mfcimg.com/images/favicons/apple-touch-icon-120x120.png?nc=1" /> +<link rel="apple-touch-icon-precomposed" sizes="76x76" href="https://img.mfcimg.com/images/favicons/apple-touch-icon-76x76.png?nc=1" /> +<link rel="apple-touch-icon-precomposed" sizes="152x152" href="https://img.mfcimg.com/images/favicons/apple-touch-icon-152x152.png?nc=1" /> +<link rel="icon" type="image/png" href="https://img.mfcimg.com/images/favicons/favicon-196x196.png?nc=1" sizes="196x196" /> +<link rel="icon" type="image/png" href="https://img.mfcimg.com/images/favicons/favicon-96x96.png?nc=1" sizes="96x96" /> +<link rel="icon" type="image/png" href="https://img.mfcimg.com/images/favicons/favicon-32x32.png?nc=1" sizes="32x32" /> +<link rel="icon" type="image/png" href="https://img.mfcimg.com/images/favicons/favicon-16x16.png?nc=1" sizes="16x16" /> +<link rel="icon" type="image/png" href="https://img.mfcimg.com/images/favicons/favicon-128.png?nc=1" sizes="128x128" /> +<meta name="application-name" content="MyFreeCams.com Profiles" /> +<meta name="msapplication-TileColor" content="#008000" /> +<meta name="msapplication-TileImage" content="https://img.mfcimg.com/images/favicons/mstile-144x144.png?nc=1" /> +<meta name="msapplication-square70x70logo" content="https://img.mfcimg.com/images/favicons/mstile-70x70.png?nc=1" /> +<meta name="msapplication-square150x150logo" content="https://img.mfcimg.com/images/favicons/mstile-150x150.png?nc=1" /> +<meta name="msapplication-wide310x150logo" content="https://img.mfcimg.com/images/favicons/mstile-310x150.png?nc=1" /> +<meta name="msapplication-square310x310logo" content="https://img.mfcimg.com/images/favicons/mstile-310x310.png?nc=1" /> + + <script src="https://img.mfcimg.com/profiles/jquery/jquery-1.9.1.min.js"></script> +<script src="https://img.mfcimg.com/profiles/jquery/jquery-ui-1.9.2.min.js"></script> +<script src="https://img.mfcimg.com/profiles/jquery/jquery.ui.touch-punch.min.js"></script> <script> + var g_hPlatform = { "id": 1, "domain": "myfreecams.com", "name": "MyFreeCams", "code": "mfc", "image_url": "https://img.mfcimg.com/" }; + + try { document.domain = 'myfreecams.com'; } catch (e) {} + + var MfcAssets = { + images: "/bundles/mfcprofile/vendor/img/", + urls: { + www: "https://www.myfreecams.com/", + new_comments: "/BlueAngelLove/comments/since/0" + } + }; + + var MfcPageVars = { + userId: 0, + accessLevel: 0, + token: "xIqyjzUBSrt6Rbl_su7UOrDxNZJlZNc4nsWh6eXxDkg", + profileState: {"number":127,"string":"Offline"}, + serverTime: {"unixTime":1561209909,"time":"6:25am PDT","dst":1}, + profileUsername: "BlueAngelLove", + admirers: 4719, + username: "", + userPhotoUrl: "", + vToken: "4c4ea23b221f89b73c964b7f99a50f78", + avatarRev: 0, + avgRating: {"rating_count":7060,"rating_average":"4.8681"}, + rating: 0 +}; + + + function MfcProfilePage( jQuery ) + { + var _self = this; + + _self.$ = jQuery; + + _self.token = ( typeof(MfcPageVars) !== 'undefined' && MfcPageVars.token ) ? MfcPageVars.token : _self.$('meta[name=token]').attr('content'); + + _self.beforeDomReady(); + + + _self.$(function(){ _self.afterDomReady(); }); + }; + + MfcProfilePage.prototype.beforeDomReady = function() + { + var _self = this; + var $ = _self.$; + + if ( _self.token ) + { + $.ajaxSetup({ + beforeSend: function(xhr, settings) { + if ( settings.type === 'GET' || settings.crossDomain ) + return; + + if ( $.type(settings.data) === 'object' && $.type(settings.data.append) === 'function' ) + { + settings.data.append('_token', _self.token); + } + else if ( $.type(settings.data) === 'string' && settings.data.indexOf('_token=') === -1 ) + { + if ( settings.data.length === 0 ) + { + xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8"); + } else { + settings.data += '&'; + } + + settings.data += encodeURIComponent('_token') + '=' + encodeURIComponent(_self.token); + } + } + }); + + $(document).on('submit', 'form', function(e) + { + if ( ! $(this).find('#_token').length && ! $(this).data('mfc-no-token') ) + $(this).append($('<input type="hidden" name="_token" id="_token" value="' + _self.token + '">')); + }); + } + }; + + MfcProfilePage.prototype.afterDomReady = function() + { + var _self = this; + var $ = this.$; + + var page = $('body').data('mfc-page'); + + if ( $.isFunction(_self[page]) ) + _self[page](); + }; + + new MfcProfilePage(jQuery); +</script> + + <link href="https://img.mfcimg.com/profiles/prod/22793316144741120/css/profiles.css?nc=22793316144741120" type="text/css" rel="stylesheet"> + + <title>BlueAngelLove's Homepage on MyFreeCams.com + + + + + + + + + + + + + +
+ +
+ + +
+ +
+ + + + + + + + + + + +
Your Time:
MyFreeCams Time:
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+ +
+
+ BlueAngelLove +
+ +
+
+ Status: +
+
+ +  - Model - + +
+
+ + + +
+ + Profile Headline: + + + + Enjoy and Love + +
+ + + + + + + + +
+ + Last Broadcast: + + + +
+ + + + + +
+ + Last Updated: + + + +
+ + + +
+
+
+
+ +
+ +
+
+
+
+ + +
+ My Most Recent Pictures +
+
+ +
+
+
+
+ +
+
+
+ +
+ +
+ About Me +
+ + + +
+ + Username: + + + + BlueAngelLove +
+ + + + + + + + +
+ + Gender: + + + + Female +
+ + + + + +
+ + Body Type: + + + + Athletic +
+ + + + + +
+ + Ethnicity: + + + + Other +
+ + + + + +
+ + Hair: + + + + Brown +
+ + + + + +
+ + Eyes: + + + + Blue +
+ + + + + +
+ + Weight: + + + + 45 kilos +
+ + + + + +
+ + Height: + + + + 165 centimeters +
+ + + + + +
+ + Age: + + + + 34 +
+ + + + + +
+ + City: + + + + Mountains +
+ + + + + + + + + + + +
+ + Sexual Preference: + + + + Bisexual +
+ + + + + +
+ + Smoke: + + + + Non Smoker +
+ + + + + +
+ + Drink: + + + + Non Drinker +
+ + + + + +
+ + Drugs: + + + + Never +
+ + + + + + + + +
+ + Occupation/Major: + + + + Guide +
+ + + + + + + + +
+ + Favorite Food: + + + + Chocolate +
+ + + + + +
+ + Pets: + + + + I dont like pets +
+ + + + + +
+ + Automobile: + + + + Ford +
+ + + + + +
+ + About Me: + + + + DMCA.com Protection Statuswebsite counter +
+
+
BlueAngelLove
+
+ CONTACT ME + +
+
Angel
+
+
+ I Want To Be Seduced +
+
+
+ I Love Flirt +
+
+
+ I Want Be Part Of Your life +
+
+
+ I Love Dancing +
+
+
+ I Love Erotic Chats +
+
+
+ I am Funny +
+
+
+ I Enjoy C2C +
+
+
+ I Love Sex and Feel u +
+
+
+
+
+
June Month Contestst-Top 3 tippers Get A gift mailed,videos,pictures and will my right hand full month and room helpers as well (be my men for a month or who knows...maybe forever) *** +Love Ya Angels*** We are currently ranked #2200 overall
+

Get Listed on My Wall of Fame

+
+
+ +

ElmosEgo 6570 Tks

+

Rw2lite 4800 Tks

+

Toastboi 2093 Tks

+

Acoolahole 1850 Tks

+

Gonodog 1299 Tks

+

Pumpy_G 800 Tks

+

Fowser 690 Tks

+

Aquanautic 600 Tks

+

Daveonthelake 535 Tks

+

Wildpervert2 500 Tks

+

Cloud10101 350 Tks

+

Branson102 337 Tks

+

TheCopperhead 329 Tks

+

Mouche99 250 Tks

+

The88drummer 233 Tks

+

Stringtrees86 199 Tks

+

Blazegordon 183 Tks

+

Waiting_4 183 Tks

+

Sam_mie 170 Tks

+

UtterTripe 150 Tks

+

Darth_penguin 150 Tks

+

Playfullpurv 120 Tks

+

Jordnsprings 103 Tks

+

Travelinlover 100 Tks

+

Da884 100 Tks

+ +
+ cory1 +
+
May Contest winners - Each month Top 3 tippers Get A gift mailed, videos and pictures - Love Ya Angels
+

Get Listed on My Wall of Fame

+
+
+

Rw2lite

+

ElmosEgo

+

TJuonesWoah

+ +
+ cory1 +
+
Menu Per Day
+

LOVE YA ANGELS

+
+
+

Monday - Outfits Strip

+

Tusday - Raffle

+

Wensday - Gamblers Night

+

Thusday - Orgasmic Vibra or Dildos

+

Friday - Wheel/Treat or Trick

+

Saturday - Phrase

+

Sunday - Keno and Boyfriend choice

+ + + +
+
You have to tip to get listed above so do your best to get on my exclusive Top Tippers List
+
+
+ Whats-App-Image-2019-01-09-at-10-35-17 + 45280406-1564895203655742-4887638015087738880-n + best + Whats-App-Image-2019-01-09-at-10-35-16 + + + + + + + + + + + + + + + + +
+
+
+
+ +Whats-App-Image-2019-05-12-at-05-55-35-1lovense-level
+
+
+
+
+camgirl xxx amateur sex sexy
+
+
+
+
+39741863-284302529029606-7659956026455621632-n +
+Let's Fun Laugh Live
I am Jullia from Transylvania and is a pleasure to have u around Enjoy me and my room

BlueAngelLove
I am good, but not an angel. I do sin, but I am not the devil. I am just a girl in a big world trying to find someone to love and be loved

+20171114-113848 +
~~~Live~Laugh~Love~~~Flag Counter +
+
+ + + + + +
+ + Tags: + + + + natural, blue eyes, toys, funny, oil, shower, fetish, costume, sex, natural, masturbation, finger, dp, anal, girl next door, romantic, naughty, pervert, open mind, play roles, horny, playful, smiley, lover, sweet, sexy, beautiful, hot, shaved, friendly, pussy, skype +
+ + + +
+ +
+ +
+ Friends +
+ +
+ + Average Rating: + + + + + +
+ +
+ + Rate BlueAngelLove: + + + + +
+ +
+ + Admirers: +
+
+ + (admire) +
+ +
+ + + +
+ + Favorite Models: + + + BlueAngelLove + +
+
+
+
+ +
+
+
+
+
+ +
+ Password Protected Galleries +
+ + + +
+
+ +
+ +
+
+
+
+ +
+ Photo Galleries +
+ + + +
+
+ +
+ +
+
+
+
+ +
+ My Schedule +
+
+ + Sunday + + + + I'm + Always + online from + 3:30 am + until + 7:00 am + +
+
+ + Monday + + + + I'm + Always + online from + 3:30 pm + until + 7:00 am + +
+
+ + Tuesday + + + + I'm + Always + online from + 3:30 pm + until + 7:00 am + +
+
+ + Wednesday + + + + I'm + Always + online from + 3:30 pm + until + 7:00 am + +
+
+ + Thursday + + + + I'm + Always + online from + 3:30 pm + until + 7:00 am + +
+
+ + Friday + + + + I'm + Always + online from + 3:30 pm + until + 7:00 am + +
+
+ + Saturday + + + + I'm + Always + online from + 3:30 pm + until + 7:00 am + +
+ +
+
+ +
+
+
+
+
+ +
+ Interests & Hobbies +
+ + + +
+ + Meaning of Life: + + + + Meaning of Life .To Love and Be Loved and keep what i have and who i have in my life right now +
+ + + + + +
+ + Five Things I Can't Live Without: + + + + -family +-phone +-sex +-love +-money +
+ + + + + +
+ + Favorite Books: + + + + My fav. book was Count of Monte Cristo +
+ + + + + +
+ + What I Like To Do For Fun: + + + + In my free time I dance, play games , go out and travel +
+ + + + + +
+ + Favorite Songs: + + + +
+
+ + + + + +
+ + Favorite Movies: + + + + +
+ + + + + + + + + + + +
+ + Hobbies: + + + + My Amazon Wishlistuk +
+ + + + + +
+ + Talents: + + + + i love to Dance , Travel and Cook +
+ + + + + +
+ + Perfect Mate: + + + + Perfect mate is Magic Mike +
+ + + + + +
+ + Perfect Date: + + + + Perfect Date .You and Me , romatic dinner and wild sex +
+ + + + + +
+ + Turn Ons/Offs: + + + + I hate Liers and Rude Peoples +
+ + + + + +
+ + Best Reason to Get to Know Me: + + + + My dear men, please dont put a label on medont make me a category before you get to know me! +
+ + + +
+
+ +
+ +
+ + + + +
+
+

Send MFC Mail to BlueAngelLove

+
+ +
+
+ + + + + + \ No newline at end of file diff --git a/test/web/rich_media/parser_test.exs b/test/web/rich_media/parser_test.exs index a49ba9549..bc48341ca 100644 --- a/test/web/rich_media/parser_test.exs +++ b/test/web/rich_media/parser_test.exs @@ -9,6 +9,12 @@ defmodule Pleroma.Web.RichMedia.ParserTest do } -> %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/ogp.html")} + %{ + method: :get, + url: "http://example.com/non-ogp" + } -> + %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/non_ogp_embed.html")} + %{ method: :get, url: "http://example.com/ogp-missing-title" @@ -47,6 +53,11 @@ test "returns error when no metadata present" do assert {:error, _} = Pleroma.Web.RichMedia.Parser.parse("http://example.com/empty") end + test "doesn't just add a title" do + assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/non-ogp") == + {:error, "Found metadata was invalid or incomplete: %{}"} + end + test "parses ogp" do assert Pleroma.Web.RichMedia.Parser.parse("http://example.com/ogp") == {:ok, From 410add1c30d230e86c22de4e54bb9999de980b16 Mon Sep 17 00:00:00 2001 From: Alex S Date: Sat, 22 Jun 2019 17:30:53 +0300 Subject: [PATCH 37/48] support for tuples with more than 2 values --- docs/api/admin_api.md | 7 +- lib/pleroma/web/admin_api/config.ex | 56 ++++---- .../admin_api/admin_api_controller_test.exs | 120 +++++++++++++++++- test/web/admin_api/config_test.exs | 75 +++++++++++ 4 files changed, 230 insertions(+), 28 deletions(-) diff --git a/docs/api/admin_api.md b/docs/api/admin_api.md index 5dcc8d059..63af33821 100644 --- a/docs/api/admin_api.md +++ b/docs/api/admin_api.md @@ -580,6 +580,8 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret Module name can be passed as string, which starts with `Pleroma`, e.g. `"Pleroma.Upload"`. Atom or boolean value can be passed with `:` in the beginning, e.g. `":true"`, `":upload"`. Integer with `i:`, e.g. `"i:150"`. +Tuple with more than 2 values with `{"tuple": ["first_val", Pleroma.Module, []]}`. +`{"tuple": ["some_string", "Pleroma.Some.Module", []]}` will be converted to `{"some_string", Pleroma.Some.Module, []}`. Compile time settings (need instance reboot): - all settings by this keys: @@ -619,6 +621,9 @@ Compile time settings (need instance reboot): "follow_redirect": ":true", "pool": ":upload" } + }, + "dispatch": { + "tuple": ["/api/v1/streaming", "Pleroma.Web.MastodonAPI.WebsocketHandler", []] } } } @@ -632,7 +637,7 @@ Compile time settings (need instance reboot): configs: [ { "key": string, - "value": string or {} or [] + "value": string or {} or [] or {"tuple": []} } ] } diff --git a/lib/pleroma/web/admin_api/config.ex b/lib/pleroma/web/admin_api/config.ex index ddcfc87d5..2e149bf25 100644 --- a/lib/pleroma/web/admin_api/config.ex +++ b/lib/pleroma/web/admin_api/config.ex @@ -77,6 +77,8 @@ defp do_convert(values) when is_list(values), do: for(val <- values, do: do_conv defp do_convert({k, v} = value) when is_tuple(value), do: %{k => do_convert(v)} + defp do_convert(value) when is_tuple(value), do: %{"tuple" => do_convert(Tuple.to_list(value))} + defp do_convert(value) when is_binary(value) or is_map(value) or is_number(value), do: value defp do_convert(value) when is_atom(value) do @@ -108,11 +110,16 @@ def transform(entity), do: :erlang.term_to_binary(entity) defp do_transform(%Regex{} = value) when is_map(value), do: value + defp do_transform(%{"tuple" => [k, values] = entity}) when length(entity) == 2 do + {do_transform(k), do_transform(values)} + end + + defp do_transform(%{"tuple" => values}) do + Enum.reduce(values, {}, fn val, acc -> Tuple.append(acc, do_transform(val)) end) + end + defp do_transform(value) when is_map(value) do - values = - for {key, val} <- value, - into: [], - do: {String.to_atom(key), do_transform(val)} + values = for {key, val} <- value, into: [], do: {String.to_atom(key), do_transform(val)} Enum.sort(values) end @@ -124,28 +131,27 @@ defp do_transform(value) when is_list(value) do defp do_transform(entity) when is_list(entity) and length(entity) == 1, do: hd(entity) defp do_transform(value) when is_binary(value) do - value = String.trim(value) - - case String.length(value) do - 0 -> - nil - - _ -> - cond do - String.starts_with?(value, "Pleroma") -> - String.to_existing_atom("Elixir." <> value) - - String.starts_with?(value, ":") -> - String.replace(value, ":", "") |> String.to_existing_atom() - - String.starts_with?(value, "i:") -> - String.replace(value, "i:", "") |> String.to_integer() - - true -> - value - end - end + String.trim(value) + |> do_transform_string() end defp do_transform(value), do: value + + defp do_transform_string(value) when byte_size(value) == 0, do: nil + + defp do_transform_string(value) do + cond do + String.starts_with?(value, "Pleroma") or String.starts_with?(value, "Phoenix") -> + String.to_existing_atom("Elixir." <> value) + + String.starts_with?(value, ":") -> + String.replace(value, ":", "") |> String.to_existing_atom() + + String.starts_with?(value, "i:") -> + String.replace(value, "i:", "") |> String.to_integer() + + true -> + value + end + end end diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index 17a872b21..49889d6d7 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -1343,6 +1343,8 @@ test "with settings in db", %{conn: conn} do Application.delete_env(:pleroma, :key4) Application.delete_env(:pleroma, :keyaa1) Application.delete_env(:pleroma, :keyaa2) + Application.delete_env(:pleroma, Pleroma.Web.Endpoint.NotReal) + Application.delete_env(:pleroma, Pleroma.Captcha.NotReal) :ok = File.rm(temp_file) end) @@ -1469,7 +1471,7 @@ test "common config example", %{conn: conn} do post(conn, "/api/pleroma/admin/config", %{ configs: [ %{ - "key" => "Pleroma.Captcha", + "key" => "Pleroma.Captcha.NotReal", "value" => %{ "enabled" => ":false", "method" => "Pleroma.Captcha.Kocaptcha", @@ -1482,7 +1484,7 @@ test "common config example", %{conn: conn} do assert json_response(conn, 200) == %{ "configs" => [ %{ - "key" => "Pleroma.Captcha", + "key" => "Pleroma.Captcha.NotReal", "value" => [ %{"enabled" => false}, %{"method" => "Pleroma.Captcha.Kocaptcha"}, @@ -1492,5 +1494,119 @@ test "common config example", %{conn: conn} do ] } end + + test "tuples with more than two values", %{conn: conn} do + conn = + post(conn, "/api/pleroma/admin/config", %{ + configs: [ + %{ + "key" => "Pleroma.Web.Endpoint.NotReal", + "value" => [ + %{ + "http" => %{ + "dispatch" => [ + %{ + "tuple" => [ + ":_", + [ + %{ + "tuple" => [ + "/api/v1/streaming", + "Pleroma.Web.MastodonAPI.WebsocketHandler", + [] + ] + }, + %{ + "tuple" => [ + "/websocket", + "Phoenix.Endpoint.CowboyWebSocket", + %{ + "tuple" => [ + "Phoenix.Transports.WebSocket", + %{ + "tuple" => [ + "Pleroma.Web.Endpoint", + "Pleroma.Web.UserSocket", + [] + ] + } + ] + } + ] + }, + %{ + "tuple" => [ + ":_", + "Phoenix.Endpoint.Cowboy2Handler", + %{ + "tuple" => ["Pleroma.Web.Endpoint", []] + } + ] + } + ] + ] + } + ] + } + } + ] + } + ] + }) + + assert json_response(conn, 200) == %{ + "configs" => [ + %{ + "key" => "Pleroma.Web.Endpoint.NotReal", + "value" => [ + %{ + "http" => %{ + "dispatch" => %{ + "_" => [ + %{ + "tuple" => [ + "/api/v1/streaming", + "Pleroma.Web.MastodonAPI.WebsocketHandler", + [] + ] + }, + %{ + "tuple" => [ + "/websocket", + "Phoenix.Endpoint.CowboyWebSocket", + %{ + "Elixir.Phoenix.Transports.WebSocket" => %{ + "tuple" => [ + "Pleroma.Web.Endpoint", + "Pleroma.Web.UserSocket", + [] + ] + } + } + ] + }, + %{ + "tuple" => [ + "_", + "Phoenix.Endpoint.Cowboy2Handler", + %{"Elixir.Pleroma.Web.Endpoint" => []} + ] + } + ] + } + } + } + ] + } + ] + } + end end end + +# Needed for testing +defmodule Pleroma.Web.Endpoint.NotReal do +end + +defmodule Pleroma.Captcha.NotReal do +end diff --git a/test/web/admin_api/config_test.exs b/test/web/admin_api/config_test.exs index a2fedca40..39050c276 100644 --- a/test/web/admin_api/config_test.exs +++ b/test/web/admin_api/config_test.exs @@ -179,5 +179,80 @@ test "complex map with sigil" do assert Config.from_binary(binary) == [federated_timeline_removal: [], reject: [~r/comp[lL][aA][iI][nN]er/], replace: []] end + + test "complex map with tuples with more than 2 values" do + binary = + Config.transform(%{ + "http" => %{ + "dispatch" => [ + %{ + "tuple" => [ + ":_", + [ + %{ + "tuple" => [ + "/api/v1/streaming", + "Pleroma.Web.MastodonAPI.WebsocketHandler", + [] + ] + }, + %{ + "tuple" => [ + "/websocket", + "Phoenix.Endpoint.CowboyWebSocket", + %{ + "tuple" => [ + "Phoenix.Transports.WebSocket", + %{"tuple" => ["Pleroma.Web.Endpoint", "Pleroma.Web.UserSocket", []]} + ] + } + ] + }, + %{ + "tuple" => [ + ":_", + "Phoenix.Endpoint.Cowboy2Handler", + %{ + "tuple" => ["Pleroma.Web.Endpoint", []] + } + ] + } + ] + ] + } + ] + } + }) + + assert binary == + :erlang.term_to_binary( + http: [ + dispatch: [ + _: [ + {"/api/v1/streaming", Pleroma.Web.MastodonAPI.WebsocketHandler, []}, + {"/websocket", Phoenix.Endpoint.CowboyWebSocket, + {Phoenix.Transports.WebSocket, + {Pleroma.Web.Endpoint, Pleroma.Web.UserSocket, []}}}, + {:_, Phoenix.Endpoint.Cowboy2Handler, {Pleroma.Web.Endpoint, []}} + ] + ] + ] + ) + + assert Config.from_binary(binary) == [ + http: [ + dispatch: [ + {:_, + [ + {"/api/v1/streaming", Pleroma.Web.MastodonAPI.WebsocketHandler, []}, + {"/websocket", Phoenix.Endpoint.CowboyWebSocket, + {Phoenix.Transports.WebSocket, + {Pleroma.Web.Endpoint, Pleroma.Web.UserSocket, []}}}, + {:_, Phoenix.Endpoint.Cowboy2Handler, {Pleroma.Web.Endpoint, []}} + ]} + ] + ] + ] + end end end From ab79a18b7765da0032de7f6bea43875764573e80 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Sat, 22 Jun 2019 19:24:21 +0200 Subject: [PATCH 38/48] docs/clients.md: Remove tootdon Of course a proprietary client would send the messages home :D --- docs/clients.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/docs/clients.md b/docs/clients.md index dc3e83bcc..30358c210 100644 --- a/docs/clients.md +++ b/docs/clients.md @@ -49,13 +49,6 @@ Feel free to contact us to be added to this list! - Platforms: iOS, Android - Features: No Streaming -### Tootdon -- Homepage: , -- Source Code: ??? -- Contact: [@tootdon@mstdn.jp](https://mstdn.jp/users/tootdon) -- Platforms: Android, iOS -- Features: No Streaming - ### Tusky - Homepage: - Source Code: From 982cad0268898851ff87187eaf0d0b7011b1c96a Mon Sep 17 00:00:00 2001 From: Alex S Date: Sun, 23 Jun 2019 08:16:16 +0300 Subject: [PATCH 39/48] support for config groups --- docs/api/admin_api.md | 8 +++-- lib/mix/tasks/pleroma/config.ex | 6 ++-- lib/pleroma/config/transfer_task.ex | 19 ++++++++++-- .../web/admin_api/admin_api_controller.ex | 8 ++--- lib/pleroma/web/admin_api/config.ex | 29 ++++++++++-------- .../web/admin_api/views/config_view.ex | 1 + ...20190622151019_add_group_key_to_config.exs | 12 ++++++++ test/config/transfer_task_test.exs | 22 ++++++++++++-- test/support/factory.ex | 1 + test/tasks/config_test.exs | 19 ++++++++---- .../admin_api/admin_api_controller_test.exs | 30 +++++++++++++++++-- test/web/admin_api/config_test.exs | 20 ++++++------- 12 files changed, 131 insertions(+), 44 deletions(-) create mode 100644 priv/repo/migrations/20190622151019_add_group_key_to_config.exs diff --git a/docs/api/admin_api.md b/docs/api/admin_api.md index 63af33821..c05a353d7 100644 --- a/docs/api/admin_api.md +++ b/docs/api/admin_api.md @@ -568,8 +568,9 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret { configs: [ { + "group": string, "key": string, - "value": string or {} or [] + "value": string or {} or [] or {"tuple": []} } ] } @@ -597,8 +598,9 @@ Compile time settings (need instance reboot): - Method `POST` - Params: - `configs` => [ + - `group` (string) - `key` (string) - - `value` (string, [], {}) + - `value` (string, [], {} or {"tuple": []}) - `delete` = true (optional, if parameter must be deleted) ] @@ -608,6 +610,7 @@ Compile time settings (need instance reboot): { configs: [ { + "group": "pleroma", "key": "Pleroma.Upload", "value": { "uploader": "Pleroma.Uploaders.Local", @@ -636,6 +639,7 @@ Compile time settings (need instance reboot): { configs: [ { + "group": string, "key": string, "value": string or {} or [] or {"tuple": []} } diff --git a/lib/mix/tasks/pleroma/config.ex b/lib/mix/tasks/pleroma/config.ex index cc5425362..4ed2c9789 100644 --- a/lib/mix/tasks/pleroma/config.ex +++ b/lib/mix/tasks/pleroma/config.ex @@ -24,7 +24,7 @@ def run(["migrate_to_db"]) do |> Enum.reject(fn {k, _v} -> k in [Pleroma.Repo, :env] end) |> Enum.each(fn {k, v} -> key = to_string(k) |> String.replace("Elixir.", "") - {:ok, _} = Config.update_or_create(%{key: key, value: v}) + {:ok, _} = Config.update_or_create(%{group: "pleroma", key: key, value: v}) Mix.shell().info("#{key} is migrated.") end) @@ -51,7 +51,9 @@ def run(["migrate_from_db", env]) do IO.write( file, - "config :pleroma, #{config.key}#{mark} #{inspect(Config.from_binary(config.value))}\r\n" + "config :#{config.group}, #{config.key}#{mark} #{ + inspect(Config.from_binary(config.value)) + }\r\n" ) {:ok, _} = Repo.delete(config) diff --git a/lib/pleroma/config/transfer_task.ex b/lib/pleroma/config/transfer_task.ex index a8cbfa52a..cf880aa22 100644 --- a/lib/pleroma/config/transfer_task.ex +++ b/lib/pleroma/config/transfer_task.ex @@ -11,8 +11,17 @@ def start_link do def load_and_update_env do if Pleroma.Config.get([:instance, :dynamic_configuration]) and Ecto.Adapters.SQL.table_exists?(Pleroma.Repo, "config") do - Pleroma.Repo.all(Config) - |> Enum.each(&update_env(&1)) + for_restart = + Pleroma.Repo.all(Config) + |> Enum.map(&update_env(&1)) + + # We need to restart applications for loaded settings take effect + for_restart + |> Enum.reject(&(&1 in [:pleroma, :ok])) + |> Enum.each(fn app -> + Application.stop(app) + :ok = Application.start(app) + end) end end @@ -25,11 +34,15 @@ defp update_env(setting) do setting.key end + group = String.to_existing_atom(setting.group) + Application.put_env( - :pleroma, + group, String.to_existing_atom(key), Config.from_binary(setting.value) ) + + group rescue e -> require Logger diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index 03dfdca82..953a22ea0 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -377,12 +377,12 @@ def config_update(conn, %{"configs" => configs}) do if Pleroma.Config.get([:instance, :dynamic_configuration]) do updated = Enum.map(configs, fn - %{"key" => key, "value" => value} -> - {:ok, config} = Config.update_or_create(%{key: key, value: value}) + %{"group" => group, "key" => key, "value" => value} -> + {:ok, config} = Config.update_or_create(%{group: group, key: key, value: value}) config - %{"key" => key, "delete" => "true"} -> - {:ok, _} = Config.delete(key) + %{"group" => group, "key" => key, "delete" => "true"} -> + {:ok, _} = Config.delete(%{group: group, key: key}) nil end) |> Enum.reject(&is_nil(&1)) diff --git a/lib/pleroma/web/admin_api/config.ex b/lib/pleroma/web/admin_api/config.ex index 2e149bf25..8b9b658a9 100644 --- a/lib/pleroma/web/admin_api/config.ex +++ b/lib/pleroma/web/admin_api/config.ex @@ -12,26 +12,27 @@ defmodule Pleroma.Web.AdminAPI.Config do schema "config" do field(:key, :string) + field(:group, :string) field(:value, :binary) timestamps() end - @spec get_by_key(String.t()) :: Config.t() | nil - def get_by_key(key), do: Repo.get_by(Config, key: key) + @spec get_by_params(map()) :: Config.t() | nil + def get_by_params(params), do: Repo.get_by(Config, params) @spec changeset(Config.t(), map()) :: Changeset.t() def changeset(config, params \\ %{}) do config - |> cast(params, [:key, :value]) - |> validate_required([:key, :value]) - |> unique_constraint(:key) + |> cast(params, [:key, :group, :value]) + |> validate_required([:key, :group, :value]) + |> unique_constraint(:key, name: :config_group_key_index) end @spec create(map()) :: {:ok, Config.t()} | {:error, Changeset.t()} - def create(%{key: key, value: value}) do + def create(params) do %Config{} - |> changeset(%{key: key, value: transform(value)}) + |> changeset(Map.put(params, :value, transform(params[:value]))) |> Repo.insert() end @@ -43,20 +44,20 @@ def update(%Config{} = config, %{value: value}) do end @spec update_or_create(map()) :: {:ok, Config.t()} | {:error, Changeset.t()} - def update_or_create(%{key: key} = params) do - with %Config{} = config <- Config.get_by_key(key) do + def update_or_create(params) do + with %Config{} = config <- Config.get_by_params(Map.take(params, [:group, :key])) do Config.update(config, params) else nil -> Config.create(params) end end - @spec delete(String.t()) :: {:ok, Config.t()} | {:error, Changeset.t()} - def delete(key) do - with %Config{} = config <- Config.get_by_key(key) do + @spec delete(map()) :: {:ok, Config.t()} | {:error, Changeset.t()} + def delete(params) do + with %Config{} = config <- Config.get_by_params(params) do Repo.delete(config) else - nil -> {:error, "Config with key #{key} not found"} + nil -> {:error, "Config with params #{inspect(params)} not found"} end end @@ -90,6 +91,8 @@ defp do_convert(value) when is_atom(value) do end @spec transform(any()) :: binary() + def transform(%{"tuple" => _} = entity), do: :erlang.term_to_binary(do_transform(entity)) + def transform(entity) when is_map(entity) do tuples = for {k, v} <- entity, diff --git a/lib/pleroma/web/admin_api/views/config_view.ex b/lib/pleroma/web/admin_api/views/config_view.ex index c8560033e..3ccc9ca46 100644 --- a/lib/pleroma/web/admin_api/views/config_view.ex +++ b/lib/pleroma/web/admin_api/views/config_view.ex @@ -10,6 +10,7 @@ def render("index.json", %{configs: configs}) do def render("show.json", %{config: config}) do %{ key: config.key, + group: config.group, value: Pleroma.Web.AdminAPI.Config.from_binary_to_map(config.value) } end diff --git a/priv/repo/migrations/20190622151019_add_group_key_to_config.exs b/priv/repo/migrations/20190622151019_add_group_key_to_config.exs new file mode 100644 index 000000000..d7a3785d0 --- /dev/null +++ b/priv/repo/migrations/20190622151019_add_group_key_to_config.exs @@ -0,0 +1,12 @@ +defmodule Pleroma.Repo.Migrations.AddGroupKeyToConfig do + use Ecto.Migration + + def change do + alter table("config") do + add(:group, :string) + end + + drop(unique_index("config", :key)) + create(unique_index("config", [:group, :key])) + end +end diff --git a/test/config/transfer_task_test.exs b/test/config/transfer_task_test.exs index 9b8a8dd45..c0e433263 100644 --- a/test/config/transfer_task_test.exs +++ b/test/config/transfer_task_test.exs @@ -13,19 +13,37 @@ defmodule Pleroma.Config.TransferTaskTest do test "transfer config values from db to env" do refute Application.get_env(:pleroma, :test_key) - Pleroma.Web.AdminAPI.Config.create(%{key: "test_key", value: [live: 2, com: 3]}) + refute Application.get_env(:idna, :test_key) + + Pleroma.Web.AdminAPI.Config.create(%{ + group: "pleroma", + key: "test_key", + value: [live: 2, com: 3] + }) + + Pleroma.Web.AdminAPI.Config.create(%{ + group: "idna", + key: "test_key", + value: [live: 15, com: 35] + }) Pleroma.Config.TransferTask.start_link() assert Application.get_env(:pleroma, :test_key) == [live: 2, com: 3] + assert Application.get_env(:idna, :test_key) == [live: 15, com: 35] on_exit(fn -> Application.delete_env(:pleroma, :test_key) + Application.delete_env(:idna, :test_key) end) end test "non existing atom" do - Pleroma.Web.AdminAPI.Config.create(%{key: "undefined_atom_key", value: [live: 2, com: 3]}) + Pleroma.Web.AdminAPI.Config.create(%{ + group: "pleroma", + key: "undefined_atom_key", + value: [live: 2, com: 3] + }) assert ExUnit.CaptureLog.capture_log(fn -> Pleroma.Config.TransferTask.start_link() diff --git a/test/support/factory.ex b/test/support/factory.ex index 5be34660e..c2812e8f7 100644 --- a/test/support/factory.ex +++ b/test/support/factory.ex @@ -314,6 +314,7 @@ def registration_factory do def config_factory do %Pleroma.Web.AdminAPI.Config{ key: sequence(:key, &"some_key_#{&1}"), + group: "pleroma", value: sequence( :value, diff --git a/test/tasks/config_test.exs b/test/tasks/config_test.exs index d448b0444..9c9a31bf4 100644 --- a/test/tasks/config_test.exs +++ b/test/tasks/config_test.exs @@ -30,17 +30,26 @@ test "settings are migrated to db" do Mix.Tasks.Pleroma.Config.run(["migrate_to_db"]) - first_db = Config.get_by_key("first_setting") - second_db = Config.get_by_key("second_setting") - refute Config.get_by_key("Pleroma.Repo") + first_db = Config.get_by_params(%{group: "pleroma", key: "first_setting"}) + second_db = Config.get_by_params(%{group: "pleroma", key: "second_setting"}) + refute Config.get_by_params(%{group: "pleroma", key: "Pleroma.Repo"}) assert Config.from_binary(first_db.value) == [key: "value", key2: [Pleroma.Repo]] assert Config.from_binary(second_db.value) == [key: "value2", key2: [Pleroma.Activity]] end test "settings are migrated to file and deleted from db", %{temp_file: temp_file} do - Config.create(%{key: "setting_first", value: [key: "value", key2: [Pleroma.Activity]]}) - Config.create(%{key: "setting_second", value: [key: "valu2", key2: [Pleroma.Repo]]}) + Config.create(%{ + group: "pleroma", + key: "setting_first", + value: [key: "value", key2: [Pleroma.Activity]] + }) + + Config.create(%{ + group: "pleroma", + key: "setting_second", + value: [key: "valu2", key2: [Pleroma.Repo]] + }) Mix.Tasks.Pleroma.Config.run(["migrate_from_db", "temp"]) diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index 49889d6d7..4278ac59d 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -1363,8 +1363,9 @@ test "create new config setting in db", %{conn: conn} do conn = post(conn, "/api/pleroma/admin/config", %{ configs: [ - %{key: "key1", value: "value1"}, + %{group: "pleroma", key: "key1", value: "value1"}, %{ + group: "pleroma", key: "key2", value: %{ "nested_1" => "nested_value1", @@ -1375,6 +1376,7 @@ test "create new config setting in db", %{conn: conn} do } }, %{ + group: "pleroma", key: "key3", value: [ %{"nested_3" => ":nested_3", "nested_33" => "nested_33"}, @@ -1382,8 +1384,14 @@ test "create new config setting in db", %{conn: conn} do ] }, %{ + group: "pleroma", key: "key4", value: %{"nested_5" => ":upload", "endpoint" => "https://example.com"} + }, + %{ + group: "idna", + key: "key5", + value: %{"tuple" => ["string", "Pleroma.Captcha.NotReal", []]} } ] }) @@ -1391,10 +1399,12 @@ test "create new config setting in db", %{conn: conn} do assert json_response(conn, 200) == %{ "configs" => [ %{ + "group" => "pleroma", "key" => "key1", "value" => "value1" }, %{ + "group" => "pleroma", "key" => "key2", "value" => [ %{"nested_1" => "nested_value1"}, @@ -1407,6 +1417,7 @@ test "create new config setting in db", %{conn: conn} do ] }, %{ + "group" => "pleroma", "key" => "key3", "value" => [ [%{"nested_3" => "nested_3"}, %{"nested_33" => "nested_33"}], @@ -1414,8 +1425,14 @@ test "create new config setting in db", %{conn: conn} do ] }, %{ + "group" => "pleroma", "key" => "key4", "value" => [%{"endpoint" => "https://example.com"}, %{"nested_5" => "upload"}] + }, + %{ + "group" => "idna", + "key" => "key5", + "value" => %{"tuple" => ["string", "Pleroma.Captcha.NotReal", []]} } ] } @@ -1439,6 +1456,8 @@ test "create new config setting in db", %{conn: conn} do endpoint: "https://example.com", nested_5: :upload ] + + assert Application.get_env(:idna, :key5) == {"string", Pleroma.Captcha.NotReal, []} end test "update config setting & delete", %{conn: conn} do @@ -1448,14 +1467,15 @@ test "update config setting & delete", %{conn: conn} do conn = post(conn, "/api/pleroma/admin/config", %{ configs: [ - %{key: config1.key, value: "another_value"}, - %{key: config2.key, delete: "true"} + %{group: config1.group, key: config1.key, value: "another_value"}, + %{group: config2.group, key: config2.key, delete: "true"} ] }) assert json_response(conn, 200) == %{ "configs" => [ %{ + "group" => "pleroma", "key" => config1.key, "value" => "another_value" } @@ -1471,6 +1491,7 @@ test "common config example", %{conn: conn} do post(conn, "/api/pleroma/admin/config", %{ configs: [ %{ + "group" => "pleroma", "key" => "Pleroma.Captcha.NotReal", "value" => %{ "enabled" => ":false", @@ -1484,6 +1505,7 @@ test "common config example", %{conn: conn} do assert json_response(conn, 200) == %{ "configs" => [ %{ + "group" => "pleroma", "key" => "Pleroma.Captcha.NotReal", "value" => [ %{"enabled" => false}, @@ -1500,6 +1522,7 @@ test "tuples with more than two values", %{conn: conn} do post(conn, "/api/pleroma/admin/config", %{ configs: [ %{ + "group" => "pleroma", "key" => "Pleroma.Web.Endpoint.NotReal", "value" => [ %{ @@ -1557,6 +1580,7 @@ test "tuples with more than two values", %{conn: conn} do assert json_response(conn, 200) == %{ "configs" => [ %{ + "group" => "pleroma", "key" => "Pleroma.Web.Endpoint.NotReal", "value" => [ %{ diff --git a/test/web/admin_api/config_test.exs b/test/web/admin_api/config_test.exs index 39050c276..10cb3b68a 100644 --- a/test/web/admin_api/config_test.exs +++ b/test/web/admin_api/config_test.exs @@ -7,18 +7,18 @@ test "get_by_key/1" do config = insert(:config) insert(:config) - assert config == Config.get_by_key(config.key) + assert config == Config.get_by_params(%{group: config.group, key: config.key}) end test "create/1" do - {:ok, config} = Config.create(%{key: "some_key", value: "some_value"}) - assert config == Config.get_by_key("some_key") + {:ok, config} = Config.create(%{group: "pleroma", key: "some_key", value: "some_value"}) + assert config == Config.get_by_params(%{group: "pleroma", key: "some_key"}) end test "update/1" do config = insert(:config) {:ok, updated} = Config.update(config, %{value: "some_value"}) - loaded = Config.get_by_key(config.key) + loaded = Config.get_by_params(%{group: config.group, key: config.key}) assert loaded == updated end @@ -27,8 +27,8 @@ test "update_or_create/1" do key2 = "another_key" params = [ - %{key: key2, value: "another_value"}, - %{key: config.key, value: "new_value"} + %{group: "pleroma", key: key2, value: "another_value"}, + %{group: config.group, key: config.key, value: "new_value"} ] assert Repo.all(Config) |> length() == 1 @@ -37,8 +37,8 @@ test "update_or_create/1" do assert Repo.all(Config) |> length() == 2 - config1 = Config.get_by_key(config.key) - config2 = Config.get_by_key(key2) + config1 = Config.get_by_params(%{group: config.group, key: config.key}) + config2 = Config.get_by_params(%{group: "pleroma", key: key2}) assert config1.value == Config.transform("new_value") assert config2.value == Config.transform("another_value") @@ -46,8 +46,8 @@ test "update_or_create/1" do test "delete/1" do config = insert(:config) - {:ok, _} = Config.delete(config.key) - refute Config.get_by_key(config.key) + {:ok, _} = Config.delete(%{key: config.key, group: config.group}) + refute Config.get_by_params(%{key: config.key, group: config.group}) end describe "transform/1" do From b37ede5df349ce70bca7a51ab1da7e22d262bdfe Mon Sep 17 00:00:00 2001 From: Alex S Date: Sun, 23 Jun 2019 08:16:28 +0300 Subject: [PATCH 40/48] log capturing --- test/web/activity_pub/mrf/anti_link_spam_policy_test.exs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs b/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs index 284c13336..03dc299ec 100644 --- a/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs +++ b/test/web/activity_pub/mrf/anti_link_spam_policy_test.exs @@ -5,6 +5,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicyTest do use Pleroma.DataCase import Pleroma.Factory + import ExUnit.CaptureLog alias Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy @@ -114,7 +115,9 @@ test "it rejects posts without links" do @linkless_message |> Map.put("actor", "http://invalid.actor") - {:reject, _} = AntiLinkSpamPolicy.filter(message) + assert capture_log(fn -> + {:reject, _} = AntiLinkSpamPolicy.filter(message) + end) =~ "[error] Could not decode user at fetch http://invalid.actor" end test "it rejects posts with links" do @@ -122,7 +125,9 @@ test "it rejects posts with links" do @linkful_message |> Map.put("actor", "http://invalid.actor") - {:reject, _} = AntiLinkSpamPolicy.filter(message) + assert capture_log(fn -> + {:reject, _} = AntiLinkSpamPolicy.filter(message) + end) =~ "[error] Could not decode user at fetch http://invalid.actor" end end From 875100de018d4e0980656a0fc75eb51f97fa0eee Mon Sep 17 00:00:00 2001 From: rinpatch Date: Sun, 23 Jun 2019 09:31:39 +0300 Subject: [PATCH 41/48] Bind to 127.0.0.1 instead of 0.0.0.0 by default --- CHANGELOG.md | 1 + config/config.exs | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0dc8b547d..d3c554245 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -65,6 +65,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - MRF: Support for filtering out likely spam messages by rejecting posts from new users that contain links. ### Changed +- **Breaking:** bind to 127.0.0.1 instead of 0.0.0.0 by default - **Breaking:** Configuration: move from Pleroma.Mailer to Pleroma.Emails.Mailer - Thread containment / test for complete visibility will be skipped by default. - Enforcement of OAuth scopes diff --git a/config/config.exs b/config/config.exs index 3962ac019..0d07fc692 100644 --- a/config/config.exs +++ b/config/config.exs @@ -139,6 +139,7 @@ instrumenters: [Pleroma.Web.Endpoint.Instrumenter], url: [host: "localhost"], http: [ + ip: {127, 0, 0, 1}, dispatch: [ {:_, [ From 4bac13966bb73d9c0eb517feb42ccaf809e5404c Mon Sep 17 00:00:00 2001 From: aries Date: Mon, 24 Jun 2019 01:10:55 +0900 Subject: [PATCH 42/48] modify config.md for S3 --- docs/config.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/config.md b/docs/config.md index b75193545..506be32a1 100644 --- a/docs/config.md +++ b/docs/config.md @@ -16,6 +16,13 @@ Note: `strip_exif` has been replaced by `Pleroma.Upload.Filter.Mogrify`. ## Pleroma.Uploaders.Local * `uploads`: Which directory to store the user-uploads in, relative to pleroma’s working directory +## Pleroma.Uploaders.S3 +* `bucket`: S3 bucket name +* `public_endpoint`: S3 endpoint that the user finally accesses(ex. "https://s3.dualstack.\.amazonaws.com") +* `truncated_namespace`: If you use S3 compatible service such as Digital Ocean Spaces or CDN, set folder name or "" etc. +For example, when using CDN to S3 virtual host format, set "". +At this time, write CNAME to CDN in public_endpoint. + ## Pleroma.Upload.Filter.Mogrify * `args`: List of actions for the `mogrify` command like `"strip"` or `["strip", "auto-orient", {"impode", "1"}]`. From 7daaaf84f1ec2f50319bddf9e3fad631b31b6df6 Mon Sep 17 00:00:00 2001 From: aries Date: Mon, 24 Jun 2019 01:28:01 +0900 Subject: [PATCH 43/48] Fix markdown mistakes --- docs/config.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/config.md b/docs/config.md index 506be32a1..04841a3ad 100644 --- a/docs/config.md +++ b/docs/config.md @@ -18,7 +18,7 @@ Note: `strip_exif` has been replaced by `Pleroma.Upload.Filter.Mogrify`. ## Pleroma.Uploaders.S3 * `bucket`: S3 bucket name -* `public_endpoint`: S3 endpoint that the user finally accesses(ex. "https://s3.dualstack.\.amazonaws.com") +* `public_endpoint`: S3 endpoint that the user finally accesses(ex. "https://s3.dualstack.ap-northeast-1.amazonaws.com) * `truncated_namespace`: If you use S3 compatible service such as Digital Ocean Spaces or CDN, set folder name or "" etc. For example, when using CDN to S3 virtual host format, set "". At this time, write CNAME to CDN in public_endpoint. From 7b9e21e8a2eee2a83d2f6963e2bc6e385ab69eb7 Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Sun, 23 Jun 2019 18:36:20 -0400 Subject: [PATCH 44/48] Update adminFE to latest build --- .../css/app.cea15678.css => app.34fc670f.css} | Bin .../{static/css => }/chunk-18e1.6aaab273.css | Bin priv/static/adminfe/chunk-56c9.c27dac5e.css | Bin 0 -> 3624 bytes priv/static/adminfe/chunk-5eaf.1a04e979.css | Bin 0 -> 3304 bytes .../{static/css => }/chunk-8b70.9ba0945c.css | Bin .../adminfe/chunk-elementUI.f74c256b.css | Bin 0 -> 202027 bytes .../{static/css => }/chunk-f018.0d22684d.css | Bin ...s.bd17d456.css => chunk-libs.4e8c4664.css} | Bin priv/static/adminfe/index.html | 2 +- .../static/css/chunk-50cf.1db1ed5b.css | Bin 1661 -> 0 bytes .../static/css/chunk-elementUI.4296cedf.css | Bin 198996 -> 0 bytes priv/static/adminfe/static/js/app.25699e3d.js | Bin 106655 -> 0 bytes priv/static/adminfe/static/js/app.4137ad8f.js | Bin 0 -> 115467 bytes .../adminfe/static/js/chunk-02a0.db6ec114.js | Bin 0 -> 266229 bytes .../adminfe/static/js/chunk-0620.c765c190.js | Bin 0 -> 12982 bytes .../adminfe/static/js/chunk-50cf.b9b1df43.js | Bin 10721 -> 0 bytes .../adminfe/static/js/chunk-56c9.28e35fc3.js | Bin 0 -> 14105 bytes .../adminfe/static/js/chunk-5eaf.5b76e416.js | Bin 0 -> 23071 bytes .../static/js/chunk-elementUI.1fa5434b.js | Bin 0 -> 562077 bytes .../static/js/chunk-elementUI.d388c21d.js | Bin 583940 -> 0 bytes ...ibs.48e79a9e.js => chunk-libs.d5609760.js} | Bin 200953 -> 204098 bytes .../adminfe/static/js/runtime.7144b2cf.js | Bin 3289 -> 0 bytes .../adminfe/static/js/runtime.d8d12c12.js | Bin 0 -> 3434 bytes 23 files changed, 1 insertion(+), 1 deletion(-) rename priv/static/adminfe/{static/css/app.cea15678.css => app.34fc670f.css} (100%) rename priv/static/adminfe/{static/css => }/chunk-18e1.6aaab273.css (100%) create mode 100644 priv/static/adminfe/chunk-56c9.c27dac5e.css create mode 100644 priv/static/adminfe/chunk-5eaf.1a04e979.css rename priv/static/adminfe/{static/css => }/chunk-8b70.9ba0945c.css (100%) create mode 100644 priv/static/adminfe/chunk-elementUI.f74c256b.css rename priv/static/adminfe/{static/css => }/chunk-f018.0d22684d.css (100%) rename priv/static/adminfe/{static/css/chunk-libs.bd17d456.css => chunk-libs.4e8c4664.css} (100%) delete mode 100644 priv/static/adminfe/static/css/chunk-50cf.1db1ed5b.css delete mode 100644 priv/static/adminfe/static/css/chunk-elementUI.4296cedf.css delete mode 100644 priv/static/adminfe/static/js/app.25699e3d.js create mode 100644 priv/static/adminfe/static/js/app.4137ad8f.js create mode 100644 priv/static/adminfe/static/js/chunk-02a0.db6ec114.js create mode 100644 priv/static/adminfe/static/js/chunk-0620.c765c190.js delete mode 100644 priv/static/adminfe/static/js/chunk-50cf.b9b1df43.js create mode 100644 priv/static/adminfe/static/js/chunk-56c9.28e35fc3.js create mode 100644 priv/static/adminfe/static/js/chunk-5eaf.5b76e416.js create mode 100644 priv/static/adminfe/static/js/chunk-elementUI.1fa5434b.js delete mode 100644 priv/static/adminfe/static/js/chunk-elementUI.d388c21d.js rename priv/static/adminfe/static/js/{chunk-libs.48e79a9e.js => chunk-libs.d5609760.js} (79%) delete mode 100644 priv/static/adminfe/static/js/runtime.7144b2cf.js create mode 100644 priv/static/adminfe/static/js/runtime.d8d12c12.js diff --git a/priv/static/adminfe/static/css/app.cea15678.css b/priv/static/adminfe/app.34fc670f.css similarity index 100% rename from priv/static/adminfe/static/css/app.cea15678.css rename to priv/static/adminfe/app.34fc670f.css diff --git a/priv/static/adminfe/static/css/chunk-18e1.6aaab273.css b/priv/static/adminfe/chunk-18e1.6aaab273.css similarity index 100% rename from priv/static/adminfe/static/css/chunk-18e1.6aaab273.css rename to priv/static/adminfe/chunk-18e1.6aaab273.css diff --git a/priv/static/adminfe/chunk-56c9.c27dac5e.css b/priv/static/adminfe/chunk-56c9.c27dac5e.css new file mode 100644 index 0000000000000000000000000000000000000000..2b4283ec5479d85daee882406947355c6599c6c9 GIT binary patch literal 3624 zcmcIm>5kJd5Pp?N2ni${CEe~p@`v|82syEvnswsHcD5~5-kljAId;1X0;)=B>lshx z_~x5Qjiq)lgx0khI(ufq^pc(ma^TgYu%uGQayn}b*-3s}p5gy;p-iY0O;^;svs{-X z+*qGF6(THeO;8-u=*APZR1?uQ=YwE&U*xy_vD|af?5+RZQr(D-XmSnXhtQ0%_d!R}S2(ozM+KQUWRT7xcytYDhMW=L&!kCCzQY$&MU5N=K&rheI zY6W?Ovh3iS81a+4B+O!}S%?)XWvy!0@;#@F>wk~6r}bm;V=z|iPID})(;y|m6&6GP3zZ@)p0}qRXAGf#JD*clY$8m|n0U9|kr@z@#rVd4x zz`RY+k1WwmML%Sp@RQ~r!O0`}z1Er<5h>uca!#Azvpq>(2n*S)%Q;(Ps(G)pB?!z% ze)7tTh@JyKs9Ry>yf#FR<0c@HVD@nr0m)FcxEOghjtH!zsvl#DAU6;=Vm6_JRby%e z3@1z5KA3~W#QX6|5LX|U=n&$_5yae3N&5d=?3#=ovH#!z@@i1fPaaU%Kv0=%gfemo zD;n7eF4wAalo+P!)){=}6WJAK_1h{gzav#cQufS8IH8Nb=o z_pHAA789|>=A0k-XK4P&(7+JBD^^x_LIOF@?|IcU?%Ijl+n!NzZ)fm?=K MHT)xo1$`WU0mX|riU0rr literal 0 HcmV?d00001 diff --git a/priv/static/adminfe/chunk-5eaf.1a04e979.css b/priv/static/adminfe/chunk-5eaf.1a04e979.css new file mode 100644 index 0000000000000000000000000000000000000000..a09287f584eb4329d6eefeee36f3424ec8977ee1 GIT binary patch literal 3304 zcmds3+lt#T5d9THS?I#b*v>Y|$}jzovMjPBJ8Epn$Z{?X`S*@wJC37dd)qCg1Om}W zlewI8X2OP-oEnr1Ua~KY7=kuv5odIs&6dxHtzc$_XP=^acl=y&CP?tH5)v`K5tO6O zyqGWR-F-kL10&f@jd7Gbg7rbkavwBQb1ui5!+UUle+YjjlsJm+(u(K;g2GW#E~A>zHU8Q*M&$bx^)IHUz14-mrNIrn z;V9!~3za;EyhKc^nyKxTobyrh+UwGGz@s9UO{C-gG9JBGcLPzphU0w`U%@*Jl0 znz`I9&YXvrmrSw!VW5nyOyItvn0R@|}y&*t^pGV#yR z*sB_jf*2Gn7`14_5pZ#U=$LkSw1F&+CDUcSI-6D!Q8S9<~RwW$w>59|!4?T^l zF~qchfFk(V$R?VDN+ErR10Oo9*Gf2APU0Q)s4m;a56Rafi{fTfq+k`_dWDl@67S{9 zuqH4*h@BU=UDzH(>Dkm6G{f`OaH8qT_jEpCCQ9si$VCadHRk5~`cJX$8r8wwAe{}F zJHLJN31k9^LsGug(>>c=aoyqp5=bNx`9cCX>sQ^=^z(8(-7h!muG>9MSF6$4bi3Vr zJ)19g)B9CFe}4wG_V{PlJuK(*ex1LJ&iG3=+pL}+*E>_PpPwyv0`TWQ+JXmL@bb%Y zx4d7jmizA$ZtFMfZ@GSY-rwEro)?SdHwNDJJp#_R)6anM=MkX=AG`Ht-rwELHtT)A z-jDwH^0ZmPpWCkg1%B@)>&?2SHs{;T(|q%FO_2Jd+x4r(yk9KW{baG3J?|#d*?##; zPkm~o0}$)Y{_Pn7177b4^0D9Trk@e5)n?cK!+y<;7iEmHDSFyGZGP#utuGcgsd{&} z?HB#FU(Xc(2W){lYE}sl-cI+uZJvJ9n5e1!X0zHapM*rY3;#W6_xWkHna;b_atG77 z-1m<-hr8$53D~JSus4hI>4%%kv;E$H?zhkV{`*t^)4N+j>}$XL{IH)~ouBjX-TwQk2R4O{R=@qz zY&G5O{`jY#Mz{(9=kBMU-}A?R{*!+Cxjn+aTRuK*w)^RNf4h6?r(cNu>waQPewl8U z04ccK?)z{1Zoi$bcSr?piAesyBN*QTrvVwKt8ThleqK-Rr?8q}PHsVVJguhRC(AX} zzh7-;Uv9gv{r#6EOcBo0?s2o(KfrpKK!-~J2hjO#_qh4B+w8uTbv|#W-*?atFJvOi za=qA0?t8$jf04C6`RV`t&o|@$<0qCNNV^^+**2&4g%>uJ@fWXHbkA3>l;ZCyIjFSj$$(5)uVZNJ=PCjvBV+R-#OJp^-p zVTML(FKYSx|F*Rr`gj41ExI%Azun{q+oV)(wS4(0sEj&#aA*+__Amr=X?g9}&E^p+ zMQQ@R+ujb8K~(9=GB;N0T4Lj}su@dyON$<8g)coAU%?W% zv>Y%8lMB^zRB>!&(C5u&9yT}rXeM;GSRyRftqBQC_vHa17wDH!Rw zMeS)zR%ul4!ct_vd<+}AvdinfU#-HHY^BEy*wr8s9>4$&D_i>R`t2`EupxtCTw1yP z%d-C(Rl0KGuU|h$l`bqRJ%Z+rDqUIShn0pF*@dkPM%}h+s9h@~xZYwB^?qp;KA0`! z8ATPxQNN8QFG^(eYo01RPV|zQWVkXPDK^RmT|CB1HZ9VOH%JeP4nq`3EmExuG_%wAPq!nmxR+~i;ckzrm5uO@Y^ImT=@$HUwhphKzL|2gZMB%~D=hzuBK4*JzSvGd z7>^XGm-9a)l(TcTL{U3@AKyJ{BnGG>HNJ9=jTNI+}>omfQShP4N^Qv zxlEloiUC2h6la%};{~kHDY#tV+!cL{?w`Tf=ipI>8o?OWFogYE^?W(z^YgnG z?bkVx>^v@i?I+_)7$g|l5&*coKEqLqYkKh!{ja43>fdcXPB?UujNqS3;E6L5zoN3>9_3HPM^Rb2Vn(MhBX$;el>SEN(jJDHN~D> zIP8Vj$a%s&vpf07Z_hqjUQXX4yun}ZXZzg83rADN=jTXVTCtOJWT#_*b2AX?Axa2O zvILl1-~`<>b+;g(!25wYEL&zadEt5-bWqklAKhRJ;5C2VZl2e3K&|9t;W8g1g6L2| zRPJO#fh-6g&`P;F|I{xQjhY$_)ylK;+0|@jaKR8LuD8WvaXWk7f=P{B4S|u>=4(GM zTRpqque&vHL9ymWRPeOze|a&(ygvWKXuavSJuuLIL|x=kWLsDbNEzu@0-$OByeMd* z!qW%qyNOe(k=72pBVm?3)h7z1n*xfiWVfsn8&OUQl;`YHvli|J}l41wvu zxec76|M3it49*j?N}~eKm+}%%y-YzdoD^Yi%)TqfMzy~(LT`q8L>1zxG?J45jznSt zLCbwNdswdKvT$WNkZ5`WlM3RI1(!JKjBKN#8~@I7{i5cIL?+`xG)4uiU@E=1KCdcv z(}qJ$rG;&UWe4DT8W@68>vwl(_-;x?tUY@frj?WWsl~5BsNh7{S^=rC6RQj4=oke4 z2*jydycnVuv37HQb8&MMw~{-~f2jsAlaBh@tzyv8CpRd|Oti?5cW!RKuM||tE%B0T0gN()K=@2S&17!S$nZI2sB|-jr3v~R)Y{}J%}xH4O4!oYCSi) zbRr&Qf>$t;i4u;CAF$5BI1NRKF5Q79AXW%AsA(d3FUE|-t<9w6i!ny@JAurFJS|%@ z3Mk7EGVhXcmJFh+#ns~4%Ml~rFL6bBqp%j2W%sH-lb%0-uGXKZ8Fxf|WVTb<$NI;% zZ^)Or@TSUv*)$E1^ORb7r*_DIO@ver$Wk93cI*M=xX?)+%~kOWKBD(%JwUw2*kG2=FB z+FQ8LO}*7pO?t3Cl161;#uM=v&wh}p8Y-*Of`lFHMm%@O<*Vt_t|tkNpXiU>^F97e ztL5f0LpyTXD85`e)he3+XnT)8W#k%1L&OoDS@#_i*T2FOiF~bnN+W#J= zMg%h1JBEe8wHlHywiWG11qJ&>kZCi0UhSjc-Y>vzb4Vpvt}(o~fzTG_1f4_lO(!=; z;j}Jj$rlLhnaa4%SqecO&~C}G%zg#2%wMvq98I71n-LlYwdV2G&%+dAu4o>EbqriN z+J3&DzCC}B|2w;U$BcELj$$9my9R4=6b9UWnspuz%B02fYPFj|($hKzYW^S=K!^L| z=lVl-*3Z?ef{4x^ZZR_mEXl7E9KUJ$?oRE@L^DXcf_w~aQsYgjO=b(sacu+J4>T^NkzDmS#M>+s(gA_mU(P`i zb~yF#-JVOMLKf2DR!oBW?|uizf7eFFZd2yp723)cS({n(QKN;sTb>T|i?Z_k_e`H* zBENd>>|WTvE47{nwhvEIwCV7|@!Zj5z@5St({tWjYiPGmV^kLMx*Ox7gv}MOlg=rJDdC^JKbcU%5;7bL-D9i zc^^LQuDPA>yz%aA`XY?*2q!coP5QVVc?+~H2aae3MJwfGYdT3ACp}RS4>5TkNhA-g z31Tp9kVFs%TRYqweo8&i7UghV11ypD;X@;Etb;P0xj$X-DYZpKg=~9cShOCQ^{`Lr zO|vo#JEX>w!=##ww`XNfAJD*6MNwMLyT(7om&*(=dDyMU$Nj^5bQ<5EUB9cTr)2k( zV2Pj@vh%1;@BGXhj2uRYYZw<>edXLlWwHp{9%5sYyaS`>Ok z8e=V=>0}gUq?7Oa9-`hpu#H0BY3bk1Ofb3;HtnFBB=>Rs)+FGwIN(Kktzw1RB}!u@ zMXAdSy-AaCw3#;vOTCty@D>{EGP8qhtqw+#t;tw)jS+jfaz`F*Fo2)TjrT@l7Ko&d-cQ&2b0%hApW> zG|NnS7yaZUUm`fggJrYURNH-B?q?5pst&RtDLD)x5-#ye7a*-Do+(tII!P~L+(^Jr z=j8tW9%SM0`8;Z|gMT4I=uy}H1V|vsKCWl2=fsA=$puPiuPL+i_ydsDb8P5tl*4HUCvN`~ z%7PGT4ztA?huSX)i*n8oHk22@ED&c(bj66VS69m0P^*QOCoA@9$cm!fkQH=YG;Bno z)%>ARt5igd*qF5+X}%yT^k9h!!=v$#FR8kd&Zrq*pufTY-Ils5SwV$thM2ezkPS4R z5bS{jApQXdn>X9#uOQ&2t3M-w=p&w14U|tl6nipgJ~tbJT5nqZh9njY_qJUvQE=Fv z5#RJvj&i8pp#8o?T@~s+TNmNd_zh8BWG=**t0p5gYbmKftY4Fj8xEa5BEiM}MoUcH zoSV|!q7S+h)x;9iFp|Py5eke+>Y4gtIc`6U#b|m2Z;YlgE!_HYEdgQWA45N4Dw$F< z!jNpXuCa_lgr!Nr!y8(I0K~*3B0QtDhwZuwAi+K``Q`^lhPDF7$)mPByX853qq~VG z^%eD?+A`#=R`;)9DIuFjft+PJe3~svK9OFYsAhLwL?p{E+}$xYMW;f#oNww9Kc+uA zTwvi0rz###-fF7tY|L@yj5NwX5?YeOFyKK@?%m;)=y9P@A>Nr`jvqmWv5QJ%>Jbc^ zP$9~lqzev$a@-{?Sv8Q&W`8-MUNhyfshq7O;Gxw5b3sWCvX^|LMih6frM}xybr*q| z4hJHfA5gw-LyQhk)nVx9mLnLn&sl}#jHq$_C(iLao!8zg5J%mZ1ZHk2#hMBw*T4re zh+ok;g1yLEI~S6iXGdS6zSVsy$#JyN#Dhf3>;;Z8j027{)Cx|=XDOT|n%ZGOUlt&( zlnj}|G9u?FE`uJ03DaO~N_4*s6w6+S+Kzn61Vci9lekMBS`w{^Jy>|kd|jglZ)GEW zs7+RfWwl!#1pNyuI3wg!m;@`F)y-4C?&s06Y;m_Dl{Xzp?E9alXHJUBTR}c2L%kW8 z&y=mv$^O>A!bEk19h~mMnIXw~l2X*ChkiS4|u#9O`38N%XuJUkyDu zUPyW-Pbne6wPHKSQJoW+gsZ6)+~9v-s%H9_iuoMm>p->l6E+hw2jF6WiW2M z$*JF*Z<`P`W?9m&$)G?30@5mNBBAxAFo>y=kJK9rPxlG4ZYaCzlnO~#mXNOCecX{* zZlEBEhB=Mf2Jp$KOdsF|y=+pcG1j&Qg@8tSID0^RK|LEy+Edh-5kjVs-^0$3BmLu# z=kxxvJ=E+AEL&O5_bf)#F$k(UpjwH2c$`0?A*885KZGJ)o%v)!40=0-*6=EccfSAp zyh;)19PFf3#ud~7)>Q>u5BW*>FC{M6)yGHDZKr6W$-EntUGSrBn&4#c^6%$FW?|0N z6mGC7jHBPqau7BduYCO+t-@fM{3o;U-8$kme0H(3_7MKmNoFDuYN}UdCzDp5+}C#v zhaoL##%em~aqGZ3&+fgm6H~@1^=XNeCJwi;Ia8X?W@?xdA>iCR8j~VdO)z#on=c?T zuA@J}cGFnvl}6wz%n-{N-gyPvpwSkxHT&9Ii`=?o=&W7M|OHDLwGF*2#-o@i)Eh(P;_7KKCuu!Kir zat-N7vd#s<@pTc(sh0&}Rg-PJP=pCyMI*Sg6{3Z^&qtw!_lz7nGkiyeQmchkkkH1e z!iX(dDABbrg;$v+l9y$nYRUsSW+eve`?LmhPin{`OX&?c$B=mH7zFcby}M%#R6Boz z7$a-6#EBqZ3l+X8WU$@8$IxC9B?&p+bZ8C-rD$jH|pVr;cmIMMxX;`zpha;p*=b~ zsYc|{nFj3CK?VZe#J8E><&t|_eH)oyH~;^*SoV#t-Q*3|=naxRai-d;*zKPazj z#(>>0$a9=L$%I`V1;;YdMj5TRcl1;4`sN=fN7X8PSLR+`Tsc62yGZ5nsU=xCw364|#C_zs~)b`l%K2aBITE|so}$SGQw z#jP%B5tUagp!9%FGc9XLl`GbJ~z|>FTj$u%;F>!}*yOY1|OQzOKX!{%CG` zw|sKOXHJ7PTLY3!;XD!D+OXi0#c~T_V7j>}FGP=&YDi+8+S~LB5LOmmBSa_qb%M=8 z#f_sJPzUaXTlaW{`;vf|C?DC^I$1&vwl=9uiemUObF|tj^(P4_LIgL-ezEW3kfapuz=cEz0D3$$P1s!nwi(ImVyK5(k=I@CiT z)wHVs+nf|^C5h@aMfMX=5QwobVtVR#qf~xjl_qYQCniSGv)qexwor=t7ClZQV zP~ip(0F>84mOfxvcDu8L}YGZh2!nEG3HyDD@#<-GBiZPXfc(x@%L9o&q3~8iseUpRc(7=(% z-3Ct48KQ`--BIjQtq%@YB@^4V*#);l$2DQs)lU1^3Kq2IquFzqQ7k#{h^0M2_I=Y$ zDUed7ch4l#)wP53D?`KF^6Hiu@ufk6sxwV&$$~Gi)RP}o$VMcCTTF1f$1(R48}&VT zQ)~$s2D0kBnM`86<>LTC&Z_7qVTVM#G#MB#02_&qCE_1mUr-PtSPkMhSakK1L}M@k zOGB;rcVJ3LE=L7v=@3ZG;S zpYi>iT%*Gsa=yPxQ72hKo4Rtki$3sLrF*zvq;oM+PHu=6I=2+A`Oz8onD0t4a?%yL z%TCgIWHzFE&(eXUU_onW1ej$k{9~70m?DT0BxDJ{0yP?edX_xD*WT-(Jp2krns!Gb zQXtDd!tGj1xZr{{k|!0IXqZUN7stUio)hBn=zoW9U|Sbt!b?Eh9KvUm(wv?+kftzU zCM4-g3UDzEo`g&18u9V4@lRH*puK7}CtRGL*nt)754>VljF~5FwuPMR`{@=b&_6!y zzsK{4xm(GAWgEI^4z3tQ@Kgzv38Y)5B(FNOBisP@6<89e!%{VmH->>0%vW-JXjUa` z%XBmK6L4qE;Pr}i5%DOq`U_7I-H(n7T>F%S%cOmhnHhxP(n0FMTQ$^llDq*?G<3^{ zHCpIHyyPQ0Gg`hZF{y-jV?X8lHtBfR%OLsMghF;p>O>f!88kSq8Qp}aA|?<=8E7FN zk*he)WPhF_OopXivAiv290X1)CNWP{NA9Po*{S6Dqub(;IbEv0S#@2BhHP; zl9?~A!)8?s(NR5@aFeoTY`d|1L{>=zOCvGlO75=n^{N>(5T+v-%k=Z^&vYI`i6)fg z>vb4GUI7Fr?|0a(MBT_X+rtc219;J(QcTi}FEy;&fad7JOJuQ@qa!TcIO&=bwG%`j z6f#vMj`1wqr+@u)$*OyP%&32RD2=e#pg58|C_CZm=YG5EllUcK(DiJ?j}nnFo@IGs z0v$k^UTe zNb1e`ofH@q7Pz^&DJ;We43`^+baQn1vHY#!Dm?s9DRf#ve0tlEU50>U!r<$RI`m!_ z%B$O&kEE#;NxCPEhrtHy-8hW8flhA~dEU2%96hk$7otOxA1h_gM_Q>Ek=01xzuJx@ z0oNO*_)>I6`j{Mxf28DzF!e@@RFmlvx8Yrk{FWhK{GAv8ZQ9qxdbQ~e9f}G514oM? zMx1^cy3#@c-K!HU5fYrn4s3^@W|GLU(cSt=cP{e08Aep^3A&O{dn1r^zPMOi2iOSS zDD^2>ndN!K`)@?kvfgTm?{Ng&S@p&w<WK%8P7S!Hyc zEOhfbqAT4)FCvld$f!*NgQv<)9KsK;eTbNU(cK#*7Q9!OKmN-zJc+*e4puMUA|*RL zme#M5ADJ5@;?d!t-A)0Kf(MRAe`;~8lq9xCyZrePE@vj@&swpfrR$kNaZzV^o|v+* z-vt3wr#gIM|7P|Ym{yX!hHs+U7`KCGOS@e;tu`{&8Z9;}MVV|xU#id{)YKqO*Qsnt zf;n}lR{E#LSs(u1Xqe3(NB*Sc$^XNd*IYzV8}z-yEo!Sr)SYrnA+k`Ps6^KIS^dii zda?AFK#iNgwWKhOosFEF6k}U?TEPRK5Adip1W_6Nzi1AxYs0ddvHEco9Kj`&%0{xRX@@v* z!C-(oH{Ho8Az1S^m#OSAS9=($R)WENIYddwrVV{r8~Bzqc%uJ=fz3bBCM)p%&#;?- zFGNeGa=46;31Mq+p~6Vxkw9?03q4=8sS6i@;5k><(`PhTCw1zX0C%(C)V z%)y=9{VgFbldNoxmO5D87^zw)KPz7t7D&!#GBopSYj9tZWK(=8^Qhupb|fQ^{Tj4b zH6o=~K4DUf@!fKhiX(|!REKf^BrlN!=j}G8mdaG-OiALEm(Zyt{FHms0pQ%pz3(8x z@S$Hw>5>;Uv`O}OjI~=g1KP+=0;A-tE^kL>`!XSdVxBBeNRp!crTsri# z^yRyLaVuRDTI2;__ejY_@k&WtC(orDw{T-M4&~Cpm2?yf8|m6uZ&wZ6WKQZ8Op!!f zV9X(~h^oMu2H!}ExDmgYnZR4uwUGuAnS-?z>*rK-V{WQ}_+_fvw$MgtBsCbnK&D`v z_%)1l0Z|iACXK0}BJZ*uy~jA<=yLXtZfmqh5`rkv<%YOa%RHJ?KKQSZnf%tZn`Jvc zZM3n^ON`m-%F}fh4#T$T=A2$x)A_L_#XMx`?kMfR#j>Ug&hU&$yXGO;slJ)hL=DsfUsK?vP$Bk@POu~g+H zSo#OJ#Li`j)NNWXsvIqv7LweRVLfKiZ-b(~u2kR;fU*QSt^txdRp;D73jL8QkxzdC zQ@GP$M4+c7+&Hpj=O}j#5v~#w$1?HW5*z*f zjfN=MzQ#CJPOw41wKIrU-3nWrh&M3NF3^yw0lRS~CTx7|x63EF zA4>Es3N?tb8vA_<=`X1!D)?lWL9lj;|NEgP&w$&=cY%JKE5cp};$mw2**Yt^25tAl z@!+o~)kWWzeH1&!-=T>^SVFlWqq3X1$xqPY`2?p9lk~c$?dBV#73<>j%Y?4ulg;YF z|I~HInSYg}%;^j!G=cBWATNoyhs(g0@b+RBo+>oypq7n(1<&hc_Gq-4F3XgwNNuhQ zsFWm2^M(~)Xma-9+HP0pkGV(K_FB`n2+lCU(_UZJJIX`zq|tJ%NoIAPBiO!^>n!Y6 zV7pcW58~Du1-U&WW{z@O1h$%1&&#{ zq>l!k)N*StSnhJw^n{!Icp34z@QOhZZB#jpS#t#|XKl>IEK*AnfuXFC6eIO7X44+#V$%Ba*-|EG75cqJ_{G0eCIYVW9I7quZ&(HiNZbRyP?fWmVpCYH= zGT+_Z86AxrNOCHdAB5#O3?PBW&w$Cc)Ai^6h~g$MK>nECYT#$z(NVyKWTicp=Gntg zdg)8b`#dyPNDC03sJ+tOy4bX`1j+5PrzVgg(YAPj>+&fUi^QcMj8#eC<&> z*r?x=d&T)?r6ku)7^V!RfJzlI_MM^L>Jx2K?atf-p`jLOx)g#%B3F{!<@O5<%)ytl27A0!)MTZUt_o>S(h0 zO@Cp|=wI8(%~~YWDR;do z1~+R8xa<)htC2yWiJDcuI-1QE)1Ye2jAJsRL1B{n2&j~rLUaQ9n6?Pv6R*P+q6GXbgES-T`oF%=UX6V5zTUi={5?_C&*Pl&?Z8u*I+O~rhhqvBrzo= zM(88Hl%dAtj%(rXtN#%+xFI96H2JW zdY_W))saVk+3S6)>FJ$7&wFfssafEaH6FDJW{P|Fs2Y`046t&_2Fj0-5(Rjgau8^= zR*P~o)hP0YCptCO~Jg&=Eo~7)3nn;LEBY%)Of?{ zaMUo|U__^|S`t&ah@yvdghS@X+=FFm4azb)3xKf+Z^hFPTpMEh1qg@6pNIWjMZr+h zet8*5;DDSUAknOX0F~2#Ai&}QK~Pi8F8V?zqVPVED@fH-tfu2_W^vPQu0ViM=T(if zhbd&4K~^u^(IT}!;8T8a?GeR7qWp&xZ!?aF#e{g#?tSwPfr-^!k2R69LNWkOu|At( zT>;+RNybL$W7{_Lz6yWO=9Z-0lofnE5DQT%vP`<}6s(_@5t$FbnKGkT+|nX}8ALh- z*YQ$gYGn4O`&Q!3E|t=mDKlP2j?kGn&;o_GF0?M zfQVs94tW*TEvHM>nrxq={t$Z)D+KS5Pr(#JW|Ml)mG3GbLuI~=@{iKTou zFm}=&I83ssH6TCi?j7!%iy?qqVjAFWbDerrf^<4DD<67h!J^Kmmdhs6^^`?KS)Jxq zG^T1tog@X6Yd`DoNIi^p1b{Putp$m9LI%zru@(!;K&GimbO|YjJ-l7a&ESS39h=O| zUKHT%IQUkP2>f&^+~5MITycYgT#aUfVI|-AWlErMjpL6)ZP#_A>2h3MhjV(Uxw=k) zX*x4jVOoRMC?HT>&vyaQQfmT;dZZ1P9jz;xHie;SP6u zI<4=n?%RRJScn8NXBf^hAZeFF)rnI}d@BZ%>!O+zQeV&aW?ycB3^gN%U5BU_%s@5H zINVl6pQFGIkf%UcR9J~@Kpil1mo4I$Ct8sRykddp0OT<9p#5uT6Vth9sv^xXPzNaE zyNC#*Hi?}!m(7<0B57Zp&0F!fWs$1geB5iKnWDBYzJ#{oe^-SsON{!i=GVgURU$9V z!FVYjS^r>Hw`jzTpQfb`v~{eaKG4k3y82K%!|J*Tjf;y5vy^qDrb%Omm?I79he^7D zSX4HzfNqZFP`MsUhm{ha_(%!&!hEf)h5gR>mru;>wUKAA_q(CQb= zRclkU_8@B2$bBr&-1uPo=Sp(#gM{uTaMOrd4iuQZ1+#y;ok0BOA?QV*0)JCRp0ZJV z$9&LMHxwv@3MA4CbvW3qMgtPoII3(91&hzV3Y$WCS#Z|$zq^AQe7E}(JBq%fTURU zti>0`1)#BdPiF1+$m!MUR$b{>@9*yi24*3&vttMYBJT?kCfwwyIvoAeZnfF}N%pgU zW)Wx(T*I1_t?m@&Pl>q{Ck7h(OJ*qMr%V;^Or}iU6ZXE8E9nLU+{4XNnrs)4I4P=v z*~N!O8-&8~*lC*x4FC_7qpW6p6}Fb9h7T_@*( z=lx;|uM$-+SR`%ayCQ2j+3wUMeG*ri=Ep<0GhjjZs68HBXS7xNs%>hc2PLI3O@%$T zh<1c9LYnK;F^w-6j+z`nx;tFhjj<4W=rpCmYuOP)4tmZntQ5g_{>fVE-Ai74eEd)Z zs?2lHHIvvY1yxIOQD(9x)|A)K04|8i@bePCg`f&rc65xc_0vOx zA^t=y#2f9;PjvZDxcKkxB8d6sE2?ago((X+5JWnBkfRG8Ct3kwC;{)@s6wJtIIn|i1O6CCQf&sa>yw2h1W@+tGgwuN z<@S*mvPkHUxJ4gpbq-;%m#6mkH9E#=ssFOvE#dHUriBH`f+H6^?lJE zYzV)~7*%4YIe<}&;I<(APd2x3L8unD?m=s8F0o1TkWdI2=8~ahxtXuHKr_G(4*e@I zdTgK$H3@&Ir3&FCA-NpXN(N$ShC)bO@1@5*|EO8I96C{mqCF}^;p&>iB@&{v>^(la zvcs0=EUfKI^6SJ!pjqyY=qf2Df>eRs1NY@7>Sv;QjDal zidCq?RQ+~_hhXQ^61qx*8A-*U;6Kh?ewwVjWUie=YL4AC!hZo)q%#qw6~R%1eqiGN<;BiI4)v> zmLjGpfT^b@&#sLCoV)?n)A@XUf|xVkqRT#Hd66Jhgi-9Kuy+O4O^TM<6)g+?ib8m* zesmsjZ4_YuxpFP9C~Hvq1)HOWZo%@(GVFxv;BT`WjPxPHB#CM!Snd_f;|08*(UAyW zu9o|B1uhOWE-J~JJoa+Bd7g!);B#T_UB0T>;K&lP*{)a@#u|)7wAy{dMa*31@g&wA zH51&Eyg)w#qcJ%hz%ZB!4rL=5shDbs0L9ch*{Rys=xx^lV~Ey8Qlm-Alf8*bM{GF! zQxVrgs^F}x``aAI&3sG&UxOM7Id6#&z3}NAN?^peOuyZ3wsG9)hz+tqG0#nE=pvl%G07coz6KFlsI`ASFEC*zW!mg~hvL0WuQfPmGo#@jlj zqyA=kaT#!X0Yx%FVOlFh38JQWO-iXT!Yh&ZtrPFLg$zc0KkgFB+`TnD(TGOtS4|Dn zy&|8HxyW#X0KKCmEM#Ctu^5vAaM5#`zIqS{DK~jdAeR_!L0YcnZ!g}-m}DmvR#OaG zJ(i0h8o9U@c7T_^!b*kbEp;_uX}*e99@9rk zY}yb_>(-)6RVkSfPMPn?N*Z3J35lw!~=VB+*BB!=5Wc$8wCX=!GM)72>#v4$Npd z7RsW{4UtF`(o66zU3rjjHEJS%J4Q?7+M$w2#RY$Od{~aBx_mSvjT{HyDQgbHBp`K0 zHRug4v8O?vth+mkn888M{{pm2yz18;_NwQSJo0J!OQas*WXbbmS(#U=4Ub~T#N#Fd zDnVst%YO19nKXJ`7p@x(1EgAwZaCJV?g2Vs0c1LVl3HuiK@ZlLsx=kTshm{H9LY)F z;PMHK&L(divD2WHsZ@zW5;FEQYYvx@&E!k~7n7lfRD~EI?{Lo$gx;%OZT6F#==EY} ziM!L+HBubFquXdGTD7ScjrXaD3ynNOLSZ)Dp77@mOuZm7#%5Vg%eLbitL~s632r8( zh^!C!W5OSAHI$>J9=ne9!BE(Mz$t*BgLXgSXc+0su$&AAAJ&_0x&z~P zx%={tF55}fWyL9#m3lw@@h3G9By8ujp2qu9Gr|4?>k`N!gm^-1}D{872|a^sak&#Apg(2Xi96PT`qf&S(9N&JbSWDoF|Sr&9@eyMm7KfO>^! z0bd{Ea}V%hFXM{TxktzdB8H@YzuD`f#OzJO1J$Fm@%7F=rlj8tU&^R?O@MfZoEzB9 zt4KSM_n$u6C}R3nw-32nJgDqHO;J6ORY5Sza!sD{J8#az*@$9ycOuU7+7N%BQ!{_@o1@meCuw5+HeI*Y9mYCVfCp zZ-muMRj6bWSoNBVj969?oSEY5W2Q$n(M`Q{k}*PB>oA1%d%W$1#4oT{her7;tvpq9 zp8`b(-y&8j=DzGnE`R{T^YeD|3@@7qE9t2jPA}5i@iV$H3cH?#LS%N1}R4;h)v4O3XxzhIUi8OaoZJg!x2%I#O}0c9hm!%BEhoK-?_d zPzcyFEG+U7{`Vt6kLjx4sr7dRhYD8H zFE!f+rC=DnbpjTX!t$vCNma%071?gAlRIp_T4|UZ^Le?3n;p;pFe32*S@k<|MvIaY zXon-u3kUx~VTG(-EX!o097j#t60f+Ty%#YjfodnB+guSOljQOT;av{ulxxP*)@`O8 z6r1lw`JU*gkwiKI=7i=?B%6JHO-V@PdBs|(XIHIf$@)SMO(Vz5)9IRel&i<{kSKqd zPL@up5UdI~wM9DukGsp2XWa3Vp|&7{&Pa6zn#-(wg}XNv-~j7#Cda{^^s~Zgcfqtp+p@HErOdxskFLvSvcd!J9u3{0f~sI@n({79k(>V zkXda4uYrN0llzHb%1*q{%~6QM!&|}D3scA-+N25g8$!fr3JFhu@ExRKvF519h5OeP zmlQN^%?2ZvTR;tT5@@R2uPlvKii==L&kO+$a!0=r2*7wUpa1Mq<8TkMTZ3%F&7!feK(Hs;n3_9b%z+mC1k(Lbg|T+v3u(Daw_oT7Tj z2Sq#hGpt7)m=24II1_9)4A;T;CXjx^-P(CAJEq?uibb34iiesE2U9j@aXiqotxC=U6+=sQBa82C`<5jbrt3g6NtymtGNKA7$0dSArveYO|$fw{*)jF!jEelP(zh-1Mc zBAn8F1Yh+(Gz$U#RsSc#pVWUefRhl28ej~3xCbNPlkEnMRrhZ{ozMHvb|=bxe>LA= zx5sf!3uy!W3Zfqg-Rk@Wd4ZJ(sg+mL0q4))g3S&I{9)O7A{~mphoB=mAh@JFP%3C( zt`@`bS{VzE8#)u4&PEX;pvL)=UPgPAx<-Q}hl!5snYwEN4p9sdd=+5Or8-O#6zg)s z`cXr!(tQxCA^xfW4h``n0BVdOtTie7erShT>+JBtI&5Ns_QFckv6=B;R6$#fTJ%|R z^opIHg1qX7;b+r(qt+oL8?BXCYBfevw{P=VmCQIfj8cRL2G=RIdnBmGVVGFi3rG40 zeeqA($e7J;|bu`3aM}jS5Ou*$@=rAj+{7xiN z;Y1XovHw1UGr?~er?TcLgagi0==`z}Ib;Q_Lp)U8V~9)uKzDP%*jOj}$9 zJG57NJ1K2X`zegu9$qXaN+lwJGCY7{tyoiLnZx~6%$xSj#`F9BdSrSxOOg22DAY_H zDiJA0f49UKt?+b8hNW}atQBM2@W6)SL159q)UjTyRzyC^HoQh)6c}EJ@%jDP4lc*) z|I7Nn!dmT!TC{7NzW+DcrpyKDIH1jmEJ>SZuwX-F6-Gs-SC-2`sq?yCB8kG2*OF?1 zydiv#8&$=TB$!n+42shdEiX-9g+ny@-)nqFOVnY^YmrLAlymHqZihrFk*<)7MYpjq zDVM&~DyO0nj7K#dvAfZxMmRaqm;|G98cy%AV#OihD01Mx(Ry#)W?EOmR4#MpXk6hp zl``BqUu>FEp+V7XR?qvsyfacWh4LLcu61fA4t`oQI%YD;7IxuQG zpJmq(ZUI12Gd?Uk-6`-)i4rc7csYxq%TAr(&OuN6d@{`wYEFm05nEW+!6^nMx0 z@c-K1e_4u}`SH%9|gbmr0TSvbXygFEd$eB=#=9BwX_uE^xsY>^0}uC6r6m22+i%fUB-P0B2ni zSE)ltXXI!KU5yLA1r@HQVsy}(f;oM0U~i)S3sjrqXIQ1T8^7FF(HhD5<@@octM{-( zaCtb4cp#<%@S;%I+-^aml1}1*H7XZl(`h)ac9Rkeu6R01=>60c`_MoyF3;bOZ!X^7 z;Bk?N61GC7gt_IKC?TE1lxS3LP~y1SO-e9$NQwCr9uwa-SmFY%MjW4ir2iU}ur)F% z%=I)x3hpJQL|nH)h@&bu>A=t-9rzwG-HN0ajjdd}0J)}8%iU0BM6MdQ*{MxeQe-b! zPxO8?f`IN8OI>5kKkFvEw!B+Jwa- zhONpVT;|)&6KK5oayH%LU2b|ikjF=3{^x4{pxVy#)YzUq>kX~L6 zN=LZCgQq>s+kli^d|2?a5(vc;H~kE!tJ#RFn|hH2{RkKEq*=FcY4Ra|9Z0&`d@W~M zCrnyO^>pJgqi;!5*t@cpq~cxGq-at7V& zfD%8xo6^i+Iticqft$7Fz>~a4L|xH-2tG`2eIL}wjx~I5<=Uh3h48vqd7Pn^t7bgD zNgTJ5wb{JNCX>&Dg9Cr!^TUb{fc$_}Pc)<=%%B2+k5)_6n@T{u@eh z9X?GnO8~(M?;^Kr-F(h8rit+mZtetom>^~qVT>#feQgp7n{|b`^b0tXH;5r zF+E|Ls0bTyP%vXEgG)#U-hwg17$bxeN9@2|Mg4;skYT9a~2QGK-SCBw}X4`w>GWrW@CZKIn*Ffs?5st9@ z?hfxs)2HO}1w2(l`hq8|r7X|v+Crf#!bfiIQ%fmmO&uDuHqj2XL6{44)};wtOSqLT z?aMXPzdu9irhpgXg7o zJ?Va5v|Mvhrb!Ch={2ikQqw2_cqP&WrLsWj3|57L@joF>$~Q+Tx6`XkMX1TF>vX@E zM^i_@OKo5rel414;!u0A!^xKwz|7J0knjE{@+N`gd6ns^D<4Fs205wyV$bg2pwI@> zkqqEwtG&qd=;fTx+udf1XmboqVq2buiFHJv0)u$VDoBLIWo=C+bDf26Tqj%S8;E3UvyF2Vis%f&{%wY!viy7^uKiF-qKcRbO(5pQ<^M z=XC^uad`T@1#}t_%w8Mnlf;=N4bWdSG#Eg7p#PD+$A9yRisoZKqdGhBM$B6U>wc63b zW$i{u>-`vBMH3CQTEfQ9Z5k_Rfgi&P#c*z+fs`um{bsY;FQ4x2o;KhO8do*BW!}aH z!$*ZFok~ydBVC-s>kVGZI45>|c5w@sfry>&9~ks2oc^ZgX(srD>z59H6K54jjm{W3 zcpM8}@B2#9VYrGM{!D&%8jN$5ZyA@AA(ECT8_#4*_7~N5r zBX7V4+2p6uPr3rR6=kNU?dJ2g-@$IibSt{a+)@ElDt__nn?yP~v#~Yh@}a77cX$5` z_lUuqK{_rlhXHwh!bm?THMqH+KZ8dnDD#8Q#W4Q~w)a+$-1`Wl`sY7E6j+~P)??)u zV2)^70~YK6RHn<$It)SzvqJlt;3M%!Cwzqo<(5^y0uJ^k!!=Tt1C<;$p_Jg?8w>6$ zQ4Du6jw6=mJWtVSk>#h@W@}nZ18E1hC;mC~Eac#v;IyP~1RGsbW%zMkg{>)SnPa z&?f4zAV7n^#bivnS7C&v#C*E_V$%91Z$!Mva8fF^mnjHIc`FVSDvP|b5vul5ORXFf zQ6Lh@$g9L)Bw&wkHgRUz_@QBYgkvG0ICH6AT_>O&H|{a_U7Ut|#E6Reag5!dchs;) z+ctk1(!}&Xm&;X{gjdAD_1Hi=Y}(`PI#9%ijgYjZK^Y)4{R~i=B;-enN;1YxSxpd% zpV?8H(C)>UE(LZ5ISE^M%5VQ*%I@yA&+D(#?;7gCq%rZ6(HfB*Ox(^x|F3$Q%HK*P zE*6CcbxS{O82RLk_`#q6v9sO7=4(fu`HP4|nvThsGQn96rfX4@#yqGqjp=I=t9`Dj zQI+OH%kUA_deG+C1Fcx}=NlmtRF{~r>8sjMGxlu0<(yr|Fo$tS@buEyD}gmA9&dOY zPmtFR;_NlZ3({4hh8+2TlSF0Q6+Sg0{W?VEN&5(_@F$vyxCWRvDemnUn*h^xnYj5J zJyjORCe%@K{RLqCeEIxn0of}!0JfTLKlc_2-`;X)BJ&$jP_F|y&Sz9L33wv~yeVFm zR?e;O-g$0{32kFAVd>ARjpWXc&(C=uwxb|tJ@qu>e62Z5#KHENfa@3!9^?4yqCoa;6@#pc=avRPQQ8%*{wp4V)p}8NJtABjkIta)m4XjX& z^P=l$%T5ej-HBuWZgQ<@Q(V;|88_fiXZs|*oBqpkw}fPLcx!nx6>U^2PwDsqB%zou zq-Bj^lePz6j}u`@*y)~RtwEI%XfvQCq#=9Wd@O9E*AONnQSIh6_~KZS2QBLs#tWH- zNL)ivx{iTWiVdUio|@Z%pcfjI8BaO5qc9|5SUrgjBXH39KP0@c+Em%!(d<*e{i`q+fVaiS$*=R^1NR)D86a+ zZ#b%E2aREw97jFE!aILmr^Y~S9{k<%@oBT&PuF`|q$MC9)+^6SHh>8**Ck2WW=i&e#+)!yGT{^&bxpSjL zgmLZ{&#M(2lk4GBXi|uD5amE^ntUbM?uk7wE7vd7gV#!Rk5L<=v)OVxdj3q?cK`C@kK$Q+ISph>O{T%zB7yc() zvSTY>`JbRkZ0U{v`N98$Yi?}iPyXk)M61ASTwpRTP#G7vj03ya_G!BHK4+ScHwZ47?ew%}*clpQIQ+JVAPJ5Km%hY3IJDB-80I{q&3 z8W)JUS-|=QYHk*=yg<&)0+tu(xmkd6Hw*Z?z|YMBmKT(hS%AcYECy6^I!Pca&MjSB zS(*_pp#za)=;OGw64n330 z-FS>o)BQurKC4@sPj?Ta@!9pxUPv(1{Q-a-BrSgFVUu$A0GTq=?~_k(-P85?t@*xL zEOz}KPO!^2mTwpGbMi*WFQrJ3+4Ko+J9u7mYK{_3r*Y}$ExHI(L72{9#3zbm?_DmJ z81J9AYa8is-`zd6zh|q;8~LhNZ5>I8cMci~GG)i_K_x2@v6d3{H}Gid>dlGh@N^4a z%~|!(1{u?1qQCv+-xs>5lTbV;u}|>8XmPc2nu5K;RQ09UwS$7L!<%dpkiq6wHv(H1 zCnW988Y?x%p!}7BPjYk-j<`ea)Yg&aM=nDM`{>vC9+Pz20(^wH zDp+wq6TW`|za+FIrHe|TK<9yJXa_(SH-h`S|B8m7Au2a24HjML*Rng;*r7hBB%2^+ zZwCQ0x!*1!;M-SY;l>%NZksMOf=vAReAT;Qyy~{2R{Ly?2kpD*;4bkKV};k_?G=C{a!USj7IRe1RU5U z#xE>0p+M|@3RmS~Hlii7*?tE5$$2$Jzq%AK`9zr+;dfUsUe(;v+JtcOV{n#RiQpFHD|mi zf(|d`7@RA)(%x>)fWiTZuY8YHHR|?a>uLUpLa1`TjwB`P5+I55BLe8uj==dkl)9-w)Dn zRr*nSzr1WP@<-QuU5$GGD7{C;(ECU3y)ONvy?+RJ`IGP2RiR!#X|F{Q^!Q17bR}aI zMpxqoGeZq4mFjxbFVy0Eny4H)hjJ2Xb@4a}tm_6tLk)*PRgW=9LMtdo3{-4Y#bXs* zV6i44Eg~7pY~Qv9_j*ygdACdnUl%bD@ns9fD!Q&KajF=2`Bm3rJXDB9<=D4KvbuPz z;_SK-tBQe_XLUWsKm}Sag3cad#%@mNLNhn5(J8kY0wdW?Yzxu_g55Ghv|k5$ZlFoIV{?TbMdgTr$hNxpLSPRoAv7Zh<5-+a5L-Z?c?;D9D(?714r`Sy=XN0+YZcjb+YN`AxEFG z5f3$lM4m5Q4MOs~seg*PfOS;2a5bP~<4RLfB|eH7{WFLQA^{( zXxWUXw=#-4gyBsaL*F8)f~Yp*<}0i9aZzdHjGMPV!kUEPhc<>$>x5?n!+1s@YN^!D zQpVO>EMZN;_G1&<1`N!21Vh+{AZqPgIxU_t^|nq`i?ICE#wOdKm5x=N9;a4<1;BFfHyf&&`#)M_0Vg$>!hL3<4*9d07JvA76 z?Nqy%3FAoB2*yoK4=B`3&KO594R_XH>$Q`2O%tY(nqf=>0OWxPfUvCU54gVuORt-1 z7dBxUDILKy(%&So0EGrk!;S{rWrMNTShdTWFpks@W845j`bI!R-w-BruMMtVUs-oK zVHv3%!P0AUrf5{1@$g|RVq7Db0rx#)e9(hejG=Hw-XS|eh5SuhcFFy-(c(Ym3Q3}rjgnaOiR5^bcJr~p)rvE{szU+^<46q&#*t2E`bI#EaRd{G9}KcyZMiT*!ZT7n zjAvaRi5k@>6sdYUSdp%z`EUc-&pBAJdps1ZfEova6;OlB#rDd}!3wGi1BvR=I9%0c zup%SnS6XFbC~ncxVLHbkfMNtfC`J&?U`58%ueQpzP)ws`!wB z(ez8qM-vpsXrTz#x*$K*2Lz+~%(Z3pcCaF2Sgfnc3Q;VhwIW!?Fo0oz+400mG<1V^~%n2v%ei4+bj~&oJ)5h}MAzMK%N?Y(toVV1>cBP)U{T zkT8xkj9?rC0eMdeRzOE#u)^T#m6DAoBrGHC!dO<-5x=N9QM9N%5Ueoxd2Lh&D-xEG ziV-X$ea((a1jM*TFayB~gR$36b+95~9H|vE{s)H2?<46q&#!Wi_P-p~$!j9r# zg+bP!wJY$F4Yv2DNrwh;_r8-hf^ij1c>2yL)JF^r5l!O++sR2y)MYBO%WaywX& zar35M9js6cBO^{QtSk@3GlF3}Ban8mB4g`~zdDMb*hVHDW7~iMszxw`Z3q$vD>A0u z4D`VY#WFJH1WRXiP<_BKs?Qjf)dzwV8O4La3dJ*wJ20Yk;6afMfe70WW*}H$FfLS5 zWp5;mBMl=M$3Q^dQ-T%HQ5dW+xO$~z;|U4NNV_nWRdvKKs!kLwY7Yb}41Qi4)xnB{ zWu#&R%Sd0J9ISwj27(m^W3Qd+U`4_>QZ<5cq_-L42#Bd0!8C#u23xP4d@Lbh8mSq^ zGyp&zhyV!7s{TN*!eHrjQyr{Gm_|xRFpcy#(=-BNY$KR~V1>chYpgnkkT8za4`bW_ zLi$EPgmDNH1}hA%USHW@MZz*tJA$Rx=1kG3I^*YS4+JX=eqKw}!HR@sq1ptU;1i)C9 zcECWe!eHq&RUJb}m_`bSY1#lnY$G7THiQ`nRv3)E?y6%53FEfzY5*a|5fEb>*$#2A z!XWF_mJ2>4JR{}9l&$L{icx(+@z`Jm+*bjYT;yoQ>hqy!1=KhYt$-RwM=Pi71ksa1xF;uftPCUgt}C`KSe>jRm^FsjdNTUKvJD>8<~!m3OP#WGqff@KT?q>Nw~(+H#; zt;pDVd$0~8D7KM>$JjPt0NV(Lunj??Xhp`;TZA@Rp%_M1onUB;5ULHhMYS0>U%4Hv z$hdjiuZ~tIhLIH~7*?i-;u*m(o)JhpT9L8!)?Xb)P;4WcjS#s6G*UW(X{5hTj#fZN1JMeDvDa925Fue4sUOC; z0fh98fQY^!Oc<>&xO#nMqZJ9uNbLxgUYnl~t$@Y{q7?=|uchi}MZz*tJ%VMV%TJD0 zKt}`7ij48WXoX@N1|AsWI`Tk3F#918&3*{eh*lVEy}t6nhlFWcR|NowWdy)jmUh5E zw8CKNHB}u%NSHq8=Ts_=MMM=4iz?yt!`p){28S*+CmeM=PiXocd~US2_cKrpJ$Z0n*G(0n^ukufY5R%M1LmeFF7#TCN#Wu3=7~2L6U>m^@wjoFqt;l$Ki_k_Z6vMVDSk(sHqS}m`v2UR1cC;en=54<^ zTA>(5R-DkVGFJ!&@Qh#>&j_R)t;pDV>#q(YD7I}AumJl*z10lu{5Mvy{gwYCvt5-@kppdYPvV#iWdmvh2@blWJj#eZrBNZc9 zM*8~XXa#gM5Uns6d+k(5D-y<$su7Hvn*Nk%1!AlU%0~$dwq83`)yS?3gAa^p0DwHu z)Js+UfoO%n((9%=T9IfPDILKy(%&aXE0CtDu9zR@(F&xcDyTXHVes=>Dy+)1j8u#2)ZFx+ z;u^~}J*9lV+RVNL4_)~i{cktVd#pa;D=GMG0DO${>3N@8Ob=dY@qYRAvVaFAI(RUk zpN#Q&9=Mfsvz@%TIlsBMxw(~FN%8G1xHi;aIa)5Z)5ku$@cP_Vdab(Sx2n_gX7Xqm zJae;HuHa>j$#nJfFnueZ|8&mp=0>j_Si%W7UX^zR2YVydXhf$0SW)8pm}|-tT*t2w3~|g zC;Z>Fy4fUWIyq7`=a~K(KQ9G~c)=$AG|Yvswb<%j>Fs z#imDQv9dni=dm)Z09ct+Hd4T&! zzQm_*a58bOYl*S_d_R4Ac>zyveR_WZ@4ud%-@Fsfq({YQHRgvSS*8f#(I;iKQOloVbcaF*XON|VKM3w$wqSgz*U04-Dy6){99dAi;6Y=*{! z&gF;M#pU!6>}<8!^-j^>)|3z-ppQbJSbN^?K;1uWmiXA!t?KBr57#R3n3ay|Ue>EN zGCm5ZLqX`aa*n~+WvYqjgehed<%43wwNliylyF%b;BE(GCU zONtm41)cDS5wwPrK`Kr6&%16lz3*3vwq!@Xw#7BrdTcou^TTv`7$<7sfrPU&O$rt~ zh#+GDN@M?)iTJLV1;C6}(G|gt zkQ2&ifZZ0xovP@Le70n=q+0!IwS3wwcgZ0zs+l-*bav@pTh1T9K7dZ|=(Rdvz^~h> zv+>QaaTFtd4DO%*1V$ec{AYdp7~M!!#jHz=f%)kiT!2r`nq00Q`t6e6vpzuKT6A&; zsO?esqt&wRJ8@j3;aeqeH2*9kyLrFr_mQ{9?T^V2rw&TV?A*ztdt#1EG=u-XjmUXC2mcH_ zvixN?2&bantK&w64t~FdKcolAF9BtOSU>dWVmLfB#;z<9p z+jXv1-n?H-pI7@}>WmOo2f{uwPX1u#fsU)&iMf8~39>|VC(>4_)6M4}AqKxPoD3Ul zZG!6oF4cNJ`ROM|l_E~a&)WV74kNHf)(Hh%|4MA}>VCNKzo#CA`#2I_gp!WcqMa~N ztYa%H1O1rgOkzbCp;n89XTM<>9VM9r5wSCr<0_Z+^tSwTSdKVi9#l8LgX|El(=~*D zsD#STv(sNI6mA_B0T&kYBgd2J^M0dInhTJ*CtyZ1r)Y}HD#$iliD$dAsDAC1 z>v{hTEVyc&zxh|Nt*mrKb5gUxwWea48R!!Yskl93mK^Xb z@|2)vOzdb>AxWO{H?l^D5gJwXr&G+}Sn!?NJj13_JaXgq#}(MDvhLCcoO#0~cBhSe zZP7LV%^)V_{u(3Xq)FlJn+XbR_uy#f&hG(O>M`g^h3O!pHM_&JuCLdCjT$4U}X z3>|LCoVX;s0qeYcWFOT0uW8ZQPc$Aond3a96nCZ(e1b{FZgIt*+O3PbwR~~NgOM&e z{6oxLw0zav#lOvZ`&Tk|(a^>J-ppn*Z{pgLA0dgGk;@waW)!8Y=a2Y94cdm$o5D=I)0lR{$E68ebvR^83TKc{7Ov~6wbAnNa}p%H zrecgM$h$j^8`tAk8UDY!yGHXbWEkezAM(P$L!eZPBK{%0C!SSpU`@#~sKs7H7HMKQ z^Ne3y6?OrF$IBZM5?Q=6KMcn5zfcG_o>q z3qOFvUIhvQrdKpZXZQQ;PC26I`7$oa7=shVHd?quy>P3%(_%aL;`06Y{TXgpzk6Rv zMf7Id^>0l;+xWR{fFJ1~`6I(Py*~;Oi}~-`@W~@IW*%mo9O4&t`qHWyoa!-b{i7u^ z-P++M`sCt6o$?--*>8R)F>v1bxGa2hS-y_X#r>@qY?8dke|$?@=Amb)Wd{-EEiH;7 zD2<$_9iaw-*Q_@cf~?8%9s`92tzD-P0-iwdRnXTR#iZCT_p4}6qZB*Y78ChG?x^VG z%N(;L^;{YNBzw}wwE0wTC9zET+Alvp>>;xV>%Y~;b1XuCy6=(cnS zn@k=SPON4w&o9T9m(^SiN&l=+lD(A7erhNwsbnmqigr?XvbC~A4Pq=Mb4BOd$=_J4 z%2Flcj0kh6XW*>3CG9l(lZtZJ&B)(Q7L~=zQ9^4vyR(^^f*Lc0dCoN?gTYfX`7?+j zLT*Ny@8Q+j3IoAn#iC=8JxHVh3VdDeA0QpI!!bm3P&z07Hj}vtN(nhd29A23Y?tO8 zuVDTlorgAvQcv&!vtz;7VY|Ck`v1TfsBHJdrja6V#~+(x1*vI9m+Ref-aDckF*4Uu z8Ab?(^ioT#o18_Y0Ii0ETSfXd0Q+yV{s|-O)mVhA0S=4no7v5*8cf`j$07g?=!SWh zb`gna5WnRb{T5w3Cu9LTgt6DVJK%1xl0^fMyS~}Z`)wylaG(gFt9lap`@UaX*9i+% z9$qM)0z8-{lkiQJxbsx4^H}4=d+S!-5V?x1T^^B>tha#*Q|cNEl>C6v+0Aa$Pj|gF zd3*_tZZ_S{X|+8<0^Ia-|57IxCRJ)ud6lDia?GmMDMHQMA|I}BYibz1gdqtPyJSQB z<#*5d-!C6Aql72Y_)Il%34f^xk#cm?l-$$x@)34QV7rUMC8G;9F-ObwV!4K_mD^+L zaR0Q5glSSHv+HYvUV^}EY!JZw_6-v$_8T)Bb&TSXDm z&r~oxrZ-|Q=@ftx`UJTyBF^T}i-1l7b+P=`&v_#o%``OEXd_yC%j}gLroXbC#e$Af z5UQeD2>0{F#bTBg3qe#7g2;)za+zw$iM-sMRymDhbk=UsRcf@KHqAiSjxeu-{~@BO z<)p-esY=@s-Q%uXtom>E8~#ot!FlDAHDV4cg#SuaI?TM^O}HY7P2n1}c=&4)5ZLY$ zr2b0n+tjT6_%F}9{c`agyg%O3Z?p_)NSG%{7LoLLcbCFt?7ektjNp+Gi`nQ&e0Mp& zCEy*1$HgXYQ0y~K7_@D5njIXOVCRcZ{kvX#YCpGGN zzPJG`;ZJicrv0q!TACQ_y1$uTT(T*dy6(5zO>pw#&7xnNFJM!dO*9QE%=?S}!jG96 z80^-Vp=p9Kw^JrhCs!jzsZPNJ5G6HM1_ltFWo5Af2Ey#Ne}I@|l1jUEJD zR3?=s17=!G=Y23vQ`n>9=zx0&J@=Kp1}OxBQD%vicZ!n9=bveo&=w zK0;TC{9q@_Yg<<^vZ`5kNr*IQOeoPwNoQiY)p0I~2NW1m#S_esL`OzxO8)w`Ia{r| zMDi^p>`qr-r{Cdp4<(lp18E6`&^7Cn z&UCbk`IL=vJ6bp?TNT#oXpH}yyQJ1}k<{9(max6Md+0$%ZeMh9kAcBPoTbT%R-)*b zJRqs?LOO@o@>dLLi*82ikI*f@nr`nm^Y5wClpBKUOnIJ=a6*W{%~H&o?0g_}mzVNO z2EbwZxFgCmnRii?IzSR8gY(W^%=;Ovuay-TAV1j2Ha9#Jf{kN5c4z=}=I1_3y4`HL z>fesf#*ii(el-mVK4GxC3|J}Pk>JN&YC~y)Q>=1NZEg5wdPn_W36AEG zHY~=zNt!*Wm((-5776nm$g1Vz6K(~`4htR<9ew;mp%=?6^hG`&NLX~;!)Cku6?}v# zB+Ck1>suTmxK!yw z8g8J7bRxQS{~6*)zra-x48MEWF4tcsynlnZPgYYnFSA*6`|nTe=-^k#m4Kj6n(GwT zuOLX30b(zy$ER(-0Q;_=^A!}hTlaS`8Jq2Xy52Jq_ft5nMLDacBsGvw2Adj(EGYXF zMJxfMI{~pShH(ne=PhRZCla+rIq!F~?UKUYiN#xWAE!$&*`3puJ7DP<%tVd=CSlvXHFI22D1SlvQ%0hC-ZiKJY{7ur=F|R zY$;A!!`lv9Fb%EKjCP+PBqy<$^^W$aWyMRdSj+l2ovKaj^dlRKysZ=ob%cPmCW)F4 zwMJAi&=66zNE?`XMl}~&cMPVLYy@MxtV=AP@4T|)BJaV{#4icck0oM@Xhrow(iL?N z5wNH}Ova+}ATe=V#*)?bWaVZeyst|UHWtmazEvXuMhl;&Tc4)S?Em6!+ zc*#4aMJ2Dsra0bq**6-ZNn&Y)K|Guz3<-gndW1iC2q4i94P3RlQNw72I56HaF@wPQ zNa_#qt7;HEE44e^s^Rk_251}?AO(~_%zN-vV^+ z^OVQM-DS$$*4AHuNkQQko?SZdmvuzC#;V+~z_p8W!J{&5(bQ%=OlQEjX}bJO!@sC| zayJ-g8b%SDWuxZ=qXk1S$2LoYq1$lM+Rt_i$3)IPzRO|X%7SUu8ODHRL6z6@JFyAu z?f3iHLzW}VJ^I-)iheVU$&&9hDO54UL9-);<~&bv(z1;r@clikHMrHs>9>xV3m4v3 z2q$*;+kX0GLjS^|SPc^&@+mf7(|jKKI*<_8Y2@A790;g;#o#M-as1Ir=Fv z%bX}Tx$hxw0dL_+2iTQwtqpKnTkk3c(8Lny0Dl>=fwyyB&3NDTI3$#B^Qx7E9XSzZ zmu?42$9f-!YF2Gy*zNOjP0}rOXg(fI<-~lc70o~5n;9(DG185CO_VW$2zlYKUQ(Be zcq$6eZ$+ya@u(TjVC^Lx}l#LHDq~LMKXh%yPOV zAF+Ng?3#QB`zh!kLlDtm?!KTuRfy1*CvNTq_Uq7~iq6ussQWPi78t2F6f~5aU8h?s zdJ``^O}DTslvon&Yiznm+iB6K!3H0i{EWsk-jni6KPq^KUDP}pDOP>Kp*KD1b$0bp zWih73%RHdNS&h=(^Kn?%d+Fg9d`qhTcBWW&EDTW$YNk(AJAL2^W8B^pFV3T(&$ZD7h}KY;2fm~vf%C@g!}7u&2>cxi5tpP!YWvkOvvxpVW+ zC_B=}yE{FvlRok7m4~a*{&!FST z$!&i{&7y!8XStF;*IuMRF1cPVMN%Z~9ePbuLzbS_>UwR%^6qwH^uL#%Gvo~C=}GHL z7j1ILojh+oI3$PUa5$VCS!*iLLQ4={USdMXJb(V6?2blQR38qFSBph=3%QRdGuFk0 zf|oj$J$y25#A&7&hl?_px-BrP{BmS-DECrGjl$e%`rgUpnI0eSPmj+a0{sXsDTj%- z%C%i);EKMN2%?Gg8W|3d6E-sv;)snhUXm5Yt{f6T?CZjxs@5k8l4zWZ!fx7p|VwF8e~(C%}Q~&z6C5m zJ)=PgppH+E5Uzq~h5Hy_%|g^_p_LWSrOAM_ty^PHB*F``3K_59#kd18a=a-@Y^#g- zVA>}60REu9#JPbhpp;{LSe^zuJdR|>!J)gi0e=$uDZCgEnFEit#Hx0}L;3();n_pf zfeT9uvhjEWTS3M8bp~f2cBj^gI;NQ- zmz=Jp1&qpK@*sjN-uKK3hAxo zaKE`%FBq}DdMxEA5ZI#jX6A1(f4PO&WUMAL{}?bcmbt;$yVK@p`Tkdye%L!OYs|`A zW2yA=)F96L$vTeArao{tvNUr>ldJi2lh+(?_c7V$v3GWfM9Pc4ZpYezu*M=MFA7E7 zhvluQVhr>_{PZ~k{C{I?5V0dV>kOPxvwO%c zkSQM-SiJM3%w;AQ!M?_c-~=$!TJ()qU-{VzqG#{?zu|I+-Y>v|mLW5wjYYxJaD5M?F4W`bNV^ zZyWfpEsSC#e@J~AUbzF#p(rm6aB>cT9lg*yZ2cFtTu*eTK3)1!&!SSn21WdYffC{= zs$Srvf_Nh?$FXu(qVP=!c6coZ2r@@Oa3jbCN}oWatj<0QnS7BAW9axa6qk@)Hf~T; zC7o+Wc;{nqJ(T1ZUMRI)1cZZ2?Qjdi#tKe}*_Q4@tR@|r;7GqY9ph}N0Mc-Y^GW<} z2bV`(^R>kE>{b0-7{s+u+EsIRM3;+WasysKGCrl}1GxwcIt%!?x`7kXYrJfF!MxjY z7lGfG?rKReh2jHamj>V0*nTxjgpVFoj%6X_TLBy*jlA#I5ju4A6{+dL+3ES=(Iox5 zMh8ckxHl1HsIi8Z-rwEdcMovqk^XymNeoY-I{YHZk}HpMauM?pWOe2tl;qhEGs~H( zeBg)zx_m;@2nScG%DtlpUFjt+8!sNfp}}`<_a-B7-t(PX`&!B5=;cd&2zg-jHb8=n z6tFe=nI2*!5KZGhLdKJu*}QuPYW6>V4yxf#n!Z8>p&mEz?CbgknE)RYGEC3+piMzJ z4JGED4_lCh1jR6*go%WDNFx7OYzzcI=C9zxSTZ;PLtxc|V}y>Ba>I=ybG3vmQmTEZ zlKLgKu-$M}DGPg0WjV4UZ_+jfK(IyNZ$MS=;F^&kA`($OVT#Cr(F#pSxqgHx4CTpW z6uR=nE(}*u2Qgn^>y5Mx0q}g4X$C?|S;viQSZdIqSScZidZIVjn^>ayEhKS!0&)YE z3aS#Q!x$<8K#(Nh6K1kBXsts=TMr=0T=Nh}IUXZWm(HI=0|8;Lx1WwaM4F+=WF+soP&99zRfX6KrK7>_oqIW~%2B_<|} zQN*1<>oG^R!24ujN2;uxEoY6qjTM?L-G@H&kPV9*7S)~sqV=Hz`v{<^iXrar&xZ zC(4I_WQZqD>dVi(<^$oR&1p7_Y$DwV&gqIQ>ZcI-c`(6$9l@4O&m^{MGXOY=fe;2V ziA|IZF#{7Ev3-ZUqbIJ1`9NNmha0N>&;u@W2&P31k>W+@xLdQ|L)1`3rit`;l>WjkX!;TaNgK9sJ5(NI#SK3z`#Io_uV#u8m`Hq-ht63xJ*Dq z=68DagHkzjh0M-`;%i-)-|hQ#kh{WcTljoC30@8L&=725ixfs}Kl53C7KcL8gOH8f368#r{>-I@bS zBWesX8FiLZacU|ifJr$eP+}JqL{akKQU*|Ldn!z#!b=-*2_2Q|5E9IKh8l>pLWmSj z85IObb)Gs44D}d`5tOenRHzz{A-zopafgs7QY^K8xY>K9?TU{<_Z)o9%cdf;VoyoPo6 zv0LdYB=97oG!Iln`FRye!3b5tba@LyG zheW zHy7OU?;x@i+%46~z=XgrKnRH#d7$kLQ zr5#<<&X*M>GZFkp{mf&uD=x^mz`FU*2n#ZVr22q#p(-T7mO*J{P=TZoI#Esl6@@b} z0oE5NZ@jD+GTg=O<25)0S2qhtFL?Xa)W6u0T&0$7CBz4bi!GK?g15;CtP65Ez2Nl* ziq_a_pZJg%3~;85))H?B@P@_GH}qkSq-x zs_!3e_7=0p*#-UiclWn%KxVDG)8qZs4`2V&A3je0@!L0dzkvV!?w`NE{^t8P`12$F z>$kuB#dq+ZU;W!Zyn0Us-+q7d&F_Es{f|E!{`UCI$6tT-mR=U#jhU!{NwL_eE9W;569Hc*T4D0_b1;xy#39aH*bFabGh9_tK<4Tq;tQ4D?rgb zH-o#uZe6o5l^xNOQp;yp=t=RC)6w8JLsi5?Cw-jJn*z|^AgMqZ?Q!_tK3dTukQe); zSLhcn;58KPP4)qRm;0tc=lHeB%=r{pRrvwPsXhM*T2qYMNBw#E@JoIEaqT!(D5e|VpCv0ovK2Ob} zvIx9Siq{K=1-O9K64p>|WM7>KX+X6X(b%^_Fyq>G!)mY?hxyv@f=)3pL&?R&&g@9ET>B;R zF?%s~W#mu}3_vJzcfg3Ww-*8eQ=0zQAK)!=xE>tX`>Vy{^#$1%j`nq9pd_45NVGRm zS$c&FHkec~cb?W88ZqgSK(=~w9+PMU?r0ls$ue*GaQAKxmlw&P>-EhHWFH7H#LE8U z5F$h-jXYqMgKa}W9L)kmow@o7OSkl!bY1buV zLIfn9)r#e5gd6_U)ms=Z;BY!X4+9|(-csrw!ES>>D8m0+*>&`CUq7K(v7e4BvG$Dp z+IN8P>_TUfT%-AZ_a45Cy^sI0vCLGFvx2A32AyOL{iRKeFVxtwxcCVTn|h_9^+6(F zfca6iW@BX8GBEt4{%T@?5fYgg7EM-}iIG8DHfv-wmXK{~3=7-)Gny6^FOXc`%t>MZ zRLzx@K4)?}sCf)npwlHbOikVn(%1SK?+c={5%%X0+aX(R4Khi7@}4H*AWLqrpQRn= zBRaZY)0qdvTs>YJ1mw}-A>Xx*iY5X^YM6u>q|(ENA7(f2!C`W9H+#H5UFu!$*p2bT zfsh7A9fcHu#uRmCT&u?nm8aE;8 z{kw%5FOb?(4e8`Grpa@+D4i7ZMmq6FxcCh$jPDrq(t#_dvnv@cpHrFPv{KJdrn#{C zwmsQ9#N@UYA>wxu3N;^|>8QZFoF{9|J$Lt=X&`;FAs?1?Bmm(enwMPX-_> zLz>2dtL^%+2&Wu6jBxzffHwf9g>Rf*Q2l=i-TqQNChJx1!k=E~qZ&wCYq$GF?+@+N z@kcV30s(E@Wug`eqvGJKmTpy331%S;xrl@O zP=*i1H(sr&46iO9+D8sN0!$cI=V--pGVYUNBTh9vdU1Y!UQ95HAnQb--^McGJC3bk zQ7MppYTN?jFWD!q>WUqxoTWPEdGTaYX*iL1m!!lTY13|6@B5^<79$yxW%3=Wo; z80%o>qx4GQ>#jJtsqN8nZ4~=!Dspgy(!>p`?rR|H=SPYljv&d_EG_L8Ue%`!D{=Ma z7WW`<;lpy7nlsuXFy<|0KU9LT%y{T15>9(dCOta2$Yiw!SwVVz`tv=-~p>JsRW!kXXmgom%@_>yf zszSA)pt$4UCWmm<`Q@fkhuAdsZj{~F>$a5J*x}Z^u(`*6CLxB+o_aNI3Yqm<EZ1RcyV=n1)i2(AV7&efM%g- zw?};drE3gE3ghhW7KHWu?f8BLkGq!*GqAY}+EUT@U>;*IvKOQ!pE<>bwuHC!la4nk zV;5a9v`x=EoGa*s3BH!evR+pehrZ4kq*a-B?0^bH;RcO5HkJ;viQPAej@99ei6tym z7+$7SkQrONl3VYXQ(HD3?+!Ykg#pjZ17~VUS2{d96S}9 zm&xVj`u!40vP?|oE*~fdlfWD0c%N6WVohv`n?yY&MxoipSyst{lS(((99tlEYFEQ45wN# zoI5&5m!1q{^|4Cb^&~a~bfY31ZXV*4{^96k1yOn3ceo3`zjOFYHxkBBma6G*ZVAWbW&5*eS?GXWeO``ig79{%Kh6vqLu6roxZ(adZ zv><JNa@zLAGx|Z zU1hEEHbeg4^-+s2WzAk@Fg!(a>GN5Nx_Qc4!(N(=MW5X7pc{;p5Y|~J`uMb`eBd0hE*>r1~@xYuLFHfuL!E07M z8(;cGvSG|OahZDpeIOb~cKf>ZK>S+wM7?{^n%j65l0cMeWe|<6-I(pxfzQr{e-eMm zB|1#0r78<;6pm`j95~Gf$tvXakcAQaRhA7J_C;)l4^|KbxtfvjQo#OlL0A}^G(YVQ zz1v1=cXPNe$ajLJGk@vvX!fehM_UaYmX$`ubBW_WeFf&v zt(!IM4Nbqec);q1$IVI)X#OI{21$%r22*oJu;Xx53{yFD^9X}+Q*_CYOY3q4L}f|W_;RC{8YOiIY<{T{p0il%(FxIo{E!np%pF!1D zpD7F)z|iUG!s?`7vI$|J4C-IZK&Fqo;!jb-R4kfVOzNb(OB9q5G)M9fNd_5?J#cd% z8j^32l1=XAonDH}4LL(e(GuesY(v8UsQKWC_TiH{-;3j0w{BssjQ~srAazzPmHefa z8K0y+nN*KlyIRd&DS(bDy4j@Qu#SN@b*YD+ty1HYISMxa-AXX6xb70EGf0_#SadRIO%?sFvf2n1)wJ-Sj*q-jUgIVMIejF7ciU4CMhMFyJ!r zd3RNybAH&JU0G`tJ;L*Ow_c|%+x(HM)QqA4IDsLB{lv???#vSnflz^@?sY zae~}-JOF*Jx?_&n@nZH0;!+bClZ_e?vzsnK{yYBoID5E7+byF!=&U=P9UjdK&fvnR zvtULtOl5b1n!36=IXx=-=E4kAGz?-Tz_kt)FvolexouOJvh*&6{bThD3>ngr$?2Ei zdn7QTYPGW1qM)ldY=62I$J7iA=e2E<$=U$u%TQmPrH&WmLPzyIDLQ`o(5v- zvdtfeL9S8@3LW~5$ zLIw)>VzD@#R)&le_KwsqDl#;oVyQnzf+DC@%ZZ@U5HT^kI=w1I#B)gg)&-syQl@b}=mXIiG1nkjfyw|-%OA}G*34COdy`^DG&`f zKww79PG{$kf5P`Fg$>GMPYtm^g9Jk1)#0mSl%7ufNMX+?%2bhaa}17Qh9eXR<;RE@ zsya0TR8>6HLqg48&ClUpu%9d!I#Hl~6Kg5$mC9BS950WTCq;jYqs8&!wB28W1M+&U zg@6w2h$MwQM9N+6O!$Tfa0qG&fM%^elGn?*P5Zj8V}h&sRX2wmuZd#GGKlEbox?v@ zj&6AR!T^o=Z)MK1Q zV`$Z4CQ#Q6f#g?lqVC1SoEMM}Nd4v%hLTg`N=TY_T3}}l7V`#jxON zQ^byXGt(?&i8Z?5=qgYPuyQ|LxH}wS(32gW+H!2DB@-84b#R}&OGns}eSg2wQ1NoOm;j{ zj&`wJJ**!&!{?I-mt7*08j}e!Gh^>~$gL;ho5QVIeH+k&adKE$AJXjnO(%Jg3r?iB z6pXYTOh(rD{@`G&7dp68wr4?n30E|r9|{wQ?&)rpXEh)6zNVPIY!OI5v5}qixdTg1Li)j+l*Q5^%-CtPQ~8A6nmdDPx1af zH~O^OXGNcO`URm+TvpGGKJE5d(Wjk$LFnWC|8rwcdVN;pNuOU3?r`h$+?b<2pA~P^ z<6jehoLMI0ln%L{flTP`Vyhg;jymu<0_0!i$ChTLh5g zUw1pWXF)?_M4K1*kpzFv(Ms&7ve2JxO0Vb;k%K>&VYh(|=I~lTU zqM2etbp#bHC4)vCxYq29%-(1e7h9MjDx;bhyr$*4XHC?=-5pVbws|o%%-x(OoY5d; z+33jn?v16!6b3EsA%D&Qd`VF6&S7+_T(QuwRE5Qn*gyM$&%>m{Lqb13@vs6o$$pynC6mFtUwcf2~zeGl&%y$OjU0jZ31 z`q7K@bd_l{QgDa@C-lISyZMAs&b#3}=>8c{-s*KI#&xe>XoBR!b{EN}@hvE~Af-bq z;R>YktZNTsw^$x7OHZ`io!=l12M(&YXgNh0C~3G8OE2Q6ei7+y;$M|*29DrlvC6aU zfj5d}Ao2iprw!z7BF~1w1ZiHs4Z{%jyt-X|&{nGrB5T{Q6Ev0!uTuD4dqvS@Km&yzE?;^?ENTpc=iBN%X{K63u1kRRPyId%5_PNWE*a3wsKY73h>C!1iSm zr)_W`H%)n2hU$7W6W_+T&la9qVtg$rL~=?ZsVK{DNk2)Z9SfM+}89 zvM>f-21)n!aHBw<(W+191};AgUKUaKHb|z4T}Ywqf*QC5;p1`B<`)f zp$v`-yGtl{m*)IJH|Zjq9R$T3+`gE*H}^2>W4PE_S3NJ6u*^}Xy*wB=R%Fr15)|9v z3%aW+se!h5?s;H~hWG1ZclCDlSbM-Q<5T4YQ-8t0Te5tL74tG$)kQD?Y)Z*R)5AUf z{5!B|JhRo;RoyoDKvL`a1t^QHZri@8Yd1=!M?+$?rPWUnANXu&w9Y8Lh<>%qrE;o;I)&ZegyN-jn zDrBh+7@^j^{17h{1)Pp9Y6q=)niNyJjZ%ZH!^QnoUc!PK6ln7B?+WyWL28(FG!HWc z=sab&Hj|bOS=e9X54ek?ruq$DeR>Z$z2OC+&}0jvsnn2zNV9Y{RrZ&A)Bl-eDXDm-;hZVm;^exS%L{h$~aqJjNb+7hYsaRpBv zV<_EPJt0|Wg$Tz+szyS1Yz4QijO1j!FL(L4jO($SwiVQBS4(n$bo^Dd$?rQK>f6qe z(Wk6B;#kP4nDTgJB369K-=v(l&9JEYui(=m~$M>C` z;`ywnHWVkynOApcT$4@ts&{sWY2#9~XeHRqCC7=_=A#p0p)eX!74Jw`f^c;1(PK#U?VGp>ObUgqO4;->w$=N7o#;Fhz z_^s~Ot96uA$<1{ax+NMA{tl5Uc1K-_ePE`3%ZPnRba<6R)Z6xY`JiobHcbYL({3HQ3X~?omd>|LZnBbFA zZd)#+g6tIran8yu`Mlhmi6;bCs>ndXt?wXX?+7kcV?Lst@GoWwynaaYLiZ~qnv#t4 zGKF4V+zuUX`4r|$kf2G$g3usw95Ni7RHj)Qw(CA)zN6*fZ=hMo)0WAz*~_aXb-)mJ-3 zp`orAcG3<&Cj(rZDmfWr&Ie>#G*W2N2ORylde;%3p)9|=yuDlGdl81slYB!L-twmV zFW7evWk;Ta#i`#v?OmfP&!c`Det5z z_#`2lJlI6~a)|r7SUq%edA^jM2UYHYJ&}HSxcm4TyDf?gM8t0w)7RPi9Ok# z1tI!vYjglhzJGUHVuVYH4@3nC&%x%LQmah?JY0tvcivH4@sojrRFMthnlcYs*H@ix~L81yq(TE9GuHEIOzNwv5 zX}UnC9k80f?Cq$8$4MsI8NfT42xRIcoo}n`du{cjEOPGHD0OcW^U%c+*LH zY-BX2wpT@0@EHT3IVEd4nA4!JrCd4+LeNa|xUi+%w+ULBEK*@hzHAaSTvDo!Hk$CZ zMbM1R>8RP_?lD+A|F>9B*!)S>F>iGuWFRfpkF$68T2;0oc1s3k2&@{mIHnC5korM` e0c4l%y+tCTL{k}ulC8nGt`}~q9bqdpIsXT>I)_yN literal 0 HcmV?d00001 diff --git a/priv/static/adminfe/static/css/chunk-f018.0d22684d.css b/priv/static/adminfe/chunk-f018.0d22684d.css similarity index 100% rename from priv/static/adminfe/static/css/chunk-f018.0d22684d.css rename to priv/static/adminfe/chunk-f018.0d22684d.css diff --git a/priv/static/adminfe/static/css/chunk-libs.bd17d456.css b/priv/static/adminfe/chunk-libs.4e8c4664.css similarity index 100% rename from priv/static/adminfe/static/css/chunk-libs.bd17d456.css rename to priv/static/adminfe/chunk-libs.4e8c4664.css diff --git a/priv/static/adminfe/index.html b/priv/static/adminfe/index.html index 44a58a44e..2ef6362ba 100644 --- a/priv/static/adminfe/index.html +++ b/priv/static/adminfe/index.html @@ -1 +1 @@ -Admin FE
\ No newline at end of file +Admin FE
\ No newline at end of file diff --git a/priv/static/adminfe/static/css/chunk-50cf.1db1ed5b.css b/priv/static/adminfe/static/css/chunk-50cf.1db1ed5b.css deleted file mode 100644 index 2a2fbd8e4fb459dfa7959c8607fe6e8ce388936b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1661 zcmcIl!H%0S5d9UTs!~^4BS^AI)?E4@)gFvJ5I4p~wv&)X`S*?qNnjzn?P0|MF~dA& z{N5X42MV|+g#;yj3FaBulU17YWj?H?sNw1dc zx_OG27MNtsFqtN^1!kX(R>#P33!v|BUh5J5=@kD5U*{rc$>QzAjWU*gTO_Yg6j@=kCkK$_#?w`j^h=`{6p`F$!Z*OTpCT#4 zJhcI->xr)FCQ9&1Ls#+6fprA&Jd+x1v`NR1mtp8^_F-jQGaQ+DY4l?V{AQG79vV-W zlBK2`v=vsWDHJsQSa{Ah z7hdMey2*Nlq-K0efA5@^#W5pY^)T9H+m>){>aYe#4*r0e8-Vo>=MFZAwhu&ls9bl7 zSB6`nT6(|S5dR^cpu042ucEwX z@E~`UMk4_(#oPN`wDUc#3ZyMU{wC%{>LwRjXHzV^IZA5e7UixC-@aRrxPQk>@4dEy pOz>OXjS#_f33f#6^Q6A|g>J_=I5(<1)l3MfOQN9g6#p3K^I!fGQse*t diff --git a/priv/static/adminfe/static/css/chunk-elementUI.4296cedf.css b/priv/static/adminfe/static/css/chunk-elementUI.4296cedf.css deleted file mode 100644 index fbd926db1383fbe98135b3ef94026f6d24a4bf55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198996 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

D)jP3ivae`mL7vCm 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 R%5-hKnfT3be)G^z{y*G?z^MQL diff --git a/priv/static/adminfe/static/js/app.4137ad8f.js b/priv/static/adminfe/static/js/app.4137ad8f.js new file mode 100644 index 0000000000000000000000000000000000000000..bb4b6ec49f862059aede88d6fe2c4e5957b1f112 GIT binary patch literal 115467 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 KFMe_Rzy5!bga=>% literal 0 HcmV?d00001 diff --git a/priv/static/adminfe/static/js/chunk-02a0.db6ec114.js b/priv/static/adminfe/static/js/chunk-02a0.db6ec114.js new file mode 100644 index 0000000000000000000000000000000000000000..6f8dd4d132beafb94af155e0702e300a19b0126d GIT binary patch literal 266229 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 literal 0 HcmV?d00001 diff --git a/priv/static/adminfe/static/js/chunk-0620.c765c190.js b/priv/static/adminfe/static/js/chunk-0620.c765c190.js new file mode 100644 index 0000000000000000000000000000000000000000..aa8ddedce52cf5acd97737791f9e1f2776d1d327 GIT binary patch literal 12982 zcmcIrYjfL1mi<1z0z%m=Kmb8d$#^%AAa1-9Ph}>rns|3>LNYE8Y)T!201IeH)`*Xpoe%A7-l*nCR}?kK6ZoF5*4%a$P+}k8HKe@{fOMs&bc}Y1{ATOF!DR&Am6D zyZL=vejLYdu3~o?KD%E{{y1@yO57`ePPu+R7`VHOA&rjP`RV>}GN+-WAnqZIrUQO=846pNXu#7*=B%4>X0F z)6oqpHltDhJSC&PaGN&!{bs*^XISFaOtf|BhOUU8CEKr_rk2ZRGV?1mJ~XL^n$A#M+3u z4R*jhqtShoXGMXZY09a^tXR^DbUJgq!RGZ8(L+|W?8nWFnO~ltuxpmydBUHGz;zRG zpo2A%-R?!lB(qEmF<>*61VqK6n(c}#XI>S$u79m0xs3#C1a_hs>(u*wVcKT7$D*d- zpt6P=Jvt?Obl!s*-_&(gd$r#S#s_dft0ITmRc7-%t)TY|c@yvV+tG-Po7*(&>EA(eiG3{Hc|IM2CNxa{ zM9eJGhKcul%c@p*??PK_6yL?z!_pnsx3jfZhZ!|CzMs@mSo#HNPA!#AVNQ5I8u8f& z^dz2j?$$adw5i``Sf{j2+AdGC`mWuwQZz74q|0HRGO~5(?ATD46WP1hD$`*2(HVsw zZq#<#gNKu0s;!yfbm#{RIq1py6`|87L;bKd14a6Pi{J0#@XjltULM5hqKpcbt;ybG zskcpCn4AB}xNv#tl>ThxJ$NOVAZnAO0wN6Qb48u;0%UUFjOH;d$-N&wLUYTU6}?o0 zl~S@U(zFg zzT5rgQr9o{-@ZNZOC(5T$glq}xx8@xV^_0=)er0s&ZPrO$Lg$zerxFMfz=J%nUgqI zQ5?OYrmPkBRgIRf*V)$jQ=RQtP3@%WWy8?%{kQL_;a-ScGMQu;_PCbAqB}0`+f|fT z+sO}Vo$+tY1cN8tJwm{GwKg8gD{V$d^&$V7J|CdLc<}T&Z|fRD`CSF8$r6{9Zuk#Y zSMRENn~9`siz1|l{k~?KtSy9Ya^o;|!-mLzVl~bp-abv^IJt-q5cH$@c{EthUW!Nk zy7rPh>emm4OY>;(er6LqI@y@z>oN*A{AarQ=mRfzt$>QDH|Ymbp|!wcJs&$OD=jRk z9E*6PuLUaN^R!gX19plPxLFJ#uTbvy-EEZ^6?eUKKs7+nRM`)D8Z>ufjK?uo3q`}c zmBqBtsKg|8%V3ep;-eYbb9TRnG8$(!ng5CyX&E4Fg4cqsmv`cx&Sf_Ayn%CQ9jJRv zyYTWevgg$Ec8MwP;H#RbEkOc_nw@QhlReuGdqajqPn?`L+fJu`|rI1 zZnkU$nJmPD*#W~pq#}JT<=XF!3U!toiic&SbFdtAh=>oSv7EE0+EEDH3{_-_kPfbU zO^;pby5Su?9`H({hainibE`tVY}LS4(>@|z=0&?^4LqFdx&F+RIN5pT z(qb7r4j#3Zgh}Ro+;8`*JtDFR?IxQ~mnWo-q6Nzw7jcwzaJurpu{)#_-Y#&n`N!=_ zEN2)5Sr6OWbjqezqtQi%@KzuYO|u!srT0;`g1kNOOkEPKp{G`26lyZu% z^bD()XIR-2e5L3?CduDu^6ksyTbuk1?vK_7ouvOl(|?ro#Kdz)xUbqKE7$4>U-+kz zGmnBJ-i%d6BIjER?q z0=<~STzfpZgFsR$sSHw>&xSIahwhw2Jx}qMcY^NHPO(ulE5<;HNPb22j(=inPlP$G zqoxgVh?7}@qo;dAka$AZ4J1C?nI-h$)#y$YVNKC7yNA~*_?8RA2>6-vZB_&W(&;jR zj;}`}avR!kVSr2urc(dN2w*$K(J^8em~cmTKN@Me!Y7G_JnRrey(Gkb^T^4_7O6@j zy^eSST1@Fb=NUZN3B8t}WOp*P7EfiPug_BJA!mrSYJ84Z4>?0@G?VhQft4yk7d8mG z0C&-GlT2xh%hMNmQ~BiEC{+58R%6qA{oyvg{xBZb32~u2~7$P73ln^ zw^;k$EX6<1UmX0vn_Zy6CyV=P>IMTrKyWCP5vfQ>*KR2ZghsAG_Gz0!RswGa zY@2$k(dc0YBM+JJgKePSefgdsiHb3ZW^862#*NVq;~Z=g4DH{O2P}a|e(VNYta1p4 zp41A2l?Ri~4AFl%ua5l{GC=48qAGQu~wyzh;(pd?)n^&F_07^A$scl zjywM~8~@|$@h?j^$cBz(E|!7o&635!-+PM%^{bFMe~J`1LY`I)@Mr$)6~v&`CXypY zsxMV6umi3$jl%--`8rTS7ZgIkcnUG%0N+d}A_m3E8pL%^m35TH>Q zkL*kgMpM46BR_+(z_Iy(2+S)mi?C+vHfIAunWmGFK`<#p@Xx^|?$>plJz21vn#dtQ z3b-ZmL7Krq7T98&8(y+CKp_Z6pSg8_j5xaj5GaQ?PFV>X1=YY3aykV-0&+lVM@c#b z?zgwMF`TSKe!jr=I~+pyL$|u7`PEWp95TSau5LJdiC2+&l>W6}1%Xu6+mxT(o%=V* zI0xY{+wR1ZlMz20_?CNY8MAP~v%-x;27=STHa}4{=PUFT=?5bnm@dnYcHHE4Q zfx$?4j~GnWcn&FS+$H(Cb9R}mCishIRsb?sKRJLUeyyc-WysE)f^F)}t;nj-XR*t12W~NAU?vLq3dY;F$6=F%^~VBHGZP)5ML<%!R>l zlk=V7g-2oupAReoc2w>d6+Rpq!H3L|NK~431rB;sfW^r0FuKzC&k>=bBW}@k5ur@B z;&9xPqHLo>T2%4WYzVwm7H+lZ5Z7ukp)Qt2>S2X}JaC_{4hZ171JFLA5O@fU&1fGo zn}+u@&islxdKY$)Ss60jcyzf~;~e|F)lvA#lpKGboDadg6yt(36Qv`N-N&#JS_8MtaS*L?eCqSRqT?bE*X1TuNqXS`SDEUr{s5g$1sDJI_C@#|rN&<4t%zDmy zXjGjIp?eE>6Yc6<$Ly%Dv}vnwxN-n2`W_Yd0B~we1OO?I-!rLWBQa4khoWNO+%FE2 zy~zHUHKa#8t%>@$ULxj)Fk7$tSwTX63LzYd7Q;YF1xUmv8)^@G?`JO}O!zdnT0;gD zsVfRo;gfJx6Fdd|4SV$^6Uqwkvs}9grHS}i<0p+m zHYBTr`BU<&Fo?u`<)U;7Q{Eq5*)1GzwQF#CbWr6dp`dk(QsTsW`_s?q!6_#zlW2A8aJdjKWuG|9x7#{sr0XYHm<|lXybXUj^{Xsih)yY`kP1*R%OImn{ zvq84{L~8m+$QLU7#?&dTMTKdF)FlBh8#e7`0|dKC=I&cC{;%}-o*sXu$9sDGM2~Oi z@e4iv{?2J9xgL6qF_Q~^8J8Q>B`6}tLIFh(BHy@nZ8BcvU(8v~eU9l;PF z03F9aqkIVblvSRuJ{B=o?R zaEwglx7-#db-^`-tn{AMiciStDpH=2;P3yz(cfQg)2%fK?jjc)2*-LX#P!hb3Kk^jB}bpsMPg z>buQ;@oIVLPh>GJ+dvchf!#R28;2|aNdi8RfIQkYQbf6*~sGtMg_9WAec2_~K4Lc3#jGwNT{LV4PV4J!WJ&QLDD&%h`hkIc`I{9D; zI`{cWPdC>yqswpji}4113|Zp4BVfyCwT(d?*w{Ar6VJ4LUJKLi3)UW&*OpvXCGZ7; z8?zwBSD`?q@I`^y2f;8pcwjxiG|(ufv~>AAJ;X{Gh+9Wi^#_^qc^pcKj~EcF0B{A~ zinRQkoke`1av8;U{RN0XI7&4m1188fY}o7%l_2c0sVm5VFCxDLg#sXa-I%`KmC}F&@x2cF)HZCr(V2P$NpDG-q_#yxcjyH zV$|Jh#ZlxTIx+jqA!kuMy@cO<@m2&rIzD?J$?!h#dU_xF|9GG+mMU=B6cyYro4kqf zM~9WVq+0Q@@|*awyhMlW)Ul2PwE8|8gP2F_Z5dF_-{Uva80HG*BjK$zp7sIB$PtAi9PYf~b~lwhObQ7bG8HFcw|5VNV|Q_lmT vIwFzQ&mzGTerPO~Op@5apOyMcUKmONJSm}X{SYgXd!TRS@rmC7#_WFqpb`eD literal 0 HcmV?d00001 diff --git a/priv/static/adminfe/static/js/chunk-50cf.b9b1df43.js b/priv/static/adminfe/static/js/chunk-50cf.b9b1df43.js deleted file mode 100644 index 1b56146399d634a3b13ecae97cce9789c4835739..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10721 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 diff --git a/priv/static/adminfe/static/js/chunk-56c9.28e35fc3.js b/priv/static/adminfe/static/js/chunk-56c9.28e35fc3.js new file mode 100644 index 0000000000000000000000000000000000000000..6f92e0e72241658dfe8ac60425710319ba5ae0c8 GIT binary patch literal 14105 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 AP5=M^ literal 0 HcmV?d00001 diff --git a/priv/static/adminfe/static/js/chunk-elementUI.1fa5434b.js b/priv/static/adminfe/static/js/chunk-elementUI.1fa5434b.js new file mode 100644 index 0000000000000000000000000000000000000000..8f6f193b7e6e504664018160ec9978330525ae62 GIT binary patch literal 562077 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

3WsV)CJ!G$VER$o*K86W4-C!n{1O zFwfdcR;wWK4=-_`N&?j3Ye>)lM_n0;f@h28ap(O{Kb>Fn`a3`E{_pjhf7o2rQ~T3T z*Ka`FD2$7TUqFI}_`=AV@VI2|Q=PqE?#|GSh9r7`L1;O_T>|8Cy2M~rdI%q|fSw_V zLX-m(4h`+ijT?)?l+S{froid5;3c8Qew*NBeeF-5B`;gz)BaiVf~4oOV*}Lk!BvxKsY8 z^*QV7*eHBf=zJzCR9O9)thmTH5ewJYa%D}pz)_`lLpBL$RIfo0i=0LdV__ow%j4lR zC?=eyVq087H6U&sUhPYqZU2pk^@BDd*hpH|9yLBoMlXDQje)YrX$!&=5|iHB`uHTH zVy-5sMfG1+C-W|aatT*t;{eDNvqnzw7!jjIE^_$qD~7*LZ*?0 z2=PS%Lwa)|L1cM1U6JIoQ9@bQ+(+_rBU`NGMohi)F8Np39GA(7Ul&Vr+-L{7L#Ri_ zIir#V)Y4={(Vdw3%xCa1+etfc9!Aj6T6!FtnVZGlo?3NbpSU7%-N{~#~N>q&VH?`la(R;5vYR5-Z}%(0wK;<>U83%Q|##a z*hHAP&HusNMy12yA0%|k$yD}4X;l73(iF$rK$=!plBSiBrs%N~?GGVpfb5eu@7^Sk z)MBx)R8F4~ZB7(>4Hf&M;mQS~LgajDeS_Bpw%;4yI7mJ9Fkk2&XrlKuhG*#M!~>4P~VUb?o-@ zFW1)B?kuPoT;~{ST$Au;&~YP-4KQvO!D$g~2BYF*LA<)NEB08_&qR!iF|nUqM+Lj0 zE0=|=5tsW^%)VEw4kr(a{o~lrG$UY~0irC!PPMx!|KJOP844!rXxXixK;B&KDkR{} zMBOxHvlvyJ&g$cyeJ0+hbsQF-8U)#}niC3wXa+nmd-PP6TyOTo4dc8Jh2fJD3r3b&dSUZQU*ka=@hOS`mhc8l|~pC5A9w74r4%MLpe|S4MqY&G3A} z1&Zi=x^QN(T}(To(3^IqZ!2%hU8A%M=L2Jy8Tq$8crjK$%e|F7#jSz0F?|M#=Z(m_ z5>#mX_b>mtupteypxv{f#mvbcJa2i=vHAbND_sh#BnW22GiY= zKS-b?hODnQCO1v@De=$=v3*dS<=t)h!zZFC9r2C+oom9}w#b^Jt&?>IE?=&&ylWvm zJJLfpvln7x9$rj&;Dtoia39Fej{J7TuDTY>Z-~$Ffz^F5K5#WDvU*ZvwZy;tA3DwF z{2G!Brz4NuYz)C}FP`$t6-w`tx-o~HW@cc7$%@jWF}Tv~|{-Y*H`thL^j>l;yY@Nj4-0)y!_+CrCQKq^-q{+Z%&x^9jSwkI2lHcfYMLOM%lABP!tpySL=0 z98GMas#nq>?j)kTExJ`g;tl=2(bBS#3 zA?SgySsiFHf>>~f#?_Ws29^g8v2>Kf<2F^TkqFVxH8Wpf-#)mw<*T{^NfwVGVD+~} zE+`T?=@o9*_h-HTXTASthYJ&$c}C$sE};L@?a%UgxeLJipB*kf%jYk$Ki$5Z1G-x4 z|8c3@+x;mp#MQi3uuY>Kt}XJ|y;r zNOmC}o#ThT#65y&Cgi;}XAmnZB&6W_+M3FMyONkw* zAZ&|9u*}ab&>6$6$?@~L{80k0NOVjc$_KWnIWl~Ug!C&W>UYGD;v$Q4R9wmrn-qEK z$Jp)59?AR&kMM?g7<=TgOBR>(?Efv9*_px~d5|P~IS*Hle1ABBCHJF_>!6`$bOl_P zdQx4?FG~FeZHSlW3xzFNZo6xpwGNvo|M#mWR_@dkm>ljapO80z(gv}&2l*>19tU0r z0(Md&{t0Z9Y)sz$ukwrX&xf~x94lF|AUV{Xl!Q1X_Xd{5ehbaXh8!t?5+Zt>3-Jv3 zu(4P@0}s4EbeUuzx~J_!^dl0;#TNr$)}XGkxH@(ZU7s>^*-km-?yw>V|2RNmaRq)n zydQGasoo42awtaNONs*6%WxH^kjY-Y6#K6l#tnm|`;3Yx zzZ_zBv)d79FE*C?cm)mU^MDc=Ihltor+s^7d&MCVy=Mq34Of{mA10C|zpdbztm_U! zjK)+tOXi5cTvyJm%T1n4yFU7qq~E=)uTJ@mW_Hm{GH(?dyK(pwjEdXJ>ihJ?2*Efwlx zf{T2ywt|ChU0N`(cTr3`p#WeA2u|TL9Kb{J>&@D?4Ki~E5m8c@k{)#^*j6JmtS_x z7imM^$1|)o4iEqM=Rf}0*YM|1zP-IxtQ{V9eP9R{KH%AO)CR(Ve$qh;kw^?Chd03F zTI%q-+{LEy*IRBy#W~zw^Tlez!P;Kciin5O&-FX?nN?cWUo;;y=Jne*SO542H`;Ko z=d0`bAA6z4^5$(3KK*_ct^Qh6djbCtjRt-X*)Ni zd1cr)w_6>vZl{h}w|Db9Yiq=jUHJG;>&JJ{QH82Icg*pQXa(+gKzu)_P-^SB?GAf>So@RT;>G0#Pmc`__UsHB=wlipUj_2iJV`nEB9?mBpx3h6} zluc$I+)oCr)1-TIxSI6#=abK zbX&7dUf#*}`~IWm=`@?or<0W@MLt^TUg`Im~eoypU*C}yp)Kj~a8 zj%m@#&agN-E+(k*UV4;mOs-vPTq)1aN}7FhquH2HU1_6vjIAo4AWU7Z#K_cd($Ev4byVAFzkly$V%40Hnt|sQyKB_FdvUFg$^cmHys|j zijA^)iuu*fqu=k(Ht{kTOxfDW-C!ooW-rrG;srW%uXZK_j1>RZ8K&cLg9gzO$U4V= ztz_+ud)v?1KVJTgD>fq0g`)AQD}e|>bi)_V2)?1B7qa?;rBot!i`&$dypetveR zIQ#au&l)@L96l)T91WTut!MHwLf##`S|%+Q0tM=%dl* z_13t5eW%-gWAMt(Z=~%{KALyCw+RNjH}BoU-`5mC>EYfR{BZBi7Cqd#N7e4#yL)f2 zdbWeAxA<-M7OGw!tTsL>U)hX{2dhnt^Tzr0yfybI(L6ohu=%bG2^E{C28nrpXV9AT zyMVi_GtMRlv%`(ao8`u2b+wrbf@fIuPC4HL+BSfs&E|$8Wq$5j9RYz1SFO-Mg_akf zxswe#ATHUnhx?7ZGdxVEw`YxRvok9`I6ls%TWOg!nyb0>v_@~)>Z zqhc~U?3ch->uBZB&nfF~gSt!(FrL<|57fG`Ve@)(w$aS`NjF)|YzEmm4Q{``lWfl? zqx2+cB@YVy@pztI>EbTUt;)YiRhZ>m2Z zq|@Ocif$iI^D%Y9oqcsa$?)*i`IxHTo*&H18GdYM$FuBcFPq}`!{MxuU+)!9tnf}Y zl%IpvQGeJtZml<4Pw-&{T8ob@bV}q=^eMy zqen-*og_U%|Hns|)}7+sB%lgztFzUeWJc5CVNXW*H60~`o$M=X-M7{^yS+x%rr%fk zYu)B6^lNZ_zCmk#&_BIX+hXS+o83uI8X!n_YHMJ#T^*`a1kDg+D{#&_G-#_k18kx4 zD5&ddYI9TtHEOH4KCPXoTGXqpGOzlMAL@YGe*S0i7Y~+>7hpO&1iq}Dw;t5i(jmKg znA?M>W;E&wK*%WcTZ|lEhMg?=wEES_N!{=bKWP*1;VA!BmQJxbhW9rx&=dSu_bIQY z|K_|Ep0M$LzEc2C8_ln*-8eg2yMdauRdtc#${4^qOMBOH#Gvkhs`qx%mYsZZ?qwYio&M~6(0Wk! zl5x8~Yp=i~ZZkIw!!{KGmPSb?f!byuH@T zo2xW{!^P&a&LMD-hlfLDaqLG7-~7I;doQrZ@0l*_fUP=x_5Aw6BJiMS5ZgVfvsmHC zgEG#e?kikZDxZR9T4*q?uhq5w`g7`2+jnR>^8wNQ-p-hQ5gEm=Q6s4k+@#4b7vIv0 zl)eeKoFpmQHHZ;0le94bbDbL&Y-SLs9v$_sto4HOwE@^Ddjn)15G3zh-}z|uqxOI} z*4`%ltu6;c2{^^ZY&A)mog<;Nw^NQAatf`(VHEi3qkz-t9` z9ptzylU7N56Cpz{d2s#C^%JmYN7*Q!A88qV)Z&kl*0`7)xZz+#Q}C91 zAZpP|xLfNWDB_V&>v35JBs4k4bil`BD?G2Sa<)K6es(6z;6}dRNG5Y;DItBG9B0M; z3PkBf);Ej?!`y5oJH_62v*C&Ae2sbz!M19<{# zq02T~K0DbAKR@mS)5Ge|;;8`*WI%7NW$R60S+A@yXIzphB!xK2pDmd&THM1lg$(3< z`rRsU`jjBdz{?!i1c9jl1+W#PqPj)Pfu@ZV+L;M(lUfi#uUNGugB*3<>|s=E=gL}B zZ<|T7YPMEW^d3-ju z&?+(GXbC@Y5`*Ey4?6UuNcxoDa+q1Uylv`g;HalCbLu9_EUfo3g`jI%RfzI{Duo)bHptiShkw5W#h^<2A98W5#|?kvzy zekF*$((pP3^Im6XN+3a@@=5k+T0oUCJE3>2Q*h+_`N4de z?u|1ZA}DaCPu&(6#omO7QQiqw+N}tva~9}FH{F`Ky#U)MhuFDiMEy&*3K%{#F-e+$ zaRw@*yCRy7`(%OCAExEQrxTl#5`45mZ5;QL>rivft|zS=>YTE_b_1M!Ub~YbpBS28I zm2*orxRk&O;KhZzRzoR51p&whf!JZJy11)RL5{S0?Vbx+3xO#AKcyD-hO{~>*0Hk?|$>~?k?eUzos07 zm9)r#>J>)@gXuIo04!wFY_w$>YfK&RTlb=qjz*0FP=qDK^xoHR`}1axG~75VnytA& z#;8B+_$6%}_D7qxTfJdtFT;VGZ9)G(%Qi-v*vQ>{LhQ@->|~skeE@-Ntu-P7lhTK| zPNms`a7=LBtTfs`+}v@x=R*vtw=*9oi8wXOMQ`e85BN(_-1mm0j$T`e3wc9K4Oj%= zO;qi9RuTs9m|z&Wt5A##h6v?yv-9&t-dMY_4(08{Fa_FJ0QGnrP=n@a=4}oQUvmOI zV#_^Z)H7=Y76_w4n9BOaQ>mwwAWq&6l(cXnjOU=2-E%?ZNuNgkDv$}1%>-uy7#%9P z*@V76hX%P(GGm{%a0<}L@BcJmV$#v|r*;I;lD~TKI4g#!&$HxMa6g7qTE|{;cf56& z4L{y1o`K=dpJ5w%J8l^VErH?QX*RwG=H72&0)}78?n65ql>?Uy@7`PJVwBDT{fUwL z(=r?H!}gZ(>A7DF=Ovv{dHHS*BhlSw!z>$RBNPFUsd4D4M!nM`{@|3(E{9Uq;tJEP zy!=gQkB&F_p_~Chm8Agr<}%)1c`Z9FHElFda)ph9LPpK9%?EsAG)nNMEoUL*>bpZ- zVIB;zeS{psa=*E>#*)TC$S-a^edb$#tG0EjvAlI=YIT~?#FWgNJ+Tph4o?jF_I!e^ zNm{V3fPs`Q*s|8JH)IGQW24(|*bcF$dC5SCOxRaZj|An zDZ44KaeF#VPq0D!uZ(A*lCuMG8{>2@8#mvA5=kw)zU6Dz;)Umyg5EGLt~{I0vv;W( zg*BQUFHkr+92RVR%_8ILMz+D+=EBmV?QDq!({ZJ=t}&>A8M)HkAVEqEvwB9vfRrbR_%C-ruA+D_1v3EUQZhHcw zz|VCx&s)2mSZ(K@WZ_oGi4}fKBu%=CzXI`5Os=*;f`e{liRN_@l}>GhSMR=i_rcxw z9!nQg--HC7fI^F+TV3FYibE}1 zGgrXPV&kj=pADj0X?b|w(USLAc>@VP9hVB~)mQnbr|UPP$JMhjj2dpqDvB5)L% zFd(HCozu(;N3?)fM<=ag_8ZN%CzyKZXb<*WRy2fS{qkxy#xXLxJ%dVY4-7#gNvC<* zHgJQ4Nd(az!6rUsFBruU*Mptu;f#sZAsT=a4V{2gACZdyFCraRm>f7hKS+|VtL{Xi z^Mw5uBcJ-J0t-SZ;1U4BEX#CP+?84c9J_QlVrjAcMi;=MGn|4U713{NoWin((Y0*{ zlGc#RVD}UZBQC&R5~0`(Yq#5QJcwTR5;UIVW!q>&0>2ke($D3kG@U`AV%_Kq-BtN$ zOW+#X{1m$bx&-_Ot7)UbvdUITHU1{t;LQY#sPy3&1O23aa4k?940eQ#*}+l)bSD?A z)Gh=wW>aLrE|@eJno<^cVKjIVk=BJt@VCs#(kuP})1fR!W%@eZ%a48nXN+^UUKp!^ zQ=sF~e-n$KbAS3V;5jttE1NWKbc36DL7(nw2Gdzk09` zp(MeEE(5>a-C~*_;FN(siO!N_`o&E@%txba0=pxTwWP%dP1d1*{HYWIUW+TXd1$nf zjvBTSp0I!8=MV3O;)qm506hiFUVL`w9GlQK?&eS$%8ZHSW8M#?-*crwpP(XG4YbMU zz>Xs#Q2P_Y6ZUFLWDH{>&pvcI2=wNLPe9?0PdYo|0m2E6nptsz=;+0UkE0Al8R2^juaKnliRX6sv1c_?~At%vY?zl2o#oraSd; z+Ot>|&RO9a+9g?!7fzostC`}hYY5Hpbr2$dCtL365c%Wj5#@U>`RAI@U*M?Roi!3|BUx;gr~^!hJ*xNwxVBs3kL+4=Fo5>~K!hrQ z*eh4|76;YFc}MGl0U z10Fyu*IvC9Ra+3QeswDG^_yR)5hAvx5Km;*X-xNE`~KGxOn3b`qU1{(D%NjR>=f&- zy|kHP{iU{~#_G9!a9ph@-u5RiIytmeDHK26#taEvjY?`I%mN#;e+lE?1>KP; z2^Oa593JdbXj*I-87u+XGjwR;R$wiW#XH6~>Jkiq3me*8G;+a>i3~*WQw$6* zW@d5h3xXchQ1XyXc97+(78HA-_L!XnN&?7rG~YMd&&}Q zJ5F8-h;w$u6&6*VuJDQazC z>|aFMBx%>R^dTDum$bxnRfVUmlFh$On{&_1uXx%a&hhnowI-_iNdSSN|%0UAqR?vr`E61qhSCFPW|y zPT32MoOglfAv&aqxVhSzvr0{bJwdy-Qw&IDjDOSww86u?#7wcOPSdWSQkgb+JP{-s z2AF;$SO`CJHK0JXK+b3%5>mW<@(8Z`O?WcoO`3GwJ5rjOi&I830bVJL`_WVsrckNC zZD|6@PXP-`5NDNhFUfs3e1I?p&8jb18~ELFGc*Krrh}YRK^p`B0r8jdOdv!nlrhlI z{>%5LPskIofaj?r3+}wAT?O(DUA98d`mi$HdF|IiM_GZ6ve`sL;}d6n6fF*`_8o-| z2giFF5pW7;WlBv-@Nh2-z(Px1^rcZwT^wlyy4`0H0Z_*jx6;%sMMTM0a@1`>HT7}W z_Z5n`jRpV=b7j#el%~{Tf~-c+2h7#fDlDZW#(!^~O;5H&zqhbRdZ@8GCOn1iK09vk zo@V7RJAx?x$Bs|c}9f`wF5 zOi*HWD5_Wkp87$}8|;ucTHQgM^t1>9vnsQn$keo2bY|MhSo|k14x6mjU-JO>>oMx& zuv64%=;4e1G*Zw@fgDg-N8vEi&}&(pj$R<5Jp!YMaQX@CA8gxF^M||z0|0eraHO;S z0vN=oPKtN?O}e%S+gSM)a1zSoQK$`=J<(|%6^OM5-3IfgiaTxWOh?f1Xb+5Hcuv+I7T zvkTo^ztq`%sk7_8lOS-Rpq58PB?sHCfRW86J6b4XS#wob_dPUi` z)_vopwQXzN*DvNo>NTKK_*LJ6%Bk$rueCQ=`$RwCvE1}oH>O}tO{I46mIO*G(@@wU6XPO+^C(|J^YUspp)Qoi`kU z0FHa2)RF#yaa*V6}%K|CzRaQT2N;hNLgW7J3z0{v$ITOJVJ z>O+<$Ih+FpDNHt_7+GSomT3Q!t@@C)U|rOUJgiRhBZ^RE#UGS_>`D;#OrrIyALv7} zo{SXmNdmeP?75IGwGt#hp%{Kg$O!gdCS#;xH)@EssR%G zH+X<>@}|BaPi<=rAfaMQIB$exal^5jvv8+@r+PlQW6DuS7v0ix1G}S)Bs%1s;YWrr zmAC-LP4N@Q7#MP&+gLuis4;O1$5a7Ub2!Qvv;;$=y-|l&9f~Xo;S_W!JVq#c+_wnE z<}$ayq$dNHu4)mVGi$QhDBr@ek~$t4=b1CN89fXED7iz^U<=Ht=I zq?oPjWh)4(DWS7XC-{@CVD<8&biBgYP_7`Nm_`blJ|b^9c>!h%LI|lG$$A{x-JZRl z9~>?XA295MS`N-lhcnXO@ht6yq3y5CznHzY1PRDz&m(FKEaWt+YJyAq7?UrsBi+vf zAfs!hB+Rz%?45-Ly+K_S8@K-2|*FF|PXnkw#*N1&jF0|>ZZfao|)=FFqJUpH3b zs%pt$AioJj4H>)Q{)2?;uEcpAv1p+EO(=kzml!yuOL|nRJtuk%KizBuI)y*xOBX3 zYSdUn5oj5Cz91lmHK9^k)Zi3Et*4IL8w%s2lZgls?0@_-n{5S)&RPsGB|@wHYF%px-dp zkVRaByk)-kjs_;AFUqNWVifn5naA6H3 zVe{P=fw;|z^Tud$#g6_J5+=5FMVkLkWeg&go4@E>#|9_mF zkmbQIgzzd?8i`gzt{kE+&<=f!teU94g@6M@-;l*1X|1gz#v6qu`mKsf${0-XW; z0;kam^&>z&%Ge~@60f|8Xp6yfi-asdLxrHQ;t2lw=`&Um;a5Hhg9Fs*O8vwI{5dwl z!YPQa(pU;BVkQW|0~}Rih4+a_$w^Jx9}3}l2&!VJ6a}Av?|&{XVP#wEuh${cY=I;J z`opb^QZ-$sFGj1@tCU510c~r03o&^BkNH6hxv?(rsc)^t$5X|%^6r!SZ;(gN%jH(c z8%SIms6O{#DfXmG4?|*8kVqJW2yQ^aR3Zh0qx4Q*=g1sNnX)q@=TD8O8fZ#sj4=&A zvP4hq;!Pw4ymk%ANP+3d^aOoeHU*F)MKm-k)b05Ow62p*F(EG-1Zcs)D$DN1fYXLD zTOm@9nIf>bh07$>(vOE(voQh>PEIx23IR%5+buXMH;yTkgUAylv7T|Njml%fKu!_Wh>`kWmX9g_IR8s!SSS81ad`Lg zX^G>v93nU~orL-7d@AZ0I0PuE_?na*Hs1By;errrMB!;Z)B zoKc4>;6WTPNd&~EmY2Ljk*a_seDNzE46ix`sBzN0`{dg6Ru|Gg+G~T(wuRsY_l%~|7G)(WoJ-B&_bog0vJLxHefHOVBNeG!N=T&0K z3^|6z8(i`JdyhVNY?TuYyCmVQL&7k=f(uV3-%x>k^!5jjA3uCA>2V9&$WyR|CisD} zG2MRuuJ69PVde=3v3}tYlYMZIP45z;8>}4ZsEBapN-+@(fBid5y3UxRy{_(3%}t~} z2SMZS%cOVxJ2*yymtV_H_KI{m;`d+}-g*4sU9G!enKdSTx5MHp#T5Xwpr6haP>}>A zoJ01Yn!d4Fwr}*1Wo6pGu`xyR`6=+d*qOF(4E$$1(}C&2CO9dPqJ}0~cbP#!Dgzfz z&()yMgbc{us4^s|r~%3ORHoZVAiu6k3Piu4m_HJQ0)BdLw3sXIfhk5K!>qS{qczU< zXT9~;AU5`J#Isz|TYm!}4xal}n3?=xrg%XSY5Cgl#i(r1j5}i(ot^0ojD)4;yqcHW zII*&+f;9A>fOMyQv8;?MCDZO~VY4J49?^La3n|MlGxdZAec}YmA(-0nUOL^~eL78X zU_m&iJX_)#m5=k;N#9`Jy?dIEkgPw!xpfQ;fPHbSrni2Ae89AOwXT;Ra0T}bx(m&@OkeC_GYDd-qarBr+d zSl#;O<7Y1hR@}np8w92U3E_k7Lj=@tb6|ALT3iQ{KDY!Y28AYn>l-6DYlaLQ=&f7E z1(!4m?NsX5Kh*$?*)*M$lq=#P@Xwi#cPyMjOtS-Lf~NQk7DkBkT4MIyE1=9eg7J5c zQlLY7l$DQ=FasH2>y6VlacfAnkIZ)ykOgo(#|2$xLB9k#e3~w2!?xk6`yi-b@zfc! zSw@z`;q@J^qep?q$Hm(~3aw?0+5y3H<*}&4sn!#33%4WzQIVxTJvg4<9uDEIkB}fT zXHzT+v?WXI(c~ogNT!TX6O{xXk-*1m3@iEzo2Xgo=G#R=B~inPx|T&l;3R1>eWgHD zP~|7cy?RVHG?+v5dooxA7;~fGG0COX3hR4frKx4fk#kL_9IT#Kp%Tp%^M#|wWcvzq z@@{?9vMJ^XSE^P<2dS;=-)Vp`F6j%MvDyAf#Ax_g1@oosx>2|L-D>^j9$-*Ih>g6K-zW@diM$C4WI{FwmQf4b36(o5 zh`oZeyTu;!KDq)NC9(mi`9!?w2_tb(Le$3f2QgJ<#okqy{wV8&hzMa8Nk#OMFdvwR z2~9p=eSCFUtQ;y!`&n7v&aMnykMd7gVCa{fN5%2{_(3{J!6bKRIN#)c@)5R+ z(vvci_%5Y1McxDBE-Ir@akl5=EN6l=0AsOwtz#mZ>GbV|~AX9caBlf)QSKE<_5 zJQf?FzcVYN*r?3}8WgCdRv@nQa1+CdJkl{65G=o-fCM4>A_e%fNor>!uYSoXZ#|FG z-a+Ok=GSEDvWd;P{+-SG?*dzWgxD|Htp`}`6QC?i<>kXIZsL;3I0ySpWMzNZ9PBq^1J=SgE8!M_BGhG3 ze_I@nUM}RpR7jLDQGx}wnP+pV5tpP4iUu-E>+2jo3QIoVkO49pKVIIba|wXQD{GaU z;>MiStpH3cR9g0w&SwQ%UR(*^(dV9q`4mP=dz5euN!ecUR`$H19YMly`?SmTX_#f; zD34%%~ayq5FeQ*S{Q*LEU{zYaJzA%zKFb;FrF0ON7Z_b*$ep+rR0iD&_ z$5T@j^3FzJ4hv*&=F~4_r-mVxB?ZJX;3tx8O|~d@Tce#(#J#*Nm!}19*u&99a*KCwHIX6l z_$CQKl^;Bj8Q$JFX3wM-jCE8@#wRA92v1ipcG2V@NfH0Y?Mp3Z)ED`6;KVe#ScmFT z;Y^18Sut z3MOY?Q?gYrYZMcN6A~O^vuE1m7a-p0{IhLN8)*m#vzB6CAazk1A+cR}nUO;BczNV| zj-JN_V)QgGc`+86)Le(shU(Pi0hT-a%&&WWBd~68zXbO#`oNg`Ryl_!gI?M}+_4-Y;{rZ^=R1awep&-;gkqjx-NKyU;X8#HZ9hdC$z}sc$&J`Y4qeHe zo?)9`%WrbSW#@)%LaK$9KaYsb&6<$6tZBnplhtb_Y<9WWBIoF3%{XYb7|y73D>Qnb z!EL+@Az3uLiPACEDj0<$D{Peaz^xYKC6)1EW!wtGKG|W!#Vv~_#eIfbIC%&`09WLk zU>n$U&aaib7cSob#U+r{7ADIF`2qRZOb)jAp4i0|H8&>$T?Aj??@C^-h*1c4iNjfQ zMW{`i-(6o3N+VBnxg)4<2i7qFzCb@KJbLkS&}0V`G9#}_y2FFhgo))lu7brEk(;6_ z{Gd&_qFY8+^2wTtp8(C9odmehs0G`>6!!suE?wxo#oK_S0l~@;R49X> zm$V^*g^v}#!?qUvc_M4H9aLmnO$<_8+5%EukloZ7&^UVK{o-i}ryGuGq2FR$wvQd1 zkR+ato&+#zRrwkuxkiNFTDfoH6u~m@WSnvV)X61uX@(GQUo|PRMkOkVnL=_Zr7Ky~W={U*d}$cBK~7Q#DABY4Yq+33No3y^28xBIyUo7_ zKl&80BDq?SEA>G9f(5{tH|1;><}5B7v}E{{?L_y7NABS@0JL!QGSVtlw2f(uhpfOn2a z+-{8Zx=-lLvwBLMqAo&i{c_Yx0?qWAPAtU`ocnzcboKNM5ku5^xObRu3i9^)4&A=S z2|c$tnQ}3`Jsvj_IJ33+jNRSE{bGoE*%@#qAA{7u!9#$a(p^m6wAULG_}T*(={EJ) zkwLd~3{(Z+PX_A1fx5VOjRpzlcsYK0iFk}8NQ_RbE}{u3G!_``9cM&Yx>F7|&Bxj~ zzVvb36#RI{V6MN}K;&p5tx8-x9Cx7PZm!yB;uQ#{-{u6Fv{7mo@0Eg ze#)y4H9$ZMYHs#hZVOyQoNAoOTeya{@+g0hb_Q6m4=joMFdgrD9R z@U68Qh=W7c80Y*W8=(PC0b9_lc=!n7NQl5hJ^O=@Mn}w_Li{V9QfL#Mr)1b;2?Pfg z9ZOVB`CGH;?Bqi_?-1l&JZnS50C!2gQIcRxvh38=J{A}Ewz|bNo2x-Co{K&pUo|Lh z%I9?;ml$gMZ4R%%chBoZzd|SOlMQuK2kj)TMdYvovBAgQKNYKHI-^xkkJXw9fIn$= zzFXu#iw!K0&YwlE37i7yx>SBB@$d}4NWRQ*i8|Ih#Z}@#{ni-I{)^U}AN8Bo5KrMy z5oHI=T_8fO;VQ-f$^{=cKI*_4^1oyqV{b-@pJtweXzvKY782MZ>{{y(7c_5R*JK#s-}m;L0U$;yhf+Uu@d$-$ydXNXzd zpmKH;=UAtng!fe|SlrQ)*T(MlEbyuN{UTJ(*{0vJa?f@25xk_ym>t=_#+ZJ%PMX3K&Ae zwphib7cOw8J8B5JYfYNo1Q(XO?%BiEKk{_&T0z;q4d~eb*A;c2bAblQ(!Hd=6O8gWgPGLGzXPoDXrnaGLafQzlMu%+dYJgT|i%5l* z$f;8Oq}^6F&40SAqVaFOrj`V4wv`8p>VPR?lI2vM;RnhV`46OkK9FC;QqYrAB57I| z4p(KrXU`{a5Q1rh;Hk_^3^6q6lR$k|sYS6&EqGX~lIeF}f9SzH>~KGn>@)NbU&+A-j7G99cfYMs1gLi7s73>n?jWr7#Ivq8~P2 z3DP<&UsH7sLe<7J>#abck;`3@j(x|P%%j@3Ur^T+#0z#@KSB?H`mrg}{{nc^mqe*gLNQ|!n50QoqRFwkX7Ayq-{_||3e>2X83!~(1k zrNlxwZ9ggWxsV`WcbBOPPDr@%nGX>c(UrOCyQ5>}bYjk)bBV6~+Di*W(EQrd;$zjL zm3)Clcia)MyK8Mw2Xw@Q&ja7%B5Vr9r(Q2X-1NL~AgRwGX&X=|ucN0Ji6dpcunMg9 z#t}4@#DPZkg1P#O$ebA~@C{?+m!$3UlQvs?0;hnw5zt+gO1^*CzfMf``eF)+Uv7t>>e^--`kkO;XT z5C-;(AN}OhpZqalF`2lM&wl#-U;Opo!YV?BU#pA^et7fazx?#K{|;)DVw9frlAr(G z?|k}~e~s@_gn>ii`tf9nUI{qA3X_DBErvp@aw zL`@ox^P}L+fBEGf{b#%(MX`MH>3{pJPygNTx=-kZd|@x-3!INq{}+GvuRr^tY<;uz&^@j%*D>Thp;U&9aYS8!P89$6*zDDm3@s0wBz> zQ9u9N-%DCg;dg1lbHTJVT zZbz1efDldbLwbw{w5D$e>i+f*`Qf`X9<-?sfWM#r^k2$1bC|_H{r>;W4<%CbCqMt2 zKjVjDNaOh7|I81Q;t4<4AdnhNp8xju=skF50o2~9n%435cmCoZ|NifP{?i|0!waM^ z9s&qH`=h`3^!NVem*4;4XaDB^`Rs>3p*MiLlwVj;pv>qc|M(yNt3W+g0~v3IDS1|( zE^n`{_oWTuHlv(;hUuI?K#CNM`3FDz^dGQScq8Wbc=>H=;o~4Ah-~W#* z2oS~Z^A)_4s?7Q4`#HvzP-Sv6FH5umnG`-7`3$Zb$!EX+2fz5szXiruQM^hL)al?K z|KVSM`u%_Vi$DHfWnq5)(;t5N2fzKF@uCPk;L_e))g?B@(1?Ax5sxgp+wj6zb3a?JxfHcR&4;fB3}@{uK`kmS%#{ zU;N#_`^De=nDF(#{RR4hk3agWl{F|4^ydxS*^1OlP=-A6xd<8jWE(#FgFpSnfBwHd{olU-=}-QK zpmysp!@)2jE3}}ihl*eR2sIAVvRdW8{=Zn4l~dgCMqi#^Hz=a|5IWCWcW&MKx|d$n zvHQG5Y4a9}FUq?X1j2;MZ&iyf_izwP0tAT?!OYH&frobQ;pBsbF?{KBjx@MPfWY&|0IGy*KtubfuIRpL88JZNhM>~+CBJ;}b+BgagdoJ6|OKo{E+&pC1Jq8j+58pGwxY;fENE>&XN8hN6)QU=qKm>tr7as=CAK2Zx-5BV7;FzKvlsp#mnFxj|0ou(&n5aEBtFTr)u+-&6H z_cJTR*HvA0d=0qiaA)t6R}b=#$)LHG+_ZH-$pGq&o$&x( z6NYIvJn1cJ!zLy80GqPupak_6*x{bx?RNAZKMbeMR%K z^Y-occOTq-B;>>z-c0Nl_WH1x=AS@ak&cN>5R}z4Bvei;&3sf~A(oyn4rdK?Y0Q>C z4Fg?5gsLPNH6h;QC61s8<@+8m;bc1*XCUQnSiAjrnhrmHN3Mdyz$z3ADvF~$lH7={ zMwD)MSKpERT-z{xY7Hy>=JQkL{+M3#p#VpC-lUn(p1ei-!Mrr+RYYWDz(KoywQ)qt z(y{gn*F2Cb29?O}p~+7AEH4LeoKUmVW1Nv0JT~bJqSulZZP0FHzD&r(pk4Wh{Au2% z{EskbZ!sl#pKnj`AL=y`#e~Mcu+Gu2ML-~8*x;+4VEIS(FH8fSyhumw#c?;=JUiiS zc)R=vb-LGYG_OmgY`pMtgWnKX`&U9L2mRSAOJ8mSHC}Gq?r}WzNS^ zqrLWudaA5=Vxl)#c}>+1|&w zPwGfzl#5pn&%QsAPleCJJ3%SM8feoL($Q?Ie=0R329em_Nf=E}0 z34HC_p9JjGml-NZKe&bj@&6rb3vb|#aMBjWZrT;ly>s~Col9#AZ*(Kjt~B-a{evTJ z>UnpE*X!7vO6juNGw9-O;4<+qQeBAlqZwaPGMZy(&|`wQ)2}rOmq+G#5|=3N)(zyQ z_2$LU}Ci{Rw~v%wuYHw_ck zj?&2-Y6yGG_V>Y8>*otf!gTsE)GeIC^C6!oOZ$=Znyd^mQ4n@3@_Dw$Fu}9e6qDB= zAAT2I1P&F_J`9uaMrxD)ECesh^6oOLt18KFu(6J(i&^Ax%WG|lb-7~VqBw927OJc4 z_CD-b%a&rPQgsGT0^G9q2u6SMWoO@Kj@6?l=5W0pbtZd%KRP}{Y9t5@7$Av{yu!QE%az&8oY&mgKmg2pljD?^byEa?Ds0A!Ak)_+eo)nhf_wknfz zo~d&Cox(}d%15HQba15}q@5Lyqj`mau)LE^I(z)4-JELcY&x%M3dl)?hk8$(wHqcY??(xiy@d9jZfU1>*tz z!*_To5lO}76%dRD zrtk%bUE&kQJpF{o^~IlPxO9MM*e&Ont6NB>&U$D$6~a?}&3T>;H13n(6QpkgX|-o! z_}|ojaSeu%xqB4l4fLn*XGi<2@Zvd0WIjWzkW6x+zW5W?nCT*ku9>^SSwsX@b35?b z(DCF}2mBl|>eHq{AI|VtyLI+q((G|%O`}aZ&gawzJ#!Whq8PqwQ$H>cQA-alQ{To% zkLq7ddbuJ)?q;t8@#oC-}E|kvY>ag?HYr!5+vK;T`1!rx( zNKCa)ww$ongN#myG589T?3K z@hm#VN63PP$V}uOYiv*+bLieVojEaK$evu{>eh{B-Z`F^hjNQ+8GlI7Qn=P&q+X>w z0i*da3!;f>nT)g{mRNd5-E(3grv1W|seL&m&8#UqA(*GDvE_TCcr(R?gsw`z=uO`m zgQSFIQ?f|~M(n1=srtqBqk5h%lwBNm-g-3qb`Tw>%DYRt8=fxro8JzZppE#>zf*vFGcVaKcA&3o$9vWWorV7M+wg=P4&m;LJ%w7~ z5Ix9iBKW-|d@cR6x#tf1-ruA8EB7bE9F|`3u$Qmi!AMb_%M0g7FZJ)izZlh>A3ayr zLhnU?`)B{LSh-E|R9;|xyeIvm>CgVtv-}7zQG;`5m^b}{tgL*Y4)yL6)JR(5Q|}$> zNf1Xv=1>n;@~JO?OFjIAKC$<&B5B9oG{^9{I$Y|H(i3|Lk9zo&=k^GX`tQ!i?hzjK z=|KStpMDFMdbpO)^6Uux*=XQb4;S-!Py)w#_?gGG;9Eb!+Ul2~dp)8Fxv5?`{+D^b2m`_ygINeCaW90xNiA;}2rU$cr9-$Y~fZ^!P&_*>Il6tZLon zw_x_gL4ih`m-~Cg%3*r40xT)Y736nW86qvg5V3aX-Q1kFaWxND0GNax%mGkizBMlN z7d7s@>HVNCXnfI~{{D0YIOd({uOI*HN91x(n9bhwkLe%trkjZX6!eA(e~HCmUE#eFQb$_ z=;hZE2m1Sy15AjQ7D2#R-QgI~*95i|_jvP$M}X4LemtB*30LPtzvw+rTTmi(XemDQ zH2q?I6$7fTeq?f>bp#z5@?zdIy88`^@zhNA+{iTw634}a^eK}gJO4= zRmP6XY!nn`i>C0VQ|y&=Co*gyS{S*}VIIOA!VLl#R1YojKv}%487DJvHRXH*9T>{m z$-ylh**;iKZb1!DUq|+mg0OW?5V}BOChU_$I@sjv-@Lx}V)2lw2J};Vac+`5_7agk zxH;q;8Gs>9{>8swaR#Dz3H<_5O#~L<096zNOAM&i`o!-e%+pBM^m$%Nbt)GfgmLrTCU>K##Vy@w!&V1hf9SCpnr z=f3cYw1(6WrJR6z?w&R5o=NsUzv9rbPUypA$p%y7^F{89VAK>m0uv_0DqI%&vdxme zPS|J-x$z~39 zGI0sOwB4Q|fNCCTV|wAXwcNU*7;*k{(tT)R3_l~mA>NnDz+o5`3~N>P7)O8y4teRi z!aM1zHJ?-_=@Sah`bPe7cHyr1H)k8UWD_iK>m#jUJ|Z2D{A!*SMhbJ#I!z}iY}g9b zAw>sS{udVXBKcJ5Sj`=>a#kYAX32-9KZGlXsK1!py9?-XodvO4{w46{g6^0mAOd4P z!~u=j+b~Esp*_Qu85}Y=f=wG+&vl5CGA}=*>*FIHL5ZX0;-V20d*229rvyX|p@y{5 zn*r0&o6wo3h=z#8hfiVXfbz=)1F89%94*)pwZ@`UHwHfcB$_fh>PUhJFSNrLT)y@?F)Z-F#NS!WsZHVbAo&2;O@bdq*+s4r{CM=_*%RW+ z3|m&F0a@Yc?CxgegJLuvXHZp#fn>y+rDQMWh9=*zN#g>B~%njj^|fU-%i06r8I_n*x>*!6Yz;6VHOQAmbCB2D~*6;0J{a z(g3OvZ)y9-XGR~LbFx~$KmVF_`r5aiaue`p(~S%eLG0shkGTk*VrWNfiO$Z zu}wD$5F_Gt^FI6?cZva=ed-ZkqQsss_Es}MxlV`=g~Yx(A3%4 z_`J1`cMO~1%OSlS63gq32>@>Iur=$AT2#BY4??$nlJ30_8hkMf8{l+Gz?$}NWb1%o zHxXXAiw|3a>LDCbN9p)Zab)hL*=7My>^1Ngo^eaFVp0%Tv*kbUX9P?Ow{Opi`S4I& z!QJr45=d#0C|mg*IgR;(ZSp&h+|6-b*R`qocGq6>bch50;RHk=9dA+Ya~LKnB_ztA zH9CFC)ppp2mnCZ7gL9BZ2%D)j*jUF_&k=S_hPDH`RXlL5V6*^Y!#dlbI!Lrgrj444 zn6lMj_Z>Yt=_7nXdPTX>-1qJ}A9my#^wm|;ieb>(Gem{-z^=!W4nHM4%YdrB{!aLy zh}K>k5dL64M2sDhZ-T7@WS)G4fF3eDgJzT&t|FnepUo0;36e#&Ar4RJ0$2Yy!A$S!Er+$hKJ&C$kCDaU+gXiSXK3>J(J zabpdW4Q67!E&8yPJZW>wfa`b!uviv)7T48p1CEi}4fcfQ6#m%xQNwO7zy49VdYvvF zSQM`1#9bHzz6gIgKgW}vYAS(o= zk|c^9QW}TNo^hkdkvcjdx({`^y=)QCAHt&qv7ZW|0Doi*g?8;e3C7qNdkvWv+R2l? z#ozf26n2}K>#QYU-lI?>Mq~0e$q`cLYs$fHQ ztV}_FqFk=%UIbmlH(?Syyv(LX8o1?yC^)ve%{3yY9C|!{L&F2TmbRhp+sAZsW`1` zZSa+5Ly#glH2^SOmcx8JqSX2}c?Td9FelKcx>HH{MYhV8s^L-Rk;Tyo^aEfvlv%?e z4jmqyDU@BgF>EEW%5d5ferg`&hzL#;Wr(NX%)mlA?l2UG@4kEY!QJ;B%Z;nj?%7#N zM=~%lWdnKytt0~j2x{B%?v$D=dhsMh=)$6S4cdC+H4+{uj&KWjZAcMJ#e zx%4S=#n@S6Bx+6*BzK5U6zJ*8@-C7GiN9Frwh2Ec@rGf?3g|8D`Sy_V0=d`ni2Eqm z-~hKFJ+4@h5eodn^VZ{!=kEo3qH;G$(nu3rdIriZd`)Ls zNH^0?0V^!sp~!i=>1-W>+~FLZf?&%JkVRN_kPP5`F26S+Uy4cz>g%a zXuMXEhfefiR2F;>u{2P8xFy-${qTdkyW89E?`}PO@A2JlJ|?3D231oIQw!;MAyJP- zkcHnSh6|0mG2+>m7j(Y(1)UM0tT-F7%>sf866|@PAss>Fl0@nv(on5c;^v-b`THE= z@*0v5gl8=Lh<>G+gV267q!qSU?_CPbf@+|UUv!h{lz-mDuatk? z!mqKsewC`u`S&_i81l~>^m8ONDB$Z*E92+B{OscAF@nA*f7B8Ei>y&k zwhr9XYA^Daxn&jF^d~SgdLT5d$7x9(VKAFRze)n2%M-Qh@2%uuUq^oIOA%^(E#c4o zGkrz69KF5X29l=)Zp#F;h?t=;PhdK_&%!Xll?J z!~l3FGYcC|QuH$-erdy-6$b+HGiEY@KBPr5A34cUFP{ao;a}nu)cZc%$6!n-QNFKZ z+&P!9=Zg3xYv2yA`W^UfVCEz3n6os$gSho6EQUB&kw*{G6H8&?oK$4uhDpqu8Oz|; z(qDy}mpOXaOgKWYJwL`Zg}8?TT_8vZo?5uv^C?QM_4|R*n=`XB^xP4BFO5vyvodkIOV~Mq zM!y2Or2L)!j=v$D0E^SKh4NiCQfto^1%}Je)dOwW(DgNj?%ImGu~y*plrC?C-l7eH zDjeek$?s)PWia7>cxZ0T1k|iEnLv%H=?YA3z(K^bA>6Mljsl-h1S7s!e(+<}Ykk4~ltF&wQ6RuG>U}!rSzrfHkw$xwO ziY(XT^tj9(rw8=|-AT$LOch~o@R7?CsD2yg#N zq_^+u;548#QGDcRL@^YD`b$`*(`oj-Ihw-t*g*I2W{V|}$nf|E6`_h-I7282Z(I@0 z($xsKOW08iNI$Y$=t4e4CfR&=2czTsOcnuMQf3K@eAX>>;n9w?x)Kkjt|$OhS7x4_ z)=Ln)Xq^cis(wLeY&8P%;EN2`twfr6kj)N@QSY8QZD_9DYUz=lQm#`gcoz~I2*4`NI7Twkyr|D4#_b&%@IA{dY1RV+N!NDeP1xH&fsFTQH>}%P{Q{1NI2FtL6 z!g%Yo9b_q?lNC@BU|i|GmG!^Py6?xu+famSE7qqq!_Wdys!NNh^pK1;L%7*Fip~W> z2bso6Y`0RzZ6;C#>T61{@S6#SE&k>X`%3Wv{cbinK-$e4UAc*xv!5W>CMd%Uj`8;= z$g?Ri4k(l{JR)!8cZxA3?uKSw$H<2a>eQV*C|16P$5iakB)%;epiBeJ@%27z2*7<< zEvCKH3)%g0as8tuXD zXoGolM)SMhLlO&wl9K6G7mADzlmx#4Y3API<<*ETnH<0c;{PQPi)L#KrxdJ$EV>YC$26S)>bBQmvULXYdGv z+tMwccu)E@CbwoLLToVu-XYmCJlPzgSxepDoEGG~7kywG8&zkdLPg#<*>5=O;C`l> zVaV%XK{c2#UeREN%4i2A9g6ESaEgI4B2d9q)6uFs5RL&&S9*a^SyD71AS_BTWwa6a zY@!aZfcTwYz=XkUy9>%hJXCQ(`MqqUWPmWi*yjj~p(mvSD4?u&c!4&|vN2!deV~L$WY#*z}h|2G30P!Ax>TMywQ$Jo?LtjEtN&CCTLi z#Z(HpdZR1MUP!~a=}->X+z9A{n+S+hxy?J8a&zInYI9)`zLj}Il+tI(M4VQIS2aQ^V%RMXTvo0Imt&=F27;KuwR)5ObU?I`!UcaFvJ0q+ z#0j`INanu7cl1$A?;A;n(&aPtZ;w<{vAatNUU2|`{e5C;mL~hn3Q$U$G70Ew6qPEa z>V_d&9nfW^VWb(lOO9`T)-qnnD1U(*rK&I=F)ynJheJE2!I6+IH=hZQ>3bl zR-TuKO8`$M{Lt4p06=ezcZY9d%{G}+m3gMaeJt4#|NIsCXF%tMn)RTe64&p}tPstQ z9Hva%;}?vHoCsl|?oP?> zojGOQIUv{04@uAQ_Q|7kcGzqbvWS9zyn0ZOG%?lM+DhGBy`FwfM=E%qexV^DbUnCB z1TkY4Wr{Sj)G<8#RN!PTte2miO-QE6&LeHEr|Y;%;V{Q7@z4^3fred<^tMhI^gt1T z9r~B^(b|!>$|pG(ki(V7<(0{%l2(GL%&hXLH7sX^+a=cum7ax{6=sYaG4#wb_+H+m z)#%S!oJNBoz@Kf#Z;8mlFYOCuZP~|_GHujdR3h_LH0Os!-&9Z?c%V`t=&JW2DH9w6Tiseu}--n&MXL>Wzs_y}4}GJ}Mh zjd8~!i4Nn931UogRFzxx z18tsqYv!Up(CE$L8#$W<1h{uOPMngeM#~@x6z-Ekl8L$>1a|p#l5Nb3RVmcc<>Bm? zH2siuzXZQ8t5d_G2SZaOx!cL;bYZXx#RJ<(Pk)R7snZ}cNK|Ns?KC(+MlnxJh{+q0 zr!+b2mtagF!b?9U!Mj0X0fnnd?!WiwgU2fArU&Gt!NGi-X%c|}NTS|};ltciF| zv|3jhtZ2S;d@D7TILs#uv+(A7#oRguE|I zjRLDcv!n6CzCRbTC|Hh@*)r_X_yn962Cogv*py5P*XIf7KrwldM9OHEeWp^JuphK^ z1mrQd?8k$n7gV_#y2|LJ?3+%qVy)#_=?=S>kZ-jNE9O08s_)Mx zgK`O*&OyPAeUanKK*3<1M;aXqh+a~PPiY{c5nV{D!#R@<^GVhQ8-iqGdYqisEFtAi zzfa6!RSBfjYk^=h{WniMJCIo{j!%dH_%Cln#Zng&fkmYFnoWz77zB7RBd}skXuB#!Z#D9z`R&z((&u1Gw_H?1l1IAr0c1=5suln1(jx`^qOh3Bat45!UI#@ z03DskAM`L&1r_OsvZi&$sZR`KY#*ezjn!48601J*%47W;E$43t33KTc}fWl zyj-K;`7JYi@GaCCnh#Ev#rnBgOd3geLbA4q5_AH?XZ~az_U2%KsH*ihQB=6mL{apALIl0K?cW}Ys;NuKf>OG`yI{ zn8q1L#x0DqKC)_&h_6T_Y&aZaRbO?BZQXt}6VrMQ!|0BV64ZH(S$Qoz~y3q-Q561a5V3U$X=F z=X1*i;xPt*EvNI!1sTbBFN|=xs`0ErRWzZFris1vNET#xR1#vHEBj{gu@}$~#zfYh zp{q*}SH}$c+ghxbn7|SKE8U2u<-U_yx<_A~j)6!S7oTmm4o(crI$>>p+VLqA`|-(u zqB3?0T6;ClsK0<(!m~jk3ZXtS;rPR+b5)p=yW;bt0=BU4yCA^(h@wV{NVuWPW%mGc zL;wgt(9J_aqn)9B1x2z%lnt1#xj&@~o{d`S!B)W>M1~7CAS}2ct**+H z{nA1e#Y3`15cbT(?Vuh4U~$tJtYqBsVg-|h{U>j_i&}hHU1!J$XV*)FLlHdjpAI&z z(30TJEH9=>K}A%{ZGBbsIZ30KziYrDRGZwZ1%&Vm8nu>vlqD1%pG# z`kcEvEUF(O}7d-7jX?SEM$C>L=DZ~-L@2r5r*= zWLq4L7Bx>xho00rD|+h1N-A`%y@oh&jEa7Bwu ziA~7z{Wv{n%mM=#I*`?M(>Sf)a9POqjHnH-%kC3MCA%g5go9N9PrX~{X1<^^vm~t1 zqAg!4gileZ-s0L^Y5_2~mzhhliu~! z1d-K)5h>&nB7#h3wC!d1p|6#pG_(-92yZWk)CyMluYd|HBWJG)IYT(?Y&HeUBACO->u(CSAv%&2#pfcGXAp%;3E0Ee z*eZl6h(hWf*@!A0TCDXd&DO~-P?e(r+!RJwJsQsGQuz5X+FtOI zp*I}y3##oAYnvPrBP;?R27~0@d^Rg40GJhup#YG53?M@bl$H(Tl~bd?3STrTbEZeq zBS3m5&It1Logf=(mG2O~42-_x4l(1)^h^O*>#x6jzs$A0M8B91m}?~expdb;_l;$G znJ&v=(z@|leTNG>k7_mR?$|N-(7otV%aMqa`}NkVw+3~?Fe3Iy9LC5C1R=pbt_8GU zO6Rq}c@XdtRuU2Vd9@(^)>dIE(Ax>;=2XKvlF0$(+7j~ygqK)vj02@kH$8wC4*IJe zXmYeDDT7Q7_6mRG5?SN&Ju7j z6*5LaAd&eelNZpIlsf7LC*M&q8PjoTKans~@(E;ZM(Bj%kC}s7O2BNd$ypScfT3r2 zg81g%sZgbGmx6VVObrA?o>YZjT!uVcOqec-G`|*N^|E96l7LMBB9}TVkh?c&y-`oN z0>TK*Fno3w1p>K^JT`Fv#cqW%0Cv4pVBf)33P5^ho%UE0m+4b*@z zQ+WjUK>9jqK-6_08AK>s7qnK+_ruoQBMBpUJwr+fdLn*Q3WS{^fzeV?MRUI5iit5* zZqp0iySqbVjYj4#D&jrZ-KG3bT7X~7iMo_f0~i*Au9%0$aF;Q;+&Jk^gQoeB8Xo3T zIJ!XH0O=D6Dx9=$G}C*x2Zs;qLwRMV>7<02j>c*`#kpl@CZ80=5&CR{9aI@N5nEPU z_!jJtoWbP(bC*~dTztQef4r>aT;55pmvc_wrwv=l{3W)?oqf>HQNr%PB{teI#l)3s z*H)a*>?5@S5}BxYVH#;=*%Qg%jTyHooi`n|QX|Z55=_Oi_`K9aVuc{tYXN_n z+9sMyTyf>Cl`c)|isjz2xwsg$h-cv01&dYCM)`%({;E}L87$R zAbK_zQg+z?E;d?Rc-!&4hm#LDwdm`fytD6Rlz^1(9OPPY(oT{CE$1^Pe)q}!H>g%@ zv8`0HD{yYa#-~cH?#}@drY!ivvR4AHF%>d6e-BUKv zf^&a{7JM_ryQG~y3+F?&5P=4g#5lo8B^r54%a$PB6WuJ;LuxoS|3gQvN!5hPU}Qo1 zv@xaC>+NU?Gs)fs4nTqzT>>m80EyCPA?+10VoTCqvBN2)e~N4@l%q+HFuHri)X`MT zRuakCL{pq2KVa_^nGX2AERQU`U`U(vq30v<=J! zJ@Fy~WwoUbIqcN|hK*WU;<{>M;*FrZl1Qx?`2H;$gzT-iUhtg2FUf6&{G?U56EWJ! z*uvZO0HCMl-esF7Ya<}7tF3K`Ta}gp$XyPoZ9$z@2zER}rZ*h$4r1l&YE?Tg6tki)jdJSZ zNF#95c@_}>V@_?QX$0gFFJH+SxJ9<Xy7GQ@aQE49gZDJ!3rN^~igigja;2Ak5M}UhRy4WMtW*>)g$OhQEO3WoM4qF@7W07Qm$^Dgk zW{h7((c`oTk({ltx!eIG5c25gc5=3?3ivSS(gWTE&|9_*(@2+Kze(VXu#JV$fRj)r z5Be2S`-yfu&<|?)ee?xoRD|Tv7}ooC$QT2pC8Z;9Ks9gXDHj;>>5cO@h%k>W^Urmu zi)FHke3!0&!eVDE6ICj`eye+n#Jd=#DwS@1^YJrO0+DZhuzmP-Pw(nnpDQvJw78Fo zJj6C_;(+rp1@%OyQdcN3kp7;4KdXdO4aek>`ImQ_OYJoJYX7z6DVtYwukX|2o$--CoM2C5-n#qX+aZ)PD10-20R852$bFAkBsOe8QL|_go59wAy?;Ttr`e1O5igxCwxk z>x5^+)2PJ(WF+;=~eF#^Tz=e<(6NLfaPSyO*$Ai@s2H%B5>c)}BLp*E@$Qt0LMLZ6Q zUU`!pXTL4Gz-7R?@!&IPq!M46fvqdl$!axUr&6G;53OtpN?=XUa)M-f9+C;3+9q;X=|aGxGJ9lY4)N2$;@{ z-t#i>Tc!CkNAvwRONc%={h$s9?m=29wrG;XR?HmLw<7XIKYe;K;?zvfbFTAZeiPueMBMjj7%ywb>4_zuF!Fe~=q8H&`?@XK8x713k3-`_<{$h7^lD3FsgEP|dwO@bd?u z0z%;862K_?{ps)iDZ6s$QwJA?DEs`lIEHURbc&(KHxg8Ro5Mt_wWSmvNE;Fx-A}qm zXt>ZUt`V;kYMYRsaEQ8utn9WCP2Nq4#`92*BR3Q~pIW3NL=WulAZObqxyy$+(BjvY zzpT0dXr*?omW;oywoDCTL1h5A{=`c3ke5C974_#Dw?*kE%Id^x%nmS1pe#b=3ji%z z*kE3+>u6nU+v0HuxW7wIV)Z-zYX;+B8*IRfaAq5*(0&n2xwWX@2KJ7NCcX&6IFv7s z{L!8);2VM3LZKlc4$u$_8A28}hKKUSLWqOmF91O>N4~k-*yz5Cvfr|3oxs=3Xg0J@ zPMZ*&I?h@q=^Y_?t91y6ND$})e;l~H(MeIlF3bweZ)`t)PX2>MC7_85kQob{LiEr6 zK0lZWPW0CQ-8f@FrD!5u{}9}O@&5tFP=+izo!y=FJ|Pg?%IWwe#|lWw4V;KbD8jj! z;DWV+v$6y-6n#r-xKX}YY?Q03vZvGjgtBgv4n*6b%oYga;x_3wjixbe_K;q=HHDd{ zk+1gA?CO*hI=&hcFgK7sX(#9!aK|mx%>}7!Ew`=9rUa90ICi+)a8#OWc@@t(qg;*g z)fwf_n~@C5PYRQtV11?;d+XDptxmZg{KDNU7ff@EtB-l6lx2htU^h)th_rGf59Mvc zrd-KQxrTkLwTkBzt9XvSZJP@)Wh;3zCqQ}l6be|#Nz>U$qaedMdMa8u+08d7CsR@! zr^6gxZx99>d4CR75o)DxzJc`2LO8|P)z1Mm?={LMxq~F>`1mkw=%@W;6#<~HAZcn7 zsQ~1woqW(Q&s7>Xl5uG@dZ4~Hq7?8#PBR5Sz24aQsP|F(qus%3qtk3&KY&92`ge|s zPZ~S7+ut5EuS26>ZgzXBS#yH7{eT<+h056Ngdbu9G9uxIZS?i;?0i&yG{1NE-o3%< zS@8QRIz`2E+?-rDQP)7>18$f%heGcEXYWne+Pcnm;lG0Qx;|he4A`*~VVTQghX)!z4@R}9~%N(F4Kl+JsA!bgd0+8j|Euf>=i2zBbhuj0h1YIb?Xp_PP+nitRO)-;m;Br zAT`VjXP z+_oDkk*2q1h){vit3jJUQqELzixQ$8IkP&kooiKqm(KRQ!rl*_jJ@eJoeB~gWfX|o z0Dgi|HJ2e5wSkRDmpzWH+$_TgbW-LF;H>@EKmF}hHViqs!TvX{w(E0F&*IK5fslxC zW?Lh-qFUg!e{SHLk9wzNchm;Sw?@7Dcrt?{>sd%`QSc+O_lP8AuiJ>i9j;5z6)QuE z|H3op^UIYZBv&d|0NC(%kbqE}TXt_{EL-*c`({gE9`93}js5cAWTLSH&_%>PDeMkG z{R-&HsAMizMoIlXBUO!Vn6qTl*g7UVCcX@_fbIi)wfZpNpmqYyjg#gGLu?b)!W8Cs z+LEr|1J-feYu$kL!R!XiU!fVA_HKOzX-RZ&6yOvszC-UhF)*RRI*g5a11c<-5&){M zp{L0rJe7R28%|{ao*}GRB$s&)dToML!uMWWC736`N3kRTA!I&~1NAriIM{SenRfex zlE6NTdjR(UP!m8)y=d=&RAAttALRLy5kdo3pP@EqxN7*bP?lOQN+ ze2BYuTyTD>Vr058*u?bjs2#RI-f0h;z?at7MUji`_7fY*Qd==896$0(dxwY}jK~lp zz`DglbgH{`vTg9;w3vcKJ3&a0NdP>3Pv+a*qd+uoG@b+)a;!dh^ew5TbBegXJO*kNWRoQ9Q)Gm?eI{Zxfe2^EySZYBhm1#A4V@Ipu|7 zA@oRZaWNZ90W)1vxk=oM0ew{wCIST+5<#}BGw^O}cWyy9i)fRJYqu3qjC=6eIH6bN zk@!~5kdYidX@HRJ*6a}8gsuGvtN~k7(3|k@L+O7qMo??NfX6Pvb|BIM9Q^qAsQ(Us z|0#9-Q#{-HCx{>fYj$Sh9b;FvTch!7{2df~sH-1Qunz!H-`=4zMOpdhjP!>u0kG!=gU-*tsqOz>nCg;qD$ zzd@|t?oC+a9db6aW(C;9R{cCJ_{Xe9D`eGdV)N$h+Xx2y73UaLRe@Pr7s1V}7neI( z?G2+OKpqnIVQVouzx7R&+=4_ZGwt+!;P2fX2YCU)P75!QdLzlqv9{d}Nigy*J%Nz` z=K=N#5=ZJe53k=y-^e+I^n$#F;D#t!q<0vA&SS{cvY?+@n9-V&L`wlBAz~;R z*J=v~jt{6gm_fh}10CNrvqb&?t5RiBV~0U8 z;nPySEcoTx2adzBe)y8cEWu)Y~Cujwn6#z*1R zYCF8T%NO_Xho7ukW#FOG+jhz0r!;AtoB*E{RU$yb@SSAQZlCJ3fLvRu?6ipU7G@Bc zhy>^u=tl|U3WW8=Gw>XMh6*0iy=t&hiDZYCFO?Mc+mt*94u!REXjdrkIIwx`N{g2O z(E7diDKZ7p>T9CCMt&geK$u&lUO=$S5Ky+aM*+~c-*%6Vx(Kwe)IQ=4Pxp)5gx#X= z!aOiz8W%EhCb7xbU?8tp?cxSwUZuaF#$iJN3mgYDBV-x*YoXdAX9xuAh&Mk| z3@eN$M&$YQb90rO2doy}|7(bED%b52p-(xCD8`7L{;(F-NT*v9z!AV6)&e*)wh&|{ z^#*Fk=aS^En9%2=2WD&-J$q7iD4h4P*7yRQ%rDauC?mBebum*qIexSts#L}Ojeq>S zd33tgUO#(}tH1wUwYb^q!|-~FtD91=f8(H}-ev_Nup{L?tYL2BCo1#0u;E9c=0{^T zKfwJhssDMndUv{xXVxuiEtkht-0A2;cY##z(cw>zE+}&IyElUiirksqIJlt5%RdcX zT~Nfs*Tl&p4#?!U9tY=~A|Br6oFcS~y{Iqy2S?Q+gk9%JI|Z8{d)CT#-#>c1^XJEZ z>$R@VCPl$~woeBXjzVtr3-17y5-}8@2JF}AG6SvIwQJ34Eo^EeNR$X066G<~Xu-X( zqVIY$DG}R_akJN`=Mo}=4Z|}(0dfg#S8UD@=fBGyusDtoDBEre2N`?J) z` zNXzn(d;~$9m5^I2hwNfSV(J~uyv4GCyJLIn31gh&0R%<$Ms{}WjVRz`pr5f_a|VfRP(PXaE#^aC05ILavz#?+O~`5Iikqn5|#s4EN5_?x`1{+uAS{F;&cRboWTcFr+2Yg^ZDGW`m`gIu!U5k$ebXe~IU z;3g@c83o!CAlv@%XNK>7{~m&MUWgrNeTCyhfmCx)q|T|5-Ake?oHJWn0(lM)!@8Jk zqi@KJh;ccC5XUvch?+a=2F-tisfpGj9q+=df9cG71nC7&PV@TB4(&swd9YrN=^dMQggKT1Xez7}WaSwb{ytM%9lx4`#@F(=~>uMjrhHUdc z(Z{-C)Db~CG?j}+UNgFT1QSOW$i~kA{#OQ*J{(r{7u+bhQZE2gQdrFd+rTChJLuq` z#HHySOiG|#K)89PKf`IPo8xI&23ZHw8%n~kLm(6EHzttT152mx*t_J-6w*InLKu0l z%lJVD&o&xN5w$Ii*zCi>=uY8T89gTRrb97jGZ~ON>1OQ8`6X*+k@MzgPC-u4n43$K z;4*j)RxT*^234lAwA=v6nG!ML2%7ZGnnLv}O9I5H%vpfi39jrsBU0hB4b(7N`Egbb zrx0n%uUG=vH3SMsI-vR)1oXiw^+(ZRo2%e3ZpIw7cVTaLSPlmy)&dlpIRqou9ACqf zji|~SA|^tZO-XV9W8?Sl{Y6s`XpO9s1ZZOyn1Sq*X9(8(=%PNS9Wtn!Cfo%`qupLw z>VvwS_u+zGr!x@FEvJ~&mk+I+$_$an;Rf=t`x>r1Js2T^1lLi@DIvuDCl;9q3#*C7 zqfup`sde$^Rs^35ziW2N-48MK84oC z!ws=defr&tA76Q4_d${(G}fZ+8_do08$QsF9{l*~)%V}Ex>Cc-$Il)=L=|#FYp(l0 zJdVw;Zn!ywuNsJ6Usq5`2M5JOjGmL3i{ekSz9_|v9dP=+gbBJ~p|oIrkFY0GHJU~! z-y8pnNczc3aD2Pt{zMJJf%w0D_57K%HEji=ZWQfPl`D|~*tCFORhbPii)vM-_trP3 zo%Jrv?IykTjmh2V#suemyfx{pZ^zHJCZPC=*~w%C^)?c}&ZKTLw;mzbSTOV&LnsMz zLW@i&#XwqR_dpZ~y|iCWbhvJN4#Tx%Cu025-YND^_nWqONp_KwLyW4Ke0Esu&$>77 zfF0-}O9hAgLQmW`j;lax$78mivgiruBhs z;&;kj`{G~%^#N;c?vj$S_8E?aDE+p)Gi_YFJlO@|fN=&*Ao8*`_HSup2?m&rosfVw zVoI2H1E8=4HW=2S{UMK{bjBx^>KXTK0$Nixb{*ztMt)nLQAhq6*rs9scv_$@>#I>^ zxdCB}59{1HPKHb=#+?XZd-nf9++wAX`pc{+vp?zSCVP?(7T3y~5`2h|zhg}ukM zYqW+C4HKexKzz}M9XNrBh;KH;J90ciP(WIL0e00XJVg?kVhGa*|1)cVe)J>p?1F6zvEwN&ugdi97dbWn$>I5aO~)XM@YL=lBgH9==$vFq%N7|M_| z0fZV$m}v3S)Ab=`Rq+B8Rs&lPu-{iT4$#!z6D2e$furUem++wMkPBv zwg9m&U4JGBtr5-I;e`kWfb4=khR&+9)?MpDLR{Wmm1_adP)%+U8btWS=&r6BoNO*u zdmtVMASQ5*ay=_#=L)iFeSrd=7MobLpC~tffN*G#C&6ffAyDu$Vsr_p*cV$@K{LpL zLiY-?2XlK>L>kO)hMvO>vRu(8OYJR|IH%@v8_cW$(W==_6u5)GK$p5uoWV8VErL6t z2VLk}sX{a>Ntj|xVUC(u1368YMC1_N0huY^P|)ydC}L0|(nc=3gN%*|*<8+4f@%}_ z9jcHQ5O>{`lx?`MD!~>dZ|_y!F045pv3e$*_py^nXKOORP9Qy|*UOrXiLW5@A9GrQ z%EAE`pi;VPT?WDpbnY{x`( zw4oAik%P59K#RgTo7z30EE>l#>rFRyA>;hz%qOih<&2NC0)l+SOCI3hHK=~5utI>X z*bSua5Rv%K*8l!vy1jhk;3(+1%gqT@v#=O&!&@0~iXZY3qt8upd`567rwblTf8otx zFM5!!9}MD^7M*o5K1^%l2n0dCHT2^jTSc`%%V z&9!dvhuMv!5}JKadZ%lv-PV0%D_!fh9^hxa+j_{{rQOye{M_oc9^>b$ZtDqBbo6_t z_q%JW?FZepwf4jA+IssDB`S}*Yq#1@x@$1yZ;F<%uuf{!=#0&^+t(NSTeLmP$zb?x zFZ1crvb|_*JPhXUL!PUfzTW9?nz1v1OoF2l9V)c5zJ;l|S zY;XV3?+h}^LZ1-W|JZTTxq=z|Zv12VzJ22W_A2EN zg2g8EE_#|8iy1lZg&7nV2||QZqTDgwa6w!O#t^-QvswsxW#P8 zZo*-vONYCWAwD2$-96!4gRil7_j)&-aZJ{WhRUbq4T1mz$}_o1QB~PqSzQa1!|Xb6 z$MxR&(%s(LW(k4_OMbmK<=qr_(>8DgI4QvoVg_Gsu3sPBSe!0Ho3eg=b^|fF5XuD@ zL@sWuUq{<;+Z_Qfw?}k=8EvftV3goz4$yN1GwGmTp^xDJOg;%e~&-E z;#}DoaIxPd&%h*3mw(wbUH&edfj;61(Yv8N;iOG$!y#BX?U?ZYc^mG3d_)^sF2$=-hvEm@5}8vZ?UXP-P^!+ z{_VAEUnh4oQDNbg>B+7NNkPo7$Pxw1Asqtizyv*xu)PKgRSQWBQL}`ZMfGWh2akBff;R+=QNT zmV^rttkcnUfPa?m!f_{k8xf8biVwiP}i6T)rD>=O`mN6Z6=_qxQ>uwRv=<<=h>Utw$7s}ZYZ7`}w5K*g^SmXAXS zExm4TY3B7Lt(X3+TDRLcaA-p~z8OPx(i^T!aQ=oX2i*HByV)QK=rG6=9ppfN4)rHA zpx|@fH11zGjdN#lfBr1)^MGR(FP^%_+UL$(ULWDV?1kevVMo1VOxSDuJ%B&eaeczj z;E~SIYyCM$R@he|S>H%q=w_c0OsaPeg{&*Ppe@oePAI}#ELnFjgk+}$O3X4&@dko= zu)062-8M$9g_sc&h;|V>37q`|#QFR8@Rf5}hX!((L2jd0H2SjO4jN7Je_G2^ux_aCZq`}BTfboi5AEhAD|ll!w|Mi5 z-w;u~^c!~hx!rulK40}4cKVUs$V@!8n>(!SmEC;9VlVuLefwT-)>rxFso(I;cXlI# zd*V0j^?kcpXVpLX4Tt@}Z&<-IySd4#|7|z7IG!K;hU59xZ}`nW?dB^k^3Qg2o8SD) zZ`gxB+YRiPm)d``8wlr@+JE#LHu|IAu${m94Xgf(-rNMTU26ZyZ}`pM{f5N~L;>So zyt&4uLqsFHV;@StlW7=*J9cRr?l`Ei-`!*_K-F3cED^AI{Z1wZacA`%P6{@#-^o%V zfU>@m!!YnW2$Hak{SGP%Y-GRtnzbDJoosSA`DiV&6%fVT?${SZO_IA?tDNv%y8}qU zezqH!&OnRl0v(i�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

WcwjCU+ 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 diff --git a/priv/static/adminfe/static/js/chunk-libs.48e79a9e.js b/priv/static/adminfe/static/js/chunk-libs.d5609760.js similarity index 79% rename from priv/static/adminfe/static/js/chunk-libs.48e79a9e.js rename to priv/static/adminfe/static/js/chunk-libs.d5609760.js index db0b5dc976c248338fc1d56db5d0c3fa05260268..5fa09cf6931f46a200f4aafe6ea3c638ed68330a 100644 GIT binary patch delta 10973 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 delta 7983 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 diff --git a/priv/static/adminfe/static/js/runtime.d8d12c12.js b/priv/static/adminfe/static/js/runtime.d8d12c12.js new file mode 100644 index 0000000000000000000000000000000000000000..6d8ac5af689abd9015664ebcb7443e93df1edf4b GIT binary patch literal 3434 zcmai1+in{<68#mK4~-^7GipT_TM7}(26-9m?ktdb(+UHMs2pyr*YiggZ)H+khuwBDt_Pknh5(}*=6(%*F$1>uEOaWmNpi=S*Oa{NrUqEHiY zP@C<#_@HG0?jau5#dyrU(wkx{s*T?!$w3~g@{m#mSKv*nnyhK@FtToB`7gV#V4^$* zAANj2f;{N*mnZk1;ExdEvoyLWQY!*ak`y*!t1SNUW`#0IN`$&T^xN};EDtu1DNp%2 zK&*lrnFfK>$7AuF8j+vR8^qyKUJv$SWiS^+M11js>DP>C($MRa*~F~~>SiLm%GUma z>&JN-M-H>fp|$JDjZ)Rdq7PCWp7Anz- zs&SK3s9dy-+}2Tvo6p+{RnIv|U}UCuJ7 z^hEQ{XW(Nd+4#hkfByLsTe0`qeqnN$F!A%}`02XdL7YrAg18#jLvJi$X1d&KGY8h2 zG+9hvAK#eDGCi5W{qlYo-`dO;TI=0(`F?0`jc4~eJ-MIF&CuR@flc<)>Edp-XJi(d zWXh6Z1ZjC32aKJ)H`OD!C?6nxE`W;VKc0Wp5C7JWkg~$MZ;T6r;cq@veOQ}ISf>RB zwApf+|5J>??y89M_B!g@Lx7y|^SSu0vu$5vT(UAg7f>DmB2!8gGC+ZhuviY~GkrYo z;}!|rP$2(1%*~ptRf86I{ukf{?T-5({QSr8`8Ae~LOqo70>uQ-5jqd{ep{Dhkh-=~ zl#&EZu?T;}cgHRqk&R9Gkf6YCwvg5w=a9o`{)4Mho^ z(Qhy|@RP&1!(}&7gl)~&R|}}nZe;Lo8jSevd`c7SF`@&kGzT3@h>BG)zrAC^N>Wx| zMU_n_LQ7|o#7Z1-72eJ}gG{DQjuY?@E(eB6*M$jj49{LiYuok8oIOy_1c^(*m%);O%tw1gyk3KRK^Adxdt=a~T+IGc{mrOxmuh8TN6j>p2 ze9IKm@-_%FP{s>~sZVNn-Gt)r-tI>eyfX=Ht}tQ-~UfGwNl&NkuW@I-4L#=qE2bT_(}NJJo?}6(^-o$0N-#r3)C!Z$Ni~ zq4#uEME1SMTjK$(o;HBW#)lUt10S+-N}hq^NvBQ(am~R#iNrLnmOJZk1W_=cCU;$q zeB`ct)F*7;S^IHVcF;MH9rk+lO6QP660Rti#*pVC(sur8J8bNAvvc6_huJ^HEv<1> zjD*;~%r)a7_@|NauJi@S=1L`Df|i_CJ)sNylYD~RQJZf+m);#;Yom7oK5cCKTxk4e viJz3Z;&pAYr)*O9Hrt@{#}^Pjer%s{(Bmhj79T&Yz?CXr(>o)@2gmyV>M(z+ literal 0 HcmV?d00001 From 550302c041139de43052022c0f73cba2b30a3080 Mon Sep 17 00:00:00 2001 From: aries Date: Mon, 24 Jun 2019 01:09:28 +0000 Subject: [PATCH 45/48] Apply suggestion to docs/config.md --- docs/config.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/config.md b/docs/config.md index 04841a3ad..b08c37e84 100644 --- a/docs/config.md +++ b/docs/config.md @@ -18,7 +18,7 @@ Note: `strip_exif` has been replaced by `Pleroma.Upload.Filter.Mogrify`. ## Pleroma.Uploaders.S3 * `bucket`: S3 bucket name -* `public_endpoint`: S3 endpoint that the user finally accesses(ex. "https://s3.dualstack.ap-northeast-1.amazonaws.com) +* `public_endpoint`: S3 endpoint that the user finally accesses(ex. "https://s3.dualstack.ap-northeast-1.amazonaws.com") * `truncated_namespace`: If you use S3 compatible service such as Digital Ocean Spaces or CDN, set folder name or "" etc. For example, when using CDN to S3 virtual host format, set "". At this time, write CNAME to CDN in public_endpoint. From f2c03425b0f15b4f633195a7511be05023ba8f48 Mon Sep 17 00:00:00 2001 From: Eugenij Date: Mon, 24 Jun 2019 07:14:04 +0000 Subject: [PATCH 46/48] Broadcast conversation update when DM is deleted --- lib/pleroma/web/activity_pub/activity_pub.ex | 19 +++- test/web/streamer_test.exs | 106 +++++++++++++++++++ 2 files changed, 124 insertions(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index c0e3d1478..55315d66e 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -189,6 +189,22 @@ def stream_out_participations(participations) do end) end + def stream_out_participations(%Object{data: %{"context" => context}}, user) do + with %Conversation{} = conversation <- Conversation.get_for_ap_id(context), + conversation = Repo.preload(conversation, :participations), + last_activity_id = + fetch_latest_activity_id_for_context(conversation.ap_id, %{ + "user" => user, + "blocking_user" => user + }) do + if last_activity_id do + stream_out_participations(conversation.participations) + end + end + end + + def stream_out_participations(_, _), do: :noop + def stream_out(activity) do public = "https://www.w3.org/ns/activitystreams#Public" @@ -401,7 +417,8 @@ def delete(%Object{data: %{"id" => id, "actor" => actor}} = object, local \\ tru "to" => to, "deleted_activity_id" => activity && activity.id }, - {:ok, activity} <- insert(data, local), + {:ok, activity} <- insert(data, local, false), + stream_out_participations(object, user), _ <- decrease_replies_count_if_reply(object), # Changing note count prior to enqueuing federation task in order to avoid # race conditions on updating user.info diff --git a/test/web/streamer_test.exs b/test/web/streamer_test.exs index 648e28712..4633d7765 100644 --- a/test/web/streamer_test.exs +++ b/test/web/streamer_test.exs @@ -356,4 +356,110 @@ test "it doesn't send muted reblogs" do Task.await(task) end + + describe "direct streams" do + setup do + GenServer.start(Streamer, %{}, name: Streamer) + + on_exit(fn -> + if pid = Process.whereis(Streamer) do + Process.exit(pid, :kill) + end + end) + + :ok + end + + test "it sends conversation update to the 'direct' stream", %{} do + user = insert(:user) + another_user = insert(:user) + + task = + Task.async(fn -> + assert_receive {:text, _received_event}, 4_000 + end) + + Streamer.add_socket( + "direct", + %{transport_pid: task.pid, assigns: %{user: user}} + ) + + {:ok, _create_activity} = + CommonAPI.post(another_user, %{ + "status" => "hey @#{user.nickname}", + "visibility" => "direct" + }) + + Task.await(task) + end + + test "it doesn't send conversation update to the 'direct' streamj when the last message in the conversation is deleted" do + user = insert(:user) + another_user = insert(:user) + + {:ok, create_activity} = + CommonAPI.post(another_user, %{ + "status" => "hi @#{user.nickname}", + "visibility" => "direct" + }) + + task = + Task.async(fn -> + assert_receive {:text, received_event}, 4_000 + assert %{"event" => "delete", "payload" => _} = Jason.decode!(received_event) + + refute_receive {:text, _}, 4_000 + end) + + Streamer.add_socket( + "direct", + %{transport_pid: task.pid, assigns: %{user: user}} + ) + + {:ok, _} = CommonAPI.delete(create_activity.id, another_user) + + Task.await(task) + end + + test "it sends conversation update to the 'direct' stream when a message is deleted" do + user = insert(:user) + another_user = insert(:user) + + {:ok, create_activity} = + CommonAPI.post(another_user, %{ + "status" => "hi @#{user.nickname}", + "visibility" => "direct" + }) + + {:ok, create_activity2} = + CommonAPI.post(another_user, %{ + "status" => "hi @#{user.nickname}", + "in_reply_to_status_id" => create_activity.id, + "visibility" => "direct" + }) + + task = + Task.async(fn -> + assert_receive {:text, received_event}, 4_000 + assert %{"event" => "delete", "payload" => _} = Jason.decode!(received_event) + + assert_receive {:text, received_event}, 4_000 + + assert %{"event" => "conversation", "payload" => received_payload} = + Jason.decode!(received_event) + + assert %{"last_status" => last_status} = Jason.decode!(received_payload) + assert last_status["id"] == to_string(create_activity.id) + end) + + Streamer.add_socket( + "direct", + %{transport_pid: task.pid, assigns: %{user: user}} + ) + + {:ok, _} = CommonAPI.delete(create_activity2.id, another_user) + + Task.await(task) + end + end end From 2c63c6751203347907057c780ed8af465f182587 Mon Sep 17 00:00:00 2001 From: Sergey Suprunenko Date: Mon, 24 Jun 2019 18:59:12 +0000 Subject: [PATCH 47/48] Rework user deletion --- lib/pleroma/repo_streamer.ex | 34 ++++++++++++++++++++ lib/pleroma/user.ex | 46 ++++++++++++++++++++------- lib/pleroma/web/activity_pub/utils.ex | 18 ++++++----- test/tasks/user_test.exs | 3 +- test/user_test.exs | 36 +++++++++++---------- 5 files changed, 99 insertions(+), 38 deletions(-) create mode 100644 lib/pleroma/repo_streamer.ex diff --git a/lib/pleroma/repo_streamer.ex b/lib/pleroma/repo_streamer.ex new file mode 100644 index 000000000..a4b71a1bb --- /dev/null +++ b/lib/pleroma/repo_streamer.ex @@ -0,0 +1,34 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.RepoStreamer do + alias Pleroma.Repo + import Ecto.Query + + def chunk_stream(query, chunk_size) do + Stream.unfold(0, fn + :halt -> + {[], :halt} + + last_id -> + query + |> order_by(asc: :id) + |> where([r], r.id > ^last_id) + |> limit(^chunk_size) + |> Repo.all() + |> case do + [] -> + {[], :halt} + + records -> + last_id = List.last(records).id + {records, last_id} + end + end) + |> Stream.take_while(fn + [] -> false + _ -> true + end) + end +end diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 3a9ae8d73..1e59a4121 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -15,6 +15,7 @@ defmodule Pleroma.User do alias Pleroma.Object alias Pleroma.Registration alias Pleroma.Repo + alias Pleroma.RepoStreamer alias Pleroma.User alias Pleroma.Web alias Pleroma.Web.ActivityPub.ActivityPub @@ -932,18 +933,24 @@ def delete(%User{} = user), @spec perform(atom(), User.t()) :: {:ok, User.t()} def perform(:delete, %User{} = user) do - {:ok, user} = User.deactivate(user) - # Remove all relationships {:ok, followers} = User.get_followers(user) - Enum.each(followers, fn follower -> User.unfollow(follower, user) end) + Enum.each(followers, fn follower -> + ActivityPub.unfollow(follower, user) + User.unfollow(follower, user) + end) {:ok, friends} = User.get_friends(user) - Enum.each(friends, fn followed -> User.unfollow(user, followed) end) + Enum.each(friends, fn followed -> + ActivityPub.unfollow(user, followed) + User.unfollow(user, followed) + end) delete_user_activities(user) + + {:ok, _user} = Repo.delete(user) end @spec perform(atom(), User.t()) :: {:ok, User.t()} @@ -1016,18 +1023,35 @@ def follow_import(%User{} = follower, followed_identifiers) when is_list(followe ]) def delete_user_activities(%User{ap_id: ap_id} = user) do - stream = - ap_id - |> Activity.query_by_actor() - |> Repo.stream() - - Repo.transaction(fn -> Enum.each(stream, &delete_activity(&1)) end, timeout: :infinity) + ap_id + |> Activity.query_by_actor() + |> RepoStreamer.chunk_stream(50) + |> Stream.each(fn activities -> + Enum.each(activities, &delete_activity(&1)) + end) + |> Stream.run() {:ok, user} end defp delete_activity(%{data: %{"type" => "Create"}} = activity) do - Object.normalize(activity) |> ActivityPub.delete() + activity + |> Object.normalize() + |> ActivityPub.delete() + end + + defp delete_activity(%{data: %{"type" => "Like"}} = activity) do + user = get_cached_by_ap_id(activity.actor) + object = Object.normalize(activity) + + ActivityPub.unlike(user, object) + end + + defp delete_activity(%{data: %{"type" => "Announce"}} = activity) do + user = get_cached_by_ap_id(activity.actor) + object = Object.normalize(activity) + + ActivityPub.unannounce(user, object) end defp delete_activity(_activity), do: "Doing nothing" diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index 10ff572a2..514266cee 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -151,16 +151,18 @@ def get_notified_from_object(object) do def create_context(context) do context = context || generate_id("contexts") - changeset = Object.context_mapping(context) - case Repo.insert(changeset) do - {:ok, object} -> + # Ecto has problems accessing the constraint inside the jsonb, + # so we explicitly check for the existed object before insert + object = Object.get_cached_by_ap_id(context) + + with true <- is_nil(object), + changeset <- Object.context_mapping(context), + {:ok, inserted_object} <- Repo.insert(changeset) do + inserted_object + else + _ -> object - - # This should be solved by an upsert, but it seems ecto - # has problems accessing the constraint inside the jsonb. - {:error, _} -> - Object.get_cached_by_ap_id(context) end end diff --git a/test/tasks/user_test.exs b/test/tasks/user_test.exs index 6fd7c7113..3d4b08fba 100644 --- a/test/tasks/user_test.exs +++ b/test/tasks/user_test.exs @@ -89,8 +89,7 @@ test "user is deleted" do assert_received {:mix_shell, :info, [message]} assert message =~ " deleted" - user = User.get_cached_by_nickname(user.nickname) - assert user.info.deactivated + refute User.get_by_nickname(user.nickname) end test "no user to delete" do diff --git a/test/user_test.exs b/test/user_test.exs index a8176025c..198a97fae 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -920,42 +920,44 @@ test ".delete_user_activities deletes all create activities" do {:ok, activity} = CommonAPI.post(user, %{"status" => "2hu"}) - Ecto.Adapters.SQL.Sandbox.unboxed_run(Repo, fn -> - {:ok, _} = User.delete_user_activities(user) - # TODO: Remove favorites, repeats, delete activities. - refute Activity.get_by_id(activity.id) - end) + {:ok, _} = User.delete_user_activities(user) + + # TODO: Remove favorites, repeats, delete activities. + refute Activity.get_by_id(activity.id) end - test ".delete deactivates a user, all follow relationships and all create activities" do + test ".delete deactivates a user, all follow relationships and all activities" do user = insert(:user) - followed = insert(:user) follower = insert(:user) - {:ok, user} = User.follow(user, followed) {:ok, follower} = User.follow(follower, user) {:ok, activity} = CommonAPI.post(user, %{"status" => "2hu"}) {:ok, activity_two} = CommonAPI.post(follower, %{"status" => "3hu"}) - {:ok, _, _} = CommonAPI.favorite(activity_two.id, user) - {:ok, _, _} = CommonAPI.favorite(activity.id, follower) - {:ok, _, _} = CommonAPI.repeat(activity.id, follower) + {:ok, like, _} = CommonAPI.favorite(activity_two.id, user) + {:ok, like_two, _} = CommonAPI.favorite(activity.id, follower) + {:ok, repeat, _} = CommonAPI.repeat(activity_two.id, user) {:ok, _} = User.delete(user) - followed = User.get_cached_by_id(followed.id) follower = User.get_cached_by_id(follower.id) - user = User.get_cached_by_id(user.id) - assert user.info.deactivated + refute User.following?(follower, user) + refute User.get_by_id(user.id) - refute User.following?(user, followed) - refute User.following?(followed, follower) + user_activities = + user.ap_id + |> Activity.query_by_actor() + |> Repo.all() + |> Enum.map(fn act -> act.data["type"] end) - # TODO: Remove favorites, repeats, delete activities. + assert Enum.all?(user_activities, fn act -> act in ~w(Delete Undo) end) refute Activity.get_by_id(activity.id) + refute Activity.get_by_id(like.id) + refute Activity.get_by_id(like_two.id) + refute Activity.get_by_id(repeat.id) end test "get_public_key_for_ap_id fetches a user that's not in the db" do From a0c4ebb4d73f43a9c567c5309f0e8d1b88995481 Mon Sep 17 00:00:00 2001 From: Maksim Date: Mon, 24 Jun 2019 19:01:56 +0000 Subject: [PATCH 48/48] [#184] small refactoring reset password --- lib/mix/tasks/pleroma/user.ex | 4 +- lib/pleroma/emails/user_email.ex | 9 +-- ...dResetToken.ex => password_reset_token.ex} | 1 + lib/pleroma/user.ex | 47 +++++++++------- lib/pleroma/web/oauth/authorization.ex | 12 ++-- lib/pleroma/web/router.ex | 4 +- .../{util => password}/invalid_token.html.eex | 0 .../reset.html.eex} | 2 +- .../reset_failed.html.eex} | 0 .../reset_success.html.eex} | 0 .../controllers/password_controller.ex | 37 ++++++++++++ .../controllers/util_controller.ex | 22 -------- .../web/twitter_api/views/password_view.ex | 8 +++ .../twitter_api/password_controller_test.exs | 56 +++++++++++++++++++ 14 files changed, 142 insertions(+), 60 deletions(-) rename lib/pleroma/{PasswordResetToken.ex => password_reset_token.ex} (93%) rename lib/pleroma/web/templates/twitter_api/{util => password}/invalid_token.html.eex (100%) rename lib/pleroma/web/templates/twitter_api/{util/password_reset.html.eex => password/reset.html.eex} (82%) rename lib/pleroma/web/templates/twitter_api/{util/password_reset_failed.html.eex => password/reset_failed.html.eex} (100%) rename lib/pleroma/web/templates/twitter_api/{util/password_reset_success.html.eex => password/reset_success.html.eex} (100%) create mode 100644 lib/pleroma/web/twitter_api/controllers/password_controller.ex create mode 100644 lib/pleroma/web/twitter_api/views/password_view.ex create mode 100644 test/web/twitter_api/password_controller_test.exs diff --git a/lib/mix/tasks/pleroma/user.ex b/lib/mix/tasks/pleroma/user.ex index ab158f57e..8a78b4fe6 100644 --- a/lib/mix/tasks/pleroma/user.ex +++ b/lib/mix/tasks/pleroma/user.ex @@ -204,9 +204,9 @@ def run(["reset_password", nickname]) do IO.puts( "URL: #{ - Pleroma.Web.Router.Helpers.util_url( + Pleroma.Web.Router.Helpers.reset_password_url( Pleroma.Web.Endpoint, - :show_password_reset, + :reset, token.token ) }" diff --git a/lib/pleroma/emails/user_email.ex b/lib/pleroma/emails/user_email.ex index 8502a0d0c..934620765 100644 --- a/lib/pleroma/emails/user_email.ex +++ b/lib/pleroma/emails/user_email.ex @@ -23,13 +23,8 @@ defp recipient(email, nil), do: email defp recipient(email, name), do: {name, email} defp recipient(%Pleroma.User{} = user), do: recipient(user.email, user.name) - def password_reset_email(user, password_reset_token) when is_binary(password_reset_token) do - password_reset_url = - Router.Helpers.util_url( - Endpoint, - :show_password_reset, - password_reset_token - ) + def password_reset_email(user, token) when is_binary(token) do + password_reset_url = Router.Helpers.reset_password_url(Endpoint, :reset, token) html_body = """

Reset your password at #{instance_name()}

diff --git a/lib/pleroma/PasswordResetToken.ex b/lib/pleroma/password_reset_token.ex similarity index 93% rename from lib/pleroma/PasswordResetToken.ex rename to lib/pleroma/password_reset_token.ex index f31ea5bc5..4a833f6a5 100644 --- a/lib/pleroma/PasswordResetToken.ex +++ b/lib/pleroma/password_reset_token.ex @@ -37,6 +37,7 @@ def used_changeset(struct) do |> put_change(:used, true) end + @spec reset_password(binary(), map()) :: {:ok, User.t()} | {:error, binary()} def reset_password(token, data) do with %{used: false} = token <- Repo.get_by(PasswordResetToken, %{token: token}), %User{} = user <- User.get_cached_by_id(token.user_id), diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 1e59a4121..f7191762f 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -9,6 +9,7 @@ defmodule Pleroma.User do import Ecto.Query alias Comeonin.Pbkdf2 + alias Ecto.Multi alias Pleroma.Activity alias Pleroma.Keys alias Pleroma.Notification @@ -194,27 +195,24 @@ def upgrade_changeset(struct, params \\ %{}) do end def password_update_changeset(struct, params) do - changeset = - struct - |> cast(params, [:password, :password_confirmation]) - |> validate_required([:password, :password_confirmation]) - |> validate_confirmation(:password) - - OAuth.Token.delete_user_tokens(struct) - OAuth.Authorization.delete_user_authorizations(struct) - - if changeset.valid? do - hashed = Pbkdf2.hashpwsalt(changeset.changes[:password]) - - changeset - |> put_change(:password_hash, hashed) - else - changeset - end + struct + |> cast(params, [:password, :password_confirmation]) + |> validate_required([:password, :password_confirmation]) + |> validate_confirmation(:password) + |> put_password_hash end - def reset_password(user, data) do - update_and_set_cache(password_update_changeset(user, data)) + def reset_password(%User{id: user_id} = user, data) do + multi = + Multi.new() + |> Multi.update(:user, password_update_changeset(user, data)) + |> Multi.delete_all(:tokens, OAuth.Token.Query.get_by_user(user_id)) + |> Multi.delete_all(:auth, OAuth.Authorization.delete_by_user_query(user)) + + case Repo.transaction(multi) do + {:ok, %{user: user} = _} -> set_cache(user) + {:error, _, changeset, _} -> {:error, changeset} + end end def register_changeset(struct, params \\ %{}, opts \\ []) do @@ -250,12 +248,11 @@ def register_changeset(struct, params \\ %{}, opts \\ []) do end if changeset.valid? do - hashed = Pbkdf2.hashpwsalt(changeset.changes[:password]) ap_id = User.ap_id(%User{nickname: changeset.changes[:nickname]}) followers = User.ap_followers(%User{nickname: changeset.changes[:nickname]}) changeset - |> put_change(:password_hash, hashed) + |> put_password_hash |> put_change(:ap_id, ap_id) |> unique_constraint(:ap_id) |> put_change(:following, [followers]) @@ -1349,4 +1346,12 @@ def get_ap_ids_by_nicknames(nicknames) do end defdelegate search(query, opts \\ []), to: User.Search + + defp put_password_hash( + %Ecto.Changeset{valid?: true, changes: %{password: password}} = changeset + ) do + change(changeset, password_hash: Pbkdf2.hashpwsalt(password)) + end + + defp put_password_hash(changeset), do: changeset end diff --git a/lib/pleroma/web/oauth/authorization.ex b/lib/pleroma/web/oauth/authorization.ex index 18973413e..d53e20d12 100644 --- a/lib/pleroma/web/oauth/authorization.ex +++ b/lib/pleroma/web/oauth/authorization.ex @@ -76,14 +76,16 @@ def use_token(%Authorization{used: false, valid_until: valid_until} = auth) do def use_token(%Authorization{used: true}), do: {:error, "already used"} @spec delete_user_authorizations(User.t()) :: {integer(), any()} - def delete_user_authorizations(%User{id: user_id}) do - from( - a in Pleroma.Web.OAuth.Authorization, - where: a.user_id == ^user_id - ) + def delete_user_authorizations(%User{} = user) do + user + |> delete_by_user_query |> Repo.delete_all() end + def delete_by_user_query(%User{id: user_id}) do + from(a in __MODULE__, where: a.user_id == ^user_id) + end + @doc "gets auth for app by token" @spec get_by_token(App.t(), String.t()) :: {:ok, t()} | {:error, :not_found} def get_by_token(%App{id: app_id} = _app, token) do diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 837153ed4..c504116b6 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -133,8 +133,8 @@ defmodule Pleroma.Web.Router do scope "/api/pleroma", Pleroma.Web.TwitterAPI do pipe_through(:pleroma_api) - get("/password_reset/:token", UtilController, :show_password_reset) - post("/password_reset", UtilController, :password_reset) + get("/password_reset/:token", PasswordController, :reset, as: :reset_password) + post("/password_reset", PasswordController, :do_reset, as: :reset_password) get("/emoji", UtilController, :emoji) get("/captcha", UtilController, :captcha) get("/healthcheck", UtilController, :healthcheck) diff --git a/lib/pleroma/web/templates/twitter_api/util/invalid_token.html.eex b/lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex similarity index 100% rename from lib/pleroma/web/templates/twitter_api/util/invalid_token.html.eex rename to lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex diff --git a/lib/pleroma/web/templates/twitter_api/util/password_reset.html.eex b/lib/pleroma/web/templates/twitter_api/password/reset.html.eex similarity index 82% rename from lib/pleroma/web/templates/twitter_api/util/password_reset.html.eex rename to lib/pleroma/web/templates/twitter_api/password/reset.html.eex index a3facf017..7d3ef6b0d 100644 --- a/lib/pleroma/web/templates/twitter_api/util/password_reset.html.eex +++ b/lib/pleroma/web/templates/twitter_api/password/reset.html.eex @@ -1,5 +1,5 @@

Password Reset for <%= @user.nickname %>

-<%= form_for @conn, util_path(@conn, :password_reset), [as: "data"], fn f -> %> +<%= form_for @conn, reset_password_path(@conn, :do_reset), [as: "data"], fn f -> %>
<%= label f, :password, "Password" %> <%= password_input f, :password %> diff --git a/lib/pleroma/web/templates/twitter_api/util/password_reset_failed.html.eex b/lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex similarity index 100% rename from lib/pleroma/web/templates/twitter_api/util/password_reset_failed.html.eex rename to lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex diff --git a/lib/pleroma/web/templates/twitter_api/util/password_reset_success.html.eex b/lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex similarity index 100% rename from lib/pleroma/web/templates/twitter_api/util/password_reset_success.html.eex rename to lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex diff --git a/lib/pleroma/web/twitter_api/controllers/password_controller.ex b/lib/pleroma/web/twitter_api/controllers/password_controller.ex new file mode 100644 index 000000000..1941e6143 --- /dev/null +++ b/lib/pleroma/web/twitter_api/controllers/password_controller.ex @@ -0,0 +1,37 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.TwitterAPI.PasswordController do + @moduledoc """ + The module containts functions for reset password. + """ + + use Pleroma.Web, :controller + + require Logger + + alias Pleroma.PasswordResetToken + alias Pleroma.Repo + alias Pleroma.User + + def reset(conn, %{"token" => token}) do + with %{used: false} = token <- Repo.get_by(PasswordResetToken, %{token: token}), + %User{} = user <- User.get_cached_by_id(token.user_id) do + render(conn, "reset.html", %{ + token: token, + user: user + }) + else + _e -> render(conn, "invalid_token.html") + end + end + + def do_reset(conn, %{"data" => data}) do + with {:ok, _} <- PasswordResetToken.reset_password(data["token"], data) do + render(conn, "reset_success.html") + else + _e -> render(conn, "reset_failed.html") + end + end +end diff --git a/lib/pleroma/web/twitter_api/controllers/util_controller.ex b/lib/pleroma/web/twitter_api/controllers/util_controller.ex index 489170d80..b1863528f 100644 --- a/lib/pleroma/web/twitter_api/controllers/util_controller.ex +++ b/lib/pleroma/web/twitter_api/controllers/util_controller.ex @@ -11,8 +11,6 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do alias Pleroma.Activity alias Pleroma.Emoji alias Pleroma.Notification - alias Pleroma.PasswordResetToken - alias Pleroma.Repo alias Pleroma.User alias Pleroma.Web alias Pleroma.Web.ActivityPub.ActivityPub @@ -20,26 +18,6 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do alias Pleroma.Web.OStatus alias Pleroma.Web.WebFinger - def show_password_reset(conn, %{"token" => token}) do - with %{used: false} = token <- Repo.get_by(PasswordResetToken, %{token: token}), - %User{} = user <- User.get_cached_by_id(token.user_id) do - render(conn, "password_reset.html", %{ - token: token, - user: user - }) - else - _e -> render(conn, "invalid_token.html") - end - end - - def password_reset(conn, %{"data" => data}) do - with {:ok, _} <- PasswordResetToken.reset_password(data["token"], data) do - render(conn, "password_reset_success.html") - else - _e -> render(conn, "password_reset_failed.html") - end - end - def help_test(conn, _params) do json(conn, "ok") end diff --git a/lib/pleroma/web/twitter_api/views/password_view.ex b/lib/pleroma/web/twitter_api/views/password_view.ex new file mode 100644 index 000000000..b166b925d --- /dev/null +++ b/lib/pleroma/web/twitter_api/views/password_view.ex @@ -0,0 +1,8 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.TwitterAPI.PasswordView do + use Pleroma.Web, :view + import Phoenix.HTML.Form +end diff --git a/test/web/twitter_api/password_controller_test.exs b/test/web/twitter_api/password_controller_test.exs new file mode 100644 index 000000000..6b9da8204 --- /dev/null +++ b/test/web/twitter_api/password_controller_test.exs @@ -0,0 +1,56 @@ +defmodule Pleroma.Web.TwitterAPI.PasswordControllerTest do + use Pleroma.Web.ConnCase + + alias Pleroma.PasswordResetToken + alias Pleroma.Web.OAuth.Token + import Pleroma.Factory + + describe "GET /api/pleroma/password_reset/token" do + test "it returns error when token invalid", %{conn: conn} do + response = + conn + |> get("/api/pleroma/password_reset/token") + |> html_response(:ok) + + assert response =~ "

Invalid Token

" + end + + test "it shows password reset form", %{conn: conn} do + user = insert(:user) + {:ok, token} = PasswordResetToken.create_token(user) + + response = + conn + |> get("/api/pleroma/password_reset/#{token.token}") + |> html_response(:ok) + + assert response =~ "

Password Reset for #{user.nickname}

" + end + end + + describe "POST /api/pleroma/password_reset" do + test "it returns HTTP 200", %{conn: conn} do + user = insert(:user) + {:ok, token} = PasswordResetToken.create_token(user) + {:ok, _access_token} = Token.create_token(insert(:oauth_app), user, %{}) + + params = %{ + "password" => "test", + password_confirmation: "test", + token: token.token + } + + response = + conn + |> assign(:user, user) + |> post("/api/pleroma/password_reset", %{data: params}) + |> html_response(:ok) + + assert response =~ "

Password changed!

" + + user = refresh_record(user) + assert Comeonin.Pbkdf2.checkpw("test", user.password_hash) + assert length(Token.get_user_tokens(user)) == 0 + end + end +end