From 767d86bbfc3d6aac2b707d8a7671aecb4dbbd58d Mon Sep 17 00:00:00 2001 From: Rithik Appachi Senthilkumar Date: Thu, 29 Aug 2024 20:28:21 -0400 Subject: [PATCH 1/8] adversarial training. FGSM-training works as expected --- src/attacks/fab/fab.jl | 0 src/attacks/fab/utils.jl | 0 src/training/adversarial_training.jl | 19 +++++--- temp/src/Playground.jl | 46 +++++++++++------- .../MNIST/convnet_jaypmorgan_advt_test.bson | Bin 0 -> 92428 bytes 5 files changed, 39 insertions(+), 26 deletions(-) create mode 100644 src/attacks/fab/fab.jl create mode 100644 src/attacks/fab/utils.jl create mode 100644 temp/src/models/MNIST/convnet_jaypmorgan_advt_test.bson diff --git a/src/attacks/fab/fab.jl b/src/attacks/fab/fab.jl new file mode 100644 index 0000000..e69de29 diff --git a/src/attacks/fab/utils.jl b/src/attacks/fab/utils.jl new file mode 100644 index 0000000..e69de29 diff --git a/src/training/adversarial_training.jl b/src/training/adversarial_training.jl index 661a860..d68edb6 100644 --- a/src/training/adversarial_training.jl +++ b/src/training/adversarial_training.jl @@ -32,7 +32,7 @@ function vanilla_train(model, x_train, y_train, max_epochs, batch_size; loss=log return vanilla_losses end -function adversarial_train(model, x_train, y_train, epochs, batch_size, ϵ; loss=logitcrossentropy, opt=Adam, step_size = 0.01, iterations = 10, attack_method = :FGSM, min_label=0, max_label=9, clamp_range=(0, 1)) +function adversarial_train(model, x_train, y_train, epochs, batch_size, ϵ; loss=logitcrossentropy, opt=ADAM, step_size = 0.03, iterations = 10, attack_method = :FGSM, min_label=0, max_label=9, clamp_range=(0, 1)) adv_losses = [] θ = Flux.params(model) train_loader = DataLoader((x_train , y_train), batchsize=batch_size, shuffle=true) @@ -42,28 +42,31 @@ function adversarial_train(model, x_train, y_train, epochs, batch_size, ϵ; loss epoch_loss = 0.0 for (idx, (x, y)) in enumerate(train_loader) - y_onehot = onehotbatch(y, label_min:label_max) + println("batch ", idx) + y_onehot = onehotbatch(y, min_label:max_label) x_adv = zeros(size(x)) if attack_method == :FGSM - x_adv = FGSM(model, x, y; loss=cross_entropy_loss, ϵ = ϵ, min_label=min_label, max_label=max_label, clamp_range = (0, 1)) + for i = 1:size(x)[4] + x_adv[:, :, :, i] = FGSM(model, x[:, :, :, i], y[i]; ϵ = ϵ) + end elseif attack_method == :PGD - x_adv = PGD(model, x, y; loss=cross_entropy_loss, ϵ = ϵ, min_label=0, max_label=9, clamp_range = (0, 1)) + for i = 1:size(x)[4] + x_adv[:, :, :, i] = PGD(model, x[:, :, :, i], y[i]; ϵ = ϵ, step_size=step_size, iterations=iterations) + end else error("Unsupported attack method: $attack_method") end l_adv = 0.0; - l_nat = 0.0; grads = Flux.gradient(θ) do l_adv = loss(model(x_adv), y_onehot) - l_nat = loss(model(x), y_onehot) - return l_adv + l_nat + return l_adv end update!(opt, θ, grads) - epoch_loss += (l_adv + l_nat) + epoch_loss += (l_adv) end diff --git a/temp/src/Playground.jl b/temp/src/Playground.jl index 51f7675..e992428 100644 --- a/temp/src/Playground.jl +++ b/temp/src/Playground.jl @@ -1,4 +1,5 @@ using Flux, TaijaData, Random, Distances, AdversarialRobustness, BSON +using BSON: @save include("utils/plot.jl") # CNN() = Chain( @@ -11,42 +12,51 @@ include("utils/plot.jl") # x -> reshape(x, :, size(x, 4)), # Dense(288, 10)) |> gpu -# model = CNN(); -# loss(x, y) = logitcrossentropy(x, y) +# model_adv_test = CNN(); +# loss(x, y) = Flux.logitcrossentropy(x, y) # opt = ADAM() # vanilla_losses = vanilla_train(model, loss, opt, X, y, 5, 32, 0, 9) -X, y = load_mnist() +# Adv train a dummy model based on a random architecture (jaypmorgan to be precise) +# model_adv_test = CNN() +# adv_losses = adversarial_train(model_adv_test, X, y, 20, 32, 0.3; loss = loss, attack_method = :FGSM, opt=opt) +# @save "temp/src/models/MNIST/convnet_jaypmorgan_advt_test.bson" model_adv_test + +X, y = load_mnist(10000) X = (X .+ 1) ./ 2 -X = reshape(X, 28, 28, 1, 60000) +X = reshape(X, 28, 28, 1, 10000) + +# model = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan.bson")[:model] +model_adv = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan_advt_test.bson")[:model_adv_test] -model = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan.bson")[:model] +model_to_use = model +# model_to_use = model_adv -idx = rand(1:1000) +idx = rand(1:10000) X_try = X[:, :, :, idx] y_try = y[idx] -target = 1 +target = -1 -# x_best_fgsm = FGSM(model, X_try, y_try; ϵ = 0.2) -# x_best_pgd = PGD(model, X_try, y_try; ϵ = 0.3, step_size=0.02, iterations=40) -# x_best_square, n_queries = SquareAttack(model, X_try, y_try, 5000; ϵ = 0.3, verbose=true) -x_best_autopgd, η_list, checkpoints, starts_updated = AutoPGD(model, X_try, y_try, 100; ϵ = 0.2, target=target) +x_best_fgsm = FGSM(model_to_use, X_try, y_try; ϵ = 0.3) +# x_best_pgd = PGD(model_to_use, X_try, y_try; ϵ = 0.3, step_size=0.02, iterations=20) +# x_best_square, n_queries = SquareAttack(model_to_use, X_try, y_try, 5000; ϵ = 0.3, verbose=true) +# x_best_autopgd, η_list, checkpoints, starts_updated = AutoPGD(model_to_use, X_try, y_try, 100; ϵ = 0.2, target=target) -println(extrema(x_best_autopgd .- X_try)) - -# attack_to_use = x_best_fgsm -# attack_to_use = x_best_pgd +attack_to_use = x_best_fgsm +# attack_to_use = x_best_pgda # attack_to_use = x_best_square -attack_to_use = x_best_autopgd +# attack_to_use = x_best_autopgd + +println(extrema(attack_to_use .- X_try)) clean_img = X_try[:, :, :, 1:1] adv_img = attack_to_use[:, :, :, 1:1] -clean_pred = model(clean_img) -adv_pred = model(adv_img) +clean_pred = model_to_use(clean_img) +adv_pred = model_to_use(adv_img) clean_pred_label = (clean_pred |> Flux.onecold |> getindex) - 1 adv_pred_label = (adv_pred |> Flux.onecold |> getindex) - 1 diff --git a/temp/src/models/MNIST/convnet_jaypmorgan_advt_test.bson b/temp/src/models/MNIST/convnet_jaypmorgan_advt_test.bson new file mode 100644 index 0000000000000000000000000000000000000000..787dfeeb76f51ff89b7f16741fe4b21343faa2c2 GIT binary patch literal 92428 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 literal 0 HcmV?d00001 From 76364e99798bda3135eb714af5dc62db58c066ec Mon Sep 17 00:00:00 2001 From: Rithik Appachi Senthilkumar Date: Fri, 30 Aug 2024 02:02:38 -0400 Subject: [PATCH 2/8] pgd training seems ok --- src/training/adversarial_training.jl | 2 +- temp/src/Playground.jl | 41 ++++++++++++------ .../MNIST/convnet_jaypmorgan_adv_pgd.bson | Bin 0 -> 92417 bytes 3 files changed, 28 insertions(+), 15 deletions(-) create mode 100644 temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd.bson diff --git a/src/training/adversarial_training.jl b/src/training/adversarial_training.jl index d68edb6..a610a58 100644 --- a/src/training/adversarial_training.jl +++ b/src/training/adversarial_training.jl @@ -32,7 +32,7 @@ function vanilla_train(model, x_train, y_train, max_epochs, batch_size; loss=log return vanilla_losses end -function adversarial_train(model, x_train, y_train, epochs, batch_size, ϵ; loss=logitcrossentropy, opt=ADAM, step_size = 0.03, iterations = 10, attack_method = :FGSM, min_label=0, max_label=9, clamp_range=(0, 1)) +function adversarial_train(model, x_train, y_train, epochs, batch_size, ϵ; loss=logitcrossentropy, opt=ADAM, step_size = 0.03, iterations = 5, attack_method = :FGSM, min_label=0, max_label=9, clamp_range=(0, 1)) adv_losses = [] θ = Flux.params(model) train_loader = DataLoader((x_train , y_train), batchsize=batch_size, shuffle=true) diff --git a/temp/src/Playground.jl b/temp/src/Playground.jl index e992428..797f02d 100644 --- a/temp/src/Playground.jl +++ b/temp/src/Playground.jl @@ -2,6 +2,12 @@ using Flux, TaijaData, Random, Distances, AdversarialRobustness, BSON using BSON: @save include("utils/plot.jl") +# Import MNIST from TaijaData +X, y = load_mnist(10000) +X = (X .+ 1) ./ 2 +X = reshape(X, 28, 28, 1, 10000) + +# Model architecture # CNN() = Chain( # Conv((3, 3), 1=>16, pad=(1,1), relu), # MaxPool((2,2)), @@ -16,37 +22,44 @@ include("utils/plot.jl") # loss(x, y) = Flux.logitcrossentropy(x, y) # opt = ADAM() +# Standard training # vanilla_losses = vanilla_train(model, loss, opt, X, y, 5, 32, 0, 9) -# Adv train a dummy model based on a random architecture (jaypmorgan to be precise) -# model_adv_test = CNN() -# adv_losses = adversarial_train(model_adv_test, X, y, 20, 32, 0.3; loss = loss, attack_method = :FGSM, opt=opt) -# @save "temp/src/models/MNIST/convnet_jaypmorgan_advt_test.bson" model_adv_test +# Adv train a dummy model based on the architecture (jaypmorgan to be precise) +# model_adv_pgd = CNN() +# adv_losses = adversarial_train(model_adv_pgd, X, y, 20, 128, 0.3; loss = loss, attack_method = :PGD, opt=opt) +# @save "temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd.bson" model_adv_pgd -X, y = load_mnist(10000) -X = (X .+ 1) ./ 2 -X = reshape(X, 28, 28, 1, 10000) +# Classically trained model +model = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan.bson")[:model] -# model = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan.bson")[:model] +# FGSM trained 20ep 32bs 0.3ϵ model_adv = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan_advt_test.bson")[:model_adv_test] -model_to_use = model -# model_to_use = model_adv +# PGD trained 20ep 128bs 0.3ϵ but 0.03 step size and 5 iterations (trained on 10k not 60k) +model_adv_pgd = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd.bson")[:model_adv_pgd] + +# Choose specific model to use +# model_to_use = model_adv_pgd +# model_to_use = model +model_to_use = model_adv idx = rand(1:10000) X_try = X[:, :, :, idx] y_try = y[idx] +# Change to [0, 9] for a target class target = -1 -x_best_fgsm = FGSM(model_to_use, X_try, y_try; ϵ = 0.3) -# x_best_pgd = PGD(model_to_use, X_try, y_try; ϵ = 0.3, step_size=0.02, iterations=20) +# Choose attack algorithm: FGSM, PGD, Square and AutoPGD available so far +# x_best_fgsm = FGSM(model_to_use, X_try, y_try; ϵ = 0.3) +x_best_pgd = PGD(model_to_use, X_try, y_try; ϵ = 0.3, step_size=0.05, iterations=5) # x_best_square, n_queries = SquareAttack(model_to_use, X_try, y_try, 5000; ϵ = 0.3, verbose=true) # x_best_autopgd, η_list, checkpoints, starts_updated = AutoPGD(model_to_use, X_try, y_try, 100; ϵ = 0.2, target=target) -attack_to_use = x_best_fgsm -# attack_to_use = x_best_pgda +# attack_to_use = x_best_fgsm +attack_to_use = x_best_pgd # attack_to_use = x_best_square # attack_to_use = x_best_autopgd diff --git a/temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd.bson b/temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd.bson new file mode 100644 index 0000000000000000000000000000000000000000..92f450ffb28fe53847e5b85197c3ec9eb25ad7d3 GIT binary patch literal 92417 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

>cE-b0Ix7A|8H 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 literal 0 HcmV?d00001 From 406ba549b175bf0119e431bdb1909e1a0cec1715 Mon Sep 17 00:00:00 2001 From: Rithik Appachi Senthilkumar Date: Mon, 2 Sep 2024 10:55:23 -0400 Subject: [PATCH 3/8] vanilla train change --- Project.toml | 1 + src/training/adversarial_training.jl | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index ee24be1..6e4cf98 100644 --- a/Project.toml +++ b/Project.toml @@ -4,6 +4,7 @@ authors = ["Rithik Appachi Senthilkumar and contributors"] version = "1.0.0-DEV" [deps] +CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" diff --git a/src/training/adversarial_training.jl b/src/training/adversarial_training.jl index a610a58..e0c1fa8 100644 --- a/src/training/adversarial_training.jl +++ b/src/training/adversarial_training.jl @@ -12,9 +12,9 @@ function vanilla_train(model, x_train, y_train, max_epochs, batch_size; loss=log epoch_loss = 0.0 for (idx, (x, y)) in enumerate(train_loader) - # println("Batch: $idx") + println("Batch: $idx") local l; - y_onehot = onehotbatch(y, label_min:label_max) + y_onehot = onehotbatch(y, min_label:max_label) grads = Flux.gradient(θ) do l = loss(model(x), y_onehot) end From 756ee58738dfbfc9e146de9e521a3489bd9c366a Mon Sep 17 00:00:00 2001 From: Rithik Appachi Senthilkumar Date: Wed, 4 Sep 2024 19:14:05 -0400 Subject: [PATCH 4/8] adversarial training works with GPU --- Project.toml | 1 + src/attacks/fgsm/fgsm.jl | 34 +++++++-- src/attacks/pgd/pgd.jl | 34 +++------ src/attacks/square/square_attack.jl | 2 +- src/attacks/square/utils.jl | 2 +- src/training/adversarial_training.jl | 29 +++++--- temp/src/Playground.jl | 65 ++++++++++-------- .../MNIST/convnet_jaypmorgan_adv_pgd2.bson | Bin 0 -> 92418 bytes 8 files changed, 99 insertions(+), 68 deletions(-) create mode 100644 temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd2.bson diff --git a/Project.toml b/Project.toml index 6e4cf98..62a993c 100644 --- a/Project.toml +++ b/Project.toml @@ -12,6 +12,7 @@ ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" [compat] Distances = "0.10.11" diff --git a/src/attacks/fgsm/fgsm.jl b/src/attacks/fgsm/fgsm.jl index a2c5c17..b71d435 100644 --- a/src/attacks/fgsm/fgsm.jl +++ b/src/attacks/fgsm/fgsm.jl @@ -1,17 +1,37 @@ using Distributions using Random using Flux, Statistics, Distances -using Flux: onehotbatch, onecold +using Flux: onehotbatch, onecold, logitcrossentropy # include("../common_utils.jl") # White-box Fast Gradient Sign Method (FGSM) attack by Goodfellow et al. (arxiv.org/abs/1412.6572) # Code adapted from (github.com/jaypmorgan/Adversarial.jl) -function FGSM(model, x, y; loss=cross_entropy_loss, ϵ = 0.3, min_label=0, max_label=9, clamp_range = (0, 1)) - w, h, c = size(x) - x_adv = deepcopy(x) - x_adv = reshape(x_adv, w, h, c, 1) - grads = gradient(x_adv -> loss(model(x_adv), y; min_label=min_label, max_label=max_label)[1], x_adv)[1] - x_adv = clamp.(x_adv .+ (ϵ .* sign.(grads)), clamp_range...) +function FGSM(model, x, y; loss=logitcrossentropy, ϵ = 0.3, min_label=0, max_label=9, clamp_range = (0, 1)) + w, h, c, batch_size = size(x) + # x_adv = deepcopy(x) + x_adv = reshape(x, w, h, c, batch_size) + + # grads = zeros(size(x)) # size(x) = 28, 28, 1, batch_size + + # With a batch: scalar indexing? + # grads = Flux.jacobian((x_adv) -> loss(model(x_adv), y; agg=(x->x)), x_adv)[1] + # grads = reshape(grads, 11, 28, 28, 1, 11) + # grads_real = zeros(size(x)) + # i = 1 + # for i = 1:batch_size + # grads_real[:, :, :, i] = grads[i, :, :, :, i] + # end + # x_adv = clamp.(x_adv .+ (ϵ .* sign.(grads_real)), clamp_range...) + + # To test with batch size of one + # for i = 1:batch_size + # curr_input = reshape(x_adv[:, :, :, i], w, h, c, 1) + # curr_label = y[:, i] + # grads[:, :, :, i] = Flux.gradient((curr_input) -> loss(model(curr_input), curr_label; agg=(x->x))[1], curr_input)[1] + # end + grads = gradient((x_adv) -> loss(model(x_adv), y), x_adv) + x_adv = clamp.(x_adv .+ (ϵ .* sign.(grads[1])), clamp_range...) + return x_adv end \ No newline at end of file diff --git a/src/attacks/pgd/pgd.jl b/src/attacks/pgd/pgd.jl index f407e4b..051a4f3 100644 --- a/src/attacks/pgd/pgd.jl +++ b/src/attacks/pgd/pgd.jl @@ -1,39 +1,27 @@ using Distributions using Random using Flux, Statistics, Distances -using Flux: onehotbatch, onecold +using Flux: onehotbatch, onecold, logitcrossentropy # include("../common_utils.jl") # White-box Projected Gradient Descent (PGD) attack by Madry et al. (arxiv.org/abs/1706.06083) # Code adapted from (github.com/jaypmorgan/Adversarial.jl) -function PGD(model, x, y; loss=cross_entropy_loss, ϵ = 0.3, step_size = 0.01, iterations = 40, min_label=0, max_label=9, clamp_range = (0, 1)) - w, h, c = size(x) - x_curr = deepcopy(x) - x_curr = reshape(x_curr, w, h, c, 1) - x_curr_adv = clamp.(x_curr + (randn(Float32, size(x_curr)...) * Float32(step_size)), clamp_range...) +function PGD(model, x, y; loss=logitcrossentropy, ϵ = 0.3, step_size = 0.01, iterations = 40, min_label=0, max_label=9, clamp_range = (0, 1)) + w, h, c, batch_size = size(x) + # x_curr = deepcopy(x) + x_curr = reshape(x, w, h, c, batch_size) + x_curr_adv = clamp.(x_curr + ((randn(Float32, size(x_curr)...) |> gpu) * Float32(step_size)), clamp_range...) iteration = 1 - δ = chebyshev(x_curr, x_curr_adv) + # δ = chebyshev(x_curr, x_curr_adv) - while (δ .< ϵ) && iteration <= iterations + # (δ .< ϵ) && + + while iteration <= iterations x_curr_adv = FGSM(model, x_curr_adv, y; loss=loss, ϵ = step_size, min_label=min_label, max_label=max_label, clamp_range = clamp_range) iteration += 1 - δ = chebyshev(x_curr, x_curr_adv) + # δ = chebyshev(x_curr, x_curr_adv) end return clamp.(x_curr_adv, x_curr .- ϵ, x_curr .+ ϵ) - - # for i = 1:batch_size - # x_curr = x_adv[:, :, :, i] - # x_curr = reshape(x_curr, 28, 28, 1, 1) - # x_curr_adv = clamp.(x_curr + (randn(Float32, size(x_curr)...) * Float32(step_size)), clamp_range...); # start from the random point - # δ = chebyshev(x_curr, x_curr_adv) - # iteration = 1; while (δ < ϵ) && iteration <= iterations - # x_curr_adv = FGSM(model, x_curr_adv, y; loss=loss, ϵ = step_size, min_label=min_label, max_label=max_label, clamp_range = clamp_range) - # δ = chebyshev(x_curr, x_curr_adv) - # iteration += 1 - # end - # x_adv[:, :, :, i] = x_curr_adv - # end - # return x_adv end \ No newline at end of file diff --git a/src/attacks/square/square_attack.jl b/src/attacks/square/square_attack.jl index f35ba08..f1387c3 100644 --- a/src/attacks/square/square_attack.jl +++ b/src/attacks/square/square_attack.jl @@ -8,7 +8,7 @@ include("utils.jl") # The black-box Square Attack developed by Andriuschenko et al. (https://link.springer.com/chapter/10.1007/978-3-030-58592-1_29) # The only free variable is the budget: iterations function SquareAttack(model, x, y, iterations; ϵ=0.3, p_init=0.8, min_label=0, max_label=9, verbose=false, clamp_range = (0, 1)) - Random.seed!(0) + # Random.seed!(0) w, h, c = size(x) n_features = c*h*w diff --git a/src/attacks/square/utils.jl b/src/attacks/square/utils.jl index 1c66723..b2d6e36 100644 --- a/src/attacks/square/utils.jl +++ b/src/attacks/square/utils.jl @@ -36,7 +36,7 @@ end # Margin loss: L(f(x̂), p) = fₚ(x̂) − max(fₖ(x̂)) s.t k≠p function margin_loss(logits, y, min_label, max_label) - y = onehotbatch(y, min_label:max_label) + # y = onehotbatch(y, min_label:max_label) preds_correct_class = sum(logits.*y, dims=1) diff = preds_correct_class .- logits diff[y] .= Inf diff --git a/src/training/adversarial_training.jl b/src/training/adversarial_training.jl index e0c1fa8..23cb9ce 100644 --- a/src/training/adversarial_training.jl +++ b/src/training/adversarial_training.jl @@ -32,28 +32,36 @@ function vanilla_train(model, x_train, y_train, max_epochs, batch_size; loss=log return vanilla_losses end -function adversarial_train(model, x_train, y_train, epochs, batch_size, ϵ; loss=logitcrossentropy, opt=ADAM, step_size = 0.03, iterations = 5, attack_method = :FGSM, min_label=0, max_label=9, clamp_range=(0, 1)) +function adversarial_train(model, x_train, y_train, epochs, batch_size, ϵ; loss=logitcrossentropy, opt=ADAM, step_size = 0.03, iterations = 10, attack_method = :FGSM, min_label=0, max_label=9, clamp_range=(0, 1)) adv_losses = [] θ = Flux.params(model) - train_loader = DataLoader((x_train , y_train), batchsize=batch_size, shuffle=true) + train_loader = DataLoader((x_train , y_train), batchsize=batch_size, shuffle=true) |> gpu + + iter = ceil(iterations/epochs) + iter_val = iterations/epochs @showprogress for epoch in 1:epochs println("Epoch: $epoch") + println("number of iterations for PGD: ", iter) epoch_loss = 0.0 for (idx, (x, y)) in enumerate(train_loader) - println("batch ", idx) + if idx % 100 == 0 + println("batch ", idx) + end y_onehot = onehotbatch(y, min_label:max_label) x_adv = zeros(size(x)) if attack_method == :FGSM - for i = 1:size(x)[4] - x_adv[:, :, :, i] = FGSM(model, x[:, :, :, i], y[i]; ϵ = ϵ) - end + x_adv = FGSM(model, x, y_onehot; ϵ = ϵ, loss=loss) + # for i = 1:size(x)[4] + # x_adv[:, :, :, i] = FGSM(model, x[:, :, :, i], y[i]; ϵ = ϵ, loss=attack_loss) + # end elseif attack_method == :PGD - for i = 1:size(x)[4] - x_adv[:, :, :, i] = PGD(model, x[:, :, :, i], y[i]; ϵ = ϵ, step_size=step_size, iterations=iterations) - end + x_adv = PGD(model, x, y_onehot; ϵ = ϵ, loss=loss, step_size=step_size, iterations=iter) + # for i = 1:size(x)[4] + # x_adv[:, :, :, i] = PGD(model, x[:, :, :, i], y[i]; ϵ = ϵ, loss=attack_loss, step_size=step_size, iterations=iterations) + # end else error("Unsupported attack method: $attack_method") end @@ -75,6 +83,9 @@ function adversarial_train(model, x_train, y_train, epochs, batch_size, ϵ; loss println("Average loss: $avg_loss") push!(adv_losses, avg_loss) + + iter_val += iterations/epochs + iter = ceil(iter_val) end return adv_losses diff --git a/temp/src/Playground.jl b/temp/src/Playground.jl index 797f02d..181b825 100644 --- a/temp/src/Playground.jl +++ b/temp/src/Playground.jl @@ -1,4 +1,4 @@ -using Flux, TaijaData, Random, Distances, AdversarialRobustness, BSON +using Flux, TaijaData, Random, Distances, AdversarialRobustness, BSON, CUDA, cuDNN using BSON: @save include("utils/plot.jl") @@ -8,27 +8,28 @@ X = (X .+ 1) ./ 2 X = reshape(X, 28, 28, 1, 10000) # Model architecture -# CNN() = Chain( -# Conv((3, 3), 1=>16, pad=(1,1), relu), -# MaxPool((2,2)), -# Conv((3, 3), 16=>32, pad=(1,1), relu), -# MaxPool((2,2)), -# Conv((3, 3), 32=>32, pad=(1,1), relu), -# MaxPool((2,2)), -# x -> reshape(x, :, size(x, 4)), -# Dense(288, 10)) |> gpu +CNN() = Chain( + Conv((3, 3), 1=>16, pad=(1,1), relu), + MaxPool((2,2)), + Conv((3, 3), 16=>32, pad=(1,1), relu), + MaxPool((2,2)), + Conv((3, 3), 32=>32, pad=(1,1), relu), + MaxPool((2,2)), + x -> reshape(x, :, size(x, 4)), + Dense(288, 10)) |> gpu # model_adv_test = CNN(); -# loss(x, y) = Flux.logitcrossentropy(x, y) -# opt = ADAM() +loss(x, y) = Flux.logitcrossentropy(x, y) +opt = ADAM() # Standard training # vanilla_losses = vanilla_train(model, loss, opt, X, y, 5, 32, 0, 9) # Adv train a dummy model based on the architecture (jaypmorgan to be precise) -# model_adv_pgd = CNN() -# adv_losses = adversarial_train(model_adv_pgd, X, y, 20, 128, 0.3; loss = loss, attack_method = :PGD, opt=opt) -# @save "temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd.bson" model_adv_pgd +# model_adv_pgd2 = CNN() +# adv_losses = adversarial_train(model_adv_pgd2, X, y, 50, 128, 0.3; loss = loss, iterations=10, attack_method = :PGD, opt=opt) +# model_adv_pgd2 = cpu(model_adv_pgd2) +# @save "temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd2.bson" model_adv_pgd2 # Classically trained model model = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan.bson")[:model] @@ -39,41 +40,51 @@ model_adv = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan_advt_test.bson") # PGD trained 20ep 128bs 0.3ϵ but 0.03 step size and 5 iterations (trained on 10k not 60k) model_adv_pgd = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd.bson")[:model_adv_pgd] +# Nice PGD 50ep 128bs 0.3e 0.03ss iterations varying from 1 to 10 +model_adv_pgd2 = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd2.bson")[:model_adv_pgd2] + # Choose specific model to use # model_to_use = model_adv_pgd # model_to_use = model -model_to_use = model_adv +# model_to_use = model_adv +model_to_use = model_adv_pgd2 -idx = rand(1:10000) +lb = 5 +ub = lb + 0 -X_try = X[:, :, :, idx] -y_try = y[idx] +X_try = X[:, :, :, lb:ub] +y_try = onehotbatch(y[lb:ub], sort(unique(y))) # Change to [0, 9] for a target class target = -1 # Choose attack algorithm: FGSM, PGD, Square and AutoPGD available so far -# x_best_fgsm = FGSM(model_to_use, X_try, y_try; ϵ = 0.3) -x_best_pgd = PGD(model_to_use, X_try, y_try; ϵ = 0.3, step_size=0.05, iterations=5) -# x_best_square, n_queries = SquareAttack(model_to_use, X_try, y_try, 5000; ϵ = 0.3, verbose=true) +# x_best_fgsm = FGSM(model_to_use, X_try, y_try; ϵ = 0.2) +# x_best_pgd = PGD(model_to_use, X_try, y_try; ϵ = 0.3, step_size=0.01, iterations=20) +x_best_square, n_queries = SquareAttack(model_to_use, X_try, y_try, 5000; ϵ = 0.3, verbose=true) # x_best_autopgd, η_list, checkpoints, starts_updated = AutoPGD(model_to_use, X_try, y_try, 100; ϵ = 0.2, target=target) # attack_to_use = x_best_fgsm -attack_to_use = x_best_pgd -# attack_to_use = x_best_square +# attack_to_use = x_best_pgd +attack_to_use = x_best_square # attack_to_use = x_best_autopgd +println("queries for sq: ", n_queries) + println(extrema(attack_to_use .- X_try)) -clean_img = X_try[:, :, :, 1:1] -adv_img = attack_to_use[:, :, :, 1:1] +iw = 1 + +clean_img = X_try[:, :, :, iw:iw] +adv_img = attack_to_use[:, :, :, iw:iw] +true_val = y_try[:, iw:iw] clean_pred = model_to_use(clean_img) adv_pred = model_to_use(adv_img) clean_pred_label = (clean_pred |> Flux.onecold |> getindex) - 1 adv_pred_label = (adv_pred |> Flux.onecold |> getindex) - 1 -true_label = y_try +true_label = (true_val |> Flux.onecold |> getindex) - 1 # println("η_list: ", η_list) # println("checkpoints: ", checkpoints) diff --git a/temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd2.bson b/temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd2.bson new file mode 100644 index 0000000000000000000000000000000000000000..089c8e2b6e15c04f94463294b92419e95ccf9f92 GIT binary patch literal 92418 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 p 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 literal 0 HcmV?d00001 From 36c06b7aa3e77d8b0af82203a83e7c2333415d62 Mon Sep 17 00:00:00 2001 From: Rithik Appachi Senthilkumar Date: Fri, 6 Sep 2024 00:36:26 -0400 Subject: [PATCH 8/8] square fix --- src/attacks/square/square_attack.jl | 17 +++--- src/attacks/square/utils.jl | 3 +- temp/src/Playground.jl | 56 ++++++++++-------- .../MNIST/convnet_jaypmorgan_adv_pgd4.bson | Bin 0 -> 92410 bytes 4 files changed, 39 insertions(+), 37 deletions(-) create mode 100644 temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd4.bson diff --git a/src/attacks/square/square_attack.jl b/src/attacks/square/square_attack.jl index 220f6a7..d3ef5b9 100644 --- a/src/attacks/square/square_attack.jl +++ b/src/attacks/square/square_attack.jl @@ -14,14 +14,12 @@ function SquareAttack( iterations = 10, ϵ = 0.3, p_init = 0.8, - min_label = 0, - max_label = 9, verbose = false, - clamp_range = (0, 1), - loss = nothing, + clamp_range = (0, 1) ) Random.seed!(0) n_features = length(x) + w, h, c, _ = size(x) # Initialization (stripes of +/-ϵ) init_δ = rand(w, 1, c) .|> x -> x < 0.5 ? -ϵ : ϵ @@ -29,11 +27,10 @@ function SquareAttack( x_best = clamp.((init_δ_extended + x), clamp_range...) topass_x_best = deepcopy(x_best) - topass_x_best = reshape(topass_x_best, size(x)..., 1) logits = model(topass_x_best) - loss_min = margin_loss(logits, y, min_label, max_label) - margin_min = margin_loss(logits, y, min_label, max_label) + loss_min = margin_loss(logits, y) + margin_min = margin_loss(logits, y) n_queries = 1 for iteration = 1:iterations @@ -70,11 +67,11 @@ function SquareAttack( x_new = clamp.(x_curr .+ δ, clamp_range...) topass_x_new = deepcopy(x_new) - topass_x_new = reshape(topass_x_new, size(x)..., 1) + # topass_x_new = reshape(topass_x_new, size(x)..., 1) logits = model(topass_x_new) - loss = margin_loss(logits, y_curr, min_label, max_label) - margin = margin_loss(logits, y_curr, min_label, max_label) + loss = margin_loss(logits, y_curr) + margin = margin_loss(logits, y_curr) if loss[1] < loss_min_curr[1] loss_min = loss diff --git a/src/attacks/square/utils.jl b/src/attacks/square/utils.jl index a9b097e..446f717 100644 --- a/src/attacks/square/utils.jl +++ b/src/attacks/square/utils.jl @@ -35,8 +35,7 @@ function p_selection(p_init, it, n_iters) end # Margin loss: L(f(x̂), p) = fₚ(x̂) − max(fₖ(x̂)) s.t k≠p -function margin_loss(logits, y, min_label, max_label) - y = onehotbatch(y, min_label:max_label) +function margin_loss(logits, y) preds_correct_class = sum(logits .* y, dims = 1) diff = preds_correct_class .- logits diff[y] .= Inf diff --git a/temp/src/Playground.jl b/temp/src/Playground.jl index e50fc03..dc19697 100644 --- a/temp/src/Playground.jl +++ b/temp/src/Playground.jl @@ -8,29 +8,31 @@ X = (X .+ 1) ./ 2 X = reshape(X, 28, 28, 1, 10000) y = onehotbatch(y, sort(unique(y))) +# Flux.get_device(; verbose=true) + # Model architecture -CNN() = Chain( - Conv((3, 3), 1=>16, pad=(1,1), relu), - MaxPool((2,2)), - Conv((3, 3), 16=>32, pad=(1,1), relu), - MaxPool((2,2)), - Conv((3, 3), 32=>32, pad=(1,1), relu), - MaxPool((2,2)), - x -> reshape(x, :, size(x, 4)), - Dense(288, 10)) |> gpu - -# # model_adv_test = CNN(); -loss(x, y) = Flux.logitcrossentropy(x, y) -opt = ADAM() +# CNN() = Chain( +# Conv((3, 3), 1=>16, pad=(1,1), relu), +# MaxPool((2,2)), +# Conv((3, 3), 16=>32, pad=(1,1), relu), +# MaxPool((2,2)), +# Conv((3, 3), 32=>32, pad=(1,1), relu), +# MaxPool((2,2)), +# x -> reshape(x, :, size(x, 4)), +# Dense(288, 10)) |> gpu + +# # # model_adv_test = CNN(); +# loss(x, y) = Flux.logitcrossentropy(x, y) +# opt = ADAM() # Standard training # vanilla_losses = vanilla_train(model, loss, opt, X, y, 5, 32, 0, 9) # Adv train a dummy model based on the architecture (jaypmorgan to be precise) -# model_adv_pgd3 = CNN() -# adv_losses = adversarial_train(model_adv_pgd3, X, y, 30, 128, 0.3; loss = loss, iterations=10, attack_method = :PGD, opt=opt) -# model_adv_pgd3 = cpu(model_adv_pgd3) -# @save "temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd3.bson" model_adv_pgd3 +# model_adv_pgd4 = CNN() +# adv_losses = adversarial_train(model_adv_pgd4, X, y, 40, 128, 0.3; loss = loss, iterations=40, step_size=0.01, attack_method = :PGD, opt=opt) +# model_adv_pgd4 = cpu(model_adv_pgd4) +# @save "temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd4.bson" model_adv_pgd4 # Classically trained model model = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan.bson")[:model] @@ -47,34 +49,38 @@ model_adv_pgd2 = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd2.bs # PGD 30ep 128bs 0.3e 0.03ss iterations varying from 1 to 10 model_adv_pgd3 = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd3.bson")[:model_adv_pgd3] +# PGD 40ep 128bs 0.01ss iterations varying from 1 to 40 +model_adv_pgd4 = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd4.bson")[:model_adv_pgd4] + # Choose specific model to use # model_to_use = model_adv_pgd # model_to_use = model # model_to_use = model_adv -model_to_use = model_adv_pgd2 |> gpu +# model_to_use = model_adv_pgd2 |> gpu # model_to_use = model_adv_pgd3 |> gpu +model_to_use = model_adv_pgd4 lb = 5 ub = lb + 0 -X_try = X[:, :, :, lb:ub] |> gpu -y_try = y[:, lb:ub] |> gpu +X_try = X[:, :, :, lb:ub] +y_try = y[:, lb:ub] # Change to [0, 9] for a target class target = -1 # Choose attack algorithm: FGSM, PGD, Square and AutoPGD available so far # x_best_fgsm = FGSM(model_to_use, X_try, y_try; ϵ = 0.2) -x_best_pgd = PGD(model_to_use, X_try, y_try; ϵ = 0.3, step_size=0.01, iterations=20) -# x_best_square, n_queries = SquareAttack(model_to_use, X_try, y_try, 5000; ϵ = 0.3, verbose=true) +# x_best_pgd = PGD(model_to_use, X_try, y_try; ϵ = 0.3, step_size=0.01, iterations=20) +x_best_square, n_queries = SquareAttack(model_to_use, X_try, y_try; iterations=5000, ϵ = 0.3, verbose=true) # x_best_autopgd, η_list, checkpoints, starts_updated = AutoPGD(model_to_use, X_try, y_try, 100; ϵ = 0.2, target=target) # attack_to_use = x_best_fgsm -attack_to_use = x_best_pgd -# attack_to_use = x_best_square +# attack_to_use = x_best_pgd +attack_to_use = x_best_square # attack_to_use = x_best_autopgd -# println("queries for sq: ", n_queries) +println("queries for sq: ", n_queries) println(extrema(attack_to_use .- X_try)) diff --git a/temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd4.bson b/temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd4.bson new file mode 100644 index 0000000000000000000000000000000000000000..37018a54753296f746bcf65e2825ca6cb3a05055 GIT binary patch literal 92410 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 literal 0 HcmV?d00001

QZK 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 Date: Wed, 4 Sep 2024 19:19:23 -0400 Subject: [PATCH 5/8] autopgd tweak --- src/attacks/autopgd/autopgd.jl | 12 ++++++------ temp/src/Playground.jl | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/attacks/autopgd/autopgd.jl b/src/attacks/autopgd/autopgd.jl index 10687dd..dd06115 100644 --- a/src/attacks/autopgd/autopgd.jl +++ b/src/attacks/autopgd/autopgd.jl @@ -7,7 +7,7 @@ include("utils.jl") # White-box Auto Projected Gradient Descent: A parameter-free version of PGD (arxiv.org/pdf/2003.01690) # The only free parameter is the budget: iterations. α and ρ are both set to 0.75 as specified by the authors -function AutoPGD(model, x, y, iterations; ϵ=0.3, target=-1, min_label=0, max_label=9, verbose=false, α=0.75, ρ=0.75, clamp_range = (0, 1)) +function AutoPGD(model, x, y, iterations; loss=logitcrossentropy, ϵ=0.3, target=-1, min_label=0, max_label=9, verbose=false, α=0.75, ρ=0.75, clamp_range = (0, 1)) w, h, c = size(x) # initializing step size @@ -27,7 +27,7 @@ function AutoPGD(model, x, y, iterations; ϵ=0.3, target=-1, min_label=0, max_la end x_0 = deepcopy(x) - x_1 = clamp.(FGSM(model, x_0, y; loss=cross_entropy_loss, ϵ = η, min_label=min_label, max_label=max_label, clamp_range = (x_0 .- ϵ, x_0 .+ ϵ)), clamp_range...) + x_1 = clamp.(FGSM(model, x_0, y; loss=loss, ϵ = η, min_label=min_label, max_label=max_label, clamp_range = (x_0 .- ϵ, x_0 .+ ϵ)), clamp_range...) topass_x_0 = deepcopy(x) topass_x_0 = reshape(topass_x_0, w, h, c, 1) @@ -37,8 +37,8 @@ function AutoPGD(model, x, y, iterations; ϵ=0.3, target=-1, min_label=0, max_la logits_0 = model(topass_x_0) logits_1 = model(topass_x_1) - f_0 = logitcrossentropy(logits_0, onehotbatch(y, min_label:max_label)) - f_1 = logitcrossentropy(logits_1, onehotbatch(y, min_label:max_label)) + f_0 = logitcrossentropy(logits_0, y) + f_1 = logitcrossentropy(logits_1, y) if target > -1 f_0 = targeted_dlr_loss(logits_0, y, target) @@ -67,7 +67,7 @@ function AutoPGD(model, x, y, iterations; ϵ=0.3, target=-1, min_label=0, max_la η = deepcopy(η_list[length(η_list)]) x_k = deepcopy(x_list[k]) x_k_m_1 = deepcopy(x_list[k-1]) - z_k_p_1 = clamp.(FGSM(model, x_k, y; loss=cross_entropy_loss, ϵ = η, min_label=min_label, max_label=max_label, clamp_range = (x_0 .- ϵ, x_0 .+ ϵ)), clamp_range...) + z_k_p_1 = clamp.(FGSM(model, x_k, y; loss=loss, ϵ = η, min_label=min_label, max_label=max_label, clamp_range = (x_0 .- ϵ, x_0 .+ ϵ)), clamp_range...) x_k_p_1 = clamp.(clamp.((x_k + (α .* (z_k_p_1 .- x_k))) + ((1 - α) .* (x_k .- x_k_m_1)), x_0 .- ϵ, x_0 .+ ϵ), clamp_range...) topass_xkp1 = deepcopy(x_k_p_1) @@ -75,7 +75,7 @@ function AutoPGD(model, x, y, iterations; ϵ=0.3, target=-1, min_label=0, max_la logits_xkp1 = model(topass_xkp1) - f_x_k_p_1 = logitcrossentropy(logits_xkp1, onehotbatch(y, min_label:max_label)) + f_x_k_p_1 = logitcrossentropy(logits_xkp1, y) if target > -1 f_x_k_p_1 = targeted_dlr_loss(logits_xkp1, y, target) diff --git a/temp/src/Playground.jl b/temp/src/Playground.jl index 181b825..e80146f 100644 --- a/temp/src/Playground.jl +++ b/temp/src/Playground.jl @@ -61,15 +61,15 @@ target = -1 # Choose attack algorithm: FGSM, PGD, Square and AutoPGD available so far # x_best_fgsm = FGSM(model_to_use, X_try, y_try; ϵ = 0.2) # x_best_pgd = PGD(model_to_use, X_try, y_try; ϵ = 0.3, step_size=0.01, iterations=20) -x_best_square, n_queries = SquareAttack(model_to_use, X_try, y_try, 5000; ϵ = 0.3, verbose=true) -# x_best_autopgd, η_list, checkpoints, starts_updated = AutoPGD(model_to_use, X_try, y_try, 100; ϵ = 0.2, target=target) +# x_best_square, n_queries = SquareAttack(model_to_use, X_try, y_try, 5000; ϵ = 0.3, verbose=true) +x_best_autopgd, η_list, checkpoints, starts_updated = AutoPGD(model_to_use, X_try, y_try, 100; ϵ = 0.2, target=target) # attack_to_use = x_best_fgsm # attack_to_use = x_best_pgd -attack_to_use = x_best_square -# attack_to_use = x_best_autopgd +# attack_to_use = x_best_square +attack_to_use = x_best_autopgd -println("queries for sq: ", n_queries) +# println("queries for sq: ", n_queries) println(extrema(attack_to_use .- X_try)) From 92b3f6767eafbc72cb60dc42783e8e62fe562403 Mon Sep 17 00:00:00 2001 From: Rithik Appachi Senthilkumar Date: Thu, 5 Sep 2024 01:53:39 -0400 Subject: [PATCH 6/8] fgsm? --- src/attacks/fgsm/fgsm.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/attacks/fgsm/fgsm.jl b/src/attacks/fgsm/fgsm.jl index 954b59b..c6290e3 100644 --- a/src/attacks/fgsm/fgsm.jl +++ b/src/attacks/fgsm/fgsm.jl @@ -11,14 +11,14 @@ function FGSM( model, x, y; - loss = cross_entropy_loss, + loss = logitcrossentropy, ϵ = 0.3, clamp_range = (0, 1), ) grads = gradient( x -> loss(model(x), y), x, - )[1] - x = clamp.(x .+ (ϵ .* sign.(grads)), clamp_range...) + ) + x = clamp.(x .+ (ϵ .* sign.(grads[1])), clamp_range...) return x end From 114e611c29597dea61c2fdcaa94ba7c2a8f3720f Mon Sep 17 00:00:00 2001 From: Rithik Appachi Senthilkumar Date: Thu, 5 Sep 2024 10:00:36 -0400 Subject: [PATCH 7/8] re-tweaking AT after merge --- src/attacks/pgd/pgd.jl | 11 +++-- src/training/adversarial_training.jl | 32 ++++++------- temp/src/Playground.jl | 45 ++++++++++-------- .../MNIST/convnet_jaypmorgan_adv_pgd3.bson | Bin 0 -> 92418 bytes 4 files changed, 46 insertions(+), 42 deletions(-) create mode 100644 temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd3.bson diff --git a/src/attacks/pgd/pgd.jl b/src/attacks/pgd/pgd.jl index 08ddc74..c56a6b5 100644 --- a/src/attacks/pgd/pgd.jl +++ b/src/attacks/pgd/pgd.jl @@ -11,7 +11,7 @@ function PGD( model, x, y; - loss = cross_entropy_loss, + loss = logitcrossentropy, ϵ = 0.3, step_size = 0.01, iterations = 40, @@ -20,13 +20,14 @@ function PGD( xadv = clamp.( - x + (randn(Float32, size(x)...) * Float32(step_size)), + x + ((randn(Float32, size(x)...) |> gpu) * Float32(step_size)), clamp_range..., ) iteration = 1 - δ = chebyshev(x, xadv) + # δ = chebyshev(x, xadv) + # (δ .< ϵ) && - while (δ .< ϵ) && iteration <= iterations + while iteration <= iterations xadv = FGSM( model, xadv, @@ -36,7 +37,7 @@ function PGD( clamp_range = clamp_range, ) iteration += 1 - δ = chebyshev(x, xadv) + # δ = chebyshev(x, xadv) end return clamp.(xadv, x .- ϵ, x .+ ϵ) diff --git a/src/training/adversarial_training.jl b/src/training/adversarial_training.jl index d09a859..f67e7ae 100644 --- a/src/training/adversarial_training.jl +++ b/src/training/adversarial_training.jl @@ -11,12 +11,10 @@ function vanilla_train( batch_size; loss = logitcrossentropy, opt = Adam, - min_label = 0, - max_label = 9, ) θ = Flux.params(model) vanilla_losses = [] - train_loader = DataLoader((x_train, y_train), batchsize = batch_size, shuffle = true) + train_loader = DataLoader((x_train, y_train), batchsize = batch_size, shuffle = true) |> gpu @showprogress for epoch = 1:max_epochs println("Epoch: $epoch") @@ -25,9 +23,9 @@ function vanilla_train( for (idx, (x, y)) in enumerate(train_loader) # println("Batch: $idx") local l - y_onehot = onehotbatch(y, label_min:label_max) + # y_onehot = onehotbatch(y, label_min:label_max) grads = Flux.gradient(θ) do - l = loss(model(x), y_onehot) + l = loss(model(x), y) end update!(opt, θ, grads) epoch_loss += l @@ -55,13 +53,14 @@ function adversarial_train( step_size = 0.01, iterations = 10, attack_method = :FGSM, - min_label = 0, - max_label = 9, clamp_range = (0, 1), ) adv_losses = [] θ = Flux.params(model) - train_loader = DataLoader((x_train, y_train), batchsize = batch_size, shuffle = true) + train_loader = DataLoader((x_train, y_train), batchsize = batch_size, shuffle = true) |> gpu + + iter = ceil(iterations/epochs) + iter_val = iterations/epochs @showprogress for epoch = 1:epochs println("Epoch: $epoch") @@ -72,7 +71,7 @@ function adversarial_train( if idx % 100 == 0 println("batch ", idx) end - y_onehot = onehotbatch(y, min_label:max_label) + # y_onehot = onehotbatch(y, min_label:max_label) x_adv = zeros(size(x)) if attack_method == :FGSM @@ -82,30 +81,27 @@ function adversarial_train( y; loss = loss, ϵ = ϵ, - min_label = min_label, - max_label = max_label, - clamp_range = (0, 1), + clamp_range = clamp_range, ) elseif attack_method == :PGD x_adv = PGD( model, x, y; - loss = cross_entropy_loss, + loss = loss, ϵ = ϵ, - min_label = 0, - max_label = 9, - clamp_range = (0, 1), + clamp_range = clamp_range, + step_size = step_size, + iterations = iter ) else error("Unsupported attack method: $attack_method") end l_adv = 0.0 - l_nat = 0.0 grads = Flux.gradient(θ) do - l_adv = loss(model(x_adv), y_onehot) + l_adv = loss(model(x_adv), y) return l_adv end diff --git a/temp/src/Playground.jl b/temp/src/Playground.jl index e80146f..e50fc03 100644 --- a/temp/src/Playground.jl +++ b/temp/src/Playground.jl @@ -6,6 +6,7 @@ include("utils/plot.jl") X, y = load_mnist(10000) X = (X .+ 1) ./ 2 X = reshape(X, 28, 28, 1, 10000) +y = onehotbatch(y, sort(unique(y))) # Model architecture CNN() = Chain( @@ -18,7 +19,7 @@ CNN() = Chain( x -> reshape(x, :, size(x, 4)), Dense(288, 10)) |> gpu -# model_adv_test = CNN(); +# # model_adv_test = CNN(); loss(x, y) = Flux.logitcrossentropy(x, y) opt = ADAM() @@ -26,10 +27,10 @@ opt = ADAM() # vanilla_losses = vanilla_train(model, loss, opt, X, y, 5, 32, 0, 9) # Adv train a dummy model based on the architecture (jaypmorgan to be precise) -# model_adv_pgd2 = CNN() -# adv_losses = adversarial_train(model_adv_pgd2, X, y, 50, 128, 0.3; loss = loss, iterations=10, attack_method = :PGD, opt=opt) -# model_adv_pgd2 = cpu(model_adv_pgd2) -# @save "temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd2.bson" model_adv_pgd2 +# model_adv_pgd3 = CNN() +# adv_losses = adversarial_train(model_adv_pgd3, X, y, 30, 128, 0.3; loss = loss, iterations=10, attack_method = :PGD, opt=opt) +# model_adv_pgd3 = cpu(model_adv_pgd3) +# @save "temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd3.bson" model_adv_pgd3 # Classically trained model model = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan.bson")[:model] @@ -43,31 +44,35 @@ model_adv_pgd = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd.bson # Nice PGD 50ep 128bs 0.3e 0.03ss iterations varying from 1 to 10 model_adv_pgd2 = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd2.bson")[:model_adv_pgd2] +# PGD 30ep 128bs 0.3e 0.03ss iterations varying from 1 to 10 +model_adv_pgd3 = BSON.load("temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd3.bson")[:model_adv_pgd3] + # Choose specific model to use # model_to_use = model_adv_pgd # model_to_use = model # model_to_use = model_adv -model_to_use = model_adv_pgd2 +model_to_use = model_adv_pgd2 |> gpu +# model_to_use = model_adv_pgd3 |> gpu lb = 5 ub = lb + 0 -X_try = X[:, :, :, lb:ub] -y_try = onehotbatch(y[lb:ub], sort(unique(y))) +X_try = X[:, :, :, lb:ub] |> gpu +y_try = y[:, lb:ub] |> gpu # Change to [0, 9] for a target class target = -1 # Choose attack algorithm: FGSM, PGD, Square and AutoPGD available so far # x_best_fgsm = FGSM(model_to_use, X_try, y_try; ϵ = 0.2) -# x_best_pgd = PGD(model_to_use, X_try, y_try; ϵ = 0.3, step_size=0.01, iterations=20) +x_best_pgd = PGD(model_to_use, X_try, y_try; ϵ = 0.3, step_size=0.01, iterations=20) # x_best_square, n_queries = SquareAttack(model_to_use, X_try, y_try, 5000; ϵ = 0.3, verbose=true) -x_best_autopgd, η_list, checkpoints, starts_updated = AutoPGD(model_to_use, X_try, y_try, 100; ϵ = 0.2, target=target) +# x_best_autopgd, η_list, checkpoints, starts_updated = AutoPGD(model_to_use, X_try, y_try, 100; ϵ = 0.2, target=target) # attack_to_use = x_best_fgsm -# attack_to_use = x_best_pgd +attack_to_use = x_best_pgd # attack_to_use = x_best_square -attack_to_use = x_best_autopgd +# attack_to_use = x_best_autopgd # println("queries for sq: ", n_queries) @@ -75,16 +80,18 @@ println(extrema(attack_to_use .- X_try)) iw = 1 -clean_img = X_try[:, :, :, iw:iw] -adv_img = attack_to_use[:, :, :, iw:iw] +clean_img = X_try[:, :, :, iw:iw] |> cpu +adv_img = attack_to_use[:, :, :, iw:iw] |> cpu true_val = y_try[:, iw:iw] -clean_pred = model_to_use(clean_img) -adv_pred = model_to_use(adv_img) +model_to_use = cpu(model_to_use) + +clean_pred = model_to_use(clean_img) |> cpu +adv_pred = model_to_use(adv_img) |> cpu -clean_pred_label = (clean_pred |> Flux.onecold |> getindex) - 1 -adv_pred_label = (adv_pred |> Flux.onecold |> getindex) - 1 -true_label = (true_val |> Flux.onecold |> getindex) - 1 +clean_pred_label = (clean_pred |> cpu |> Flux.onecold |> getindex) - 1 +adv_pred_label = (adv_pred |> cpu |> Flux.onecold |> getindex) - 1 +true_label = (true_val |> cpu |> Flux.onecold |> getindex) - 1 # println("η_list: ", η_list) # println("checkpoints: ", checkpoints) diff --git a/temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd3.bson b/temp/src/models/MNIST/convnet_jaypmorgan_adv_pgd3.bson new file mode 100644 index 0000000000000000000000000000000000000000..db13264368e0526fe4fad8487b06cbe1a4f932ea GIT binary patch literal 92418 zcmd?Qc{r9`*FSEa=gjk*WESE&*G?iyM3d$cN~NSx8c?Q+QYv$jkRn9`u5)ckG@ue? zNKvVjCNwAguI~G}pWpp{zt8i2kK;Xl$M1U_@4NrF&UNm!&ONNX_h+rW_qqgD^79F< z2@MPiS>hkKdC9sJfwp||2K;;i8~s=CiSqIBZP>VeQ@}<(!Hrwj1@X<{<@~`B=Wzo4 zH~RmPE40pkz5kjGe4}_=K`TDV|5WIP$R9$Vcm@3XlFE5p1uH%Q-s5*tu>L10Xv62h z%lY@83jh8Vnf>wOI3i-UfLsl;16R`f{#bA9<$R=K)lZ;{_!72^@h z`~z064_eNr@cT!dm+?mu9QU6{Y5yhlk1Dlz@4PC1H)3+grtsf2{-!5|uHDRg2wL;C z{}%XN;eXJe;6F5&@)!4aoBh|X_uu*t#ZUQ*@gF|>OYwi}^X~@zqXCmb*9ZO8WskKR z?Z@$0LK{{_1o6r7sK2R~Px$vx{*n7nJqz(f{z!kSQkO^nFa7$hF)#mcpU}_{9>p7% z|CvK-``>p+$Ndi-QoH}YLu$`A`}a!z4M5U7Vigbd*M_d$x+Zkf2EPA*CV$}lA1M0o zAySi9!khD?ig6E?AbF}_$u&4gjl>d{#*8MH` z=S=@=2K~0IlS4xNH`?0ps6S1%HIL$%Y(d`Rcj9?O|0Her`2Wo0Q?UKhi2r{5)22KB zcA;KbrjZMG788Zray0U0CqY3I?E1Wqo^>05>$PU|)>T8w7xaL8&Dw)JDC7gp>K(+_ zyPFK{n}yRKO<;T$*ONyt%UI6b^VsNopKMsZi*#LbApZWJAZIDTbA3gatE5lwetpk& zZrqJWL(2*G`zU7Zm2jqAWDZfVbie}P!{n8e9holLfL(QuiOtI}64qLT7?KRZLKPrA z!4QtWeS)hdHR1a6TyDx*Cw$iENcSCo2EJ5)e7?1ST=A(R-m~@-{(@ApZ+HzP1O&03 zO($tVSR|DeehC@lCW6{qhMH$*krUI~NQ-nVd7}0T1s&tSAh?~>+MR{F6K}(8(NuEB z*A6>(E7N7;$5N>alj-)w!r<1HNgR_e;f=Nsa<90WIO`O^Kx;NBv)DlnHY_EoE2T)o z{oS}PEr#snE+#AZ_7It5H}JVV76bIAK}m-K5xBjLY&EeWhFcDi)LCDkKPr^uY?7gB zpW>leK8t+L7s8)A`@u5rBk37;l7?rC(!<<)WNUE%_0V~M{ox$4VtqSo4SPjARqDb0 z!*_OM#E;51cA;F`KD^@UM<=f}t$L(p!6dy7hPxXS>GudztiSw;V9R0>{d6q7d?$y5 zep^CbTLqK5+G^xwUNsv#y~R3!V`xvS&NqyJwf`agWr-;Y1iKj!go+HgRePO~$iXWmrd z(fZ?J_G-m%|oA`%I;Q8;y`X6A*WB-wOVER{5_>H)KCLWmnzlpa3{!6XkwZn#QfY*?J zJ$(O@O*YR${$DZK1-!lVKM~;nn#ukP-*~f3_pfR8C)Dx%-s@L|gtOUNX7)WdI)!P%Q%Pzx)klOLyvbo4*N;Jsor(A+LX4O<-^QB8HQ3Q8 zLZsIxfJgUc+?6s9-q^-Mqv-?i&aubzh1=1!{|7XsEg%crccCs(rl9kdkv+T{k~j<4 zQnH=tUz&rWuKf6;Vhi@xB;b!BefCF5I^N^E&$@73Y<+x> zs}^WTNl_wZdKofi4PS6VWIF0(-Q)%h9p#?gn97)@2$O3g8Z>a$8C;w!NN#G@F%C;5 zQF6g`_&WV2jHpZ?n^#=~nJa;`ont_(Q`dl)nKolN;}G6G+5_7Rp5T_Y3UYECm#h`} z$rxS{od7cDi0+PTfPfMrqU23>$h+d@>_kRh={s8Z_oA-WN0@mvkY>tUqn>r?FsI`* zYxP!*4vf^mwF*mOK|JXODNSOzD*+BUeq^#wKE#*%Zo@Ireb8n40SX0gp*OXp7)Y@> zU^%qb2~z1RQ)zW%03y?M4L>nzC@JM~){Q$dRTMd&_Sj$?>?8YE-5eUC&2U}vZFD?V4{{{yt?A3ZLPWEn$v4HipOJ4{-)dZ@}59R_Gp>2;but;bkXNTKDc8`^97? z96cq^WQ{9F1qmfk-v5D#NXo+V<_8(2z&y_BrK{lj+}-Trd5d6vsS(LBHf1zC&$9=V zZnKxOcCft*qd)+*iIGA*Pf#y|pFeCmD1U(X`_E{&fM|~PQ z_i+h0^+}P5lQp>$q-(%!RVGx-*oL1sEJM!CtdtFWNL9@Tdr!mVjFTs6URti2IV5A5vcUaq@=vdWRvb*U8{ z@`$13P9u16@iV5xa2X7*7)3VOPsTjY9;m)l$;$Kyk+6th=y?AWk~{apm{2~ls7jlx z?N_BGkLGf-1rNjf%2ej3lr41Z>BVe%oi%n_h`CFIiE)q-eYi#yE!;fFX>|^sOk|;7 zd;k>2dL!e#0G~we#);bnaqDz(@Hp%Q7jiFgrd@l8hDV3klEB3vUz5e&daFxDx87z0 z3qlzU$xL*Oorl2&*Fdy)KUl7^U@u@VOx^DZIo1-?p>hiw)G~;7ezk*^z)O7AB|~@5 zv4;{e$kse61@sl8Qyl~#wPh)s6;Z>oRZC&tma(`ptblb2(1ooRDDG1W0jcH3G0UI` z)pRw;SkpwPUL=bbuRD-;u@@jNzy*4|x^d*damGd5g6egQ#!;E&ut~?WYJY19IzCEZ z2Ao5IM3uUFA|-3MGZqD6Omti%s1^l(f61vD7v zL*(?%p#Aef%zSd0DelX5(hiMd1oE%IA?Iw^@H~;(zw$X)X^+R)pi#TYsEtL>&@`B(;oZ7w9x7BQ(UQ?2l|>* zLEh>hXlI_oFGt=n^`~z_g;f%nGFg>y-XEm1OpM6W)ym`)hR}Dzk6^>R1X82&9=JP_ zD7q=r-E(tcnO6s^;J%z*@;*Qljy;D_WHTr)79#>`^&mT@7Osw~!i1M&h@`4H;cuAB zJaM(bt2@Ln?n)aI-uj(un-+sTdr~m%$?>WKzl`uBs8J=UVh{~o2qO()u%TC*>Mx&; zP3LVKYww+BG~*^?zmYnPm{tl0#@%6C>OM2Qw?9IJ`xJV>*@Z5X@F3S8f5%A$Q)tY& zhp5EW#j4=x^tKMfDLWmVmtO*MpbCaZ;y9hsjZ|V9QVV-!)QR&V&WDjg*#;aascXgQH>1&2G zGHDbwFq}=qtDG@feIM2}MiA30i=n|)fK0hI3Ri}z(s_I3K`uanoK~pAxjt|4N$LnB z4XSb7v-z=SnHb4jq)Hb~y~D@`8IaFwR5*TtOX+nTZLrd7#TOYX@l*L`BB{5Ah$p#_ zToZ<Cy1BI(YH?E{v%$AVQ;_ zLX%c4Bd6hv1zU`$+wE&;xql1jG-tpq-(IFr))u42C|Am^kD_b6JvaiLtI=Uz2zxqdKOAtz+iAaH5Cij>pPNeB?(ffjTxB(Dgjr9@T`8 zL)th^w)|A@bvuZI9Qmx$%5-d5z`AR9GG1;67_QA~7@DX;H(Q#ru0Ce4q)iP2{mtOn zeNpmod?PH`BL_=k(=om%jIr3M$+i3>LIcKEu}*E)>}BQvnpLfbvR(J_d*f2b`t^bl zRoQ?M7X?URf-b(dl_KY(SoD7Kh5fk1g1pHHOcH|uwGw=s zWKU~1r+~w=3y^iel_cBf!$8<1e2FsT+WKBhyS5CP#yimu{&P81`-^bKI$tOXXoLeZ z@59|i8Wp)N^^7rH2;VfeWB0mSNX?U3<@v$Hn?D7@g!37@<}^-w>(Bo(sIPS^>+prptHo6bdTV@cSu{Rjj+z^I@ZsOBTg`nlld^fgAHteQ7o@f_Q86?j6L%V}eCA<%Izt_|_QKqYhL zTHjAQ3kZz6+BT#3|DdGh8~33>5w2I=fd z;iM@kkm;+#cz&`laW`7e$a;T;+LuzKRY01^$u=`3K1Ohg=>eCmQ)%dfQMB#$G0+#A zPG&4`Wmeow=DrJ1fy*gsxM^i647D7^s2w5PMf}}(`eO$0kLuyn`QJh>>PD8mkRfY# z9%mmA4qa?2O7HRPbW+&{)_8pd$LnAujk3U> zV(LUDH6B8?Jcr8s0XAPL6iq&jrWY<%!ne{2_UYk3PLR0^QZ^r}t_m~L8uN}V0x#kmQd2U;O?WGjh2kp-D&iW!~wIOsN+jWsfQxbIjn z+toB42e#)kSKm3}j8zw)afLUT)3FHWc}{?>F6ThXr4!_|SuhrFVS|6Uk*bMGBu>T{ z+yl?DPl9W3!>}sd+ug`)3M+>d4jl4+C?7nVMia4L66Db=Ehv`=z?f-fjO8x{vS0Q+ zo14EK>fUL=_{)#E!UtY6$M;Lpdpcccppg&xwoll_?I&SaTZ7xHu${)=-9rz#Co@J) zFJbd}9ip$Dg0b^^VV1cazH>2$ebZ;*Pgy@)s6XP^JGTiX*5AhyBVH&vXA*h%T8td9 zH-NB#>7@Gx7n+U>vHDxn*~p;@)Z;-md)HbT&KsGaSxrzz>IBlB~{i@1GmzE#w-;wj`$YLjeWZH1jZnj}M`56^~(!-5mObloWh=u|t$ind$9(b;R^%B@;3m>LJi<=>!X z(l^GN^8v?CO2)0xg7~s`6{Br8lSFtI`LO22L4n|Z1)&|;+ipR*3e40>eml4D_kvr?uucpjhV` z4SjV1G`)bncXR>Seku;;mp#6 zPhUmY{yuXkky}Y+r4wM@ihVe;JCkh|*p0_deP`^On((^MXma$s8~IjQg(E)5sE^ks_TFu!wEQ}#c5Dj|09c+GlL^28Y(Sar&-#k(3ql7|{_A z=5Uh&r&#zVY!k`CmLUl$(OC<@pQMTZmtM#Wiif+dGN_d=1`{s0V8t*$6|;VT*MC*O zhhqY?dQLF%cSeJ`xg#6LaVExt9I`6o75p03hx6PfQ2+jzJAYdy=i*aIc>UrMh%2UG ze6kkIsOf{3NuQbV+fBfH@F4arS`I?WbXc`vxH z)bHV`!fv*{FBhK4j==3%pSi9vH{eUR9mZ~vqQY_$)^)r->D&4VGG^tlVIp7PLcAwq zF@Fh|t{fb#$TNiOR&H`EYfzHjaI82JT*Lhq5=Th&}HL zG^5cFA`W{)z5i=;vz8}Nszes69)s!*QHJ^g`%F_AJ~%c)_Tf%k#@&F+Vk$t^R~x1l zeq|2N3&PpUtKs@GKCxu=4gki6of4^Iu@=R>U^?EXE^Kc^TV6}+#y876O-c4f%7Pc^thlR;_vv;^c<|w>*wT^NBewTTxB2Vmo zYM_^72wHi|5y^eKpmF^fUYqRLJTXt0@%}le_zr>Hf*DYfP*dOc9NTS+8uU!Nk$jusfV~Wb)Sd30e9yej;tYMCggFjm+Ap0w@p4$Hxo5W3|{L zwq?>FuKs}SNXx_yp(3lM3IObzwzIc-6F)6JQkg5wJQYT+xpOQVeWK0&8reDR@AGvJ)baQr8EE8`sHZLC}Yly@u@g*LKzmW`~<=RN%(q8GNt$I z$g9=wx$MXsuo!H^iLEAd|M(M(@%+0OqbWqKiiDx&P&@c0t;H9N8qT{SL^gjmz}d;` zSkIhBkT*F2y+a?@0^c4ouPO;++JitG~0@EBj;5nB= z3PT4u&IO(9lNuL%BQ}-@-hYf^t?n_0Zhruq1v+4EI29&5_=sa=JK^B05H>e7k9Pce ziS1=ISlT`Wd%wMdt_B72eBLhTD@;d07{Too4)l5KQ|3hVXgF)(%(U8B!$&_i-r2M? z#!9?{EdRHt&dG&qv*+Q3wqL0Ho@Y}F^~ms}S{R;oo@po6NYCHI&WOCv-W7R zL&zHxK93^pYy`Lrn1FhdG+xec=Q@0w4z^wwI1As61rtwSR{V8K+-*5P9!1_@*A8z1wX}9(L((@IP?38aIa(j^hocyg6|;b?>I&@01S=vI zRf*p=Jb|+_zGCR5iwJr)=)*mVE%xf{^?C`=-nJKht#OBgJufZO3a2++fQL?l@M(5`^au@NkGE` zKfzM}yT`et;d2Acq*X}}IJI@c2Im!bdVp9y?!xb>%m>8LR;4?G&yBRGW-+>p_kHF@kaTK%j@$v!%dTVcJ<6)A06(0Bv@N#~mNb8Odbb>Zv-GY}efq`gm_W9s00|9AD`~wPKPmue`IOb@^?G z@xH}u^wg*RjpD?#SM_3g3$!Gh&qK&2stGWr>;%c6T+3Das&KIlkQ%K~UnS~wnaxdDdX&OmkeI9h6~P42VW zB-Cj+ty?ge3OIMO=k^+4@+*7d-8mQ3%3Y|Qiz1=hkHF$Rtza@vi1y7mOPh|4#~*ix zVcc*-<+o>}>7n@1jL{WU@{8`JO-F>P^@JK2b&Xs2I;x3XWZ+41?3U1F!w*=m#R6pB zCkmlk4^ZZy3U%~qq~+4dbnLg!aAU(La@Bea9lVtSTZ0}m!nV~M{nT!(*tHbGzIws2 zhG-D$okSzLBp}7ZfjHK@r87Os>Gf$!IJjb%5v;KwvQK#XisM5#CRKx7yl(%&;7B=mMq494SUv3n4L0mGuP$om?YjrbwtQ?3hJB2(D z{fyqbB?x=x2csyx84aG#q`M~T&|>$aHD{jK^d=?#UrbPksRRGfB*cTZ2q(vp%gJse^IF zD$o;>%}&%S7aFGZ~lQY7p#Bt6C}4 z0&Q6jV28gn=gXVBP96q(VB?1c)YsLPUT@gK^uBqEiCc}(jeG}XlW{OM{WUaRoJ=f7 zQ`Gr9kG|66oyq4Evu;Im+3;pv()Y-er08XE&mEN^RrTj^_})w$a=%>lV2>^d>A8+c zmM&E%A5_7rcQPPc{}J{m=+Ft9?qk;SEExXDM?wSDi1*U@P*I)(vT+@-U7!X&+ABfC zPJULw;y9>JlO${M709zE4G_!QLvR|zNncI^BzYu&DBeIz!E^{0EF{B`6X01>8~2yM z5wLori?PRs!Q}lK7=C^b9?exHvh96Ud2|;QzubX&a$Bg*BsDr!ScsUpj-@T1;y9k~ zHPL5g4CK96A;-V#@N5VlW3gA8*uD}cIvv{d_S$P$@^KlQ8>53o?}Kq?kv7kM=|W9` zFU(3i4p)q)GixuOMFqpdY|gG@Q1*2*x?GKeIS+(j%QZXnTx*Fd+Ri|ZnH4NrV}SCZ zDa_o9HlSWpjfdAA!mML?^xS|CJ(bI$bM;H$dgdqAe(F}3xzwD-oj!--1vF`|j3ZbL zdc!(76=JPY2YV}hNKR)0C*Acr%oi?(w+gN3=BP)j9S_igwp6AhltTu*Yr!-B14fN| zg5ymN&|PP5GEaMg@t~*x&HE@wyy|(*IJh0YUbU0eyNZ3~EO#(rRua-9e{}-{Qut9ysb~ zEY?k~!nMWIVC@)Xa8q+5Q|_3MLiK3Q*0z(Jfy8Ba?ZylIaH#|@CTGC%WvayEfGf!y zxD8UTn^34apEmlvWiuuX;OUbs7!!5{k1Wxm%Uz7&CJl!JnjKiYPMQ2%8Ag`A5t!g9 zewf^HNh7k?ucAtF0h#pi7U*wuqA2W7GYwYIn3T(?>?uz6bykD?`xdY|GLN)14ZvHU zAT}fEB%3OzPW{3tj#+F&RkTc~)UE;6+9a+%`34FFcrzhMtDBF8UCblo&vcjtPla@(Rvv z-b4cL=#z;yub5xs+tJNpDxQ3=L?zyP&|eqEfq%aqVXa=ln;mBuenTtT+jI@PgpF}o zN*n8GJ`5j%cM<(7yg0OotMqp3cGfP%h01%DH2i5%}PZXV5(iKcpw^zqBHIykj$7kmyiz**bHsCh*cmYUnsk)M4iUB8%f zvag6c-uDnhOPZ6Jeczd6Yh@xn&j&tCUQ8cEh|?nuZq!k71N(}9A`x1{A)|_2A@8O< z`qu43X9TL@X34tcIMUrsrZCvek9|uvFv8Jk?C74=RMBD;J#lO=ZhTxyi>C3>n&+Qc z{SRKmEaobd|LSM#BN`Z*%QX+Tvj>X6agu3xj)aZ4kro#+eRxl=} zcNwznhCd-9TgW(nHPCG5#n`0I1xZ;|TAVk8U-``8z{O&YVyQ3O9p!UjRQd_UE2oI)`C zC`5+R*1^q!NX@>EV7U68BTH>h*93u6=P6ZFF=grY&N% zy2>FqB%K$3WkW4b_JZ1qpNveb417`cX9gpj=+cd4^km>UA}gdroH>qE=9384cc+lA z!bfr96}#{9rA{hX}Dks72;gQvGMotDl}us_>Jtc zs2-+Zt_Qs|YZ6&_ON~s4u*ZwVXJBu@FgQ>d^&o>kotwpF7l zFH%Pepil0xNFi za%Q4UrePnh9?QjC6)3`_0h$)MnPTs-+IOvpDN(uwsD?)(*w zn+2j#mjj4DOoOSGexTStiZr-7vi0@{A?bb#+^s#x%r0)mJr!dhB21mA_QhdfTPrjD zP!Ovfqlq)L*WnL=Q(!Yd@zcO_)>&xx<%5@`$X@w7u+i)qJaJ72ADJ-5&Gim6zH8=E z<7W_X?LK54=iPfuh=Ad%T_6&d0U}{)C^)4E@ABV8`>40jRK5dTYlgvaxg~jGYQo$- zs0Qzyl*o=NqhbE;v#j3A6sXy?5gWE#gOgV`0=3HJloVUQyW5*##->nszB(C9AFN^y zJXuJsrF1F(rC3(xEz1T1ho~#hW079|pYX{0cbAu_i zzF@0xhpo>o#I(73|MWp%od>uRw(N&(_M6wA#0C1lGAS!ak9`s_;&j+#;2O#n4R(L4a-`rYjY%T_~n@b zJs_Jehq99ea)1dcfhU&4;Ye) zh8vLi{v$Ye_(PuiOwb$K4;tb3;9E~K?l%i#GoEi}^hc#bi$E1*cQixSHZdZ-M4ou8 zk7qtzaNxH7>|&(z62M@24l{8_1e_?cbb4>P67^i0aX@-CR%zD01G+?1$W(P9{KXAD-Ab0v_&KM0-${EO@t&6Y_|klsx^#i1!h^$Q0s+>rS}* z$y)a3)nH(u4|le*aB*D>*xNmUXD7w6Osp18UvUR>xhy6;`3D@1?%*cZcoCy**`UZ5 zO~WIKdq)9|5t)5LjJeGJA zhC^F3I;!esf@Nh$#><&VOrim;r2O18EIXCkZ;2H8Weg-KnnL z0K41x6gy*}0q&m6VST=uk{Cfn=HZY!kq=QMTOEa{?z|iDM)Dy0wI_*p&O8m~)GFef zISM#@S&SL=rkm|pK89+AA*)re7;_SZX!u+{;t;)(y%7_OPuJaN-@Ph^L!6`Zb;bZL z*-%77qTJ{Mt}rwm`2jaKji$SnPQ~TFR*@y=l9M5x$RiW=W#@Nm=GXfHJ0)XpnsQSeWjXhvTOmWWGW( zTX3@;!}jg~eg|cu!LQEV;};>%GWbcWjx-&gQ_ooVNi*dUM`%d!Lr53bq=z+*!+F6H z7~^LQYsej548;)~N&ki??+@d!+7EViST(e}EC*xVr#O3F2fJj93B*rZ0U4wj8WKi< zch){=Q@Dr2dlc!;;!rGJ@dNc{1)^n!7>%50!z48{!>q^YAdx*9bN8pitND8DxcAyb z^!p{o|9Jp9C{;jC|793$euBv{TF&*~5C{(o!g1-9M%*G6Xl|5R39Sdq3@8qoI>*03Hq7PLh{p3VxJhClcwft<&OD*1gOFqY`T zk6pzuOMV7(+;t<2J9Z04nM?%n8buP#%!73my1Y0CA!1)Y5iTT*aI7KhFQGzHn{W**k9a8B#X3A z^gfx(SjO7a~{TFf^IogFD;ASnEa~Tqd-ejjc_GnL)zz%kmtw-Iog8 z7G7xOn2j<^ZK*+m1lcmlhjPCv(jvuCw4tN{Bk~={l*mL3QF5YZPpE@y#s>P983Vyn z&B;e!UL5!L6wp$PBHqEa^o*Yt&AW1+Rs6M)F2PAOP(2nBYD;i7xsCd^;^3_)M+@&= zrx)|rV|4Kr>Zi?*l~=-u#03fZdQ>#|kgQ5hxEs^AW})<5dje)QFQO|g8nABjc<8aK zKsRhg>AlM2lG{`&JD^0ZPw;%Ng+bIQz>I8P@f?hgNHJk1)5$&F9lVbJ04|G8M2V3} zWVUt^{<`b|M~EO9$)1G;_m_w@6_3`DBd`J;40(#^o zF50+@ez3?u13xjkX~H17X^$qK&y1$)9tNRMq67)Q=1z5D4^zi9Q(B^JM{_%l)54pn zki0aN@_l-aZ|_bedk5<=yC;#_tx=~A54|WGMd<83ZuGpfH}Rrz5dK~m1aB z?7J+J<8_Wz&K4wvPFtCanQ~ZQAw-Rj8^TYHKh7;n!JP+p(Q_W5a9}Brj*A5l+};Td z)EVBa`i$?)UD>e*q-fTAUOcIU8`Qt{Wgl8^EZ&J+)-?i=m(6fdq5%31^uvLwO!l2^1uLX}8`rWFQWeIK$je?#-4rK?Hpsv% z!F}v?d%(c-Du`V)i*zq=rW1~=phHqJ)JOCR>>Irgx1AND1x2M` ztht03t4}2LGek(fS0WV6eZvhmk>=>jDc~-*JVr#!2BZCg(Y2I?v$oDmNVPwtPM2kE z1ZVO7YavQQ=UrnPGVZ{m-Hosy#F$)<%meEMS~SNtk@*y-0%bpQ@nqFI^hhp(t%4bx zOY^6Zw`$4E>d9_wMhri79*CuR7bj6gkwd5#R)t6Mo?@HRMI2S9LI+=Y!Qhtl#4hzQ z=?XF+WZ*Ts##tA3J={%bV**)_e~Od|P~xxa!t6fw2wT4S!iB^}T>Vy%C>gnsqXDVRdRPTzGATDr5Ta zfaxM4=(v_l3^pPp^%N`K@Dr709)^1&E+nWl2`g0MLFi;P%yqkhVgifc(u6oV)#V^9 zdUhHVw^ZYa*jN-@M=@)#j_o&_Nu!R0q0MV!43+msxeBYQ+ATW7Ea*5d-hCewS9gF@ z#dh>{NrxjfvGnS^eRN_(0x>nRXE}O4X0M?!r?$w_QP5oG~>k{n(sUcf&0bqjlu$w zIqx{^%uJw)FJ_WSntY_m^E>**&mw^VOF5=)R(R%x06jk(NUqIa%3VCgnd}#zM;6Af zp_fFbk`*QXIPrTvU9_T|UYK1*cdgE(a#_6pu7$QzJ$e3Wn>Q?5wq`5czel{few!?L z6|X=}@UNu$#1pimrAT3+Bn`4xC$$ef$oDK~n%SgAJUmla>(5#=Ygro5+dEN=^l%5C z3R8z(Lv~D5CQ9TC;HyV`RDFIN{gwZXS?hQcbl&N((!nh_vP2HlZ+vvRt>6wb&YF@) ze^ExuK@)F1cA@KP8)=5UESh%~;q}y|Cre^FYU-(_8|c^ z%%_u;tzyvFdJv@jx0198JIKd?bbQzxfY&W5XkuRL(WJ%0LHw4t2Nmi@7oxV{+_vHQQt2(lD(QeVNgvy^^3MIY zy%i@Tdw70GqbkNs7p4lT`gD26W1Q~W4Y!3fiT@&F5_Zd5%IebjI^@^%xEYB`TvK#GykeN3jckH zMoQA4qBI~OWvsKGO(hK~N@h_+kz`g#rBRbvR3arwWy(-zKU)JTAu7ob%8;P}(Ini@ zcddKx`mXP~Ki;+Oy=&b+;GA`8owGmBe%|l*>peCH7`_8#y@N1fp*)u=8&A=1@oBY5d0x zdoHu_G`?M+K(#fk;hE%2oR}3rcQwUQqkT`rGtbGv#-rExDQ{=qKTHDOUz$YC+q}u0 z_4@Rvu?8J9!-P)P6oYB6Io`f{1gs|O3O?;vlu!7-FIn)ThQAy0j;vQs-$=+yKyP_GH)7DHp9`0hzq zJS_u0>s#2=yA@z|J5>Brt{wj_89?8@UJC^hr@?NQBu==pl+CqPWA9!( zhVC3gI=jz+E1tdzJ2wiu=E;4ewp5X3e=~-Cwwk!jSC`hx)5M44k_jfT#ia&nOv0FkGqUK~q4eG&10t8*m(8(9xtPjy)BTPuFh%Z2980p_Sg`NY>URKKVKUFDZ!xPmL{ zd&t3Q!E~1*uTR%y=dcM?;bcSoKrs1S1&h=a;QHGk^h?-OoJbDh+}uvG>Rt>)ESKcv z@}p_in;fX^I?89MO{K5@{>1q|w{qVX$s}`P2nKvV!Y>9?GV|&Q=(_qoG-k$gmyrk1 zQQ>;wO4Bh!dsj8eS{w4mrM>VkSf2i6Tkw}`ldwf82V3Dho!xB7>U#7j_STWsOk3Dq z8V}VQI85?S1Z=m0rQLbc-@T88nv;pJswuek`%YlBgl3}(^3nF8*`lKEOP?u3%f0XY+{N0z_GM#RW;6et;d%u zZNYVIW9gp@^Pn(nI$fWZMMlLPgC9%v(B=FfzRM+!U%q>Y`>A%qov(92U*!UP%MmBG0y#o@9D4w+~#iLG=RQjqM>ILkldvrW$ zL%5jgXzS9_Juh+8#)eKMvHSmy=D z`<;R{;_HHE`VA@%3FXTx^?9O=he>p7GIzzj5ZH9FZ2}rD& zNUdIEkdUpz$UE0=(o^g~8@zV%Fl}|7>+FuN#>6rme|?&9(1$J;kVGkJ$MCnsLW~)u z$~~>!`Mj*Fc=d7|7(cpBGM@qs2$do6Cyh|MHJ8QS(8JjYYx$K+2f5LHD;W6gA#5Kj zXy|G=;I*bd^K2J#*}Y1lp9cfE)uTY(t{lcz#~g?3imjsKE4AsFt}#@+W)OYt4R~dG z9#=`8&OaV^q@e{(kSEMlsz)L*Y`hZxc|Q!2wGZ=@okw}}yRoz&&qmPwHR+Vd6|k%` z0Yk%`VB52ixMcVVG}t@`r;Mz|O{q*#~y+^CWsq>J4ma5$<2)5SN+n z!y}i^gUyl3@Y-IE-uW_w_UZhCU{_=6x-1ws#)k8_j0t?N1VO`S)BWBWiT3iVn=**Mw4nXKd}~8?aGZj%#Q4 zvTfUsiEe)~qa9jdWMIe#qS6`;*)IL)#$e&zEG>gh>Q`Apc`@{coJK$M4A|{3iq03b z_0_t%wA0`{^pnxx3(psdwrdZ?7ln>6tM>?230j6zMiqJ2@Pq9u%w>r&$q=@wKhgYl z6%?!|vT&yg@#j@y@z{%N*+}tQ_$fb-_qDx5$M1>oWb-K8ySV^b`W`X4*xNYCqKl0G zYe0WSFXqP#GPu*$0@3&Zui)KOKXxViAl?wU;X}2)LMxYjaEa-Np08`iTQZ~JvvD2B zFJd^!Sr;Eg4indHZ^wtls`TS~!B6+akKfFGiO(NjL)YfJ@N<|o(HZlZyuCf~SxaHss4fD)#%KY1y5)_TR zWClbx9EZh)%Ct~9243~{qn-`TU{>5tiihb?^U!)+eseN6%Q=O^muk>Om#krtVY5Y3 z`E@-0;yF(0-HKD!YeCfK(NJ^l1r}FmqPE8tIJv2h)gSFo505@TE~v>sL5U1C`OyJ) zLONjmjAHzBLxUHFJ5t4kvfSfu3VZBhPjAj#3H>ahXi4g2CMrLK$GUUGYxya0qDv;i z;d|f{lZ{i^5WIH07H&v-kul^S*f*abYHu5a`K1sgvsS`@J4VzrRS%n9>f+VsqifI9zsjy5{+B=6ry9OGO8uM>3Xdh127WbO}$anBa*Y%Tz&H;G`;G!l)N z4)lCSrsdEEZ>E*8L)A~gao!{tFgXO~yu2^kdXvMTPJ1#&X&j1;egc%urx7<($^A1D zbVPJ2{2FHim8T+@%M4BKamkDwyQ9oQQwu>-#s~VX?l1XGTS8WxjAnK}E<#=QEO7UI1NoD4@X47z=ojgVPh==7 z2p2)$cR74{kL zMYRFj&^=0tt*l!nwjZh@a(rTi(;q|SKZR^N_@BN_|HqJR z|Koi8Um)9r&nNLtUX!-Q%%fFZ5%fcf9yQu@hYkF38k8fZKt}H%CN^|rE_2oiE0AUg zoan-CTE4^8LiEq3sUIF_v%|1;g|OD{1(quPBNviVpv=mcKD9qh&Ndq0R6{?ada#Kd z-ChI5dmoU9t4eVG3#A!(IiRp`IU7}`$`8mY!u)EE^&aP7%F=;UrK|>v{^YR8Tm~Qa z_NS{G{)!9ak6Q5j@wD^&Nf;SwhiV%X@s8*)l-?LA{+V_S7e@-XmVtlC;6v6p?;%C{ zeFl>?Fh%PFCs1vO6n&zg&&yB0Li5?7VgA!!OyhnTgecC1Id8jh+u=%4v{oP7cJLzk z)+f*g zchp+hBP(U1;@=^@@?aSqkrPBu7|OCyMKXMiVGeHa$ii3x@WSzx*l z2a&u(R;23lr{(>4c5gXMon^|^gwfs6^AxtU$&i6POT?pV+;QHGp^QDb4u9hgV|Q^J zSPYb)8Ut>@;P(aSVgPVXMvW9~7!TuvuR}g8r77=Z_}}sJ5U?Q+dzL8CzmrsHQmi(W z%vq23XbJd^4(1eLPag!fpF;AU3__~AIdnFqh#b3$TkcVVyD-L5o}oOBu;+w5|dBXpvOpg(lz`78)&i$Tn2uz2q+uC zU0Nf-{e3E?{=J13O~H7)>n?dX&WWWzn}f=>!{`PN5ieViBD!^SFDS@PCR+boYp;7?Fg1$(JMe`q2)M{X&M}M-`x04ECRU}2V2$Zv zR{7*F+AfK}>1m;;8kRvMa#v5g`BY21J>vwf3H-{Q=WarNvjvog{Kow~W6?8M4y2AV zQq-l53T7^aO~Fxkc)T5C&B?$sx0i}WHC@ILi-dKR-%890wSy6^O~j{N1)mfI;ROSE zvPip-O^>UFuKET70ab8ZI~g?o3`h4$N$U8)9j=MKkjeS~L`hnzbew?Ykh)hawpDeb ze`8I!Pe2zdUG@sLe6D43Ik$06qZ+TdqQ+i{7qaQuR_O5dD0#_Ea8Tu3vO`T)h!RXg z2j6cft$T+_Ty;Z#QxWQ#y~bH>o>*5O1Istx7b~yuFDx!j#?Rj`<3@f4w0chB{LCit zmB+*B^`c04dS)QK+}nsFmb-yfWHUaH)Z*VCcY(2KCj2y4=T%a{u>ATGe3ll@@?y`4 zzio{s7c=z@&3HS zWw0%GIUkVQiw2uUW3_@AUGrO&j=A-h4cDm!4THI`ct^On|JAW{hh9827~BW>^FaK> zb1GH(H4)l0XNW(}JxY2Gu7HONkKnN}vV3uguK4h^?KtAf4cxHfBQEyN0Zpj^`04UO zXfV^kC83)@BNW--_q(yrI~h72mavz8%^0!cDIB>p4*ehhM2)axeD#|pcqnNhuM7S| zqDytrPFn)pWwY7IOK)JApANk){RT!QHRJxfT6BQ37A?4D%1$qRi9<#!@)(g9Oa5?{ zZ3>>ne!kS^L!0DLtLhhPDV1X_lX9Vb=To+P`zZ+hcOP=+>#%b5T4djsvN>18g@=`I zW4yvilHSwHQl*T<`eS|CUIXT@AvIbkrU zdTtdBn5IlWY+nio4lDspn#87<9mm=t;cu6b!b2}&(b)7g_(ms@PP<0Tww(n{Um_rH zawV`;>u5twGQhho=#eXj9S!TS+P7F__hLM1+pQOn4tLnjxD&AV(mnxgr^;=9UoBAX z$;7#N^|->t56Mz>{4&Ukn57>>O^-ihZLqCin;1{_KS+Z0%PRn9dc)?=| z61XqULh?|I9#{W?@rdQ9V}FT6$B(7mW{(LCIYQnvkD{f=%y^&K5b8S9ce=!b2)14J zGF(??7+NrZew}?3Mt^ug1~t1u>7jgddVWMy_S=hJpEZu(3n(Uffk!dK&I(@+Im<-B zYW!}20W5pgpVnvhVCLT6)@hVJ&u@l`oI=8T z8!)wc2Pilm;vI@(I4nJgE_+(w>Y&Z!Qd%VQGLT{W*C(?rmn{L))A+aYXj~w$k;tWnAQ@wczpMr9Pf4D*<_;HcTu1n& zlyF{}?m^T>4&y@x3>NGPk@#GL zy_ceW=L6Y`&4+l2V4oQoO6dcU6UMDM1H0?Wh)h_scv?<3yXYyPHS#y`t?`b0Q%V@O z->FESTCAXzL_su2Vg@Y{4}?#1hvS>xeSGq?6g)C*Cgyz?Vp=NJJnhU0d}n4tQv&7q zR^J+wD%TeUowBAkFJHoL_jhFYrVBJTS(VNRQ{}h9jrq9YayZCYhnwtHf88(vEw>1a&g=1|!dgu6Vm{mnO@quS;b>@QNSB9YfTvF%nZTdJ zlM82=lTwTD+`G@7o%+mtM=D_b=#zZT#bop=tjF?pf6!knIJDpEa_^s8Fk4-XJ`T2G zJ2Ν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⁢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⪻99_3S*+Nw+1TdRr*18_SK?-3y98XTtKI zacsBabNp4KgDJD#ac9r8V4H0e$X!d~(qu0R8v`VuIMbEaU5Xa|(2~Ps2?JPYk&ntE z1yHr)v%r1hXgH+M#$#o(e22_o5-_USma1gN zK~}agou1Rmty102zw_--W0oT>xNm{O)6%efxhb{z_8fI$4r1PmOR)JvKFngH7^nXP z7u4p%_k85vB&O?H?D9mp-NM4so;Qo0* zs3;;zW4K8mB5o}rDJmi&78bZnL`pdo{4Kimxzd2i45X*OoY|n|0C7g1eV=_e=PCv7-JM2ALX9)v#&%85pBFSqJT zIv1-r7arF63iZ6LpwL|c6|_X4$B~234srCFF@uDcUUC!>w-Fi3-^c%Y4q+QYRxJ^c z`1=ku`2+lY^N;E8O~vYe6-7kEZT~N?8~cBEor>Lm{_?RR+`pA4&EMPlu+R;Q!v3T7 z9`if?d+mw;NA0Eld-Q*=^vVAo_&-&;&R-|~*Gm8Ev!<*Gv$N&@{+B8j<9GbM{Zr+C zH3X4=_euP7i=>V{FQbhTlo+8 z`#%0#_09SBhyq_&vC2Pi&Du5LtJiK=FY;eH;NLy zYyPU!zm7TwuII-JYY|z#Y`A>!k~Lw=!@~J8UqAozkJ08&_#Ik ze?FCs&l*an@X|>8UJl^dLkZw9X(@ZsFHL5@oJgM!9fW-_6E5VG3MOVFzM8Ipzrsh- zZ&Vf4ehXouygJJnV9<(IOu}M1#;@MUx$B8?xoL;E93l$)T01HJi0SA77xU z-HYhGpSJ8^x&zF0&VrpBAKE=|oEC)W(L6s*Ry-pEKh75=fwien-Id0iM~q}s+Fo(- z?|WdwmRd5XE)HcAq`7Z0g&;o=i_AhD63qutR2*QScM7wf`?Qbm=UC>g+UI!9+?3W|>jab6Mi7zp z1S@_##FKS~3|~9a6Mo(JY4L7QdFDhNLM}oV{Q|jDPJ`ltD^M6|3>kaIqLk5d-cJ0d zz}7*THC$9ei_x?2sG0-~xE6TvI+vCYw0g3|+gAO|Lj9xTRJG9zMK`o01h+$vCrnenY@O zMzP92yNK%?^PSGdLf#V7g8f`kjaLt;u(V^+%-y1%6T5eVOTMIva=RC!{=FdB<|acc zBy@?V&10P6olE2r{;=BzQb5-K9d1x^rZQ9ZGv7&KEdT2W+MXPX({2>7y`|@AeETA% zYq=9M%Mi!Eg`vttD$1eyOAIxc_O0do83M`>|5WO~82|AX}27y`yNj*IoTB`DKd-rqL z-X_8}KTBltZx>RnvU&Jn=@`2BY7bt_v}M2JCNZZwl5n;=2A8)Q(ZvyN?CWX^h?*kL z4xP>eUs*Xe-{}U|TgQ=GO+0MvfGUmka3R^IzXf-l3|ZiZ7I=PI2X5VsgqL?^S>9@U z%&)LS(k;To(()mSPkSx@bQ>I753tLVo#@g*(o9zV1;+YkK*@w3jybCpd0B_i^kMZp z)YuV=)t+ZK`suQb_3eV-O&;`kp&HXm`vr$ytp=M%dzf6X zIQ8&b$KKzbLQ;1frn7m~mBgm82sOTIFP`c9LB-%CtsQqO$I{bB~z zUg9V^b~H}x`~zZ-hBAXVZBQOL2*k~96U)ryT%G@6h})VcSXbH)=@N6{_TqFLe$5ES zM6ClKF?0IH_!2H{y@x-lm*9iUi%@;Zo9z&eWhWPZPWdVca$X10-sUOM^U zb9m>+6`+lC}On;}L)In>|GM1