From f779e45f451cc8f822f9a4196cb9106b5a2eedf9 Mon Sep 17 00:00:00 2001 From: Adam Cooke Date: Sat, 29 Apr 2017 12:38:40 +0100 Subject: [PATCH] move espect into Postal::MessageInspection --- app/models/incoming_message_prototype.rb | 2 +- config/postal.defaults.yml | 10 + lib/postal/espect.rb | 55 -- lib/postal/message_db/message.rb | 8 +- lib/postal/message_inspection.rb | 141 ++++ lib/postal/spam_check.rb | 21 + resource/ham-message.msg | 958 +++++++++++++++++++++++ resource/spam-message.msg | 488 ++++++++++++ resource/virus-message.msg | 188 +++++ 9 files changed, 1811 insertions(+), 60 deletions(-) delete mode 100644 lib/postal/espect.rb create mode 100644 lib/postal/message_inspection.rb create mode 100644 lib/postal/spam_check.rb create mode 100644 resource/ham-message.msg create mode 100644 resource/spam-message.msg create mode 100644 resource/virus-message.msg diff --git a/app/models/incoming_message_prototype.rb b/app/models/incoming_message_prototype.rb index bcd4527..f8fcd81 100644 --- a/app/models/incoming_message_prototype.rb +++ b/app/models/incoming_message_prototype.rb @@ -87,7 +87,7 @@ class IncomingMessagePrototype mail.to = @to mail.from = @from mail.subject = @subject - mail.body = @plain_body + mail.text_part = @plain_body mail.message_id = "<#{SecureRandom.uuid}@#{Postal.config.dns.return_path}>" attachments.each do |attachment| mail.attachments[attachment[:name]] = { diff --git a/config/postal.defaults.yml b/config/postal.defaults.yml index 6ba24ec..76fc4b4 100644 --- a/config/postal.defaults.yml +++ b/config/postal.defaults.yml @@ -94,3 +94,13 @@ smtp: rails: environment: production secret_key: + +spamd: + enabled: false + host: 127.0.0.1 + port: 783 + +clamav: + enabled: false + host: 127.0.0.1 + port: 2000 diff --git a/lib/postal/espect.rb b/lib/postal/espect.rb deleted file mode 100644 index b0ea181..0000000 --- a/lib/postal/espect.rb +++ /dev/null @@ -1,55 +0,0 @@ -module Postal - class Espect - - def self.inspect(message, scope = :incoming) - if Postal.config.espect&.hosts - hosts = Postal.config.espect.hosts.dup.shuffle - hosts.each do |host| - result = Postal::HTTP.post("#{host}/inspect", :text_body => Base64.encode64(message), :timeout => 20) - if result[:code] == 200 && json = (JSON.parse(result[:body]) rescue nil) - return EspectResult.new(json, scope) - end - end - nil - end - end - - end - - class EspectResult - - EXCLUSIONS = { - :outgoing => ['NO_RECEIVED', 'NO_RELAYS', 'ALL_TRUSTED', 'FREEMAIL_FORGED_REPLYTO', 'RDNS_DYNAMIC', /^SPF\_/, /^HELO\_/, /DKIM_/, /^RCVD_IN_/], - :incoming => [] - } - - def initialize(reply, scope) - @reply = reply - @scope = scope - end - - def spam_score - @spam_score ||= begin - spam_details.inject(0.0) do |total, detail| - total += detail['score'] || 0.0 - end - end - end - - def spam_details - @spam_details ||= (@reply['spam_details'] || []).reject do |d| - EXCLUSIONS[@scope].any? do |item| - item == d['code'] || (item.is_a?(Regexp) && item =~ d['code']) - end - end - end - - def threat? - @reply['threat'] ? true : false - end - - def threat_message - @reply['threat_message'] - end - end -end diff --git a/lib/postal/message_db/message.rb b/lib/postal/message_db/message.rb index 628d613..cd47108 100644 --- a/lib/postal/message_db/message.rb +++ b/lib/postal/message_db/message.rb @@ -494,12 +494,12 @@ module Postal # Inspect this message # def inspect_message - if result = Espect.inspect(self.raw_message, self.scope&.to_sym) + if result = MessageInspection.new(self.raw_message, self.scope&.to_sym) # Update the messages table with the results of our inspection - update(:inspected => 1, :spam_score => result.spam_score, :threat => result.threat?, :threat_details => result.threat_message) + update(:inspected => 1, :spam_score => result.filtered_spam_score, :threat => result.threat?, :threat_details => result.threat_message) # Add any spam details into the spam checks database - self.database.insert_multi(:spam_checks, [:message_id, :code, :score, :description], result.spam_details.map { |d| [self.id, d['code'], d['score'], d['description']]}) - # Return the espect result + self.database.insert_multi(:spam_checks, [:message_id, :code, :score, :description], result.filtered_spam_checks.map { |d| [self.id, d.code, d.score, d.description]}) + # Return the result result end end diff --git a/lib/postal/message_inspection.rb b/lib/postal/message_inspection.rb new file mode 100644 index 0000000..ee2d781 --- /dev/null +++ b/lib/postal/message_inspection.rb @@ -0,0 +1,141 @@ +require 'timeout' +require 'socket' +require 'json' + +module Postal + class MessageInspection + + SPAM_EXCLUSIONS = { + :outgoing => ['NO_RECEIVED', 'NO_RELAYS', 'ALL_TRUSTED', 'FREEMAIL_FORGED_REPLYTO', 'RDNS_DYNAMIC', /^SPF\_/, /^HELO\_/, /DKIM_/, /^RCVD_IN_/], + :incoming => [] + } + + def initialize(message, scope = :incoming) + @message = message + @scope = scope + @threat = false + @spam_score = 0.0 + @spam_checks = [] + + if Postal.config.spamd.enabled? + scan_for_spam + end + + if Postal.config.clamav.enabled? + scan_for_threats + end + end + + def spam_score + @spam_score + end + + def spam_checks + @spam_checks + end + + def filtered_spam_checks + @filtered_spam_checks ||= @spam_checks.reject do |check| + SPAM_EXCLUSIONS[@scope].any? do |item| + item == check.code || (item.is_a?(Regexp) && item =~ check.code) + end + end + end + + def filtered_spam_score + filtered_spam_checks.inject(0.0) do |total, check| + total += check.score || 0.0 + end.round(2) + end + + def threat? + @threat + end + + def threat_message + @threat_message + end + + private + + def scan_for_spam + data = nil + Timeout.timeout(15) do + tcp_socket = TCPSocket.new(Postal.config.spamd.host, Postal.config.spamd.port) + tcp_socket.write("REPORT SPAMC/1.2\r\n") + tcp_socket.write("Content-length: #{@message.bytesize}\r\n") + tcp_socket.write("\r\n") + tcp_socket.write(@message) + tcp_socket.close_write + data = tcp_socket.read + end + + spam_checks = [] + total = 0.0 + rules = data ? data.split(/^---(.*)\r?\n/).last.split(/\r?\n/) : [] + while line = rules.shift + if line =~ /\A([\- ]?[\d\.]+)\s+(\w+)\s+(.*)/ + total += $1.to_f + spam_checks << SPAMCheck.new($2, $1.to_f, $3) + else + spam_checks.last.description << " " + line.strip + end + end + + @spam_score = total.round(1) + @spam_checks = spam_checks + + rescue Timeout::Error + @spam_checks = [SPAMCheck.new("TIMEOUT", 0, "Timed out when scanning for spam")] + rescue => e + logger.error "Error talking to spamd: #{e.class} (#{e.message})" + logger.error e.backtrace[0,5] + @spam_checks = [SPAMCheck.new("ERROR", 0, "Error when scanning for spam")] + ensure + tcp_socket.close rescue nil + end + + def scan_for_threats + @threat = false + + data = nil + Timeout.timeout(10) do + tcp_socket = TCPSocket.new(Postal.config.clamav.host, Postal.config.clamav.port) + tcp_socket.write("zINSTREAM\0") + tcp_socket.write([@message.bytesize].pack("N")) + tcp_socket.write(@message) + tcp_socket.write([0].pack("N")) + tcp_socket.close_write + data = tcp_socket.read + end + + if data && data =~ /\Astream\:\s+(.*?)[\s\0]+?/ + if $1.upcase == 'OK' + @threat = false + @threat_message = "No threats found" + else + @threat = true + @threat_message = $1 + end + else + @threat = false + @threat_message = "Could not scan message" + end + rescue Timeout::Error + @threat = false + @threat_message = "Timed out scanning for threats" + rescue => e + logger.error "Error talking to clamav: #{e.class} (#{e.message})" + logger.error e.backtrace[0,5] + @threat = false + @threat_message = "Error when scanning for threats" + ensure + tcp_socket.close rescue nil + end + + def logger + Postal.logger_for(:message_inspection) + end + + end +end diff --git a/lib/postal/spam_check.rb b/lib/postal/spam_check.rb new file mode 100644 index 0000000..ea0e48a --- /dev/null +++ b/lib/postal/spam_check.rb @@ -0,0 +1,21 @@ +module Postal + class SPAMCheck + + attr_reader :code, :score, :description + + def initialize(code, score, description = nil) + @code = code + @score = score + @description = description + end + + def to_hash + { + :code => code, + :score => score, + :description => description + } + end + + end +end diff --git a/resource/ham-message.msg b/resource/ham-message.msg new file mode 100644 index 0000000..b8aad17 --- /dev/null +++ b/resource/ham-message.msg @@ -0,0 +1,958 @@ +X-Deliver-Recipient: hello@atechmedia.com +X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on + deliver03.infra.atech.io +X-Spam-Level: +X-Spam-Status: No, score=-0.2 required=5.0 tests=BAYES_00, + HTML_FONT_LOW_CONTRAST,HTML_MESSAGE,MIME_HTML_MOSTLY,MPART_ALT_DIFF, + RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,T_DKIM_INVALID,URIBL_GREY autolearn=no + autolearn_force=no version=3.4.0 +Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01lp0203.outbound.protection.outlook.com [2a01:111:f400:7e1f::203]) by deliver03.infra.atech.io with SMTP; Mon, 17 Oct 2016 10:28:24 +0100 +Received: from DB3PR05CA0075.eurprd05.prod.outlook.com (10.163.44.43) by + AMXPR05MB215.eurprd05.prod.outlook.com (10.242.73.21) with Microsoft SMTP + Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id + 15.1.669.12; Mon, 17 Oct 2016 09:28:21 +0000 +Received: from AM5EUR02FT034.eop-EUR02.prod.protection.outlook.com + (2a01:111:f400:7e1e::204) by DB3PR05CA0075.outlook.office365.com + (2a01:111:e400:9448::43) with Microsoft SMTP Server (version=TLS1_2, + cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.12 via + Frontend Transport; Mon, 17 Oct 2016 09:28:21 +0000 +Authentication-Results: spf=pass (sender IP is 199.16.156.179) + smtp.mailfrom=bounce.twitter.com; atechmedia.com; dkim=pass (signature was + verified) header.d=twitter.com;atechmedia.com; dmarc=pass action=none + header.from=twitter.com;atechmedia.com; dkim=pass (signature was verified) + header.d=twitter.com; +Received-SPF: Pass (protection.outlook.com: domain of bounce.twitter.com + designates 199.16.156.179 as permitted sender) + receiver=protection.outlook.com; client-ip=199.16.156.179; + helo=spring-chicken-bn.twitter.com; +Received: from spring-chicken-bn.twitter.com (199.16.156.179) by + AM5EUR02FT034.mail.protection.outlook.com (10.152.8.118) with Microsoft SMTP + Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id + 15.1.669.7 via Frontend Transport; Mon, 17 Oct 2016 09:28:20 +0000 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=twitter.com; + s=dkim-201406; t=1476695299; + bh=LgMXW+6VfLHasuTQI/R3SrR3H+H99YtipORTEX8Simc=; + h=Date:From:To:Subject:MIME-Version:Content-Type:List-Unsubscribe: + Message-ID; + b=SkpxPBxIVtpBCATHYbj7JI14zep0eFLgrUO+cXKqArq4pOoOduKvE/YC0in5LGiaf + IcQke5g3JQ2DC6qLgsTVC/cNsyVWSWSWOvCVbE6Lh9bcgGfaumbftURBA5qI8Lztum + 7pROJ6kkPh0hwqaY9jFFIcWlCGMmxlcHnK9DsdbTxlSYmUN0U502/TqmG/HMpNID9b + /OJNz6XDKApCB0DJQcAcfky41m2bhKz7rJ+YpgpeKorzI5CK2J7zcwlhSCm4fdaiHS + Xt2sPCCHdtcWcfmfReBQJe6V7Jizas3vNmT37PUiXKkEaukNlnnr2S0zjoC6Q7CQOb + kgphYybci1pkA== +X-MSFBL: WNBhBihNKIxVp0wVvT5mStfM+hqq7GmoRWgPxruw4uM=|eyJnIjoiRXZlcnl0aGl + uZyIsInUiOiJoZWxsb0BhdGVjaG1lZGlhLmNvbUBpaWQjI2Y1MmI1ZjRhNDg3NDQ + zNzI4NDQ5YzdiOTgxNDg5MDk2QHVzYiMjMzBAMjQ0QDI4MTA0NjE1QDBAMjYxZTd + iMzM1OWFiODM1ZDI2NTQwN2FhZDgxZmNkNjM2MTYwYWJkOCIsInIiOiJoZWxsb0B + hdGVjaG1lZGlhLmNvbSIsImIiOiJhdGxhLWFxbS0zNy1zcjEtRXZlcnl0aGluZy4 + xOTkifQ== +Date: Mon, 17 Oct 2016 09:08:19 +0000 +From: Twitter for Business +To: aTech Media +Subject: @atechmedia, effectively reach new customers +MIME-Version: 1.0 +Content-Type: multipart/alternative; + boundary="----=_Part_20209459_199831831.1476695299532" +List-Unsubscribe: +Feedback-ID: 0040162518f58f41d1f0:0048183034d98b50d6cafd24be6f7a9ea58b:GB:twitterESP +Precedence: Bulk +Message-ID: <66.95.56164.30594085@twitter.com> +Return-Path: b0091219fb3hello=atechmedia.com@bounce.twitter.com +X-EOPAttributedMessage: 0 +X-EOPTenantAttributedMessage: 7a8f6edf-720f-4e3d-b767-1360e39a8cdf:0 +X-Forefront-Antispam-Report: + CIP:199.16.156.179;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(8156002)(31570200002)(3000300001)(438002)(286005)(189002)(199003)(19617315012)(236004)(19627405001)(84326002)(626004)(18206015028)(4001070100004)(8676002)(110136003)(107886002)(118246002)(103116003)(5000100001)(36756003)(11100500001)(18926405002)(110436001)(956001)(270700001)(1096003)(77096005)(586003)(146002)(8896002)(106466001)(7596002)(15975445007)(450100001)(85226003)(64016003)(4290100001)(25786007)(53416004)(7846002)(356003)(620700001)(229853001)(47976999)(19580395003)(7636002)(246002)(18926415007)(7906003)(92566002)(54356999)(6916009)(50986999);DIR:INB;SFP:;SCL:1;SRVR:AMXPR05MB215;H:spring-chicken-bn.twitter.com;FPR:;SPF:Pass;PTR:spring-chicken-bn.twitter.com;MX:1;A:0;LANG:en; +X-Microsoft-Exchange-Diagnostics: 1;AM5EUR02FT034;1:vIWMQWgrUBX0kRrJUvGndC3iLng6ZOHw4frJSOHCirNutKWW1q9HWAwiPeHIUSfC7hHrBZs9j5aQ41YuGepDe42pxAkzyzb7Gzi8cJ4TdAPQXgs+xZIvVcpiZHvliiYg0d/41TzkFQZaHBUxVdVGdVsv4M+bpCvMK0H3zrYLtKHc9oPk5wNxPrDTDj1kdhASTAC8inA6/nGntDZu1xEkpNOzpBEhsIyZ2Ld24h48kxFaQ9P6Es4bKGBIkugy5Tm4prEV0NPdCcPuCVrix7cEL381H7PiJw5scClHRszRuyQ9On9uJnI2/hxoz1ooGKbhcuCzQq67XzmSR20pHWw+lmDwF/9JmKYHAx3V2/BS63nAQnzTJ8s5raxqcqYuTWeT5HsrBKWsWQWFHgAVQFTYTfgWCkzN4o4nqqdXl8bKk8ORXuGkorbDSVhzZxXwlsxA8zQ4jg7XDEpgb6eJpzfq4iHvlqw4W4fmZZ1BCnaANwdPRnazJFU6Jo0MEqUPaii65QJ69EsKxXN+0BT6/n0LIXlZsh4Svp4bqB1LoY2+tCu951d2OKDxqBmkUfhKXG7xCvtvPZtQlDxEZYqMcwvhiA== +X-MS-Office365-Filtering-Correlation-Id: 3039e27b-7d16-461b-3a3d-08d3f66fefbf +X-Microsoft-Exchange-Diagnostics: + 1;AMXPR05MB215;2:xFSkW47+CfYGfvdjEVVGJ5XvaAu1J/ABXIf+0TMZieWuTjQRMI27ecqYElcYtoNANDOMjB+8zu+soKcEo5KYpf7+UzpexZzO6L7FHBAAwtzP6CjMlYKM4uT/+n2jDt5J0ODHUHt0aUdhADrAt+BpW7gD5m4qoYfkcQg5sh3ZK4G41IfmKBf63acJ/3NZrNnVYMu3U1Ha6Y+JdkgtcFDfzw==;3:nZag2xv1dvQVwmc7i3GGHtRkh2jgJLjrMNmWOgDmhdCtYXS0fTma0qD34uiOg5FB3IxXrKWdrd2pwmdVluWoZdvtI3dMVsj+QDKKiEn401jEJ9dLnFXTJcz64ImJ0T1XNp8HoN6oCYgy6NinlQVV4aZEiYqSCHpGP80i/S4v1dmUeBUA3JuPCzR6vY6Yz7F1l4/FhdRn88Up+vWTuY2FKPnkQQHDJcVHA4/PDFVcBSE4KZp1uMWxpXuOFNrASA7ZFWXFJwujovOS7blz+EC63frZlCM0nF0jJyk8PdMcPklaTbfJpaAHF+ZiOg7mMpWupBAiiMWrnXfXb/3kxJzMR3egz9lrvE8Xf3mZpTS5NlBUjk8HWh3Q3+wuniZRScDy1TA1+R5VXR4R65h8j3HLjA== +X-DkimResult-Test: Passed +X-Microsoft-Antispam: + UriScan:;BCL:1;PCL:0;RULEID:(421252002)(8251501002)(3001016)(3010002)(71701004)(71702002);SRVR:AMXPR05MB215; +X-Microsoft-Exchange-Diagnostics: + =?us-ascii?Q?1;AMXPR05MB215;25:GgSf1uB5xPLw7WKc2jplH7jDAsSN6Zm6DKkev+oOpF?= + =?us-ascii?Q?eflgy3ApQOPL99aikD+EEpSM0VxFZbf2hNBCDgdCbZnd40msn95Ya5zhXHN4?= + =?us-ascii?Q?SFRJXu5q30ShCVSZwccfrUhLKRC04jO0MNNBghaNwxIKnkfu4uY9AVteayfP?= + =?us-ascii?Q?4vWGzrUAae1MTcEp+atJt8KWfEHXOM3+4/Lh87gAXFpISAX9PsnTYr0xAl6P?= + =?us-ascii?Q?vstzyTEm8h/Vcl7Awl8+kAKfX5pcdJMZUUiMt5/qPghCnHpLuD3Hscx+ovXE?= + =?us-ascii?Q?Tr+DUkVGqGhAjEmkVFfOeo35qJ9nvsiLDor7bY7RIdvVdAFiUGfTKikHDGYl?= + =?us-ascii?Q?NXfPThzKtv0+cNIwyHFMLaXr31bHZbWw4IoE4o9fm1L/Q4quX0kvsQpCFHjT?= + =?us-ascii?Q?HRbrwDr7Zm0aiEZ68xteishI8zMOtcpgn3OBExXhttMXawCi/g/+fuJUho62?= + =?us-ascii?Q?i8t03FvLphOyF9I2DNk1ql32SI6/kC1u/bes3hLL9pQsvccbOOpI7aVmiqFx?= + =?us-ascii?Q?c7Bi1+u5U5cpJUcD8OFOoUBc0XyAeCRsgQp9tRd4toHSiW0Rl7VZC9SCFugR?= + =?us-ascii?Q?sBq2OlQA38iTW5bp7GhAdh85PSEX43rZITQzMUXY6DE4GrtuwHZDD8s/xT/8?= + =?us-ascii?Q?cL4Vi/tKLk6Yq4BE+tmHvM1DNWfwm6RjpgdqDnEDHOcDderhxwGuh8d0uyBN?= + =?us-ascii?Q?IffOH3Y7EVfr+I7vH3ejLHJuWsmho7uCckxq70CHCLgX+8k1gZd7TWWtZqBf?= + =?us-ascii?Q?16dyB+IYGmBQKEtcB0zEjMEg1ZV4RHR8NkKXOYsq0vAqzR+gt+tn+0s6fx/0?= + =?us-ascii?Q?0/ZWf0x0f7bNf01CroV1ZDSiGUWQluM1sEQUTmeLHJXES+ceO5T2Ig8jeddM?= + =?us-ascii?Q?4Q5Yn3oEDBzYpQiChY3BZdBSg14vhe9J1WqDqXWoFAiep3Z/kd1fXcYKnD+O?= + =?us-ascii?Q?3s8Pf8GasTf3gl+jXybvIKzgQSMSpQdMAkNJrenUgAt8HZOVVFVSSvpFgWEk?= + =?us-ascii?Q?osAvmojeoFkRUol4U2ZdtWWt/gPO1iIifUFWj3hHyHAASHmsJ35qeQurbRcJ?= + =?us-ascii?Q?p9xrs=3D?= +X-LD-Processed: 7a8f6edf-720f-4e3d-b767-1360e39a8cdf,ExtAddr +X-Microsoft-Exchange-Diagnostics: + 1;AMXPR05MB215;31:JzD3+6fXxaWDr4YxyrbPNPDM1HaX5DuokdBS4tjL2MeKKQGLZg0FmQNVjXVI8YEodgFAk3MakmO+TRTPtI9lECGowNexQVjT83EOKdAQ0by2mPF8rlWHrnDgPKV0xkUMV/AjDgVVfIjsny13RhlnV8Bafhxdvyr9T1iP1F/B0o0r1W/gyq0BxZqLNlKd1MdPoweZ6VNIG2IfDUTyduiEvr5oBPjD/PNWK+Nt2V/JGb/baWzsLapMJ32cni/kJ7kbGOjAHjRGYRy3kYQWU4wXtQ==;20:+9NkPI9t0YIJ4Xg+lIaNX8miDenKOU0NjrXZeQavI0z6h9oq16gXBFEX9Fd6nyR3P5AVFY2EsefMo3NfQBH2GarRVFCtZ6hz9+uUf3tANgSKYCiflhtRyexXD0Btpd/6LDngSMSBtWGrvq8bUhJnIENyFnpqBtLY/oRbGFtjHWc= +X-Exchange-Antispam-Report-Test: + UriScan:(148322886591682)(31418570063057)(148717330147763)(171275909045310); +X-Exchange-Antispam-Report-CFA-Test: + BCL:1;PCL:0;RULEID:(9101531078)(601004)(2401047)(701104)(8121501046)(13018025)(13016025)(9101536074)(3002001)(10201501046);SRVR:AMXPR05MB215;BCL:1;PCL:0;RULEID:;SRVR:AMXPR05MB215; +X-Microsoft-Exchange-Diagnostics: + 1;AMXPR05MB215;4:JwfG7N8rl6LK3NsPKzLZ4v5NcUQOOSr4V02ZxEnQMVN/z5NVec3aa3kBNMS7qzUsdPDNNx5JjxvLcb/6g2YnxyHF7ahJTNX/Nfw8sdSJPe0W5BQO/eBoofAwpNbnlj8NHDetNBixLale361QeLsNiURDdaPbE1mgXaR0X4Y0NsptC386j8R8/oRpcraYfO0e4UW5cCZA56DMipWWM8amyCd7dg5+mTqO5mp7opkgsGxxQ9CJ/c5OQKyIz70qETFwcgXRKLLcz5dI/pt2dbWx1TO5sJtx50ukPx1eKAKluSF/1nQO+qa34LPIhPP2SPi7giev12K79dDhTAeok5k0qpzTygaRiqeBwCf+WChcJDuUyuF1H39hkk+yqk26RWsWi+Bw/cG3NjS4Rsqyhj6Mkm6UO2zgSkDOcEm5HcMu9FvM6EtbCTOjisILBuan1QBgCGEqMvDKRg+XRNXQ1rx/ruQLdORkcy2q3KtBidKUjNVDqmdGBGDWEowMPLtwHoyBD6Rvj6d3UIkMKmsP+yemVSqVMcrdN1moUCK/ER0xGb4SHFlAuyso2bvA7xMO43Zx56SZAuwdnXlArg/39Ywp7JCoS6bTcpxwYZ+UpyXyMfy+bR8eC/e3DvmNQpKe6jnY +X-Microsoft-Exchange-Diagnostics: + =?us-ascii?Q?1;AMXPR05MB215;23:bbFTdpG3OnFP9MDhkK6bDHuP2EDfQjuLNzpFjmC/eD?= + =?us-ascii?Q?YfuoIlM4gdS2R1RhwxtwABOyKbKmjS54pw2EwjleNSoN96w6oSOwPTaQXGAg?= + =?us-ascii?Q?8Tjfoamdzjg/oxnyAOpUWJk5/dulB+os1Ol09bZ1nm2pWqCPJyFNv2+GdrfJ?= + =?us-ascii?Q?U1eIWJSLxPXK0jP61BwrWu2jATBkMryXj6GtBIl5J6y26Je1TA93OjUMsVGj?= + =?us-ascii?Q?n7oEe3i+j0S5IS8O4tZfU37va9GqrCsa5yJz48acWRbjxV/Z9771/Ly7Zh9R?= + =?us-ascii?Q?rSzrQcJMjy2k3y/j+qfuvLdOearAYvbYbdEVkjBXGXtY2cs2Hz7kbYV5wfUN?= + =?us-ascii?Q?KuLxVA14d2N7+O8WwPoCaL96XDA9oyobJ7sxUvr6V/+e7ftV2yMuk3xV8kKX?= + =?us-ascii?Q?8Np6xcLuzeaon4Kd4L2vS6cOVIyToCwrhfoXrRF06vS/TeA7Lr6tuLmx8FF6?= + =?us-ascii?Q?IqYPx5kJP2yTqlP8AhP1Fk+xl69NQs76p0MAuYoELJIi0Mo4ILjJSWqIbGBA?= + =?us-ascii?Q?gh20GOVGzb6khNByAmTEyWbPqfVHfyIBfBP+6o6XWShi2bxAxLx/XrJ4SeYL?= + =?us-ascii?Q?hEbuixR4iZD9517wopflNHPiNTz5ToraXhoBxjT69EAjGqlhbpAP0M9gJeMp?= + =?us-ascii?Q?rF8K0OToBrDE/RF67FtzEvcDGoZeGvGBhzb9njxNhR0ngkR3vPtz2vBsxkog?= + =?us-ascii?Q?/41e5De4KB9TVWLUPIztv8LEkw4tj8WDm9ZpAStRjkJrA8NHfn7awJHhVvxj?= + =?us-ascii?Q?O9lVmoN+v8qL7oo+KCkVkvmTFnAVDsjnWPVeUZwhYxv0PefMF72xH+vjJxFo?= + =?us-ascii?Q?JV+EXNBUZU04rvSaaKTywsf9SOjlzxQL0ktAS7TsmGoY9sFq3x48n3sOVaWW?= + =?us-ascii?Q?x0AY2tIZd1hCKC6mj4JfyQrXC9RuKC9BQ4UAi5kJVAySqwVWBFjau5dYFj+m?= + =?us-ascii?Q?s23ldyJ4pKp7lQKR0jPxnls7q2cuuIbz9bq8j0CJJ9CbT1I4qjFV5jbULFof?= + =?us-ascii?Q?R0DN3bxH5D6XnKBAIpu1qFp0Tv7jG0eizLi7g01mLzySrCLl/MyLe4gnIA/X?= + =?us-ascii?Q?cHRiqF1YORpC78CfbAYPrQqd9vHfUJtwAcubKi6o/ZjbmdOMdD0osTAQEU9P?= + =?us-ascii?Q?u5WofjLGWLNCZzWUAncPPC0n38nlAkADrK7IP7C/k7ALfY2vTdq2Cs9tjwJ5?= + =?us-ascii?Q?gqXlspthXFVtaE6MGQlgRDEUN4HyQyOSIXYyJ/wf/55QC0JbgmSNjUTrQ++z?= + =?us-ascii?Q?h7fUn/2lZeaV7dv+sSPJwL+vGnDDQszi63/IEM2yTgKztDZeQuD2iYoSd+1f?= + =?us-ascii?Q?xbYnR+KKcdiHGjkZMxA6+JCMIYBmsRf4q65l4XoShi?= +X-Microsoft-Exchange-Diagnostics: + 1;AMXPR05MB215;6:9gGBK/Fc8f7KtChGuxHFpXJDEGL9ejaRnMXyvmLLY5bCWvVCkAv7K+VX6EQt8ekz2qDr6alb/NJqYm++5O8Ra+geg8Zfw35a1rhANCXZpUSqfNgPgHC21p+eVulMzXLTA7NJb/UT+qKBVv1enxG7lqSrCt4wm7FpEQpVf1gkof/S/wvI4EaXgVwjbgpc6ydPxB2gXLsgQ0Mtm7IfM7j5cdAh48GLPnQyunzI5jrhN6bC6Abhhp/cO4ngpnPcIGcwrQTwTXwtZ2NrE2rzJ+k7OkIPNm4lCM4hVQN8ppCO/ym+DCGRG06qDKnRf5dziOv8zzgcq1aG7C8lwRdkhWBevw==;5:0mIEsUiD4taNkLlaqddXDMQ3zkc2v9xLbgOHd4V/DRP5Cd1RrCS7nmBGEqdNnUaeksYN5Nizl0+kgyVTDTU4yNkKS9Rjc6sSXnxCpe7kWHRezi7Fh43YDhZi5zw4Fsq82+8bqzts9yDFDJ2n1WEFpNj43bwQD5yDreaaK3CVRs4=;24:yT6DyyZKAORzHh5LiEv9jC+mY/e/63do9DsREK9t4UF+XqWlrjimra+wO++LhByvS1jpOcAEvp1Y6YqD0KbsQ4t76oqsuECvnmDLF/g2uKg= +SpamDiagnosticOutput: 1:5 +SpamDiagnosticMetadata: Default:1 +X-Microsoft-Exchange-Diagnostics: + 1;AMXPR05MB215;7:oyVwILX3jt6hQw6WpNSGw5KQtiQnLMEXe+mixripKTSgv6TtiBxUnC8aoYF9+4OTx5iTLGupfxXEHGaDGVAhLRYFPyflqYueTsSQX/307fjWQpnLfkgX5t8SEijMb1AXHFS7REmJb3FSafjACI/1ZIgcif6JnPPYDDoO3oXGLmetUuD1tCg+rNh+OInD1mxUEDJ1gMzke4Kvr/S5fCIB/VqC7Tmf54UmBtPOzayMSZkqKcnXehdPBya9OoZywCCeYqkrRJNruoP5D8cP/E4U+ZVFokr0r136AUjA3P4Jru6KQKhs8/dgGtYgHjDX+duIWfxgAmOR1lMiT6qB7WPMHqTWfTf3Dp3AxEw94/gx56uZRBRAHr84FjLDI1diYGNg +X-OriginatorOrg: atech.media +X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Oct 2016 09:28:20.5961 + (UTC) +X-MS-Exchange-CrossTenant-Id: 7a8f6edf-720f-4e3d-b767-1360e39a8cdf +X-MS-Exchange-CrossTenant-FromEntityHeader: Internet +X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMXPR05MB215 +X-MS-Exchange-CrossPremises-OriginalClientIPAddress: 199.16.156.179 +X-MS-Exchange-CrossPremises-AuthSource: + AM5EUR02FT034.eop-EUR02.prod.protection.outlook.com +X-MS-Exchange-CrossPremises-AuthAs: Anonymous +X-MS-Exchange-CrossPremises-AVStamp-Service: 1.0 +X-MS-Exchange-CrossPremises-SCL: 1 +X-MS-Exchange-CrossPremises-Antispam-ScanContext: + DIR:Incoming;SFV:NSPM;SKIP:0; +X-MS-Exchange-CrossPremises-Processed-By-Journaling: Journal Agent +X-OrganizationHeadersPreserved: AMXPR05MB215.eurprd05.prod.outlook.com + +------=_Part_20209459_199831831.1476695299532 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 7bit + + +------=_Part_20209459_199831831.1476695299532 +Content-Type: text/html; charset=UTF-8 +Content-Transfer-Encoding: quoted-printable + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + + + + + + + + +
Promote your top Tweets to drive sales.
+ + + + + + + + + + + + + + + + + +
 
3D"Twit=
 
+ + + + + + + + +
3D"Twitter
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
Reach more potential customers
+ + + + + + +
+ + + + + + + +
+ + + + + + +
+ Try quick promote +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
Hi @atechmedia
Running a business is hard w= +ork. That=E2=80=99s why Twitter Ads makes it easy and fast for you to get y= +our best-performing Tweets in front of more potential customers with quick = +promote.

Research shows that over half of the users who follow = +small to medium sized businesses notice Twitter ads, and the majority of th= +ose who notice take action as a result.*

You can even promote a= + Tweet from your iOS or Android device while on the go =E2=80=94 it=E2=80= +=99s that simple. Just select your top Tweet from your Tweet activity dashb= +oard to get started.

REACH N= +EW CUSTOMERS WITH QUICK PROMOTE TODAY.
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + + + +
+ + + + + + +
+ See more +

*Twitter + DB5 =E2= +=80=9CSmall Business Customer Insights Study,=E2=80=9D U.S. 2014
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
business.t= +witter.com |  @TwitterBusiness |  Support

Twitt= +er, Inc. 1355 Market Street, Suite 900, San Francisco, CA 94103

Unsubscribe
+
+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+ + + + +------=_Part_20209459_199831831.1476695299532-- diff --git a/resource/spam-message.msg b/resource/spam-message.msg new file mode 100644 index 0000000..6927483 --- /dev/null +++ b/resource/spam-message.msg @@ -0,0 +1,488 @@ +X-Deliver-Recipient: support@codebasehq.com +Received: from 185.22.208.58 (::ffff:205.204.17.235 [::ffff:205.204.17.235]) by deliver03.infra.atech.io with SMTP; Sun, 16 Oct 2016 04:48:41 +0100 +X-Message-Info: HCTKpYD32bQ7UfwL8ViwjB7M5S8b82RB +Received: from introject.packandmail.com ([24.79.64.128]) by nf91-w78.packandmail.com with Microsoft SMTPSVC(5.0.2195.6824); + Sat, 15 Oct 2016 22:39:44 -0600 +Received: from ztm4-conjecture0.packandmail.com (pantheism4 [194.28.160.89]) + by barometer.o5.com (3.71.2/3.49.5) with ESMTP id v2QY0ob55270 + for ; Sun, 16 Oct 2016 00:46:44 -0400 GMT +Received: (from k5residue@localhost) + by bld2-lagoon5.packandmail.com (0.33.3/6.56.6) id j1ZQ1cw93884; + Sun, 16 Oct 2016 00:42:44 -0400 GMT +X-Authentication-Warning: mnq2-rangy8.packandmail.com: h4box set sender to Koenig_Ricardo@pakco-international.com using -f +MIME-Version: 1.0 +Date: Sun, 16 Oct 2016 09:39:44 +0500 +From: Pat Maher +Subject: Best pilules for men - do it intenser! +To: support@codebasehq.com +Message-Id: +Content-Type: text/html; +Content-Transfer-Encoding: base64 + + +PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlv +bmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5z +aXRpb25hbC5kdGQiPjxodG1sPg0KPGhlYWQ+DQo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u +dGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPg0KPHN0eWxlIHR5 +cGU9InRleHQvY3NzIj4NCi8qIC8vLy8vLy8vLyBDTElFTlQtU1BFQ0lGSUMgU1RZTEVTIC8v +Ly8vLy8vLyAqLw0KI291dGxvb2sgYXtwYWRkaW5nOjA7fSAvKiBGb3JjZSBPdXRsb29rIHRv +IHByb3ZpZGUgYSAndmlldyBpbiBicm93c2VyJyBtZXNzYWdlICovDQouUmVhZE1zZ0JvZHl7 +d2lkdGg6MTAwJTt9IC5FeHRlcm5hbENsYXNze3dpZHRoOjEwMCU7fSAvKiBGb3JjZSBIb3Rt +YWlsIHRvIGRpc3BsYXkgZW1haWxzIGF0IGZ1bGwgd2lkdGggKi8NCi5FeHRlcm5hbENsYXNz +LCAuRXh0ZXJuYWxDbGFzcyBwLCAuRXh0ZXJuYWxDbGFzcyBzcGFuLCAuRXh0ZXJuYWxDbGFz +cyBmb250LCAuRXh0ZXJuYWxDbGFzcyB0ZCwgLkV4dGVybmFsQ2xhc3MgZGl2IHtsaW5lLWhl +aWdodDogMTAwJTt9IC8qIEZvcmNlIEhvdG1haWwgdG8gZGlzcGxheSBub3JtYWwgbGluZSBz +cGFjaW5nICovDQpib2R5LCB0YWJsZSwgdGQsIHAsIGEsIGxpLCBibG9ja3F1b3Rley13ZWJr +aXQtdGV4dC1zaXplLWFkanVzdDoxMDAlOyAtbXMtdGV4dC1zaXplLWFkanVzdDoxMDAlO30g +LyogUHJldmVudCBXZWJLaXQgYW5kIFdpbmRvd3MgbW9iaWxlIGNoYW5naW5nIGRlZmF1bHQg +dGV4dCBzaXplcyAqLw0KdGFibGUsIHRke21zby10YWJsZS1sc3BhY2U6MHB0OyBtc28tdGFi +bGUtcnNwYWNlOjBwdDt9IC8qIFJlbW92ZSBzcGFjaW5nIGJldHdlZW4gdGFibGVzIGluIE91 +dGxvb2sgMjAwNyBhbmQgdXAgKi8NCmltZ3stbXMtaW50ZXJwb2xhdGlvbi1tb2RlOmJpY3Vi +aWM7fSAvKiBBbGxvdyBzbW9vdGhlciByZW5kZXJpbmcgb2YgcmVzaXplZCBpbWFnZSBpbiBJ +bnRlcm5ldCBFeHBsb3JlciAqLw0KLyogLy8vLy8vLy8vIFJFU0VUIFNUWUxFUyAvLy8vLy8v +Ly8gKi8NCmJvZHl7bWFyZ2luOjA7IHBhZGRpbmc6MDt9DQppbWd7Ym9yZGVyOjA7IGhlaWdo +dDphdXRvOyBsaW5lLWhlaWdodDoxMDAlOyBvdXRsaW5lOm5vbmU7IHRleHQtZGVjb3JhdGlv +bjpub25lO30NCnRhYmxle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSAhaW1wb3J0YW50O30N +CnRhYmxlIHRkIHsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O30NCmJv +ZHksICNib2R5VGFibGUsICNib2R5Q2VsbHtoZWlnaHQ6MTAwJSAhaW1wb3J0YW50OyBtYXJn +aW46MDsgcGFkZGluZzowOyB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7fQ0KI21haWxCb2R5Lm1h +aWxCb2R5IC51bmktYmxvY2suYnV0dG9uLWJsb2NrIHsgZGlzcGxheTpibG9jazsgfSAvKiBT +cGVjaWZpYyB1a3IubmV0IHN0eWxlKi8NCmJvZHkgew0KbWFyZ2luOiAwOw0KdGV4dC1hbGln +bjogbGVmdDsNCn0NCnByZSB7DQp3aGl0ZS1zcGFjZTogcHJlOw0Kd2hpdGUtc3BhY2U6IHBy +ZS13cmFwOw0Kd29yZC13cmFwOiBicmVhay13b3JkOw0KfQ0KdGFibGUubWhMZXR0ZXJQcmV2 +aWV3IHsgd2lkdGg6MTAwJTsgfQ0KdGFibGUgew0KbXNvLXRhYmxlLWxzcGFjZTowcHQ7DQpt +c28tdGFibGUtcnNwYWNlOjBwdDsNCn0NCmltZyB7DQotbXMtaW50ZXJwb2xhdGlvbi1tb2Rl +OmJpY3ViaWM7DQp9DQo8L3N0eWxlPg0KDQo8c3R5bGUgaWQ9Im1lZGlhX2NzcyIgdHlwZT0i +dGV4dC9jc3MiPg0KQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNDgwcHgpLCBvbmx5IHNj +cmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGggOiA0ODBweCkgew0KICAgIGJvZHl7d2lkdGg6 +MTAwJSAhaW1wb3J0YW50OyBtaW4td2lkdGg6MTAwJSAhaW1wb3J0YW50O30gLyogUHJldmVu +dCBpT1MgTWFpbCBmcm9tIGFkZGluZyBwYWRkaW5nIHRvIHRoZSBib2R5ICovDQogICAgdGFi +bGVbY2xhc3M9J2NvbnRhaW5lci10YWJsZSddIHsNCiAgICAgICB3aWR0aDoxMDAlICFpbXBv +cnRhbnQ7DQogICAgfQ0KICAgIC5jb2x1bW4gew0KICAgICAgIHdpZHRoOjEwMCUgIWltcG9y +dGFudDsNCiAgICAgICBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50Ow0KICAgIH0NCiAgICB0 +ZC5pbWFnZS13cmFwcGVyIHsNCiAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7DQogICAg +fQ0KICAgIHRkLmltYWdlLXdyYXBwZXIsIHRkLnRleHQtd3JhcHBlciB7DQogICAgICAgZGlz +cGxheTpibG9jayAhaW1wb3J0YW50Ow0KICAgICAgIHdpZHRoOjEwMCUgIWltcG9ydGFudDsN +CiAgICAgICBtYXgtd2lkdGg6aW5pdGlhbCAhaW1wb3J0YW50Ow0KICAgIH0NCiAgICB0YWJs +ZVtjbGFzcz0nd3JhcHBlcjEnXSB7DQogICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZCAhaW1w +b3J0YW50Ow0KICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsNCiAgICAgICBtYXgtd2lk +dGg6IDYwMHB4ICFpbXBvcnRhbnQ7DQogICAgfQ0KICAgIHRkW2NsYXNzPSd3cmFwcGVyLXJv +dyddIHsNCiAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkICFpbXBvcnRhbnQ7DQogICAgICAg +Ym94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50Ow0KICAgICAgIHdpZHRoOjEwMCUg +IWltcG9ydGFudDsNCiAgICAgICBtaW4td2lkdGg6MTAwJSAhaW1wb3J0YW50Ow0KICAgIH0N +CiAgICB0YWJsZVtjbGFzcz0nd3JhcHBlcjInXSB7DQogICAgICAgdGFibGUtbGF5b3V0OiBm +aXhlZCAhaW1wb3J0YW50Ow0KICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50Ow0KICAg +ICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7DQogICAgICAgbWF4LXdpZHRoOiA2MDBweCAh +aW1wb3J0YW50Ow0KICAgICAgIG1pbi1oZWlnaHQ6IDUyMHB4ICFpbXBvcnRhbnQ7DQogICAg +fQ0KICAgIGRpdltjbGFzcz0nY29sdW1uLXdyYXBwZXInXXsNCiAgICAgICBtYXgtd2lkdGg6 +MzAwcHggIWltcG9ydGFudDsNCiAgICB9DQogICAgdGFibGUudW5pLWJsb2NrIHsNCiAgICAg +ICBtYXgtd2lkdGg6YXV0byAhaW1wb3J0YW50Ow0KICAgICAgIGhlaWdodDphdXRvICFpbXBv +cnRhbnQ7DQogICAgICAgbWluLWhlaWdodDogYXV0byAhaW1wb3J0YW50Ow0KICAgIH0NCiAg +ICB0YWJsZVtjbGFzcz0nYmxvY2std3JhcHBlci1pbm5lci10YWJsZSddIHsNCiAgICAgICBo +ZWlnaHQ6YXV0byAhaW1wb3J0YW50Ow0KICAgICAgIG1pbi1oZWlnaHQ6IGF1dG8gIWltcG9y +dGFudDsNCiAgICB9DQogICAgdGRbY2xhc3M9J2Jsb2NrLXdyYXBwZXInXSB7DQogICAgICAg +aGVpZ2h0OmF1dG8gIWltcG9ydGFudDsNCiAgICAgICBtaW4taGVpZ2h0OiBhdXRvICFpbXBv +cnRhbnQ7DQogICAgfQ0KICAgIC5zdWJtaXQtYnV0dG9uLWJsb2NrIC5idXR0b24td3JhcHBl +ciANCnsgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7DQogICAgICAgd2lkdGg6IGF1 +dG8gIWltcG9ydGFudDsNCiAgICAgICBtaW4taGVpZ2h0OiBpbml0aWFsICFpbXBvcnRhbnQ7 +DQogICAgICAgbWF4LWhlaWdodDogaW5pdGlhbCAhaW1wb3J0YW50Ow0KICAgICAgIG1pbi13 +aWR0aDogaW5pdGlhbCAhaW1wb3J0YW50Ow0KICAgICAgIG1heC13aWR0aDogaW5pdGlhbCAh +aW1wb3J0YW50Ow0KICAgIH0NCiAgICBpbWdbY2xhc3M9J2ltYWdlLWVsZW1lbnQnXSB7DQog +ICAgICAgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsNCiAgICAgICBib3gtc2l6aW5nOiBib3Jk +ZXItYm94ICFpbXBvcnRhbnQ7DQogICAgfQ0KfQ0KQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0 +aDogNjE1cHgpLCBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGggOiA2MTVweCkg +ew0KICAgIHRkW2NsYXNzPSd3cmFwcGVyLXJvdyddIHsNCiAgICAgICBwYWRkaW5nOiAwICFp +bXBvcnRhbnQ7DQogICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7DQogICAgfQ0KfQ0KPC9z +dHlsZT4NCjx0aXRsZT48L3RpdGxlPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl +IiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1VVEYtOCI+DQo8L2hlYWQ+DQo8Ym9keSB3 +aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+DQo8IS0tW2lmIGd0ZSBtc28gOV0+ICAgICAg +IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+ICAgICAgICAgICAudW5pLWJsb2NrIGltZyB7ICAg +ICAgICAgICAgICAgZGlzcGxheTpibG9jayAhaW1wb3J0YW50OyAgICAgICAgICAgfSAgICAg +ICA8L3N0eWxlPjwhW2VuZGlmXS0tPg0KPGNlbnRlcj4NCjx0YWJsZSBjZWxscGFkZGluZz0i +MCIgY2VsbHNwYWNpbmc9IjAiIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMDAlIiBjbGFzcz0i +Y29udGFpbmVyIHJlc3BvbnNpdmUiPg0KPHRib2R5Pg0KPHRyPg0KPHRkPg0KPHRhYmxlIGNs +YXNzPSJ3cmFwcGVyMSIgc3R5bGU9IndpZHRoOiAxMDAlOyBib3gtc2l6aW5nOiBib3JkZXIt +Ym94OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZsb2F0OiBsZWZ0 +OyIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBhbGlnbj0iY2VudGVyIj4NCjx0 +Ym9keT4NCjx0cj4NCjx0ZCBjbGFzcz0id3JhcHBlci1yb3ciIHN0eWxlPSJwYWRkaW5nOiAy +NXB4OyI+PCEtLVtpZiAoZ3RlIG1zbyA5KXwoSUUpXT48dGFibGUgY2VsbHBhZGRpbmc9IjAi +IGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIHdpZHRoPSI3NTAiIGFsaWduPSJjZW50ZXIi +Pjx0cj48dGQ+PCFbZW5kaWZdLS0+DQo8dGFibGUgY2xhc3M9IndyYXBwZXIyIiBzdHlsZT0i +YmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBib3JkZXItcmFkaXVzOiAw +cHg7IG1heC13aWR0aDogNzUwcHg7IHdpZHRoOiAxMDAlOyBib3JkZXI6IG1lZGl1bSBub25l +OyBtYXJnaW46IDBweCBhdXRvOyBib3JkZXItc3BhY2luZzogMHB4OyBib3JkZXItY29sbGFw +c2U6IGNvbGxhcHNlOyIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBhbGlnbj0i +Y2VudGVyIj4NCjx0Ym9keT4NCjx0cj4NCjx0ZCBjbGFzcz0id3JhcHBlci1yb3ciIHN0eWxl +PSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyBtYXgtd2lkdGg6IDc1MHB4OyBwYWRkaW5nOiAwcHg7 +IiB3aWR0aD0iMTAwJSI+PCEtLVtpZiAoZ3RlIG1zbyA5KXwoSUUpXT48dGFibGUgY2VsbHBh +ZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIHdpZHRoPSI3NTAiIGFsaWdu +PSJjZW50ZXIiPjx0cj48dGQ+PCFbZW5kaWZdLS0+DQo8dGFibGUgY2xhc3M9InVuaS1ibG9j +ayBjb250YWluZXItYmxvY2siIHN0eWxlPSJ3aWR0aDogMTAwJTsgdGFibGUtbGF5b3V0OiBm +aXhlZDsgaGVpZ2h0OiBhdXRvOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBiYWNrZ3Jv +dW5kLWltYWdlOiBub25lOyBib3JkZXItc3BhY2luZzogMHB4OyIgd2lkdGg9IjEwMCUiIGNl +bGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIj4NCjx0Ym9keT4NCjx0 +cj4NCjx0ZCBzdHlsZT0id2lkdGg6IDEwMCU7IHBhZGRpbmc6IDBweDsgYm9yZGVyOiBtZWRp +dW0gbm9uZTsiIGNsYXNzPSJibG9jay13cmFwcGVyIiB2YWxpZ249InRvcCI+DQo8dGFibGUg +Y2xhc3M9ImJsb2NrLXdyYXBwZXItaW5uZXItdGFibGUiIHN0eWxlPSJoZWlnaHQ6IDEwMCU7 +IHdpZHRoOiAxMDAlOyB0YWJsZS1sYXlvdXQ6IGZpeGVkOyBib3JkZXItc3BhY2luZzogMHB4 +OyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRk +aW5nPSIwIiBib3JkZXI9IjAiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJ3aWR0aDox +MDAlOyIgY2xhc3M9ImNvbnRlbnQtd3JhcHBlciI+DQo8dGFibGUgY2xhc3M9ImNvbnRhaW5l +ci10YWJsZSBjb250ZW50LWJveCIgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7 +IGJvcmRlci1zcGFjaW5nOiAwcHg7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IiBpZD0i +SkNvbFJlc2l6ZXIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0i +MCI+DQo8dGJvZHk+DQo8dHIgY2xhc3M9ImNvbnRhaW5lci1yb3ciPg0KPHRkIGNsYXNzPSJ0 +ZC13cmFwcGVyIiBzdHlsZT0iZm9udC1zaXplOjA7dmVydGljYWwtYWxpZ246dG9wOyIgYWxp +Z249ImNlbnRlciI+PCEtLVtpZiAoZ3RlIG1zbyA5KXwoSUUpXT48dGFibGUgd2lkdGg9IjEw +MCUiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIj48dHI+PHRk +IHdpZHRoPSIzNzVweCIgdmFsaWduPSJ0b3AiPjwhW2VuZGlmXS0tPg0KPHRhYmxlIGNsYXNz +PSJjb2x1bW4iIHN0eWxlPSJoZWlnaHQ6IGF1dG87IHZlcnRpY2FsLWFsaWduOiB0b3A7IGRp +c3BsYXk6IGlubGluZS10YWJsZTsgbWF4LXdpZHRoOiAzNzVweDsgYm9yZGVyLWNvbGxhcHNl +OiBjb2xsYXBzZTsiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9 +IjAiIGJvcmRlcj0iMCI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgY2xhc3M9InNvcnRhYmxlLWNv +bnRhaW5lciB1aS1zb3J0YWJsZSIgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHdpZHRo +OiAxMDAlOyIgdmFsaWduPSJ0b3AiIGFsaWduPSJjZW50ZXIiPg0KPHRhYmxlIGNsYXNzPSJ1 +bmktYmxvY2sgdGV4dC1ibG9jayIgc3R5bGU9IndpZHRoOiAxMDAlOyB0YWJsZS1sYXlvdXQ6 +IGZpeGVkOyBoZWlnaHQ6IGF1dG87IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRl +ci1zcGFjaW5nOiAwcHg7IGRpc3BsYXk6IGlubGluZS10YWJsZTsgdmVydGljYWwtYWxpZ246 +IHRvcDsgZm9udC1zaXplOiBtZWRpdW07IG1pbi1oZWlnaHQ6IGF1dG87IiB3aWR0aD0iMTAw +JSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPg0KPHRib2R5 +Pg0KPHRyPg0KPHRkIHN0eWxlPSJ3aWR0aDogMTAwJTsgYmFja2dyb3VuZC1jb2xvcjogcmdi +KDI1NSwgMjU1LCAyNTUpOyBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyBib3JkZXI6IG1lZGl1 +bSBub25lOyBoZWlnaHQ6IGF1dG87IiBjbGFzcz0iYmxvY2std3JhcHBlciIgdmFsaWduPSJ0 +b3AiPg0KPHRhYmxlIGNsYXNzPSJibG9jay13cmFwcGVyLWlubmVyLXRhYmxlIiBzdHlsZT0i +aGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgdGFibGUtbGF5b3V0OiBmaXhlZDsgYm9yZGVy +LXNwYWNpbmc6IDBweDsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgbWluLWhlaWdodDog +YXV0bzsiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIj4NCjx0 +Ym9keT4NCjx0cj4NCjx0ZCBzdHlsZT0id2lkdGg6IDEwMCU7IHBhZGRpbmc6IDhweDsgdmVy +dGljYWwtYWxpZ246IHRvcDsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogQXJpYWws +SGVsdmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OiAxNC40cHg7IGNvbG9yOiByZ2Io +MzQsIDM0LCAzNCk7IiBjbGFzcz0iY29udGVudC13cmFwcGVyIj4NCjxkaXYgY2xhc3M9ImNs +ZWFyZml4IiBzdHlsZT0ib3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsiPg0KPGRpdj5Ucnkg +bXkgdGlueSBzZWNyZXQgYW5kIGJlY29tZSBhIGxvdmVyIG9mIGFsbCBoaXMgbGlmZSE8L2Rp +dj4NCjwvZGl2Pg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjwvdGQ+DQo8 +L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3Rh +YmxlPg0KPCEtLVtpZiAoZ3RlIG1zbyA5KXwoSUUpXT48L3RkPjx0ZCB3aWR0aD0iMzc1cHgi +IHZhbGlnbj0idG9wIj48IVtlbmRpZl0tLT4NCjx0YWJsZSBjbGFzcz0iY29sdW1uIiBzdHls +ZT0iaGVpZ2h0OiBhdXRvOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyBkaXNwbGF5OiBpbmxpbmUt +dGFibGU7IG1heC13aWR0aDogMzc1cHg7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IiB3 +aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAi +Pg0KPHRib2R5Pg0KPHRyPg0KPHRkIGNsYXNzPSJzb3J0YWJsZS1jb250YWluZXIgdWktc29y +dGFibGUiIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogMTAwJTsiIHZhbGln +bj0idG9wIiBhbGlnbj0iY2VudGVyIj4NCjx0YWJsZSBjbGFzcz0idW5pLWJsb2NrIHRleHQt +YmxvY2siIHN0eWxlPSJ3aWR0aDogMTAwJTsgdGFibGUtbGF5b3V0OiBmaXhlZDsgaGVpZ2h0 +OiBhdXRvOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3BhY2luZzogMHB4 +OyBkaXNwbGF5OiBpbmxpbmUtdGFibGU7IHZlcnRpY2FsLWFsaWduOiB0b3A7IGZvbnQtc2l6 +ZTogbWVkaXVtOyBtaW4taGVpZ2h0OiBhdXRvOyIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5n +PSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIj4NCjx0Ym9keT4NCjx0cj4NCjx0ZCBz +dHlsZT0id2lkdGg6IDEwMCU7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1 +KTsgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgYm9yZGVyOiBtZWRpdW0gbm9uZTsgaGVpZ2h0 +OiBhdXRvOyIgY2xhc3M9ImJsb2NrLXdyYXBwZXIiIHZhbGlnbj0idG9wIj4NCjx0YWJsZSBj +bGFzcz0iYmxvY2std3JhcHBlci1pbm5lci10YWJsZSIgc3R5bGU9ImhlaWdodDogMTAwJTsg +d2lkdGg6IDEwMCU7IHRhYmxlLWxheW91dDogZml4ZWQ7IGJvcmRlci1zcGFjaW5nOiAwcHg7 +IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IG1pbi1oZWlnaHQ6IGF1dG87IiBjZWxsc3Bh +Y2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCI+DQo8dGJvZHk+DQo8dHI+DQo8 +dGQgc3R5bGU9IndpZHRoOiAxMDAlOyBwYWRkaW5nOiA4cHg7IHZlcnRpY2FsLWFsaWduOiB0 +b3A7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEFyaWFsLEhlbHZldGljYSxzYW5z +LXNlcmlmOyBsaW5lLWhlaWdodDogMTQuNHB4OyBjb2xvcjogcmdiKDM0LCAzNCwgMzQpOyIg +Y2xhc3M9ImNvbnRlbnQtd3JhcHBlciI+DQo8ZGl2IGNsYXNzPSJjbGVhcmZpeCIgc3R5bGU9 +Im92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7Ij4mbmJzcDs8L2Rpdj4NCjwvdGQ+DQo8L3Ry +Pg0KPC90Ym9keT4NCjwvdGFibGU+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxl +Pg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjwhLS1baWYgKGd0ZSBtc28g +OSl8KElFKV0+PC90ZD48L3RyPjwvdGFibGU+PCFbZW5kaWZdLS0+PC90ZD4NCjwvdHI+DQo8 +L3Rib2R5Pg0KPC90YWJsZT4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8 +L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPCEtLVtpZiAoZ3RlIG1zbyA5KXwo +SUUpXT48L3RkPjwvdHI+PC90YWJsZT48IVtlbmRpZl0tLT48IS0tW2lmIChndGUgbXNvIDkp +fChJRSldPjx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0i +MCIgd2lkdGg9Ijc1MCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZD48IVtlbmRpZl0tLT4NCjx0 +YWJsZSBjbGFzcz0idW5pLWJsb2NrIGltYWdlLWJsb2NrIiBzdHlsZT0id2lkdGg6IDEwMCU7 +IHRhYmxlLWxheW91dDogZml4ZWQ7IGhlaWdodDogYXV0bzsgYm9yZGVyLWNvbGxhcHNlOiBj +b2xsYXBzZTsgYm9yZGVyLXNwYWNpbmc6IDBweDsgZGlzcGxheTogaW5saW5lLXRhYmxlOyB2 +ZXJ0aWNhbC1hbGlnbjogdG9wOyBmb250LXNpemU6IG1lZGl1bTsgbWluLWhlaWdodDogYXV0 +bzsiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRl +cj0iMCI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9IndpZHRoOiAxMDAlOyBiYWNrZ3Jv +dW5kLWNvbG9yOiByZ2IoMjQ2LCAyNDYsIDI0Nik7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7 +IHBhZGRpbmc6IDBweDsgaGVpZ2h0OiBhdXRvOyIgY2xhc3M9ImJsb2NrLXdyYXBwZXIiIHZh +bGlnbj0idG9wIj4NCjx0YWJsZSBjbGFzcz0iYmxvY2std3JhcHBlci1pbm5lci10YWJsZSIg +c3R5bGU9ImhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IHRhYmxlLWxheW91dDogZml4ZWQ7 +IHRleHQtYWxpZ246IGNlbnRlcjsgYm9yZGVyLXNwYWNpbmc6IDBweDsgYm9yZGVyLWNvbGxh +cHNlOiBjb2xsYXBzZTsgbWluLWhlaWdodDogYXV0bzsgZm9udC1zaXplOiAwcHg7IiBjZWxs +c3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCI+DQo8dGJvZHk+DQo8dHI+ +DQo8dGQgc3R5bGU9IndpZHRoOiBhdXRvOyBoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGlubGlu +ZS10YWJsZTsiIGNsYXNzPSJjb250ZW50LXdyYXBwZXIiPg0KPHRhYmxlIGNsYXNzPSJjb250 +ZW50LWJveCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS10YWJsZTsgdmVydGljYWwtYWxpZ246 +IHRvcDsgd2lkdGg6IGF1dG87IGhlaWdodDogMTAwJTsgYm9yZGVyLXNwYWNpbmc6IDBweDsg +Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGlu +Zz0iMCIgYm9yZGVyPSIwIj4NCjx0Ym9keT4NCjx0cj4NCjx0ZCBzdHlsZT0idmVydGljYWwt +YWxpZ246IG1pZGRsZTsiPg0KPGRpdiBjbGFzcz0iaW1hZ2Utd3JhcHBlciBpbWFnZS1kcm9w +Ij48YSBjbGFzcz0iaW1hZ2UtbGluayIgaHJlZj0iaHR0cDovL2Zyb3plbmZpc2h1ay5jby51 +ay9jZ2kvP2NPVnoiIHRhcmdldD0iX2JsYW5rIj48aW1nIGNsYXNzPSJpbWFnZS1lbGVtZW50 +IiBzcmM9Imh0dHA6Ly9mczUuZGlyZWN0dXBsb2FkLm5ldC9pbWFnZXMvMTYwOTI3L211ZXh2 +M2t1LmpwZyIgYWx0PSJCZXN0IHBpbHVsZXMgZm9yIG1lbiAtIGRvIGl0IGludGVuc2VyISIg +c3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7IGJvcmRlcjogbWVkaXVtIG5vbmU7IHdpZHRoOiAx +MDAlOyBtYXgtd2lkdGg6IDc1MHB4OyBoZWlnaHQ6IGF1dG87IG91dGxpbmU6IG1lZGl1bSBu +b25lOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IiBpZD0iZ3JpZHN0ZXJfYmxvY2tfMTJfbWFp +bl9pbWciIHdpZHRoPSI3NTAiPjwvYT48L2Rpdj4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4N +CjwvdGFibGU+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPC90ZD4NCjwv +dHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjwhLS1baWYgKGd0ZSBtc28gOSl8KElFKV0+PC90 +ZD48L3RyPjwvdGFibGU+PCFbZW5kaWZdLS0+PCEtLVtpZiAoZ3RlIG1zbyA5KXwoSUUpXT48 +dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIHdpZHRo +PSI3NTAiIGFsaWduPSJjZW50ZXIiPjx0cj48dGQ+PCFbZW5kaWZdLS0+DQo8dGFibGUgY2xh +c3M9InVuaS1ibG9jayB0ZXh0LWJsb2NrIiBzdHlsZT0id2lkdGg6IDEwMCU7IHRhYmxlLWxh +eW91dDogZml4ZWQ7IGhlaWdodDogYXV0bzsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsg +Ym9yZGVyLXNwYWNpbmc6IDBweDsgZGlzcGxheTogaW5saW5lLXRhYmxlOyB2ZXJ0aWNhbC1h +bGlnbjogdG9wOyBmb250LXNpemU6IG1lZGl1bTsgbWluLWhlaWdodDogYXV0bzsiIHdpZHRo +PSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCI+DQo8 +dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9IndpZHRoOiAxMDAlOyBiYWNrZ3JvdW5kLWNvbG9y +OiByZ2IoMjQ2LCAyNDYsIDI0Nik7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IGJvcmRlcjog +bWVkaXVtIG5vbmU7IGhlaWdodDogYXV0bzsiIGNsYXNzPSJibG9jay13cmFwcGVyIiB2YWxp +Z249InRvcCI+DQo8dGFibGUgY2xhc3M9ImJsb2NrLXdyYXBwZXItaW5uZXItdGFibGUiIHN0 +eWxlPSJoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyB0YWJsZS1sYXlvdXQ6IGZpeGVkOyBi +b3JkZXItc3BhY2luZzogMHB4OyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBtaW4taGVp +Z2h0OiBhdXRvOyIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAi +Pg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJ3aWR0aDogMTAwJTsgcGFkZGluZzogMTBw +eCA4cHg7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGZvbnQtc2l6ZTogMjBweDsgZm9udC1m +YW1pbHk6IEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBsaW5lLWhlaWdodDogMjRweDsg +Y29sb3I6IHJnYig0OSwgNDksIDQ5KTsiIGNsYXNzPSJjb250ZW50LXdyYXBwZXIiPg0KPGRp +diBjbGFzcz0iY2xlYXJmaXgiIHN0eWxlPSJvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyI+ +DQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij5JbXBvdGVuY2UgbWVkaWNhdGlv +biBpcyA1MCUgZnJlZSB0aGlzIG1vbnRoISBEb24ndCBtaXNzIHRoaXMgYW1hemluZyBvcHBv +cnR1bml0eSE8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJs +ZT4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8IS0tW2lmIChndGUgbXNv +IDkpfChJRSldPjwvdGQ+PC90cj48L3RhYmxlPjwhW2VuZGlmXS0tPjwhLS1baWYgKGd0ZSBt +c28gOSl8KElFKV0+PHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9y +ZGVyPSIwIiB3aWR0aD0iNzUwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkPjwhW2VuZGlmXS0t +Pg0KPHRhYmxlIGNsYXNzPSJ1bmktYmxvY2sgdGV4dC1ibG9jayIgc3R5bGU9IndpZHRoOiAx +MDAlOyB0YWJsZS1sYXlvdXQ6IGZpeGVkOyBoZWlnaHQ6IGF1dG87IGJvcmRlci1jb2xsYXBz +ZTogY29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAwcHg7IGRpc3BsYXk6IGlubGluZS10YWJs +ZTsgdmVydGljYWwtYWxpZ246IHRvcDsgZm9udC1zaXplOiBtZWRpdW07IG1pbi1oZWlnaHQ6 +IGF1dG87IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBi +b3JkZXI9IjAiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJ3aWR0aDogMTAwJTsgYmFj +a2dyb3VuZC1jb2xvcjogcmdiKDI0NiwgMjQ2LCAyNDYpOyBiYWNrZ3JvdW5kLWltYWdlOiBu +b25lOyBib3JkZXI6IG1lZGl1bSBub25lOyBoZWlnaHQ6IGF1dG87IiBjbGFzcz0iYmxvY2st +d3JhcHBlciIgdmFsaWduPSJ0b3AiPg0KPHRhYmxlIGNsYXNzPSJibG9jay13cmFwcGVyLWlu +bmVyLXRhYmxlIiBzdHlsZT0iaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgdGFibGUtbGF5 +b3V0OiBmaXhlZDsgYm9yZGVyLXNwYWNpbmc6IDBweDsgYm9yZGVyLWNvbGxhcHNlOiBjb2xs +YXBzZTsgbWluLWhlaWdodDogYXV0bzsiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0i +MCIgYm9yZGVyPSIwIj4NCjx0Ym9keT4NCjx0cj4NCjx0ZCBzdHlsZT0id2lkdGg6IDEwMCU7 +IHBhZGRpbmc6IDEwcHggNDVweCA4cHg7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IGZvbnQt +c2l6ZTogMTRweDsgZm9udC1mYW1pbHk6IEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBs +aW5lLWhlaWdodDogMTYuOHB4OyBjb2xvcjogcmdiKDg4LCA4OCwgODgpOyIgY2xhc3M9ImNv +bnRlbnQtd3JhcHBlciI+DQo8ZGl2IGNsYXNzPSJjbGVhcmZpeCIgc3R5bGU9Im92ZXJmbG93 +LXdyYXA6IGJyZWFrLXdvcmQ7Ij4NCjxkaXY+T3VyIG9uLWxpbmUgcGhhcm1hY3kgaXMgdGhl +IHJpZ2h0IHBsYWNlIHRvIHNob3AgZm9yIG1vc3QgdHJ1c3RlZCwgaGlnaCBxdWFsaXR5IG1l +ZGljYXRpb25zITxicj4NCklmIHlvdSBhcmUgdW5kZXIgZm9ydHkgeW91IHNob3VsZCBhbHdh +eXMga2VlcCBhbiBleWUgb24gdGhlIGJhbGwhPC9kaXY+DQo8L2Rpdj4NCjwvdGQ+DQo8L3Ry +Pg0KPC90Ym9keT4NCjwvdGFibGU+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxl +Pg0KPCEtLVtpZiAoZ3RlIG1zbyA5KXwoSUUpXT48L3RkPjwvdHI+PC90YWJsZT48IVtlbmRp +Zl0tLT48IS0tW2lmIChndGUgbXNvIDkpfChJRSldPjx0YWJsZSBjZWxscGFkZGluZz0iMCIg +Y2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgd2lkdGg9Ijc1MCIgYWxpZ249ImNlbnRlciI+ +PHRyPjx0ZD48IVtlbmRpZl0tLT4NCjx0YWJsZSBjbGFzcz0idW5pLWJsb2NrIGJ1dHRvbi1i +bG9jayIgc3R5bGU9IndpZHRoOiAxMDAlOyB0YWJsZS1sYXlvdXQ6IGZpeGVkOyBoZWlnaHQ6 +IGF1dG87IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAwcHg7 +IGRpc3BsYXk6IGlubGluZS10YWJsZTsgdmVydGljYWwtYWxpZ246IHRvcDsgZm9udC1zaXpl +OiBtZWRpdW07IG1pbi1oZWlnaHQ6IGF1dG87IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9 +IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0 +eWxlPSJ3aWR0aDogMTAwJTsgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgbWluLWhlaWdodDog +YXV0bzsgaGVpZ2h0OiA1MHB4OyIgY2xhc3M9ImJsb2NrLXdyYXBwZXIiIHZhbGlnbj0ibWlk +ZGxlIj4NCjx0YWJsZSBjbGFzcz0iYmxvY2std3JhcHBlci1pbm5lci10YWJsZSIgc3R5bGU9 +ImhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7IHRhYmxlLWxheW91dDogZml4ZWQ7IGJvcmRl +ci1zcGFjaW5nOiAwcHg7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IG1pbi1oZWlnaHQ6 +IDUwcHg7IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCI+DQo8 +dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9IndpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50 +ZXI7IiBjbGFzcz0iY29udGVudC13cmFwcGVyIj4NCjx0YWJsZSBjbGFzcz0idmFsaWduLXdy +YXBwZXIiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtdGFibGU7IHdpZHRoOiBhdXRvOyBib3Jk +ZXItc3BhY2luZzogMHB4OyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyIgY2VsbHNwYWNp +bmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPg0KPHRib2R5Pg0KPHRyPg0KPHRk +IGNsYXNzPSJidXR0b24td3JhcHBlciIgc3R5bGU9ImJvcmRlcjogbWVkaXVtIG5vbmU7IGJv +cmRlci1yYWRpdXM6IDZweDsgcGFkZGluZzogMTVweCAxMHB4OyBiYWNrZ3JvdW5kLWNvbG9y +OiByZ2IoMjE5LCA0OCwgNTkpOyBoZWlnaHQ6IDE5cHg7IG1pbi1oZWlnaHQ6IDE5cHg7IiB2 +YWxpZ249Im1pZGRsZSIgYWxpZ249ImNlbnRlciI+PGEgY2xhc3M9Im1haWxidG4iIGhyZWY9 +Imh0dHA6Ly9mcm96ZW5maXNodWsuY28udWsvY2dpLz9jT1pjIiB0YXJnZXQ9Il9ibGFuayIg +c3R5bGU9IndpZHRoOjEwMCU7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1kZWNvcmF0aW9u +Om5vbmU7Ij48c3BhbiBjbGFzcz0iYnRuLWlubmVyIiBzdHlsZT0iZGlzcGxheTogaW5saW5l +OyBmb250LXNpemU6IDE2cHg7IGZvbnQtZmFtaWx5OiBBcmlhbCxIZWx2ZXRpY2Esc2Fucy1z +ZXJpZjsgbGluZS1oZWlnaHQ6IDE5LjJweDsgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsg +YmFja2dyb3VuZC1jb2xvcjogcmdiKDIxOSwgNDgsIDU5KTsgYm9yZGVyOiAwcHggbm9uZTsg +d29yZC1icmVhazogYnJlYWstYWxsOyI+RnJlZSBkZWFscyBhbmQgYmlnIHNhdmluZ3MgZm9y +IHRoaXMgc2Vhc29uIG9ubHkhPC9zcGFuPjwvYT48L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8 +L3RhYmxlPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjwvdGQ+DQo8L3Ry +Pg0KPC90Ym9keT4NCjwvdGFibGU+DQo8IS0tW2lmIChndGUgbXNvIDkpfChJRSldPjwvdGQ+ +PC90cj48L3RhYmxlPjwhW2VuZGlmXS0tPjwhLS1baWYgKGd0ZSBtc28gOSl8KElFKV0+PHRh +YmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiB3aWR0aD0i +NzUwIiBhbGlnbj0iY2VudGVyIj48dHI+PHRkPjwhW2VuZGlmXS0tPg0KPHRhYmxlIGNsYXNz +PSJ1bmktYmxvY2sgdGV4dC1ibG9jayIgc3R5bGU9IndpZHRoOiAxMDAlOyB0YWJsZS1sYXlv +dXQ6IGZpeGVkOyBoZWlnaHQ6IGF1dG87IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJv +cmRlci1zcGFjaW5nOiAwcHg7IGRpc3BsYXk6IGlubGluZS10YWJsZTsgdmVydGljYWwtYWxp +Z246IHRvcDsgZm9udC1zaXplOiBtZWRpdW07IG1pbi1oZWlnaHQ6IGF1dG87IiB3aWR0aD0i +MTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPg0KPHRi +b2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJ3aWR0aDogMTAwJTsgYmFja2dyb3VuZC1jb2xvcjog +cmdiKDI1NSwgMjU1LCAyNTUpOyBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyBib3JkZXI6IG1l +ZGl1bSBub25lOyBoZWlnaHQ6IGF1dG87IiBjbGFzcz0iYmxvY2std3JhcHBlciIgdmFsaWdu +PSJ0b3AiPg0KPHRhYmxlIGNsYXNzPSJibG9jay13cmFwcGVyLWlubmVyLXRhYmxlIiBzdHls +ZT0iaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgdGFibGUtbGF5b3V0OiBmaXhlZDsgYm9y +ZGVyLXNwYWNpbmc6IDBweDsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgbWluLWhlaWdo +dDogYXV0bzsiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIj4N +Cjx0Ym9keT4NCjx0cj4NCjx0ZCBzdHlsZT0id2lkdGg6IDEwMCU7IHBhZGRpbmc6IDhweDsg +dmVydGljYWwtYWxpZ246IHRvcDsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogQXJp +YWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OiAxNC40cHg7IGNvbG9yOiBy +Z2IoMzQsIDM0LCAzNCk7IiBjbGFzcz0iY29udGVudC13cmFwcGVyIj4NCjxkaXYgY2xhc3M9 +ImNsZWFyZml4IGNrZV9lZGl0YWJsZSBja2VfZWRpdGFibGVfaW5saW5lIGNrZV9jb250ZW50 +c19sdHIgY2tlX3Nob3dfYm9yZGVycyIgc3R5bGU9Im92ZXJmbG93LXdyYXA6IGJyZWFrLXdv +cmQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsiIHRhYmluZGV4PSIwIiBzcGVsbGNoZWNrPSJmYWxz +ZSIgcm9sZT0idGV4dGJveCIgYXJpYS1sYWJlbD0iZmFsc2UiIGFyaWEtZGVzY3JpYmVkYnk9 +ImNrZV80MyI+DQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij5vciB1c2UgdGhp +cyBsaW5rIGlmIGJ1dHRvbiBub3Qgd29yazwvZGl2Pg0KPGRpdiBzdHlsZT0idGV4dC1hbGln +bjogY2VudGVyOyI+PGEgZGF0YS1ja2Utc2F2ZWQtaHJlZj0iaHR0cDovL2tncmNvbnRyYWN0 +b3JzLm1vYmkvY2dpLz9jUGxnIiBocmVmPSJodHRwOi8va2dyY29udHJhY3RvcnMubW9iaS9j +Z2kvP2NPMXkiIHN0eWxlPSJjb2xvcjogcmdiKDczLCAxODMsIDUxKTsiIHRhcmdldD0iX2Js +YW5rIj5odHRwOi8va2dyY29udHJhY3RvcnMubW9iaS9jZ2kvP2NPOXk8L2E+PC9kaXY+DQo8 +L2Rpdj4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8L3RkPg0KPC90cj4N +CjwvdGJvZHk+DQo8L3RhYmxlPg0KPCEtLVtpZiAoZ3RlIG1zbyA5KXwoSUUpXT48L3RkPjwv +dHI+PC90YWJsZT48IVtlbmRpZl0tLT48IS0tW2lmIChndGUgbXNvIDkpfChJRSldPjx0YWJs +ZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgd2lkdGg9Ijc1 +MCIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZD48IVtlbmRpZl0tLT4NCjx0YWJsZSBjbGFzcz0i +dW5pLWJsb2NrIGNvbnRhaW5lci1ibG9jayIgc3R5bGU9IndpZHRoOiAxMDAlOyB0YWJsZS1s +YXlvdXQ6IGZpeGVkOyBoZWlnaHQ6IGF1dG87IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7 +IGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IGJvcmRlci1zcGFjaW5nOiAwcHg7IiB3aWR0aD0i +MTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPg0KPHRi +b2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJ3aWR0aDogMTAwJTsgcGFkZGluZzogMTBweDsgYm9y +ZGVyOiBtZWRpdW0gbm9uZTsiIGNsYXNzPSJibG9jay13cmFwcGVyIiB2YWxpZ249InRvcCI+ +DQo8dGFibGUgY2xhc3M9ImJsb2NrLXdyYXBwZXItaW5uZXItdGFibGUiIHN0eWxlPSJoZWln +aHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyB0YWJsZS1sYXlvdXQ6IGZpeGVkOyBib3JkZXItc3Bh +Y2luZzogMHB4OyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyIgY2VsbHNwYWNpbmc9IjAi +IGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxl +PSJ3aWR0aDoxMDAlOyIgY2xhc3M9ImNvbnRlbnQtd3JhcHBlciI+DQo8dGFibGUgY2xhc3M9 +ImNvbnRhaW5lci10YWJsZSBjb250ZW50LWJveCIgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWln +aHQ6IDEwMCU7IGJvcmRlci1zcGFjaW5nOiAwcHg7IGJvcmRlci1jb2xsYXBzZTogY29sbGFw +c2U7IiBpZD0iSkNvbFJlc2l6ZXIxIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAi +IGJvcmRlcj0iMCI+DQo8dGJvZHk+DQo8dHIgY2xhc3M9ImNvbnRhaW5lci1yb3ciPg0KPHRk +IGNsYXNzPSJ0ZC13cmFwcGVyIiBzdHlsZT0iZm9udC1zaXplOjA7dmVydGljYWwtYWxpZ246 +dG9wOyIgYWxpZ249ImNlbnRlciI+PCEtLVtpZiAoZ3RlIG1zbyA5KXwoSUUpXT48dGFibGUg +d2lkdGg9IjEwMCUiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIw +Ij48dHI+PHRkIHdpZHRoPSIzNjVweCIgdmFsaWduPSJ0b3AiPjwhW2VuZGlmXS0tPg0KPHRh +YmxlIGNsYXNzPSJjb2x1bW4iIHN0eWxlPSJoZWlnaHQ6IGF1dG87IHZlcnRpY2FsLWFsaWdu +OiB0b3A7IGRpc3BsYXk6IGlubGluZS10YWJsZTsgbWF4LXdpZHRoOiAzNjVweDsgYm9yZGVy +LWNvbGxhcHNlOiBjb2xsYXBzZTsiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2Vs +bHBhZGRpbmc9IjAiIGJvcmRlcj0iMCI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgY2xhc3M9InNv +cnRhYmxlLWNvbnRhaW5lciB1aS1zb3J0YWJsZSIgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0 +b3A7IHdpZHRoOiAxMDAlOyIgdmFsaWduPSJ0b3AiIGFsaWduPSJjZW50ZXIiPg0KPHRhYmxl +IGNsYXNzPSJ1bmktYmxvY2sgaW1hZ2UtYmxvY2siIHN0eWxlPSJ3aWR0aDogMTAwJTsgdGFi +bGUtbGF5b3V0OiBmaXhlZDsgaGVpZ2h0OiBhdXRvOyBib3JkZXItY29sbGFwc2U6IGNvbGxh +cHNlOyBib3JkZXItc3BhY2luZzogMHB4OyBkaXNwbGF5OiBpbmxpbmUtdGFibGU7IHZlcnRp +Y2FsLWFsaWduOiB0b3A7IGZvbnQtc2l6ZTogbWVkaXVtOyBtaW4taGVpZ2h0OiBhdXRvOyIg +d2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIw +Ij4NCjx0Ym9keT4NCjx0cj4NCjx0ZCBzdHlsZT0id2lkdGg6IDEwMCU7IGJhY2tncm91bmQt +Y29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgcGFk +ZGluZzogMHB4OyBoZWlnaHQ6IGF1dG87IiBjbGFzcz0iYmxvY2std3JhcHBlciIgdmFsaWdu +PSJ0b3AiPg0KPHRhYmxlIGNsYXNzPSJibG9jay13cmFwcGVyLWlubmVyLXRhYmxlIiBzdHls +ZT0iaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgdGFibGUtbGF5b3V0OiBmaXhlZDsgdGV4 +dC1hbGlnbjogY2VudGVyOyBib3JkZXItc3BhY2luZzogMHB4OyBib3JkZXItY29sbGFwc2U6 +IGNvbGxhcHNlOyBtaW4taGVpZ2h0OiBhdXRvOyBmb250LXNpemU6IDBweDsiIGNlbGxzcGFj +aW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIj4NCjx0Ym9keT4NCjx0cj4NCjx0 +ZCBzdHlsZT0id2lkdGg6IGF1dG87IGhlaWdodDogMTAwJTsgZGlzcGxheTogaW5saW5lLXRh +YmxlOyIgY2xhc3M9ImNvbnRlbnQtd3JhcHBlciI+DQo8dGFibGUgY2xhc3M9ImNvbnRlbnQt +Ym94IiBzdHlsZT0iZGlzcGxheTogaW5saW5lLXRhYmxlOyB2ZXJ0aWNhbC1hbGlnbjogdG9w +OyB3aWR0aDogYXV0bzsgaGVpZ2h0OiAxMDAlOyBib3JkZXItc3BhY2luZzogMHB4OyBib3Jk +ZXItY29sbGFwc2U6IGNvbGxhcHNlOyIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIw +IiBib3JkZXI9IjAiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGln +bjogbWlkZGxlOyI+DQo8ZGl2IGNsYXNzPSJpbWFnZS13cmFwcGVyIGltYWdlLWRyb3AiPjxh +IGNsYXNzPSJpbWFnZS1saW5rIiBocmVmPSJodHRwOi8vZWNvbnRyYWN0b3JzLmNvbS9jZ2kv +P2NPN3UiIHRhcmdldD0iX2JsYW5rIj48aW1nIGNsYXNzPSJpbWFnZS1lbGVtZW50IiBzcmM9 +Imh0dHA6Ly9pbWc2LnVwbG9hZGhvdXNlLmNvbS9maWxldXBsb2Fkcy8yMjkwMS8yMjkwMTE2 +NjVhNDc3Nzk1N2ExNWFmOTM5ZGE4OTZkMWMyZDNjODk5LmdpZiIgYWx0PSJCZXN0IHBpbHVs +ZXMgZm9yIG1lbiAtIGRvIGl0IGludGVuc2VyISIgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7 +IGJvcmRlcjogbWVkaXVtIG5vbmU7IHdpZHRoOiBhdXRvOyBtYXgtd2lkdGg6IDIwMHB4OyBo +ZWlnaHQ6IGF1dG87IG91dGxpbmU6IG1lZGl1bSBub25lOyB0ZXh0LWRlY29yYXRpb246IG5v +bmU7IiBpZD0iZ3JpZHN0ZXJfYmxvY2tfMzJfbWFpbl9pbWciIHdpZHRoPSIxMzkiPjwvYT48 +L2Rpdj4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8L3RkPg0KPC90cj4N +CjwvdGJvZHk+DQo8L3RhYmxlPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4N +CjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8IS0tW2lmIChndGUgbXNvIDkp +fChJRSldPjwvdGQ+PHRkIHdpZHRoPSIzNjVweCIgdmFsaWduPSJ0b3AiPjwhW2VuZGlmXS0t +Pg0KPHRhYmxlIGNsYXNzPSJjb2x1bW4iIHN0eWxlPSJoZWlnaHQ6IGF1dG87IHZlcnRpY2Fs +LWFsaWduOiB0b3A7IGRpc3BsYXk6IGlubGluZS10YWJsZTsgbWF4LXdpZHRoOiAzNjVweDsg +Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0i +MCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgY2xh +c3M9InNvcnRhYmxlLWNvbnRhaW5lciB1aS1zb3J0YWJsZSIgc3R5bGU9InZlcnRpY2FsLWFs +aWduOiB0b3A7IHdpZHRoOiAxMDAlOyIgdmFsaWduPSJ0b3AiIGFsaWduPSJjZW50ZXIiPg0K +PHRhYmxlIGNsYXNzPSJ1bmktYmxvY2sgdGV4dC1ibG9jayIgc3R5bGU9IndpZHRoOiAxMDAl +OyB0YWJsZS1sYXlvdXQ6IGZpeGVkOyBoZWlnaHQ6IGF1dG87IGJvcmRlci1jb2xsYXBzZTog +Y29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAwcHg7IGRpc3BsYXk6IGlubGluZS10YWJsZTsg +dmVydGljYWwtYWxpZ246IHRvcDsgZm9udC1zaXplOiBtZWRpdW07IG1pbi1oZWlnaHQ6IGF1 +dG87IiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3Jk +ZXI9IjAiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxlPSJ3aWR0aDogMTAwJTsgYmFja2dy +b3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyBiYWNrZ3JvdW5kLWltYWdlOiBub25l +OyBib3JkZXI6IG1lZGl1bSBub25lOyBoZWlnaHQ6IGF1dG87IiBjbGFzcz0iYmxvY2std3Jh +cHBlciIgdmFsaWduPSJ0b3AiPg0KPHRhYmxlIGNsYXNzPSJibG9jay13cmFwcGVyLWlubmVy +LXRhYmxlIiBzdHlsZT0iaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgdGFibGUtbGF5b3V0 +OiBmaXhlZDsgYm9yZGVyLXNwYWNpbmc6IDBweDsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBz +ZTsgbWluLWhlaWdodDogYXV0bzsiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIg +Ym9yZGVyPSIwIj4NCjx0Ym9keT4NCjx0cj4NCjx0ZCBzdHlsZT0id2lkdGg6IDEwMCU7IHBh +ZGRpbmc6IDhweDsgdmVydGljYWwtYWxpZ246IHRvcDsgZm9udC1zaXplOiAxNHB4OyBmb250 +LWZhbWlseTogQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OiAxNi44 +cHg7IGNvbG9yOiByZ2IoMzQsIDM0LCAzNCk7IiBjbGFzcz0iY29udGVudC13cmFwcGVyIj4N +CjxkaXYgY2xhc3M9ImNsZWFyZml4IiBzdHlsZT0ib3ZlcmZsb3ctd3JhcDogYnJlYWstd29y +ZDsiPjxoZWFkZXI+PC9oZWFkZXI+PGJyPg0KQWxzbyB3ZSBoYXZlPGJyPg0KLSBTbGVlcCBB +aWQ8YnI+DQotIEV5ZSBDYXJlPGJyPg0KLSBNZW4ncyBIZWFsdGg8YnI+DQotIEVwaWxlcHN5 +PGJyPg0KLi4uLiBhbmQgbW9yZSB0aGFuIDIuMDAwIHBvc2l0aW9uczxicj4NCjxvbD48cD48 +L3A+PC9vbD48L2Rpdj4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8L3Rk +Pg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0K +PC90YWJsZT4NCjwhLS1baWYgKGd0ZSBtc28gOSl8KElFKV0+PC90ZD48L3RyPjwvdGFibGU+ +PCFbZW5kaWZdLS0+PC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjwvdGQ+DQo8 +L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3Rh +YmxlPg0KPCEtLVtpZiAoZ3RlIG1zbyA5KXwoSUUpXT48L3RkPjwvdHI+PC90YWJsZT48IVtl +bmRpZl0tLT48IS0tW2lmIChndGUgbXNvIDkpfChJRSldPjx0YWJsZSBjZWxscGFkZGluZz0i +MCIgY2VsbHNwYWNpbmc9IjAiIGJvcmRlcj0iMCIgd2lkdGg9Ijc1MCIgYWxpZ249ImNlbnRl +ciI+PHRyPjx0ZD48IVtlbmRpZl0tLT4NCjx0YWJsZSBjbGFzcz0idW5pLWJsb2NrIGxpbmUt +YmxvY2siIHN0eWxlPSJ3aWR0aDogMTAwJTsgdGFibGUtbGF5b3V0OiBmaXhlZDsgaGVpZ2h0 +OiBhdXRvOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3BhY2luZzogMHB4 +OyBkaXNwbGF5OiBpbmxpbmUtdGFibGU7IHZlcnRpY2FsLWFsaWduOiB0b3A7IGZvbnQtc2l6 +ZTogbWVkaXVtOyBtaW4taGVpZ2h0OiBhdXRvOyIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5n +PSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIj4NCjx0Ym9keT4NCjx0cj4NCjx0ZCBz +dHlsZT0id2lkdGg6IDEwMCU7IGJhY2tncm91bmQtY29sb3I6IHJnYig0OSwgNDksIDQ5KTsg +YmFja2dyb3VuZC1pbWFnZTogbm9uZTsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgaGVpZ2h0 +OiAxMHB4OyIgY2xhc3M9ImJsb2NrLXdyYXBwZXIiIHZhbGlnbj0idG9wIj4NCjx0YWJsZSBj +bGFzcz0iYmxvY2std3JhcHBlci1pbm5lci10YWJsZSIgc3R5bGU9ImhlaWdodDogMTAwJTsg +d2lkdGg6IDEwMCU7IHRhYmxlLWxheW91dDogZml4ZWQ7IGJvcmRlci1zcGFjaW5nOiAwcHg7 +IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IG1pbi1oZWlnaHQ6IDEwcHg7IiBjZWxsc3Bh +Y2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJvcmRlcj0iMCI+DQo8dGJvZHk+DQo8dHI+DQo8 +dGQgc3R5bGU9IndpZHRoOiAxMDAlOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyBoZWlnaHQ6 +IDEwcHg7IG1pbi1oZWlnaHQ6IDEwcHg7IiBjbGFzcz0iY29udGVudC13cmFwcGVyIj4NCjx0 +YWJsZSBzdHlsZT0id2lkdGg6IDEwMCU7IHRhYmxlLWxheW91dDogZml4ZWQ7IGJvcmRlci1z +cGFjaW5nOiAwcHg7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGZvbnQtc2l6ZTogMHB4 +OyIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPg0KPHRib2R5 +Pg0KPHRyPg0KPHRkIGNsYXNzPSJzZXBhcmF0b3ItbGluZSIgc3R5bGU9IndpZHRoOiAxMDAl +OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA0LCAyMDQsIDIwNCk7IGhlaWdodDogMXB4OyBt +aW4taGVpZ2h0OiAxcHg7IG1heC1oZWlnaHQ6IDFweDsgbGluZS1oZWlnaHQ6IDFweDsiPiZu +YnNwOzwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8L3RkPg0KPC90cj4NCjwv +dGJvZHk+DQo8L3RhYmxlPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjwh +LS1baWYgKGd0ZSBtc28gOSl8KElFKV0+PC90ZD48L3RyPjwvdGFibGU+PCFbZW5kaWZdLS0+ +PCEtLVtpZiAoZ3RlIG1zbyA5KXwoSUUpXT48dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxz +cGFjaW5nPSIwIiBib3JkZXI9IjAiIHdpZHRoPSI3NTAiIGFsaWduPSJjZW50ZXIiPjx0cj48 +dGQ+PCFbZW5kaWZdLS0+DQo8dGFibGUgY2xhc3M9InVuaS1ibG9jayB0ZXh0LWJsb2NrIiBz +dHlsZT0id2lkdGg6IDEwMCU7IHRhYmxlLWxheW91dDogZml4ZWQ7IGhlaWdodDogYXV0bzsg +Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgYm9yZGVyLXNwYWNpbmc6IDBweDsgZGlzcGxh +eTogaW5saW5lLXRhYmxlOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyBmb250LXNpemU6IG1lZGl1 +bTsgbWluLWhlaWdodDogYXV0bzsiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iMCIgY2Vs +bHBhZGRpbmc9IjAiIGJvcmRlcj0iMCI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgc3R5bGU9Indp +ZHRoOiAxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ5LCAyNDksIDI0OSk7IGJhY2tn +cm91bmQtaW1hZ2U6IG5vbmU7IGJvcmRlcjogbWVkaXVtIG5vbmU7IGhlaWdodDogYXV0bzsi +IGNsYXNzPSJibG9jay13cmFwcGVyIiB2YWxpZ249InRvcCI+DQo8dGFibGUgY2xhc3M9ImJs +b2NrLXdyYXBwZXItaW5uZXItdGFibGUiIHN0eWxlPSJoZWlnaHQ6IDEwMCU7IHdpZHRoOiAx +MDAlOyB0YWJsZS1sYXlvdXQ6IGZpeGVkOyBib3JkZXItc3BhY2luZzogMHB4OyBib3JkZXIt +Y29sbGFwc2U6IGNvbGxhcHNlOyBtaW4taGVpZ2h0OiBhdXRvOyIgY2VsbHNwYWNpbmc9IjAi +IGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHN0eWxl +PSJ3aWR0aDogMTAwJTsgcGFkZGluZzogMjBweCA1MHB4IDBweDsgdmVydGljYWwtYWxpZ246 +IHRvcDsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogQXJpYWwsSGVsdmV0aWNhLHNh +bnMtc2VyaWY7IGxpbmUtaGVpZ2h0OiAxNC40cHg7IGNvbG9yOiByZ2IoODUsIDg2LCA5MCk7 +IiBjbGFzcz0iY29udGVudC13cmFwcGVyIj4NCjxkaXYgY2xhc3M9ImNsZWFyZml4IiBzdHls +ZT0ib3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsiPllvdSBjYW4gPGEgaHJlZj0iaHR0cDov +L2Vjb250cmFjdG9ycy5jb20vY2dpLz9jT1p6IiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9ImNv +bG9yOiByZ2IoNzMsIDE4MywgNTEpOyI+dW5zdWJzY3JpYmU8L2E+PGJyPg0KJm5ic3A7PC9k +aXY+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPC90ZD4NCjwvdHI+DQo8 +L3Rib2R5Pg0KPC90YWJsZT4NCjwhLS1baWYgKGd0ZSBtc28gOSl8KElFKV0+PC90ZD48L3Ry +PjwvdGFibGU+PCFbZW5kaWZdLS0+PC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4N +CjwhLS1baWYgKGd0ZSBtc28gOSl8KElFKV0+PC90ZD48L3RyPjwvdGFibGU+PCFbZW5kaWZd +LS0+PC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjwvdGQ+DQo8L3RyPg0KPC90 +Ym9keT4NCjwvdGFibGU+DQo8L2NlbnRlcj4NCjwvYm9keT4NCjwvaHRtbD4=g + diff --git a/resource/virus-message.msg b/resource/virus-message.msg new file mode 100644 index 0000000..87ee437 --- /dev/null +++ b/resource/virus-message.msg @@ -0,0 +1,188 @@ +X-Deliver-Recipient: support@atechtelecoms.com +X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on + deliver04.infra.atech.io +X-Spam-Level: * +X-Spam-Status: No, score=1.6 required=5.0 tests=FREEMAIL_FROM, + RCVD_IN_BRBL_LASTEXT,RCVD_IN_SORBS_DUL autolearn=no autolearn_force=no + version=3.4.0 +Received: from [42.114.134.221] (::ffff:42.114.134.221 [::ffff:42.114.134.221]) by deliver04.infra.atech.io with SMTP; Wed, 05 Oct 2016 16:22:19 +0100 +Content-Type: multipart/mixed; boundary=Apple-Mail-80A46596-9D37-F26A-3658-64E50C02BB8F +Content-Transfer-Encoding: 7bit +From: MADELINE WORBRICK +Mime-Version: 1.0 (1.0) +Date: Wed, 05 Oct 2016 22:15:41 +0700 +Subject: Picture 94 +Message-Id: +To: support +X-Mailer: iPhone Mail (13B143) + + +--Apple-Mail-80A46596-9D37-F26A-3658-64E50C02BB8F +Content-Type: text/plain; + charset=us-ascii +Content-Transfer-Encoding: 7bit + + + + +--Apple-Mail-80A46596-9D37-F26A-3658-64E50C02BB8F +Content-Type: application/octet-stream; + name="Picture 94.zip"; + x-apple-part-url=3E4E7DDD-3582-D2A8-20BA-13FFE1358F7E +Content-Disposition: attachment; + filename="Picture 94.zip" +Content-Transfer-Encoding: base64 + +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 +AAAA + +--Apple-Mail-80A46596-9D37-F26A-3658-64E50C02BB8F--