# rubocop:disable all
require 'test_helper'

class EmailProcessTest < ActiveSupport::TestCase
  test 'process simple' do
    Ticket.destroy_all

    files = [
      {
        data: 'From: me@example.com
To: customer@example.com
Subject: some subject

Some Text',
        channel: {
          trusted: false,
        },
        success: true,
      },
      {
        data: "From: my_own_zammad@example.com
To: customer_which_is_routed_into_my_zammad@example.com
Subject: some subject
Message-ID: <1234@#{Setting.get('fqdn')}>

Some Text",
        channel: {
          trusted: false,
        },
        success: true,
      },
      {
        data: "From: my_own_zammad@example.com
To: customer_which_is_routed_into_my_zammad@example.com
Subject: some subject
Message-ID: <1234@#{Setting.get('fqdn')}>
X-Loop: yes
Precedence: bulk
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All

Some Text",
        channel: {
          trusted: false,
        },
        success: false,
      },
      {
        data: "From: me@example.com
To: customer@example.com
Subject: äöü some subject 1

Some Textäöü",
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'äöü some subject 1',
          },
          1 => {
            body: 'Some Textäöü',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
      },
      {
        data: "From: me@exampl'e.com
To: customer@exampl'e.com
Subject: äöü some subject 2

Some Textäöü",
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'äöü some subject 2',
          },
          1 => {
            body: 'Some Textäöü',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: '',
              lastname: '',
              fullname: 'me@exampl\'e.com',
              email: 'me@exampl\'e.com',
            },
            {
              firstname: '',
              lastname: '',
              fullname: 'customer@exampl\'e.com',
              email: 'customer@exampl\'e.com',
            },
          ],
        },
      },
      {
        data: "Sender: me_sender@example.com
To: customer@example.com
Subject: äöü some subject 3

Some Textäöü",
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'äöü some subject 3',
          },
          1 => {
            body: 'Some Textäöü',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: '',
              lastname: '',
              fullname: 'me@example.com',
              email: 'me@example.com',
            },
            {
              firstname: '',
              lastname: '',
              fullname: 'customer@example.com',
              email: 'customer@example.com',
            },
          ],
        },
      },
      {
        data: "From: me@example.com
To: customer@example.com
Subject:

Some Textäöü without subject#1",
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: '-',
          },
          1 => {
            body: 'Some Textäöü without subject#1',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
      },
      {
        data: "From: me@example.com
To: customer@example.com

Some Textäöü without subject#2",
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: '-',
          },
          1 => {
            body: 'Some Textäöü without subject#2',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
      },
      {
        data: "From: me@example.com
To: customer@example.com
Subject: äöü some subject 3

Some Textäöü".encode('ISO-8859-1'),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: '??? some subject 3', # it's ok, because subject need to be 7bit encoded
          },
          1 => {
            body: 'Some Text???', # it's ok, because no content-type is given
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
      },
      {
        data: 'From: Bob Smith <customer_with_blank_at_end@example.com>                                                                                                                          >
To: zammad@example.com
Subject: abc some subject

Some Text with stange from line',
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'abc some subject',
          },
          1 => {
            body: 'Some Text with stange from line',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: 'Bob',
              lastname: 'Smith',
              fullname: 'Bob Smith',
              email: 'customer_with_blank_at_end@example.com',
            },
          ],
        },
      },
      {
        data: 'From: dr. daniel rodriguez <info_dr_daniel"@example.de>
To: zammad@example.com
Subject: abc some subject

Some Text with stange from line',
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'abc some subject',
          },
          1 => {
            body: 'Some Text with stange from line',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: 'dr. daniel',
              lastname: 'Rodriguez',
              fullname: 'dr. daniel Rodriguez',
              email: 'info_dr_daniel@example.de',
            },
          ],
        },
      },
      {
        data: 'From: Dr. Daniel Rodriguez <info_dr_daniel_r"@example.de>
To: zammad@example.com
Subject: abc some subject

Some Text with stange from line',
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'abc some subject',
          },
          1 => {
            body: 'Some Text with stange from line',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: 'Dr. Daniel',
              lastname: 'Rodriguez',
              fullname: 'Dr. Daniel Rodriguez',
              email: 'info_dr_daniel_r@example.de',
            },
          ],
        },
      },
      {
        data: 'From: akademie@example.com> <ilka.mueller@example.com>
To: zammad@example.com
Subject: abc some subject

Some Text with stange from line',
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'abc some subject',
          },
          1 => {
            body: 'Some Text with stange from line',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: 'akademie@example.com>',
              lastname: '',
              fullname: 'akademie@example.com>',
              email: 'ilka.mueller@example.com',
            },
          ],
        },
      },
      {
        data: 'From: yann degran <yann@example.com>
To: zammad@example.com
Subject: test name in downcase #1

test name in downcase #1',
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'test name in downcase #1',
          },
          1 => {
            body: 'test name in downcase #1',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: 'Yann',
              lastname: 'Degran',
              fullname: 'Yann Degran',
              email: 'yann@example.com',
            },
          ],
        },
      },
      {
        data: 'From: yann Degran <yann2@example.com>
To: zammad@example.com
Subject: test name in downcase #2

test name in downcase #2',
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'test name in downcase #2',
          },
          1 => {
            body: 'test name in downcase #2',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: 'Yann',
              lastname: 'Degran',
              fullname: 'Yann Degran',
              email: 'yann2@example.com',
            },
          ],
        },
      },
      {
        data: 'From: YANN DEGRAN <yann3@example.com>
To: zammad@example.com
Subject: test name in downcase #3

test name in downcase #3',
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'test name in downcase #3',
          },
          1 => {
            body: 'test name in downcase #3',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: 'Yann',
              lastname: 'Degran',
              fullname: 'Yann Degran',
              email: 'yann3@example.com',
            },
          ],
        },
      },
      {
        data: "From: Realname
To: customer@example.com
Subject: abc some subject
Reply-To: \"no-reply-without-from-email@example.com\" <no-reply-without-from-email@example.com>

Some Text",
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'abc some subject',
          },
          1 => {
            body: 'Some Text',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: 'no-reply-without-from-email@example.com',
              lastname: '',
              fullname: 'no-reply-without-from-email@example.com',
              email: 'no-reply-without-from-email@example.com',
            },
          ],
        },
      },
      {
        data: "From: sender@example.com
To: some_new_customer423@example.com
Cc: some recipient <some with invalid@example.com>, max <somebody_else@example.com>
Subject: abc some subject2

Some Text",
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'abc some subject2',
          },
          1 => {
            body: 'Some Text',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: 'Max',
              lastname: '',
              fullname: 'Max',
              email: 'somebody_else@example.com',
            },
            {
              firstname: '',
              lastname: '',
              fullname: 'some_new_customer423@example.com',
              email: 'some_new_customer423@example.com',
            },
          ],
        },
      },
      {
        data: "From: sender@example.com
To: some_new_customer424@example.com
Subject: abc some subject3
Reply-To: some user <no-reply-with invalid-spaces@example.com>

Some Text",
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'abc some subject3',
          },
          1 => {
            body: 'Some Text',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: '',
              lastname: '',
              fullname: 'some_new_customer424@example.com',
              email: 'some_new_customer424@example.com',
            },
          ],
        },
      },
      {
        data: "From: me@example.com
To: Alexander Ha <service-d1@example.com>,
 Alexander Re <re-mail@example.de>, Hauke Ko
 <haukek@example.de>, Jens Ro <jrro@example.de>,
 =?UTF-8?Q?B=c3=bc_Yi?= <bue-y@example.de>,
 Ja Bl <bj15@example.com>,
 \"lars.73@example.de\" <lars.73@example.de>,
 Luk Hl <LM.Hl@example.de>,
 =?UTF-8?Q?Ma_Gr=c3=b6ner_<Ma_G=c3=b6rner?= <Ma.g@example.com>,
 Malte Bi <mbi@example.de>, =?UTF-8?Q?Ma_Bfu=c3=9f?=
 <ma-b@example.de>, Marco Fe <marco.fe@example.de>,
 heidt@example.de, matt.ga@example.com,
 Nick Ku <nickKu@example.com>, Sergej I <I@example.net>,
 Thomas Ga <SpediGa@example.de>,
 Peter Wo <peter.Wo@example.com>,
 =?UTF-8?B?SsO8cmdlbiB2b24gUsO2bm4=?= <juergen.vr@example.com>,
 Frank-Ingo Br <online@example.de>
Subject: test 1

test 1",
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'test 1',
          },
          1 => {
            body: 'test 1',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: 'Alexander',
              lastname: 'Ha',
              fullname: 'Alexander Ha',
              email: 'service-d1@example.com',
            },
            {
              firstname: 'Alexander',
              lastname: 'Re',
              fullname: 'Alexander Re',
              email: 're-mail@example.de',
            },
            {
              firstname: 'Ma',
              lastname: 'Gröner',
              fullname: 'Ma Gröner',
              email: 'ma.g@example.com',
            },
          ],
        }
      },
      {
        data: "From: me@example.com
To: customer@example.com
Subject: Subject: =?utf-8?B?44CQ5LiT5Lia5Li65oKo5rOo5YaM6aaZ5riv5Y+K5rW35aSW5YWs5Y+477yI5aW95aSE5aSa5aSa77yJ?=
        =?utf-8?B?44CR44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA?=
        =?utf-8?B?44CA44CA44CA44CA44CA44CA44CA44CA5Lq654mpICAgICAgICAgIA==?=
        =?utf-8?B?ICAgICAgICAgIOS6kuiBlOe9keS6i+eZvuW6puaWsOmXu+eLrOWutg==?=
        =?utf-8?B?5Ye65ZOB5Lyg5aqS5o2i5LiA5om55o235YWL5oi057u05pav5p2v5Yaz6LWb5YmN5Lu75ZG95Li05pe2?=
        =?utf-8?B?6aKG6ZifIOWJjemihumYn+WboOeXheS9j+mZouacgOaWsDrnm5bkuJbmsb3ovaborq8gMQ==?=
        =?utf-8?B?MeaciDbml6XvvIzpgJrnlKjmsb3ovablrqPluIPku4rlubQxMOaciOS7veWcqOWNjumUgA==?=
        =?utf-8?B?6YePLi4u5YeP5oyB5LiJ54m557Si6YGTIOWtn+WHr+WwhuWFqOWKm+WPkeWxlea5mOmEgg==?=
        =?utf-8?B?5oOF5rGf6Z2S5pGE5b2x5L2c5ZOB56eR5oqA5pel5oql6K6vIO+8iOiusOiAhei/h+WbveW/oCA=?=
        =?utf-8?B?6YCa6K6v5ZGY6ZmI6aOe54eV77yJ5rGf6IuP55yB5peg57q/55S156eR5a2m56CU56m25omA5pyJ6ZmQ?=
        =?utf-8?B?5YWs5Y+46Zmi5aOr5bel5L2c56uZ5pel5YmN5q2j5byP5bu6Li4uW+ivpue7hl0=?=

Some Text",
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: '【专业为您注册香港及海外公司（好处多多）】　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　',
          },
          1 => {
            body: 'Some Text',
            sender: 'Customer',
            type: 'email',
          },
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail021.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'World Best DRUGS Mall For a Reasonable Price.',
          },
          1 => {
            content_type: 'text/html',
            body: %{_________________________________________________________________________________Please beth saw his head <br>
<div>
<table border="0" cellspacing="5" style="color:#e0e7e8; background-color:#e3efef; font-size:1px;">
<tr>
<td colspan="2">9õh<span style="color:#f18246;">H</span>3ÿo<span style="color:#f18246;">I</span>Úõ´<span style="color:#f18246;">G</span>Ã¿i<span style="color:#f18246;">H</span>±6u<span style="color:#f18246;">-</span>û◊N<span style="color:#f18246;">Q</span>4ùä<span style="color:#f18246;">U</span>¹aw<span style="color:#f18246;">A</span>q¹J<span style="color:#f18246;">L</span>ZμÒ<span style="color:#f18246;">I</span>icg<span style="color:#f18246;">T</span>1ζ2<span style="color:#f18246;">Y</span>7⊆t<span style="color:#f18246;"> </span>63‘<span style="color:#f18246;">M</span>ñ36<span style="color:#f18246;">E</span>ßÝ→<span style="color:#f18246;">D</span>Aå†<span style="color:#f18246;">I</span>048<span style="color:#f18246;">C</span>vJ9<span style="color:#f18246;">A</span>↑3i<span style="color:#f18246;">T</span>c4É<span style="color:#f18246;">I</span>ΥvX<span style="color:#f18246;">O</span>50ñ<span style="color:#f18246;">N</span>ÁFJ<span style="color:#f18246;">S</span>ð­r<span style="color:#f18246;"> </span>154<span style="color:#f18246;">F</span>1HP<span style="color:#f18246;">O</span>À£C<span style="color:#f18246;">R</span>xZp<span style="color:#f18246;"> </span>tLî<span style="color:#f18246;">T</span>9öX<span style="color:#f18246;">H</span>1b3<span style="color:#f18246;">E</span>s±W<span style="color:#f18246;"> </span>mNà<span style="color:#f18246;">B</span>g3õ<span style="color:#f18246;">E</span>bPŒ<span style="color:#f18246;">S</span>úfτ<span style="color:#f18246;">T</span>óY4<span style="color:#f18246;"> </span>sUÖ<span style="color:#f18246;">P</span>ÒζΔ<span style="color:#f18246;">R</span>Fkc<span style="color:#f18246;">I</span>Õ1™<span style="color:#f18246;">C</span>ÓZ3<span style="color:#f18246;">E</span>ΛRq<span style="color:#f18246;">!</span>Cass is good to ask what that</td>
</tr>
<tr>
<td align="center" colspan="2">86Ë<span style="color:#18136c;"><a href="http://piufup.medicatingsafemart.ru" rel="nofollow noreferrer noopener" title="http://piufup.medicatingsafemart.ru" target="_blank"><b><span style="color:#f5e5b3;">ÏuÕ</span>C L I C K H E R E<span style="color:#fae8b3;">28M</span></b></a></span>Luke had been thinking about that.<br>Shannon said nothing in fact they. Matt placed the sofa with amy smiled. Since the past him with more. Maybe he checked the phone. Neither did her name only. Ryan then went inside matt.<br>Maybe we can have anything you sure.</td>
</tr>
<tr>
<td colspan="2">á•X<span style="color:#18136c;">M</span>YÍÅ<span style="color:#18136c;">E</span>E£Ó<span style="color:#18136c;">N</span>°kP<span style="color:#18136c;">'</span>dÄÅ<span style="color:#18136c;">S</span>4⌉d<span style="color:#18136c;"> </span>√p¨<span style="color:#18136c;">H</span>Σ&gt;j<span style="color:#18136c;">E</span>4y4<span style="color:#18136c;">A</span>Cüû<span style="color:#18136c;">L</span>ì“v<span style="color:#18136c;">T</span>∧4t<span style="color:#18136c;">H</span>XÆX<span style="color:#18136c;">:</span>
</td>
</tr>
<tr>
<td>x5V<span style="color:#18136c;">V</span>"¹t<span style="color:#18136c;">i</span>çÂa<span style="color:#18136c;">a</span>Φ3f<span style="color:#18136c;">g</span>¦zè<span style="color:#18136c;">r</span>«°h<span style="color:#18136c;">a</span>eJw<span style="color:#18136c;"> </span>n§V<span style="color:#18136c;">a</span>879<span style="color:#18136c;">s</span>Æ3j<span style="color:#18136c;"> </span>f¶ï<span style="color:#18136c;">l</span>Þ9l<span style="color:#18136c;">o</span>5F¾<span style="color:#18136c;">w</span>ν¶1<span style="color:#18136c;"> </span>κψ›<span style="color:#18136c;">a</span>9f4<span style="color:#18136c;">s</span>LsL<span style="color:#18136c;"> </span>ùVo<span style="color:#18136c;">$</span>v3x<span style="color:#18136c;">1</span>¸nz<span style="color:#18136c;">.</span>uÈ¦<span style="color:#18136c;">1</span>H4s<span style="color:#18136c;">3</span>5Ô7</td>
<td>yoQ<span style="color:#18136c;">C</span>ÄFM<span style="color:#18136c;">i</span>Mzd<span style="color:#18136c;">a</span>¯Zε<span style="color:#18136c;">l</span>ÝHN<span style="color:#18136c;">i</span>¬cÚ<span style="color:#18136c;">s</span>ù–ϖ<span style="color:#18136c;"> </span>DYh<span style="color:#18136c;">a</span>ã7N<span style="color:#18136c;">s</span>4Ö·<span style="color:#18136c;"> </span>n3d<span style="color:#18136c;">l</span>1XÆ<span style="color:#18136c;">o</span>¯µ¶<span style="color:#18136c;">w</span>pN↑<span style="color:#18136c;"> </span>YQ7<span style="color:#18136c;">a</span>é39<span style="color:#18136c;">s</span>1qÓ<span style="color:#18136c;"> </span>QyL<span style="color:#18136c;">$</span>fcÕ<span style="color:#18136c;">1</span>ΝS5<span style="color:#18136c;">.</span>5Wy<span style="color:#18136c;">6</span>2­d<span style="color:#18136c;">5</span>Ä¶H</td>
</tr>
<tr>
<td>³7&lt;<span style="color:#18136c;">V</span>401<span style="color:#18136c;">i</span>4æÂ<span style="color:#18136c;">a</span>θÀT<span style="color:#18136c;">g</span>÷ÄG<span style="color:#18136c;">r</span>9Eû<span style="color:#18136c;">a</span>ΡBw<span style="color:#18136c;"> </span>→ÌÖ<span style="color:#18136c;">S</span>RSL<span style="color:#18136c;">u</span>72l<span style="color:#18136c;">p</span>L6V<span style="color:#18136c;">e</span>º9Æ<span style="color:#18136c;">r</span>¾HL<span style="color:#18136c;"> </span>FEp<span style="color:#18136c;">A</span>Õø9<span style="color:#18136c;">c</span>P¬l<span style="color:#18136c;">t</span>ÒcD<span style="color:#18136c;">i</span>bäX<span style="color:#18136c;">v</span>TtF<span style="color:#18136c;">e</span>l3®<span style="color:#18136c;">+</span>bVM<span style="color:#18136c;"> </span>ø5ô<span style="color:#18136c;">a</span>XWa<span style="color:#18136c;">s</span>4ºä<span style="color:#18136c;"> </span>μÕK<span style="color:#18136c;">l</span>∏7m<span style="color:#18136c;">o</span>√þ3<span style="color:#18136c;">w</span>Sg1<span style="color:#18136c;"> </span>ι£C<span style="color:#18136c;">a</span>´´X<span style="color:#18136c;">s</span>o18<span style="color:#18136c;"> </span>ÅL2<span style="color:#18136c;">$</span>…4¾<span style="color:#18136c;">2</span>Jo↑<span style="color:#18136c;">.</span>0Λa<span style="color:#18136c;">5</span>3iè<span style="color:#18136c;">5</span>5WÕ</td>
<td>î3I<span style="color:#18136c;">V</span>4◊9<span style="color:#18136c;">i</span>FÊV<span style="color:#18136c;">a</span>ßÕó<span style="color:#18136c;">g</span>8³9<span style="color:#18136c;">r</span>℘bu<span style="color:#18136c;">a</span>f®2<span style="color:#18136c;"> </span>fc7<span style="color:#18136c;">P</span>g3⊆<span style="color:#18136c;">r</span>zç8<span style="color:#18136c;">o</span>Ü−⋅<span style="color:#18136c;">f</span>ÿ≥Z<span style="color:#18136c;">e</span>aPÑ<span style="color:#18136c;">s</span>5⇐T<span style="color:#18136c;">s</span>iΨ∋<span style="color:#18136c;">i</span>9Ìu<span style="color:#18136c;">o</span>U8R<span style="color:#18136c;">n</span>Ψ⌉•<span style="color:#18136c;">a</span>w1f<span style="color:#18136c;">l</span>fùë<span style="color:#18136c;"> </span>TQN<span style="color:#18136c;">a</span>U›é<span style="color:#18136c;">s</span>vDu<span style="color:#18136c;"> </span>BÇI<span style="color:#18136c;">l</span>6Θl<span style="color:#18136c;">o</span>∠Hf<span style="color:#18136c;">w</span>NX8<span style="color:#18136c;"> </span>36X<span style="color:#18136c;">a</span>∼α»<span style="color:#18136c;">s</span>T½d<span style="color:#18136c;"> </span>ŠHG<span style="color:#18136c;">$</span>Îõ¬<span style="color:#18136c;">3</span>QWÀ<span style="color:#18136c;">.</span>‰›Y<span style="color:#18136c;">5</span>Ôg8<span style="color:#18136c;">0</span>¦ao</td> </tr>
<tr>
<td>LKN<span style="color:#18136c;">V</span>0Äw<span style="color:#18136c;">i</span>M4x<span style="color:#18136c;">a</span>fsJ<span style="color:#18136c;">g</span>FJä<span style="color:#18136c;">r</span>27”<span style="color:#18136c;">a</span>⇐MÔ<span style="color:#18136c;"> </span>∠O5<span style="color:#18136c;">S</span>QØM<span style="color:#18136c;">u</span>té«<span style="color:#18136c;">p</span>÷ÅÃ<span style="color:#18136c;">e</span>¨ûH<span style="color:#18136c;">r</span>Z4Ä<span style="color:#18136c;"> </span>1UΛ<span style="color:#18136c;">F</span>¨Ts<span style="color:#18136c;">o</span>ûwX<span style="color:#18136c;">r</span>ú4I<span style="color:#18136c;">c</span>kyç<span style="color:#18136c;">e</span>½qY<span style="color:#18136c;"> </span>074<span style="color:#18136c;">a</span>Ùl⌊<span style="color:#18136c;">s</span>ÐH1<span style="color:#18136c;"> </span>4Ùp<span style="color:#18136c;">l</span>ø4X<span style="color:#18136c;">o</span>b0a<span style="color:#18136c;">w</span>4FÔ<span style="color:#18136c;"> </span>28∴<span style="color:#18136c;">a</span>70l<span style="color:#18136c;">s</span>A30<span style="color:#18136c;"> </span>ßWF<span style="color:#18136c;">$</span>Z¸v<span style="color:#18136c;">4</span>AEG<span style="color:#18136c;">.</span>Î6¨<span style="color:#18136c;">2</span>t9p<span style="color:#18136c;">5</span>¶¼Q</td>
<td>M9¯<span style="color:#18136c;">C</span>ε92<span style="color:#18136c;">i</span>0qP<span style="color:#18136c;">a</span>¹Aö<span style="color:#18136c;">l</span>W5P<span style="color:#18136c;">i</span>5Vu<span style="color:#18136c;">s</span>i8ë<span style="color:#18136c;"> </span>ðO0<span style="color:#18136c;">S</span>E2E<span style="color:#18136c;">u</span>ù∈è<span style="color:#18136c;">p</span>òY3<span style="color:#18136c;">e</span>Ts6<span style="color:#18136c;">r</span>6ý2<span style="color:#18136c;"> </span>lªÌ<span style="color:#18136c;">A</span>yîj<span style="color:#18136c;">c</span>Qpe<span style="color:#18136c;">t</span>½3õ<span style="color:#18136c;">i</span>iqX<span style="color:#18136c;">v</span>PVO<span style="color:#18136c;">e</span>8­V<span style="color:#18136c;">+</span>«“G<span style="color:#18136c;"> </span>¤ó6<span style="color:#18136c;">a</span>®Π7<span style="color:#18136c;">s</span>JÕg<span style="color:#18136c;"> </span>¡JÈ<span style="color:#18136c;">l</span>♥Š¾<span style="color:#18136c;">o</span>Ðol<span style="color:#18136c;">w</span>BVà<span style="color:#18136c;"> </span>→Am<span style="color:#18136c;">a</span>ηÒ¯<span style="color:#18136c;">s</span>aÑÚ<span style="color:#18136c;"> </span>Häð<span style="color:#18136c;">$</span>2Ef<span style="color:#18136c;">2</span>∈n5<span style="color:#18136c;">.</span>Œ8H<span style="color:#18136c;">9</span>5¨1<span style="color:#18136c;">9</span>⊃ƒõ</td>
</tr>
<tr>
<td>Up dylan in love and found herself. Sorry for beth smiled at some time</td>
<td>Whatever you on one who looked. Except for another man and ready.</td>
</tr>
<tr>
<td colspan="2">Úúe<span style="color:#18136c;">A</span>Cíø<span style="color:#18136c;">N</span>ËµU<span style="color:#18136c;">T</span>3L♠<span style="color:#18136c;">I</span>Cë9<span style="color:#18136c;">-</span>BŒf<span style="color:#18136c;">A</span>oÓC<span style="color:#18136c;">L</span>5ΒÉ<span style="color:#18136c;">L</span>HοN<span style="color:#18136c;">E</span>5∂7<span style="color:#18136c;">R</span>Scd<span style="color:#18136c;">G</span>X­ª<span style="color:#18136c;">I</span>pΣu<span style="color:#18136c;">C</span>Cw∨<span style="color:#18136c;">/</span>D¤6<span style="color:#18136c;">A</span>´vâ<span style="color:#18136c;">S</span>0d⊂<span style="color:#18136c;">T</span>Ç'B<span style="color:#18136c;">H</span>fóΔ<span style="color:#18136c;">M</span>åß7<span style="color:#18136c;">A</span>63B<span style="color:#18136c;">:</span>
</td>
</tr>
<tr>
<td>2Uý<span style="color:#18136c;">V</span>5¦U<span style="color:#18136c;">e</span>ý¿×<span style="color:#18136c;">n</span>Rm2<span style="color:#18136c;">t</span>æÓO<span style="color:#18136c;">o</span>γ1ø<span style="color:#18136c;">l</span>y¼W<span style="color:#18136c;">i</span>6px<span style="color:#18136c;">n</span>ÀZ«<span style="color:#18136c;"> </span>câS<span style="color:#18136c;">a</span>8ï¤<span style="color:#18136c;">s</span>Gï⊂<span style="color:#18136c;"> </span>ΜJl<span style="color:#18136c;">l</span>1£„<span style="color:#18136c;">o</span>nbé<span style="color:#18136c;">w</span>⌉ö1<span style="color:#18136c;"> </span>vY8<span style="color:#18136c;">a</span>Θmg<span style="color:#18136c;">s</span>0Ú4<span style="color:#18136c;"> </span>å¥G<span style="color:#18136c;">$</span>·59<span style="color:#18136c;">2</span>KkU<span style="color:#18136c;">1</span>®b0<span style="color:#18136c;">.</span>½Âℜ<span style="color:#18136c;">5</span>4Èh<span style="color:#18136c;">0</span>º´h</td>
<td>Zf­<span style="color:#18136c;">A</span>0j¸<span style="color:#18136c;">d</span>c1ξ<span style="color:#18136c;">v</span>™Xp<span style="color:#18136c;">a</span>gl×<span style="color:#18136c;">i</span>b8Y<span style="color:#18136c;">r</span>Sf0<span style="color:#18136c;"> </span>¨Wi<span style="color:#18136c;">a</span>À4»<span style="color:#18136c;">s</span>Á×7<span style="color:#18136c;"> </span>TAw<span style="color:#18136c;">l</span>l¨d<span style="color:#18136c;">o</span>m1G<span style="color:#18136c;">w</span>2¿z<span style="color:#18136c;"> </span>ΒÿÀ<span style="color:#18136c;">a</span>ˆyÎ<span style="color:#18136c;">s</span>N8η<span style="color:#18136c;"> </span>3oo<span style="color:#18136c;">$</span>D01<span style="color:#18136c;">2</span>Λp³<span style="color:#18136c;">4</span>cìz<span style="color:#18136c;">.</span>PA∅<span style="color:#18136c;">9</span>ϒ73<span style="color:#18136c;">5</span>4ú9</td>
</tr>
<tr>
<td>Rãí<span style="color:#18136c;">N</span>n¨2<span style="color:#18136c;">a</span>YRø<span style="color:#18136c;">s</span>≅←Í<span style="color:#18136c;">o</span>PÀy<span style="color:#18136c;">n</span>CΧ»<span style="color:#18136c;">e</span>fõo<span style="color:#18136c;">x</span>Õ∪h<span style="color:#18136c;"> </span>E18<span style="color:#18136c;">a</span>NÿÜ<span style="color:#18136c;">s</span>iÿ5<span style="color:#18136c;"> </span>f47<span style="color:#18136c;">l</span>Ã47<span style="color:#18136c;">o</span>FÂj<span style="color:#18136c;">w</span>GÎÉ<span style="color:#18136c;"> </span>·08<span style="color:#18136c;">a</span>ºed<span style="color:#18136c;">s</span>jÛS<span style="color:#18136c;"> </span>¿e®<span style="color:#18136c;">$</span>KèR<span style="color:#18136c;">1</span>LDÍ<span style="color:#18136c;">7</span>üoè<span style="color:#18136c;">.</span>4·O<span style="color:#18136c;">9</span>9Ý£<span style="color:#18136c;">9</span>íϖn</td>
<td>¶ú↵<span style="color:#18136c;">S</span>ι3”<span style="color:#18136c;">p</span>Ýó‾<span style="color:#18136c;">i</span>Eue<span style="color:#18136c;">r</span>Γy0<span style="color:#18136c;">i</span>Y30<span style="color:#18136c;">v</span>ΤA6<span style="color:#18136c;">a</span>2"Y<span style="color:#18136c;"> </span>465<span style="color:#18136c;">a</span>1m6<span style="color:#18136c;">s</span>gÁs<span style="color:#18136c;"> </span>C∀i<span style="color:#18136c;">l</span>ΑÒΠ<span style="color:#18136c;">o</span>r6y<span style="color:#18136c;">w</span>7¿ð<span style="color:#18136c;"> </span>1KΩ<span style="color:#18136c;">a</span>Ð32<span style="color:#18136c;">s</span>∇Δ¤<span style="color:#18136c;"> </span>9Χ9<span style="color:#18136c;">$</span>MWN<span style="color:#18136c;">2</span>P0É<span style="color:#18136c;">8</span>óËβ<span style="color:#18136c;">.</span>Ö∩S<span style="color:#18136c;">9</span>3íñ<span style="color:#18136c;">0</span>RQ’</td>
</tr>
<tr>
<td>Have anything but matty is taking care. Voice sounded in name only the others</td>
<td>Mouth shut and while he returned with. Herself with one who is your life</td>
</tr>
<tr>
<td colspan="2">ÿ²í<span style="color:#18136c;">G</span>u8N<span style="color:#18136c;">E</span>Z3F<span style="color:#18136c;">N</span>Fsô<span style="color:#18136c;">E</span>ÆRn<span style="color:#18136c;">R</span>ÇC9<span style="color:#18136c;">A</span>K4x<span style="color:#18136c;">L</span>À5Ç<span style="color:#18136c;"> </span>Ì5b<span style="color:#18136c;">H</span>97C<span style="color:#18136c;">E</span>«Ì0<span style="color:#18136c;">A</span>Îq¢<span style="color:#18136c;">L</span>µk→<span style="color:#18136c;">T</span>ªJk<span style="color:#18136c;">H</span>e3š<span style="color:#18136c;">:</span>Taking care about matt liî ed ryan. Knowing he should be there.</td>
</tr>
<tr>
<td>Ks£<span style="color:#18136c;">T</span>äbI<span style="color:#18136c;">r</span>74E<span style="color:#18136c;">a</span>ãDZ<span style="color:#18136c;">m</span>œH¡<span style="color:#18136c;">a</span>³7o<span style="color:#18136c;">d</span>Å∪v<span style="color:#18136c;">o</span>Òoz<span style="color:#18136c;">l</span>P3S<span style="color:#18136c;"> </span>23‹<span style="color:#18136c;">a</span>zy∝<span style="color:#18136c;">s</span>Ú°Q<span style="color:#18136c;"> </span>4â¹<span style="color:#18136c;">l</span>l21<span style="color:#18136c;">o</span>vh7<span style="color:#18136c;">w</span>2D2<span style="color:#18136c;"> </span>©Qw<span style="color:#18136c;">a</span>⇑cΒ<span style="color:#18136c;">s</span>¨wH<span style="color:#18136c;"> </span>Iµe<span style="color:#18136c;">$</span>⇐J5<span style="color:#18136c;">1</span>7Tñ<span style="color:#18136c;">.</span>t5f<span style="color:#18136c;">3</span>6ÅB<span style="color:#18136c;">0</span>6ãΨ</td>
<td>5z℘<span style="color:#18136c;">Z</span>4nG<span style="color:#18136c;">i</span>ý89<span style="color:#18136c;">t</span>←f4<span style="color:#18136c;">h</span>vnà<span style="color:#18136c;">r</span>bŸT<span style="color:#18136c;">o</span>1s9<span style="color:#18136c;">m</span>¥Ëq<span style="color:#18136c;">a</span>nd·<span style="color:#18136c;">x</span>xO6<span style="color:#18136c;"> </span>Iÿ∪<span style="color:#18136c;">a</span>k½0<span style="color:#18136c;">s</span>Ù£M<span style="color:#18136c;"> </span>ûΗ¡<span style="color:#18136c;">l</span>øÈ¾<span style="color:#18136c;">o</span>rzt<span style="color:#18136c;">w</span>170<span style="color:#18136c;"> </span>—♣≅<span style="color:#18136c;">a</span>r6q<span style="color:#18136c;">s</span>vDv<span style="color:#18136c;"> </span>76T<span style="color:#18136c;">$</span>3×D<span style="color:#18136c;">0</span>erÍ<span style="color:#18136c;">.</span>d¼0<span style="color:#18136c;">7</span>WoI<span style="color:#18136c;">5</span>ÀKú</td>
</tr>
<tr>
<td>ϒa9<span style="color:#18136c;">P</span>'¶¯<span style="color:#18136c;">r</span>P74<span style="color:#18136c;">o</span>2ψÈ<span style="color:#18136c;">z</span>χfþ<span style="color:#18136c;">a</span>Ãàñ<span style="color:#18136c;">c</span>3qY<span style="color:#18136c;"> </span>→®7<span style="color:#18136c;">a</span>aRg<span style="color:#18136c;">s</span>N©k<span style="color:#18136c;"> </span>¯‰Σ<span style="color:#18136c;">l</span>ÍpÃ<span style="color:#18136c;">o</span>7R⊂<span style="color:#18136c;">w</span>Æðe<span style="color:#18136c;"> </span>3Ih<span style="color:#18136c;">a</span>♣d˜<span style="color:#18136c;">s</span>3g7<span style="color:#18136c;"> </span>È3M<span style="color:#18136c;">$</span>≡⋅ª<span style="color:#18136c;">0</span>AY4<span style="color:#18136c;">.</span>Uq√<span style="color:#18136c;">3</span>Û±k<span style="color:#18136c;">5</span>SUΜ</td>
<td>Zr2<span style="color:#18136c;">A</span>8Ö6<span style="color:#18136c;">c</span>ZŸd<span style="color:#18136c;">o</span>Ρeu<span style="color:#18136c;">m</span>pq¼<span style="color:#18136c;">p</span>AoU<span style="color:#18136c;">l</span>èI2<span style="color:#18136c;">i</span>eYÒ<span style="color:#18136c;">a</span>K&gt;∂<span style="color:#18136c;"> </span>3n6<span style="color:#18136c;">a</span>x1Q<span style="color:#18136c;">s</span>20b<span style="color:#18136c;"> </span>°Hä<span style="color:#18136c;">l</span>9¶Ñ<span style="color:#18136c;">o</span>Ï6a<span style="color:#18136c;">w</span>≡dä<span style="color:#18136c;"> </span>ΗÅ2<span style="color:#18136c;">a</span>¢Óv<span style="color:#18136c;">s</span>⊃Á7<span style="color:#18136c;"> </span>C⊆Ä<span style="color:#18136c;">$</span>2Bz<span style="color:#18136c;">2</span>sló<span style="color:#18136c;">.</span>∫Pb<span style="color:#18136c;">5</span>ØMx<span style="color:#18136c;">0</span>oQd</td>
</tr>
<tr>
<td>ZΙμ<span style="color:#18136c;">P</span>Cqm<span style="color:#18136c;">r</span>µp0<span style="color:#18136c;">e</span>AΦ♥<span style="color:#18136c;">d</span>ô‾Ω<span style="color:#18136c;">n</span>∠2s<span style="color:#18136c;">i</span>4y2<span style="color:#18136c;">s</span>÷8«<span style="color:#18136c;">o</span>6∀C<span style="color:#18136c;">l</span>DeÌ<span style="color:#18136c;">o</span>Pbq<span style="color:#18136c;">n</span>d¡J<span style="color:#18136c;">e</span>lè×<span style="color:#18136c;"> </span>ÿˆ5<span style="color:#18136c;">a</span>Wl〈<span style="color:#18136c;">s</span>bPÔ<span style="color:#18136c;"> </span>ï²ç<span style="color:#18136c;">l</span>8¢O<span style="color:#18136c;">o</span>H¸e<span style="color:#18136c;">w</span>’90<span style="color:#18136c;"> </span>Υ66<span style="color:#18136c;">a</span>ÕÆd<span style="color:#18136c;">s</span>h6K<span style="color:#18136c;"> </span>r6Ç<span style="color:#18136c;">$</span>7Ey<span style="color:#18136c;">0</span>WcÎ<span style="color:#18136c;">.</span>£—0<span style="color:#18136c;">1</span>2C8<span style="color:#18136c;">5</span>7Aþ</td>
<td>i·σ<span style="color:#18136c;">S</span>€53<span style="color:#18136c;">y</span>xµè<span style="color:#18136c;">n</span>80n<span style="color:#18136c;">t</span>ΡΠm<span style="color:#18136c;">h</span>ç≡h<span style="color:#18136c;">r</span>B²d<span style="color:#18136c;">o</span>µS¥<span style="color:#18136c;">i</span>h÷r<span style="color:#18136c;">d</span>OKK<span style="color:#18136c;"> </span>7½ö<span style="color:#18136c;">a</span>←ãI<span style="color:#18136c;">s</span>2⌉V<span style="color:#18136c;"> </span>Css<span style="color:#18136c;">l</span>±´R<span style="color:#18136c;">o</span>T1Q<span style="color:#18136c;">w</span>yÉΔ<span style="color:#18136c;"> </span>•∏∞<span style="color:#18136c;">a</span>ïYG<span style="color:#18136c;">s</span>Â8E<span style="color:#18136c;"> </span>1πx<span style="color:#18136c;">$</span>04ò<span style="color:#18136c;">0</span>gMF<span style="color:#18136c;">.</span>bTQ<span style="color:#18136c;">3</span>Íx6<span style="color:#18136c;">5</span>8ùς</td>
</tr>
<tr>
<td>Maybe even though she followed.</td>
<td>Does this mean you talking about. Whatever else to sit on them back</td>
</tr>
<tr>
<td colspan="2">←4B<span style="color:#f18246;">C</span>3éh<span style="color:#f18246;">A</span>GAW<span style="color:#f18246;">N</span>rÛj<span style="color:#f18246;">A</span>Gυ»<span style="color:#f18246;">D</span>¬f4<span style="color:#f18246;">I</span>ðm√<span style="color:#f18246;">A</span>HM9<span style="color:#f18246;">N</span>〉1è<span style="color:#f18246;"> </span>‚¬H<span style="color:#f18246;">D</span>Á9Ü<span style="color:#f18246;">R</span>â3∨<span style="color:#f18246;">U</span>90I<span style="color:#f18246;">G</span>¾99<span style="color:#f18246;">S</span>¶∪”<span style="color:#f18246;">T</span>¥ì3<span style="color:#f18246;">O</span>Ë°c<span style="color:#f18246;">R</span>0E⇑<span style="color:#f18246;">E</span>2°1<span style="color:#f18246;"> </span>4Öa<span style="color:#f18246;">A</span>″XΝ<span style="color:#f18246;">D</span>µ4ℑ<span style="color:#f18246;">V</span>AK8<span style="color:#f18246;">A</span>µd9<span style="color:#f18246;">N</span>rÅD<span style="color:#f18246;">T</span>¦12<span style="color:#f18246;">A</span>5kh<span style="color:#f18246;">G</span>A3m<span style="color:#f18246;">E</span>98Ô<span style="color:#f18246;">S</span>9KC<span style="color:#f18246;">!</span>5TU</td>
</tr>
<tr>
<td colspan="2">AMm<span style="color:#18136c;">&gt;</span>EjL<span style="color:#18136c;"> </span>w∗L<span style="color:#18136c;">W</span>υIa<span style="color:#18136c;">o</span>Kd¹<span style="color:#18136c;">r</span>Θ22<span style="color:#18136c;">l</span>2IΚ<span style="color:#18136c;">d</span>ê5P<span style="color:#18136c;">w</span>O4H<span style="color:#18136c;">i</span>ây6<span style="color:#18136c;">d</span>ÖH⌊<span style="color:#18136c;">e</span>Ãìg<span style="color:#18136c;"> </span>j14<span style="color:#18136c;">D</span>r­5<span style="color:#18136c;">e</span>700<span style="color:#18136c;">l</span>H·Ð<span style="color:#18136c;">i</span>J±ù<span style="color:#18136c;">v</span>Y…ö<span style="color:#18136c;">e</span>¦mh<span style="color:#18136c;">r</span>¸«4<span style="color:#18136c;">y</span>rÆÔ<span style="color:#18136c;">!</span>∑η2<span style="color:#18136c;"> </span>÷¬υ<span style="color:#18136c;">O</span>Δfδ<span style="color:#18136c;">r</span>KZw<span style="color:#18136c;">d</span>4KV<span style="color:#18136c;">e</span>B¶ó<span style="color:#18136c;">r</span>ℜ0Ç<span style="color:#18136c;"> </span>PΖ×<span style="color:#18136c;">3</span>41o<span style="color:#18136c;">+</span>A7Y<span style="color:#18136c;"> </span>¬æ6<span style="color:#18136c;">G</span>M17<span style="color:#18136c;">o</span>GOº<span style="color:#18136c;">o</span>s7∑<span style="color:#18136c;">d</span>×7û<span style="color:#18136c;">s</span>¤8P<span style="color:#18136c;"> </span>ο♦Q<span style="color:#18136c;">a</span>Rn–<span style="color:#18136c;">n</span>5b2<span style="color:#18136c;">d</span>0ìw<span style="color:#18136c;"> </span>Ërϒ<span style="color:#18136c;">G</span>IÑℑ<span style="color:#18136c;">e</span>m0∀<span style="color:#18136c;">t</span>³bæ<span style="color:#18136c;"> </span>20r<span style="color:#18136c;">F</span>4O7<span style="color:#18136c;">R</span>ä2°<span style="color:#18136c;">E</span>Çò⊆<span style="color:#18136c;">E</span>SΥ4<span style="color:#18136c;"> </span>KF0<span style="color:#18136c;">A</span>ÒÂß<span style="color:#18136c;">i</span>5ïc<span style="color:#18136c;">r</span>t⊆€<span style="color:#18136c;">m</span>RJ7<span style="color:#18136c;">a</span>NΛÿ<span style="color:#18136c;">i</span>nÕ6<span style="color:#18136c;">l</span>5bQ<span style="color:#18136c;"> </span>¸ϒt<span style="color:#18136c;">S</span>Zbw<span style="color:#18136c;">h</span>3¶3<span style="color:#18136c;">i</span>g♠9<span style="color:#18136c;">p</span>2″Ì<span style="color:#18136c;">p</span>×¢ê<span style="color:#18136c;">i</span>K»´<span style="color:#18136c;">n</span>sWs<span style="color:#18136c;">g</span>dXW<span style="color:#18136c;">!</span>tBO</td>
</tr>
<tr>
<td colspan="2">m0W<span style="color:#18136c;">&gt;</span>YÙÂ<span style="color:#18136c;"> </span>b¬u<span style="color:#18136c;">1</span>xΔd<span style="color:#18136c;">0</span>3¯¬<span style="color:#18136c;">0</span>vHK<span style="color:#18136c;">%</span>Þ¹ó<span style="color:#18136c;"> </span>674<span style="color:#18136c;">A</span>j3ö<span style="color:#18136c;">u</span>Q←Ï<span style="color:#18136c;">t</span>ÈH¨<span style="color:#18136c;">h</span>ouq<span style="color:#18136c;">e</span>yªY<span style="color:#18136c;">n</span>Ñ21<span style="color:#18136c;">t</span>⌋BZ<span style="color:#18136c;">i</span>¦V2<span style="color:#18136c;">c</span>¬Tn<span style="color:#18136c;"> </span>&gt;ZΓ<span style="color:#18136c;">M</span>öÜÊ<span style="color:#18136c;">e</span>3Å1<span style="color:#18136c;">d</span>ís5<span style="color:#18136c;">s</span>2ø›<span style="color:#18136c;">!</span>³0û<span style="color:#18136c;"> </span>2¡Ì<span style="color:#18136c;">E</span>mè1<span style="color:#18136c;">x</span>éV2<span style="color:#18136c;">p</span>1∨6<span style="color:#18136c;">i</span>âdâ<span style="color:#18136c;">r</span>B9r<span style="color:#18136c;">a</span>72m<span style="color:#18136c;">t</span>SzI<span style="color:#18136c;">i</span>MlV<span style="color:#18136c;">o</span>0NL<span style="color:#18136c;">n</span>gΒû<span style="color:#18136c;"> </span>ú2L<span style="color:#18136c;">D</span>7⇑m<span style="color:#18136c;">a</span>Nx3<span style="color:#18136c;">t</span>Uζ∪<span style="color:#18136c;">e</span>tcù<span style="color:#18136c;"> </span>90ì<span style="color:#18136c;">o</span>¶Ù3<span style="color:#18136c;">f</span>v49<span style="color:#18136c;"> </span>w≅»<span style="color:#18136c;">O</span>0gi<span style="color:#18136c;">v</span>ÅýY<span style="color:#18136c;">e</span>XïN<span style="color:#18136c;">r</span>yfT<span style="color:#18136c;"> </span>3fP<span style="color:#18136c;">3</span>xZÕ<span style="color:#18136c;"> </span>FñÃ<span style="color:#18136c;">Y</span>8q¯<span style="color:#18136c;">e</span>EÂÜ<span style="color:#18136c;">a</span>âyf<span style="color:#18136c;">r</span>Μpl<span style="color:#18136c;">s</span>9âÂ<span style="color:#18136c;">!</span>qκÊ</td>
</tr>
<tr>
<td colspan="2">î5A<span style="color:#18136c;">&gt;</span>∀pƒ<span style="color:#18136c;"> </span>ZµÍ<span style="color:#18136c;">S</span>δ3é<span style="color:#18136c;">e</span>m2s<span style="color:#18136c;">c</span>⊕7v<span style="color:#18136c;">u</span>41J<span style="color:#18136c;">r</span>Ò°w<span style="color:#18136c;">e</span>Êyh<span style="color:#18136c;"> </span>qaρ<span style="color:#18136c;">O</span>Ïp¼<span style="color:#18136c;">n</span>ΣxZ<span style="color:#18136c;">l</span>rN¡<span style="color:#18136c;">i</span>♠Êc<span style="color:#18136c;">n</span>l4j<span style="color:#18136c;">e</span>N¶Q<span style="color:#18136c;"> </span>y2≅<span style="color:#18136c;">S</span>b63<span style="color:#18136c;">h</span>17〉<span style="color:#18136c;">o</span>fµy<span style="color:#18136c;">p</span>ÅAÆ<span style="color:#18136c;">p</span>þh0<span style="color:#18136c;">i</span>Ôcb<span style="color:#18136c;">n</span>ec4<span style="color:#18136c;">g</span>Iù1<span style="color:#18136c;"> </span>h2U<span style="color:#18136c;">w</span>23‹<span style="color:#18136c;">i</span>9çk<span style="color:#18136c;">t</span>SÅÏ<span style="color:#18136c;">h</span>6Vº<span style="color:#18136c;"> </span>g±s<span style="color:#18136c;">V</span>Œóu<span style="color:#18136c;">i</span>pV¯<span style="color:#18136c;">s</span>eÈ⋅<span style="color:#18136c;">a</span>4üV<span style="color:#18136c;">,</span>T6D<span style="color:#18136c;"> </span>2ý8<span style="color:#18136c;">M</span>ΡY©<span style="color:#18136c;">a</span>⊃ºΕ<span style="color:#18136c;">s</span>5ùý<span style="color:#18136c;">t</span>9ID<span style="color:#18136c;">e</span>FDℑ<span style="color:#18136c;">r</span>XpO<span style="color:#18136c;">C</span>e“μ<span style="color:#18136c;">a</span>n·M<span style="color:#18136c;">r</span>¾1K<span style="color:#18136c;">d</span>¥ëð<span style="color:#18136c;">,</span>eø7<span style="color:#18136c;"> </span>Dfm<span style="color:#18136c;">A</span>æ¤N<span style="color:#18136c;">M</span>9ïh<span style="color:#18136c;">E</span>UË∨<span style="color:#18136c;">X</span>σψG<span style="color:#18136c;"> </span>4j0<span style="color:#18136c;">a</span>°81<span style="color:#18136c;">n</span>hTA<span style="color:#18136c;">d</span>mTü<span style="color:#18136c;"> </span>«9ö<span style="color:#18136c;">E</span>νμr<span style="color:#18136c;">-</span>U4f<span style="color:#18136c;">c</span>¨Þ1<span style="color:#18136c;">h</span>8ª¸<span style="color:#18136c;">e</span>oyc<span style="color:#18136c;">c</span>9xj<span style="color:#18136c;">k</span>⁄ko<span style="color:#18136c;">!</span>ë9K</td>
</tr>
<tr>
<td colspan="2">¬Û…<span style="color:#18136c;">&gt;</span>J6Á<span style="color:#18136c;"> </span>¢〉8<span style="color:#18136c;">E</span>Ö22<span style="color:#18136c;">a</span>³41<span style="color:#18136c;">s</span>¬17<span style="color:#18136c;">y</span>3â8<span style="color:#18136c;"> </span>°f2<span style="color:#18136c;">R</span>6ol<span style="color:#18136c;">e</span>wtz<span style="color:#18136c;">f</span>w¹s<span style="color:#18136c;">u</span>ýoQ<span style="color:#18136c;">n</span>⇓³³<span style="color:#18136c;">d</span>×4G<span style="color:#18136c;">s</span>¢7«<span style="color:#18136c;"> </span>AlD<span style="color:#18136c;">a</span>°H¶<span style="color:#18136c;">n</span>9Ej<span style="color:#18136c;">d</span>tg›<span style="color:#18136c;"> </span>¯ôθ<span style="color:#18136c;">2</span>ε¥⊇<span style="color:#18136c;">4</span>¯″A<span style="color:#18136c;">/</span>4Øv<span style="color:#18136c;">7</span>2z→<span style="color:#18136c;"> </span>Ü3¥<span style="color:#18136c;">C</span>6ú2<span style="color:#18136c;">u</span>56X<span style="color:#18136c;">s</span>9⁄1<span style="color:#18136c;">t</span>∑Ιi<span style="color:#18136c;">o</span>xÉj<span style="color:#18136c;">m</span>ØRù<span style="color:#18136c;">e</span>1WÔ<span style="color:#18136c;">r</span>H25<span style="color:#18136c;"> </span>o¥ß<span style="color:#18136c;">S</span>≥gm<span style="color:#18136c;">u</span>X2g<span style="color:#18136c;">p</span>3yi<span style="color:#18136c;">p</span>·³2<span style="color:#18136c;">o</span>D£3<span style="color:#18136c;">r</span>c3μ<span style="color:#18136c;">t</span>ks∪<span style="color:#18136c;">!</span>sWK</td>
</tr> </table>
</div>When she were there you here. Lott to need for amy said.<br>Once more than ever since matt. Lott said turning oď ered. Tell you so matt kept going.<br>Homegrown dandelions by herself into her lips. Such an excuse to stop thinking about. Leave us and be right. <br><br>
<hr>
<table style="border-collapse:collapse;border:none;">
<tr>
<td style="border:none;padding:0px 15px 0px 8px;">
<a href="http://www.avast.com/" rel="nofollow noreferrer noopener" title="http://www.avast.com/" target="_blank"> </a>
</td>
<td>
<p> Đ­ŃĐž ŃĐžĐžĐąŃĐľĐ˝Đ¸Đľ ŃĐ˛ĐžĐąĐžĐ´Đ˝Đž ĐžŃ Đ˛Đ¸ŃŃŃĐžĐ˛ Đ¸ Đ˛ŃĐľĐ´ĐžĐ˝ĐžŃĐ˝ĐžĐłĐž ĐĐ ĐąĐťĐ°ĐłĐžĐ´Đ°ŃŃ <a href="http://www.avast.com/" rel="nofollow noreferrer noopener" title="http://www.avast.com/" target="_blank">avast! Antivirus</a> ĐˇĐ°ŃĐ¸ŃĐ° Đ°ĐşŃĐ¸Đ˛Đ˝Đ°. </p>
</td>
</tr>
</table>},
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail022.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'P..E..N-I..S__-E N L A R-G E-M..E..N T-___P..I-L-L..S...Info.',
          },
          1 => {
            content_type: 'text/html',
            body: 'Puzzled by judith bronte dave. Melvin will want her way through with.<br>Continued adam helped charlie cried. Soon joined the master bathroom. Grinned adam rubbed his arms she nodded.<br>Freemont and they talked with beppe.<br>Thinking of bed and whenever adam.<br>Mike was too tired man to hear.<div>I°0PQSHEJlÔNwf˜Ì1§3S¬73 Î1mEbb5N37¢LϖC7AlFnRº♦HG64BÉ4Ò¦Måâ4ÊzkΙN⌉7⌉TBNÐ T×xPIògIÎÃlLøÕML⊥ÞøSaΨRBreathed adam gave the master bedroom door.<br>Better get charlie took the wall.<br>Charlotte clark smile he saw charlie.<br>Dave and leaned her tears adam.</div>Maybe we want any help me that.<br>Next morning charlie gazed at their father.<br>Well as though adam took out here. Melvin will be more money. Called him into this one last night.<br>Men joined the pickup truck pulled away. Chuck could make sure that.<a href="http://%D0%B0%D0%BE%D1%81%D0%BA.%D1%80%D1%84?jmlfwnwe&amp;ucwkiyyc" rel="nofollow noreferrer noopener" title="http://аоск.рф?jmlfwnwe&amp;ucwkiyyc" target="_blank"><b>†p­C L I C K Ȟ E R EEOD !</b></a>Chuckled adam leaned forward and leî charlie.<br>Just then returned to believe it here.<br>Freemont and pulling out several minutes.',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail023.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: '-',
          },
          1 => {
            from: 'marketingmanager@nthcpghana.com',
            body: '机房环境法规
Message-ID: <20140911055224675615@nthcpghana.com>
From: =?utf-8?B?6IOh5qW35ZKM?= <marketingmanager@nthcpghana.com>
To: <spviex@126.com>,
	<kmdc.info@gmail.com>,
	<neeraj@atsindia.info>,
	<info@znuny.cn>,
	<info@merz.cz>,
	<admin@ealonline.org>,
	<office@korekt-bg.com>,
	<ps@techno-quest.net>,
	<xxxlkj@21cn.com>,
	<seo@yourtraffic.com>
Subject: =?utf-8?B?5LmY6aOO56C05rWq5Lya5pyJ5pe277yM55u05oyC5LqR5biG5rWO5rKn5rW344CCIuWIq+iuqeaArw==?=
	=?utf-8?B?5byx5ZCm5a6a6Ieq5bex77yM5Yir6K6p5oOr5oeS6K+v5LqG6Z2S5pil44CC5LiA5Liq5Lq66YOo5YiG?=
	=?utf-8?B?6YO95LiN6IO95pyJ5omA5oiQ5bCx77yM5LiA5Liq5Zu95a625LiN5aWL5paX5LiN6IO956uL6Laz5LiW?=
	=?utf-8?B?55WM77yM5LiA5Liq5rCR5peP5LiN5aWL5paX5LiN6IO95YW055ub5by65aSn44CC?=
Date: Thu, 11 Sep 2014 05:52:19 +0800
MIME-Version: 1.0
Content-Type: multipart/related;
	type="multipart/alternative";
	boundary="----=_NextPart_000_0FA8_01BB04D8.188AE890"
X-Priority: 1
X-mailer: Huilelosd 4

This is a multi-part message in MIME format.

------=_NextPart_000_0FA8_01BB04D8.188AE890
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: base64

PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv
L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxNRVRBIGNvbnRlbnQ9Ik1TSFRNTCA2LjAw
LjI5MDAuNjQ1MiIgbmFtZT1HRU5FUkFUT1I+PC9IRUFEPg0KPEJPRFk+PElNRyBhbHQ9IiIgaHNw
YWNlPTAgc3JjPSJjaWQ6MDAwNTgwRTQ2REY1XzBDNTUxRTY4XzA4QUMwNjkzIiANCmFsaWduPWJh
c2VsaW5lIGJvcmRlcj0wPjxCUj7kuZjpo47noLTmtarkvJrmnInml7bvvIznm7TmjILkupHluIbm
tY7msqfmtbfjgIIi5Yir6K6p5oCv5byx5ZCm5a6a6Ieq5bex77yM5Yir6K6p5oOr5oeS6K+v5LqG
6Z2S5pil44CC5LiA5Liq5Lq66YOo5YiG6YO95LiN6IO95pyJ5omA5oiQ5bCx77yM5LiA5Liq5Zu9
5a625LiN5aWL5paX5LiN6IO956uL6Laz5LiW55WM77yM5LiA5Liq5rCR5peP5LiN5aWL5paX5LiN
6IO95YW055ub5by65aSn44CCPC9CT0RZPjwvSFRNTD4NCg==

------=_NextPart_000_0FA8_01BB04D8.188AE890
Content-Type: image/png;
	name="=?utf-8?B?UVHlm77niYcyMDE0MDkxMTAxMDQyMS5wbmc=?="
Content-Transfer-Encoding: base64
Content-ID: <000580E46DF5_0C551E68_08AC0693>

[encoded data, 118657 characters]
AElFTkSuQmCC

------=_NextPart_000_0FA8_01BB04D8.188AE890--

',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
      },
      {
        data: 'From: =?UTF-8?Q?=22Frieda_H=C3=B6flich1=22?= <frieda.hoeflich1@example.com>
To: =?UTF-8?Q?=22Bob1=22?= <bod+frieda.hoeflich1@example.com>
Subject: some subject frieda hoeflich1

Some Text',
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'some subject frieda hoeflich1',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Frieda',
              lastname: 'Höflich1',
              fullname: 'Frieda Höflich1',
              email: 'frieda.hoeflich1@example.com',
            },
            {
              firstname: 'Bob1',
              lastname: '',
              fullname: 'Bob1',
              email: 'bod+frieda.hoeflich1@example.com',
            },
          ],
        }
      },
      {
        data: 'From: =?utf-8?Q?=27Frieda_H=C3=B6flich2=27?= <frieda.hoeflich2@example.com>
To: =?utf-8?Q?=27Bob2=27?= <bod+frieda.hoeflich2@example.com>
Subject: some subject frieda hoeflich2

Some Text',
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'some subject frieda hoeflich2',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Frieda',
              lastname: 'Höflich2',
              fullname: 'Frieda Höflich2',
              email: 'frieda.hoeflich2@example.com',
            },
            {
              firstname: 'Bob2',
              lastname: '',
              fullname: 'Bob2',
              email: 'bod+frieda.hoeflich2@example.com',
            },
          ],
        }
      },
      {
        data: 'From: Some Body <somebody@example.com>
To: Bob <bod@example.com>
Cc: any+1@example.com
Subject: some subject 2
Keywords:
In-Reply-To: <20170307172822.1233.623846@example.zammad.com>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [1.1.2.2]

Some Text',
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            group: 'Users',
            priority: '2 normal',
            title: 'some subject 2',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Some',
              lastname: 'Body',
              email: 'somebody@example.com',
            },
            {
              firstname: 'Bob',
              lastname: '',
              fullname: 'Bob',
              email: 'bod@example.com',
            },
            {
              firstname: '',
              lastname: '',
              email: 'any+1@example.com',
              fullname: 'any+1@example.com',
            },
          ],
        }
      },
      {
        data: 'From: Some Body <somebody@example.com>
To: Bob <bod@example.com>
Cc: any@example.com
Subject: some subject

Some Text',
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            group: 'Users',
            priority: '2 normal',
            title: 'some subject',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Some',
              lastname: 'Body',
              email: 'somebody@example.com',
            },
            {
              firstname: 'Bob',
              lastname: '',
              fullname: 'Bob',
              email: 'bod@example.com',
            },
            {
              firstname: '',
              lastname: '',
              email: 'any@example.com',
              fullname: 'any@example.com',
            },
          ],
        }
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail030.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'Antragswesen in TesT abbilden',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Bert',
              lastname: 'Jörg',
              fullname: 'Bert Jörg',
              email: 'joerg.bert@example.com',
            },
            {
              firstname: 'Karl-Heinz',
              lastname: 'Test',
              fullname: 'Karl-Heinz Test',
              email: 'karl-heinz.test@example.com',
            },
            {
              firstname: 'Manfred',
              lastname: 'Haert',
              email: 'manfred.haert@example.com',
              fullname: 'Manfred Haert',
            },
          ],
        }
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail031.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: '內應力產生与注塑工艺条件之间的关系；',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Bertha',
              lastname: 'Mou',
              fullname: 'Bertha Mou',
              email: 'zhengkang@ha.chinamobile.com',
            },
          ],
        }
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail032.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: '发现最美车间主任',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Dana.Qin',
              lastname: '',
              fullname: 'Dana.Qin',
              email: 'dana.qin6e1@gmail.com',
            },
          ],
        }
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail035.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'Darlehen bieten jetzt bewerben',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: '',
              lastname: '',
              fullname: 'finances8@firstfinanceloanfirm.example.com',
              email: 'finances8@firstfinanceloanfirm.example.com',
            },
          ],
        }
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail037.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'Example: Java 8 Neuerungen',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Example',
              lastname: '',
              fullname: 'Example',
              email: 'info@example.com',
            },
            {
              firstname: 'Ingo',
              lastname: 'Best',
              fullname: 'Ingo Best',
              email: 'iw@example.com',
            },
            {
              firstname: 'Max',
              lastname: 'Kohl | [example.com]',
              fullname: 'Max Kohl | [example.com]',
              email: 'kohl@example.com',
            },
          ],
        }
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail041.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'smime sign & crypt',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
          },
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail042.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'pgp sign & crypt',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
          },
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail043.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'Kontakte',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
          },
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail044.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: '精益生产闪婚,是谁的责任',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Clement.Si',
              lastname: '',
              fullname: 'Clement.Si',
              email: 'claudia.shu@yahoo.com.',
            },
            {
              firstname: '',
              lastname: '',
              fullname: 'abuse@domain.com',
              email: 'abuse@domain.com',
            },
          ],
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail046.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: '转发：整体提升企业服务水平',
          },
          1 => {
            from: '"ÎäŔźłÉ" <Glopelf7121@example.com>',
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'ÎäŔźłÉ',
              lastname: '',
              fullname: 'ÎäŔźłÉ',
              email: 'glopelf7121@example.com',
            },
          ],
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail047.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: '-90%! Nur 3,90 statt 39,90 EUR: In-Ear-Stereo-Headset mit Bluetooth 4.1 und Magnetverschluss für Bob Max Example',
          },
          1 => {
            from: 'EXAMPLE HotPriceMail <anja.weber@example.de>',
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Example',
              lastname: 'HotPriceMail',
              fullname: 'Example HotPriceMail',
              email: 'anja.weber@example.de',
            },
          ],
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail049.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'Kinderschwimmbrille ABC Little Twist: Schnell angelegt, keine verhedderten Haare (Pressemitteilung)',
          },
          1 => {
            from: '"Marcus Smith (ABC)" <marcus.smith@example.com>',
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Marcus',
              lastname: 'Smith',
              fullname: 'Marcus Smith',
              email: 'marcus.smith@example.com',
            },
          ],
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail052.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'Undelivered Mail Returned to Sender',
          },
          1 => {
            from: 'MAILER-DAEMON@example.com (Mail Delivery System)',
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Mail',
              lastname: 'Delivery System',
              fullname: 'Mail Delivery System',
              email: 'mailer-daemon@example.com',
            },
          ],
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail053.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'Undelivered Mail Returned to Sender',
          },
          1 => {
            from: 'MAILER-DAEMON (Mail Delivery System)',
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Mail',
              lastname: 'Delivery System',
              fullname: 'Mail Delivery System',
              email: 'mailer-daemon@local',
            },
          ],
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail060.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'abc',
          },
          1 => {
            from: 'Martin Edenhofer <martin@example.com>',
            sender: 'Customer',
            type: 'email',
            body: "Here it goes - Ă¤ĂśĂź - ĺˇŽĺ\u0087şäşşHere it goes - äöü - hi ­",
          },
        },
        verify: {
          users: [
            {
              firstname: 'Martin',
              lastname: 'Edenhofer',
              fullname: 'Martin Edenhofer',
              email: 'martin@example.com',
            },
          ],
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail064.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'AW: OTRS / Anfrage OTRS Einführung/Präsentation [Ticket#11545]',
          },
          1 => {
            from: 'Martin Edenhofer <martin@example.de>',
            sender: 'Customer',
            type: 'email',
            body: 'Enjoy!<div>
<br><div>-Martin<br><span class="js-signatureMarker"></span><br>--<br>Old programmers never die. They just branch to a new address.<br>
</div>
<br><div><img src="cid:485376C9-2486-4351-B932-E2010998F579@home" style="width:640px;height:425px;"></div>
</div>',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Martin',
              lastname: 'Edenhofer',
              fullname: 'Martin Edenhofer',
              email: 'martin@example.de',
            },
          ],
        },
      },
      {
        data: 'From: =?iso-8859-1?Q?B=FCrling,=20Andreas?= <smith@example.com>
Content-Type: text/plain;
  charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Subject: =?iso-8859-1?Q?aa=E4=F6=FC=DFad_asd?=
X-Universally-Unique-Identifier: d12c15d2-e6d6-4ccd-86c7-abc2c3d0a2a2
Date: Fri, 4 May 2012 14:01:03 +0200
Message-Id: <BC182994-03FA-4DC5-8202-98CBFACA0887@example.com>
To: metest@znuny.com
Mime-Version: 1.0 (Apple Message framework v1257)

=E4=F6=FC=DF ad asd

-Martin

--
Old programmers never die. They just branch to a new address.',
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'aaäöüßad asd',
          },
          1 => {
            from: '=?iso-8859-1?Q?B=FCrling, =20Andreas?= <smith@example.com>',
            sender: 'Customer',
            type: 'email',
            body: 'äöüß ad asd

-Martin

--
Old programmers never die. They just branch to a new address.',
          },
        },
        verify: {
          users: [
            {
              firstname: '=20Andreas?=',
              lastname: '',
              fullname: '=20Andreas?=',
              email: 'smith@example.com',
            },
          ],
        },
      },
      {
        data: 'From: =?windows-1258?B?VmFuZHJvbW1lLCBGculk6XJpYw==?= <fvandromme@example.com>
To: Example <info@example.com>
Subject: some subject 3

Some Text',
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'some subject 3',
          },
          1 => {
            from: '=?windows-1258?B?VmFuZHJvbW1lLCBGculk6XJpYw==?= <fvandromme@example.com>',
            sender: 'Customer',
            type: 'email',
            body: 'Some Text',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Frédéric',
              lastname: 'Vandromme',
              fullname: 'Frédéric Vandromme',
              email: 'fvandromme@example.com',
            },
          ],
        },
      },
      {
        data: 'From: me@example.com
To: customer@example.com
Subject: some subject
Content-Type: text/html; charset=us-ascii; format=flowed

<html>
  <body>
    <a href="mailto:testäöü@example.com">test</a>
  </body>
</html>',
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'some subject',
          },
          1 => {
            content_type: 'text/html',
            body: 'testäöü@example.com',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
      },
      {
        data: <<~RAW_MAIL.chomp,
          From: me@example.com
          To: Bob Smith <'customer_outlook_recipient_not_in_address_book@example.com'>
          Subject: some subject for outlook recipient issue
          Content-Type: text/html; charset=us-ascii;

          test
          RAW_MAIL
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'some subject for outlook recipient issue',
          },
          1 => {
            content_type: 'text/html',
            body: 'test',
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
        verify: {
          users: [
            {
              firstname: 'Bob',
              lastname: 'Smith',
              fullname: 'Bob Smith',
              email: 'customer_outlook_recipient_not_in_address_book@example.com',
            },
          ],
        },
      },
      {
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail067.box')),
        success: true,
        result: {
          0 => {
            priority: '2 normal',
            title: 'Testmail - Alias in info@example.de Gruppe',
          },
          1 => {
            from: 'Bob Smith | deal <info@example.de>',
            sender: 'Customer',
            type: 'email',
            subject: 'Testmail - Alias in info@example.de Gruppe',
            body: 'no visible content',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Bob',
              lastname: 'Smith | deal',
              fullname: 'Bob Smith | deal',
              email: 'info@example.de',
            },
          ],
        },
      },
      { # See https://github.com/zammad/zammad/issues/2199
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail070.box')),
        success: true,
        result: {
          1 => {
            from: '"http.abc" <http.abc@example.com>',
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'http.abc',
              lastname: '',
              fullname: 'http.abc',
              email: 'http.abc@example.com',
            },
          ],
        },
      },
      { # See https://github.com/zammad/zammad/issues/2254
        data: File.read(Rails.root.join('test', 'data', 'mail', 'mail076.box')),
        success: true,
        result: {
          1 => {
            from: '"Millions Lottery Spain transfer"@example.com>',
            sender: 'Customer',
            type: 'email',
          },
        },
        verify: {
          users: [
            {
              firstname: 'Millions',
              lastname: 'Lottery Spain transfer@example.com>',
              fullname: 'Millions Lottery Spain transfer@example.com>',
              email: 'millionslotteryspaintransfer@example.com',
            },
          ],
        },
      },
    ]
    assert_process(files)
  end

  test 'process trusted' do
    files = [
      {
        data: 'From: me@example.com
To: customer@example.com
Subject: some subject
X-Zammad-Ignore: true

Some Text',
        channel: {
          trusted: true,
        },
        success: false,
      },
      {
        data: 'From: me@example.com
To: customer@example.com
Subject: some subject
X-Zammad-Ticket-Followup-State: closed
X-Zammad-Ticket-priority: 3 high
X-Zammad-Article-sender: System
x-Zammad-Article-type: phone
x-Zammad-Article-Internal: true

Some Text',
        channel: {
          trusted: true,
        },
        success: true,
        result: {
          0 => {
            state: 'new',
            priority: '3 high',
            title: 'some subject',
          },
          1 => {
            sender: 'System',
            type: 'phone',
            internal: true,
          },
        },
      },
      {
        data: 'From: me@example.com
To: customer@example.com
Subject: some subject
X-Zammad-Ticket-Followup-State: closed
X-Zammad-Ticket-priority_id: 777777
X-Zammad-Article-sender_id: 999999
x-Zammad-Article-type: phone
x-Zammad-Article-Internal: true

Some Text',
        channel: {
          trusted: true,
        },
        success: true,
        result: {
          0 => {
            state: 'new',
            priority: '2 normal',
            title: 'some subject',
          },
          1 => {
            sender: 'Customer',
            type: 'phone',
            internal: true,
          },
        },
      },
    ]
    assert_process(files)
  end

  test 'process not trusted' do
    files = [
      {
        data: 'From: me@example.com
To: customer@example.com
Subject: some subject
X-Zammad-Ticket-Followup-State: closed
X-Zammad-Ticket-Priority: 3 high
X-Zammad-Article-Sender: System
x-Zammad-Article-Type: phone
x-Zammad-Article-Internal: true

Some Text',
        channel: {
          trusted: false,
        },
        success: true,
        result: {
          0 => {
            state: 'new',
            priority: '2 normal',
            title: 'some subject',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
      },
    ]
    assert_process(files)
  end

  test 'process inactive group - a' do
    group3 = Group.create_if_not_exists(
      name: 'Test Group Inactive',
      active: false,
      created_by_id: 1,
      updated_by_id: 1,
    )
    files = [
      {
        data: 'From: me@example.com
To: customer@example.com
Subject: some subject

Some Text',
        channel: {
          group_id: group3.id,
        },
        success: true,
        result: {
          0 => {
            state: 'new',
            group: 'Users',
            priority: '2 normal',
            title: 'some subject',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
      },
    ]
    assert_process(files)
  end

  test 'process inactive group - b' do
    group_active_map = {}
    Group.all.each {|group|
      group_active_map[group.id] = group.active
      group.active = false
      group.save
    }
    files = [
      {
        data: 'From: me@example.com
To: customer@example.com
Subject: some subject

Some Text',
        channel: {},
        success: true,
        result: {
          0 => {
            state: 'new',
            group: 'Users',
            priority: '2 normal',
            title: 'some subject',
          },
          1 => {
            sender: 'Customer',
            type: 'email',
            internal: false,
          },
        },
      },
    ]
    assert_process(files)

    Group.all.each {|group|
      next if !group_active_map.key?(group.id)
      group.active = group_active_map[group.id]
      group.save
    }
  end

  def assert_process(files)
    files.each { |file|
      result = Channel::EmailParser.new.process(file[:channel]||{}, file[:data], false)
      if file[:success]
        if result && result.class == Array && result[1]
          assert( true )
          if file[:result]
            [ 0, 1, 2 ].each { |level|
              if file[:result][level]
                file[:result][level].each { |key, value|
                  if result[level].send(key).respond_to?('name')
                    assert_equal(value.to_s, result[level].send(key).name)
                  else
                    assert_equal(value, result[level].send(key), "result check #{level}, #{key}")
                  end
                }
              end
            }
          end
          if file[:verify]
            # verify if users are created
            if file[:verify][:users]
              file[:verify][:users].each { |user_result|
                user = User.where(email: user_result[:email].downcase).first
                if !user
                  assert(false, "No user '#{user_result[:email].downcase}' found!")
                  return
                end
                user_result.each { |key, value|
                  if user.respond_to?( key)
                    assert_equal(value, user.send(key), "user check #{ key }")
                  else
                    assert_equal(value, user[key], "user check #{ key }" )
                  end
                }
              }
            end
          end
        else
          assert(false, 'ticket not created')
        end
      elsif !file[:success]
        if result && result.class == Array && result[1]
        puts result.inspect
        assert(false, 'ticket should not be created but is created')
        else
          assert(true, 'ticket not created - nice')
        end
      else
        assert(false, 'UNKNOWN!')
      end
    }
  end
end
