Redmine 3.4.4

This commit is contained in:
Manuel Cillero 2018-02-02 22:19:29 +01:00
commit 64924a6376
2112 changed files with 259028 additions and 0 deletions

View file

@ -0,0 +1,70 @@
# Redmine - project management software
# Copyright (C) 2006-2017 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require 'erb'
require 'cgi'
# A simple formatter for SimpleCov
module Redmine
module Coverage
class HtmlFormatter
def format(result)
File.open(File.join(output_path, "index.html"), "w") do |file|
file.puts template('index').result(binding)
end
result.source_files.each do |source_file|
File.open(File.join(output_path, source_file_result(source_file)), "w") do |file|
file.puts template('source').result(binding)
end
end
end
private
def now
@now = Time.now.utc
end
def output_path
SimpleCov.coverage_path
end
def shortened_filename(source_file)
source_file.filename.gsub(SimpleCov.root, '.').gsub(/^\.\//, '')
end
def link_to_source_file(source_file)
%(<a href="#{source_file_result source_file}">#{shortened_filename source_file}</a>)
end
def source_file_result(source_file)
shortened_filename(source_file).gsub('/', '__')+'.html'
end
def revision_link
if revision = Redmine::VERSION.revision
%(<a href="http://www.redmine.org/projects/redmine/repository/revisions/#{revision}">r#{revision}</a>)
end
end
# Returns the an erb instance for the template of given name
def template(name)
ERB.new(File.read(File.join(File.dirname(__FILE__), 'views', "#{name}.erb")))
end
end
end
end

View file

@ -0,0 +1,60 @@
<!DOCTYPE html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Redmine code coverage</title>
<style>
html {overflow-y:scroll;}
body {font-family:"Lucida Grande","Lucida Sans",Verdana,Helvetica,Arial,sans-serif; font-size:80%;}
h1 {color:#777; margin-bottom:0.2em;}
h2 {color:#aaa;margin-top:1em;font-size:18px;}
table {width:100%; border-collapse:collapse;}
th, td {border:1px solid #e2e2e2;}
td {text-align:right; font-family:"Bitstream Vera Sans Mono","Monaco","Courier New",monospace;}
td.filename {text-align:left; font-family:"Lucida Grande","Lucida Sans",Verdana,Helvetica,Arial,sans-serif;}
th {background:#e2e2e2;}
#generation {color:#777; font-size:90%;}
a, a:link, a:visited {color:#169; text-decoration:none;}
a:hover, a:active {color:#c61a1a; text-decoration:underline;}
div.percent {height:1em; empty-cells:show; padding:0px; border-collapse:collapse; width:100px !important; float:left; margin:0 0.5em 0 0.5em;}
div.percent div {float:left; height:1em; padding:0px !important;}
div.percent div.covered {background:#8c7;}
div.percent div.uncovered {background:#d76;}
</style>
</head>
<body>
<h1>Redmine code coverage</h1>
<p id='generation'>
Generated on <%= now %> (<%= revision_link %>).
More information about this environment at <a href='http://www.redmine.org/projects/redmine/wiki/Continuous_integration'>redmine.org</a>.
</p>
<table class="file_list">
<thead>
<tr>
<th>File</th>
<th colspan="2">% covered</th>
<th>Lines</th>
<th>Relevant</th>
<th>Covered</th>
</tr>
</thead>
<tbody>
<% result.source_files.each do |source_file| %>
<tr>
<td class="filename"><%= link_to_source_file(source_file) %></td>
<td><%= "%.1f" % source_file.covered_percent %> %</td>
<td>
<div class="percent">
<div class="covered" style="width:<%= source_file.covered_percent.to_i %>px"></div>
<div class="uncovered" style="width:<%= 100 - source_file.covered_percent.to_i %>px"></div>
</div>
</td>
<td><%= source_file.lines.count %></td>
<td><%= source_file.covered_lines.count + source_file.missed_lines.count %></td>
<td><%= source_file.covered_lines.count %></td>
</tr>
<% end %>
</tbody>
</table>
</body>
</html>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Redmine code coverage</title>
<style>
html {overflow-y:scroll;}
body {font-family:"Lucida Grande","Lucida Sans",Verdana,Helvetica,Arial,sans-serif; font-size:80%;}
h1 {color:#777; margin-bottom:0.2em;}
h2 {color:#aaa; margin-top:1em; font-size:18px;}
#generation {color:#777; font-size:90%;}
a, a:link, a:visited {color:#169; text-decoration:none;}
a:hover, a:active {color:#c61a1a; text-decoration:underline;}
pre, code {
color: #000000;
font-family: "Bitstream Vera Sans Mono","Monaco","Courier New",monospace;
font-size: 95%;
line-height: 1.3em;
margin-top: 0;
margin-bottom: 0;
padding: 0;
}
div.source {border:1px solid #e2e2e2;}
.covered {background:#bed2be;}
.missed {background:#fba;}
.never {background:#eee;}
</style>
</head>
<body>
<h1>Redmine code coverage</h1>
<p id='generation'>
Generated on <%= now %> (<%= revision_link %>).
More information about this environment at <a href='http://www.redmine.org/projects/redmine/wiki/Continuous_integration'>redmine.org</a>.
</p>
<h2><%= shortened_filename source_file %> (<%= "%.1f" % source_file.covered_percent %> %)</h2>
<div class="source">
<% source_file.lines.each_with_index do |line, i| %>
<pre class="<%= line.status %>" data-hits="<%= line.coverage ? line.coverage : '' %>" data-linenumber="<%= line.number %>"
><code class="ruby"><%= i.to_s.rjust 4 %> <%= CGI.escapeHTML(line.src.chomp) %></code></pre>
<% end %>
</div>

View file

@ -0,0 +1,97 @@
# Redmine - project management software
# Copyright (C) 2006-2017 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require File.expand_path('../test_case', __FILE__)
require 'tmpdir'
class RedminePmTest::RepositoryGitTest < RedminePmTest::TestCase
fixtures :projects, :users, :members, :roles, :member_roles
GIT_BIN = Redmine::Configuration['scm_git_command'] || "git"
def test_anonymous_read_on_public_repo_with_permission_should_succeed
assert_success "ls-remote", git_url
end
def test_anonymous_read_on_public_repo_without_permission_should_fail
Role.anonymous.remove_permission! :browse_repository
assert_failure "ls-remote", git_url
end
def test_invalid_credentials_should_fail
Project.find(1).update_attribute :is_public, false
with_credentials "dlopper", "foo" do
assert_success "ls-remote", git_url
end
with_credentials "dlopper", "wrong" do
assert_failure "ls-remote", git_url
end
end
def test_clone
Dir.mktmpdir do |dir|
Dir.chdir(dir) do
assert_success "clone", git_url
end
end
end
def test_write_commands
Role.find(2).add_permission! :commit_access
filename = random_filename
Dir.mktmpdir do |dir|
assert_success "clone", git_url, dir
Dir.chdir(dir) do
f = File.new(File.join(dir, filename), "w")
f.write "test file content"
f.close
with_credentials "dlopper", "foo" do
assert_success "add", filename
assert_success "commit -a --message Committing_a_file"
assert_success "push", git_url, "--all"
end
end
end
Dir.mktmpdir do |dir|
assert_success "clone", git_url, dir
Dir.chdir(dir) do
assert File.exists?(File.join(dir, "#{filename}"))
end
end
end
protected
def execute(*args)
a = [GIT_BIN]
super a, *args
end
def git_url(path=nil)
host = ENV['REDMINE_TEST_DAV_SERVER'] || '127.0.0.1'
credentials = nil
if username && password
credentials = "#{username}:#{password}"
end
url = "http://#{credentials}@#{host}/git/ecookbook"
url << "/#{path}" if path
url
end
end

View file

@ -0,0 +1,332 @@
# Redmine - project management software
# Copyright (C) 2006-2017 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require File.expand_path('../test_case', __FILE__)
require 'tmpdir'
class RedminePmTest::RepositorySubversionTest < RedminePmTest::TestCase
fixtures :projects, :users, :members, :roles, :member_roles, :auth_sources, :enabled_modules
SVN_BIN = Redmine::Configuration['scm_subversion_command'] || "svn"
def test_anonymous_read_on_public_repo_with_permission_should_succeed
assert_success "ls", svn_url
end
def test_anonymous_read_on_public_repo_with_anonymous_group_permission_should_succeed
Role.anonymous.remove_permission! :browse_repository
Member.create!(:project_id => 1, :principal => Group.anonymous, :role_ids => [2])
assert_success "ls", svn_url
end
def test_anonymous_read_on_public_repo_without_permission_should_fail
Role.anonymous.remove_permission! :browse_repository
assert_failure "ls", svn_url
end
def test_anonymous_read_on_public_project_with_module_disabled_should_fail
Project.find(1).disable_module! :repository
assert_failure "ls", svn_url
end
def test_anonymous_read_on_private_repo_should_fail
Project.find(1).update_attribute :is_public, false
assert_failure "ls", svn_url
end
def test_anonymous_commit_on_public_repo_should_fail
Role.anonymous.add_permission! :commit_access
assert_failure "mkdir --message Creating_a_directory", svn_url(random_filename)
end
def test_anonymous_commit_on_private_repo_should_fail
Role.anonymous.add_permission! :commit_access
Project.find(1).update_attribute :is_public, false
assert_failure "mkdir --message Creating_a_directory", svn_url(random_filename)
end
def test_non_member_read_on_public_repo_with_permission_should_succeed
Role.anonymous.remove_permission! :browse_repository
with_credentials "miscuser8", "foo" do
assert_success "ls", svn_url
end
end
def test_non_member_read_on_public_repo_with_non_member_group_permission_should_succeed
Role.anonymous.remove_permission! :browse_repository
Role.non_member.remove_permission! :browse_repository
Member.create!(:project_id => 1, :principal => Group.non_member, :role_ids => [2])
with_credentials "miscuser8", "foo" do
assert_success "ls", svn_url
end
end
def test_non_member_read_on_public_repo_without_permission_should_fail
Role.anonymous.remove_permission! :browse_repository
Role.non_member.remove_permission! :browse_repository
with_credentials "miscuser8", "foo" do
assert_failure "ls", svn_url
end
end
def test_non_member_read_on_private_repo_should_fail
Project.find(1).update_attribute :is_public, false
with_credentials "miscuser8", "foo" do
assert_failure "ls", svn_url
end
end
def test_non_member_commit_on_public_repo_should_fail
Role.non_member.add_permission! :commit_access
assert_failure "mkdir --message Creating_a_directory", svn_url(random_filename)
end
def test_non_member_commit_on_private_repo_should_fail
Role.non_member.add_permission! :commit_access
Project.find(1).update_attribute :is_public, false
assert_failure "mkdir --message Creating_a_directory", svn_url(random_filename)
end
def test_member_read_on_public_repo_with_permission_should_succeed
Role.anonymous.remove_permission! :browse_repository
Role.non_member.remove_permission! :browse_repository
with_credentials "dlopper", "foo" do
assert_success "ls", svn_url
end
end
def test_member_read_on_public_repo_without_permission_should_fail
Role.anonymous.remove_permission! :browse_repository
Role.non_member.remove_permission! :browse_repository
Role.find(2).remove_permission! :browse_repository
with_credentials "dlopper", "foo" do
assert_failure "ls", svn_url
end
end
def test_member_read_on_private_repo_with_permission_should_succeed
Project.find(1).update_attribute :is_public, false
with_credentials "dlopper", "foo" do
assert_success "ls", svn_url
end
end
def test_member_read_on_private_repo_without_permission_should_fail
Role.find(2).remove_permission! :browse_repository
Project.find(1).update_attribute :is_public, false
with_credentials "dlopper", "foo" do
assert_failure "ls", svn_url
end
end
def test_member_read_on_private_repo_with_module_disabled_should_fail
Role.find(2).add_permission! :browse_repository
Project.find(1).update_attribute :is_public, false
Project.find(1).disable_module! :repository
with_credentials "dlopper", "foo" do
assert_failure "ls", svn_url
end
end
def test_member_commit_on_public_repo_with_permission_should_succeed
Role.find(2).add_permission! :commit_access
with_credentials "dlopper", "foo" do
assert_success "mkdir --message Creating_a_directory", svn_url(random_filename)
end
end
def test_member_commit_on_public_repo_without_permission_should_fail
Role.find(2).remove_permission! :commit_access
with_credentials "dlopper", "foo" do
assert_failure "mkdir --message Creating_a_directory", svn_url(random_filename)
end
end
def test_member_commit_on_private_repo_with_permission_should_succeed
Role.find(2).add_permission! :commit_access
Project.find(1).update_attribute :is_public, false
with_credentials "dlopper", "foo" do
assert_success "mkdir --message Creating_a_directory", svn_url(random_filename)
end
end
def test_member_commit_on_private_repo_without_permission_should_fail
Role.find(2).remove_permission! :commit_access
Project.find(1).update_attribute :is_public, false
with_credentials "dlopper", "foo" do
assert_failure "mkdir --message Creating_a_directory", svn_url(random_filename)
end
end
def test_member_commit_on_private_repo_with_module_disabled_should_fail
Role.find(2).add_permission! :commit_access
Project.find(1).update_attribute :is_public, false
Project.find(1).disable_module! :repository
with_credentials "dlopper", "foo" do
assert_failure "mkdir --message Creating_a_directory", svn_url(random_filename)
end
end
def test_invalid_credentials_should_fail
Project.find(1).update_attribute :is_public, false
with_credentials "dlopper", "foo" do
assert_success "ls", svn_url
end
with_credentials "dlopper", "wrong" do
assert_failure "ls", svn_url
end
end
def test_anonymous_read_should_fail_with_login_required
assert_success "ls", svn_url
with_settings :login_required => '1' do
assert_failure "ls", svn_url
end
end
def test_authenticated_read_should_succeed_with_login_required
with_settings :login_required => '1' do
with_credentials "miscuser8", "foo" do
assert_success "ls", svn_url
end
end
end
def test_read_on_archived_projects_should_fail
Project.find(1).update_attribute :status, Project::STATUS_ARCHIVED
assert_failure "ls", svn_url
end
def test_read_on_archived_private_projects_should_fail
Project.find(1).update_attribute :status, Project::STATUS_ARCHIVED
Project.find(1).update_attribute :is_public, false
with_credentials "dlopper", "foo" do
assert_failure "ls", svn_url
end
end
def test_read_on_closed_projects_should_succeed
Project.find(1).update_attribute :status, Project::STATUS_CLOSED
assert_success "ls", svn_url
end
def test_read_on_closed_private_projects_should_succeed
Project.find(1).update_attribute :status, Project::STATUS_CLOSED
Project.find(1).update_attribute :is_public, false
with_credentials "dlopper", "foo" do
assert_success "ls", svn_url
end
end
def test_commit_on_closed_projects_should_fail
Project.find(1).update_attribute :status, Project::STATUS_CLOSED
Role.find(2).add_permission! :commit_access
with_credentials "dlopper", "foo" do
assert_failure "mkdir --message Creating_a_directory", svn_url(random_filename)
end
end
def test_commit_on_closed_private_projects_should_fail
Project.find(1).update_attribute :status, Project::STATUS_CLOSED
Project.find(1).update_attribute :is_public, false
Role.find(2).add_permission! :commit_access
with_credentials "dlopper", "foo" do
assert_failure "mkdir --message Creating_a_directory", svn_url(random_filename)
end
end
if ldap_configured?
def test_user_with_ldap_auth_source_should_authenticate_with_ldap_credentials
ldap_user = User.new(:mail => 'example1@redmine.org', :firstname => 'LDAP', :lastname => 'user', :auth_source_id => 1)
ldap_user.login = 'example1'
ldap_user.save!
with_settings :login_required => '1' do
with_credentials "example1", "123456" do
assert_success "ls", svn_url
end
end
with_settings :login_required => '1' do
with_credentials "example1", "wrong" do
assert_failure "ls", svn_url
end
end
end
end
def test_checkout
Dir.mktmpdir do |dir|
assert_success "checkout", svn_url, dir
end
end
def test_read_commands
assert_success "info", svn_url
assert_success "ls", svn_url
assert_success "log", svn_url
end
def test_write_commands
Role.find(2).add_permission! :commit_access
filename = random_filename
Dir.mktmpdir do |dir|
assert_success "checkout", svn_url, dir
Dir.chdir(dir) do
# creates a file in the working copy
f = File.new(File.join(dir, filename), "w")
f.write "test file content"
f.close
assert_success "add", filename
with_credentials "dlopper", "foo" do
assert_success "commit --message Committing_a_file"
assert_success "copy --message Copying_a_file", svn_url(filename), svn_url("#{filename}_copy")
assert_success "delete --message Deleting_a_file", svn_url(filename)
assert_success "mkdir --message Creating_a_directory", svn_url("#{filename}_dir")
end
assert_success "update"
# checks that the working copy was updated
assert File.exists?(File.join(dir, "#{filename}_copy"))
assert File.directory?(File.join(dir, "#{filename}_dir"))
end
end
end
def test_read_invalid_repo_should_fail
assert_failure "ls", svn_url("invalid")
end
protected
def execute(*args)
a = [SVN_BIN, "--no-auth-cache --non-interactive"]
a << "--username #{username}" if username
a << "--password #{password}" if password
super a, *args
end
def svn_url(path=nil)
host = ENV['REDMINE_TEST_DAV_SERVER'] || '127.0.0.1'
url = "http://#{host}/svn/ecookbook"
url << "/#{path}" if path
url
end
end

View file

@ -0,0 +1,82 @@
# Redmine - project management software
# Copyright (C) 2006-2017 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require File.expand_path('../../../test_helper', __FILE__)
module RedminePmTest
class TestCase < ActiveSupport::TestCase
attr_reader :command, :response, :status, :username, :password
# Cannot use transactional fixtures here: database
# will be accessed from Redmine.pm with its own connection
self.use_transactional_fixtures = false
def test_dummy
end
protected
def assert_response(expected, msg=nil)
case expected
when :success
assert_equal 0, status,
(msg || "The command failed (exit: #{status}):\n #{command}\nOutput was:\n#{formatted_response}")
when :failure
assert_not_equal 0, status,
(msg || "The command succeed (exit: #{status}):\n #{command}\nOutput was:\n#{formatted_response}")
else
assert_equal expected, status, msg
end
end
def assert_success(*args)
execute *args
assert_response :success
end
def assert_failure(*args)
execute *args
assert_response :failure
end
def with_credentials(username, password)
old_username, old_password = @username, @password
@username, @password = username, password
yield if block_given?
ensure
@username, @password = old_username, old_password
end
def execute(*args)
@command = args.join(' ')
@status = nil
IO.popen("#{command} 2>&1") do |io|
io.set_encoding("ASCII-8BIT") if io.respond_to?(:set_encoding)
@response = io.read
end
@status = $?.exitstatus
end
def formatted_response
"#{'='*40}\n#{response}#{'='*40}"
end
def random_filename
Redmine::Utils.random_hex(16)
end
end
end

270
test/fixtures/attachments.yml vendored Normal file
View file

@ -0,0 +1,270 @@
---
attachments_001:
created_on: 2006-07-19 21:07:27 +02:00
downloads: 0
content_type: text/plain
disk_filename: 060719210727_error281.txt
disk_directory: "2006/07"
container_id: 3
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 1
container_type: Issue
filesize: 28
filename: error281.txt
author_id: 2
description: An attachment
attachments_002:
created_on: 2007-01-27 15:08:27 +01:00
downloads: 0
content_type: text/plain
disk_filename: 060719210727_document.txt
disk_directory: "2006/07"
container_id: 1
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 2
container_type: Document
filesize: 28
filename: document.txt
author_id: 2
attachments_003:
created_on: 2006-07-19 21:07:27 +02:00
downloads: 0
content_type: image/gif
disk_filename: 060719210727_logo.gif
disk_directory: "2006/07"
container_id: 4
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 3
container_type: WikiPage
filesize: 280
filename: logo.gif
description: This is a logo
author_id: 2
attachments_004:
created_on: 2006-07-19 21:07:27 +02:00
container_type: Issue
container_id: 2
downloads: 0
disk_filename: 060719210727_source.rb
disk_directory: "2006/07"
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 4
filesize: 153
filename: source.rb
author_id: 2
description: This is a Ruby source file
content_type: application/x-ruby
attachments_005:
created_on: 2006-07-19 21:07:27 +02:00
container_type: Issue
container_id: 3
downloads: 0
disk_filename: 060719210727_changeset_iso8859-1.diff
disk_directory: "2006/07"
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 5
filesize: 687
filename: changeset_iso8859-1.diff
author_id: 2
content_type: text/x-diff
attachments_006:
created_on: 2006-07-19 21:07:27 +02:00
container_type: Issue
container_id: 3
downloads: 0
disk_filename: 060719210727_archive.zip
disk_directory: "2006/07"
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 6
filesize: 157
filename: archive.zip
author_id: 2
content_type: application/zip
attachments_007:
created_on: 2006-07-19 21:07:27 +02:00
container_type: Issue
container_id: 4
downloads: 0
disk_filename: 060719210727_archive.zip
disk_directory: "2006/07"
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 7
filesize: 157
filename: archive.zip
author_id: 1
content_type: application/zip
attachments_008:
created_on: 2006-07-19 21:07:27 +02:00
container_type: Project
container_id: 1
downloads: 0
disk_filename: 060719210727_project_file.zip
disk_directory: "2006/07"
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 8
filesize: 320
filename: project_file.zip
author_id: 2
content_type: application/octet-stream
attachments_009:
created_on: 2006-07-19 21:07:27 +02:00
container_type: Version
container_id: 1
downloads: 0
disk_filename: 060719210727_archive.zip
disk_directory: "2006/07"
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 9
filesize: 452
filename: version_file.zip
author_id: 2
content_type: application/octet-stream
attachments_010:
created_on: 2006-07-19 21:07:27 +02:00
container_type: Issue
container_id: 2
downloads: 0
disk_filename: 060719210727_picture.jpg
disk_directory: "2006/07"
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 10
filesize: 452
filename: picture.jpg
author_id: 2
content_type: image/jpeg
attachments_011:
created_on: 2007-02-12 15:08:27 +01:00
container_type: Document
container_id: 1
downloads: 0
disk_filename: 060719210727_picture.jpg
disk_directory: "2006/07"
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 11
filesize: 452
filename: picture.jpg
author_id: 2
content_type: image/jpeg
attachments_012:
created_on: 2006-07-19 21:07:27 +02:00
container_type: Version
container_id: 1
downloads: 0
disk_filename: 060719210727_version_file.zip
disk_directory: "2006/07"
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 12
filesize: 452
filename: version_file.zip
author_id: 2
content_type: application/octet-stream
attachments_013:
created_on: 2006-07-19 21:07:27 +02:00
container_type: Message
container_id: 1
downloads: 0
disk_filename: 060719210727_foo.zip
disk_directory: "2006/07"
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 13
filesize: 452
filename: foo.zip
author_id: 2
content_type: application/octet-stream
attachments_014:
created_on: 2006-07-19 21:07:27 +02:00
container_type: Issue
container_id: 3
downloads: 0
disk_filename: 060719210727_changeset_utf8.diff
disk_directory: "2006/07"
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
id: 14
filesize: 687
filename: changeset_utf8.diff
author_id: 2
content_type: text/x-diff
attachments_015:
id: 15
created_on: 2010-07-19 21:07:27 +02:00
container_type: Issue
container_id: 14
downloads: 0
disk_filename: 060719210727_changeset_utf8.diff
disk_directory: "2006/07"
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
filesize: 687
filename: private.diff
author_id: 2
content_type: text/x-diff
description: attachement of a private issue
attachments_016:
content_type: image/png
downloads: 0
created_on: 2010-11-23 16:14:50 +09:00
disk_filename: 101123161450_testfile_1.png
disk_directory: "2010/11"
container_id: 14
digest: 8e0294de2441577c529f170b6fb8f638
id: 16
container_type: Issue
description: ""
filename: testfile.png
filesize: 2654
author_id: 2
attachments_017:
content_type: image/png
downloads: 0
created_on: 2010-12-23 16:14:50 +09:00
disk_filename: 101223161450_testfile_2.png
disk_directory: "2010/12"
container_id: 14
digest: 6bc2963e8d7ea0d3e68d12d1fba3d6ca
id: 17
container_type: Issue
description: ""
filename: testfile.PNG
filesize: 3582
author_id: 2
attachments_018:
content_type: image/png
downloads: 0
created_on: 2011-01-23 16:14:50 +09:00
disk_filename: 101123161450_testfile_1.png
disk_directory: "2010/11"
container_id: 14
digest: 8e0294de2441577c529f170b6fb8f638
id: 18
container_type: Issue
description: ""
filename: testテスト.png
filesize: 2654
author_id: 2
attachments_019:
content_type: image/png
downloads: 0
created_on: 2011-02-23 16:14:50 +09:00
disk_filename: 101223161450_testfile_2.png
disk_directory: "2010/12"
container_id: 14
digest: 6bc2963e8d7ea0d3e68d12d1fba3d6ca
id: 19
container_type: Issue
description: ""
filename: Testテスト.PNG
filesize: 3582
author_id: 2
attachments_020:
content_type: text/plain
downloads: 0
created_on: 2012-05-12 16:14:50 +09:00
disk_filename: 120512161450_root_attachment.txt
disk_directory:
container_id: 14
digest: b0fe2abdb2599743d554a61d7da7ff74
id: 20
container_type: Issue
description: ""
filename: root_attachment.txt
filesize: 54
author_id: 2

13
test/fixtures/auth_sources.yml vendored Normal file
View file

@ -0,0 +1,13 @@
---
auth_sources_001:
id: 1
type: AuthSourceLdap
name: 'LDAP test server'
host: '<%= $redmine_test_ldap_server %>'
port: 389
base_dn: 'OU=Person,DC=redmine,DC=org'
attr_login: uid
attr_firstname: givenName
attr_lastname: sn
attr_mail: mail
onthefly_register: false

28
test/fixtures/boards.yml vendored Normal file
View file

@ -0,0 +1,28 @@
---
boards_001:
name: Help
project_id: 1
topics_count: 2
id: 1
description: Help board
position: 1
last_message_id: 6
messages_count: 6
boards_002:
name: Discussion
project_id: 1
topics_count: 0
id: 2
description: Discussion board
position: 2
last_message_id:
messages_count: 0
boards_003:
name: Discussion
project_id: 2
topics_count: 0
id: 3
description: Discussion board
position: 1
last_message_id:
messages_count: 0

22
test/fixtures/changes.yml vendored Normal file
View file

@ -0,0 +1,22 @@
---
changes_001:
id: 1
changeset_id: 100
action: A
path: /test/some/path/in/the/repo
from_path:
from_revision:
changes_002:
id: 2
changeset_id: 100
action: A
path: /test/some/path/elsewhere/in/the/repo
from_path:
from_revision:
changes_003:
id: 3
changeset_id: 101
action: M
path: /test/some/path/in/the/repo
from_path:
from_revision:

104
test/fixtures/changesets.yml vendored Normal file
View file

@ -0,0 +1,104 @@
---
changesets_001:
commit_date: 2007-04-11
committed_on: 2007-04-11 15:14:44 +02:00
revision: 1
scmid: 691322a8eb01e11fd7
id: 100
comments: 'My very first commit do not escaping #<>&'
repository_id: 10
committer: dlopper
user_id: 3
changesets_002:
commit_date: 2007-04-12
committed_on: 2007-04-12 15:14:44 +02:00
revision: 2
id: 101
comments: 'This commit fixes #1, #2 and references #1 & #3'
repository_id: 10
committer: dlopper
user_id: 3
changesets_003:
commit_date: 2007-04-12
committed_on: 2007-04-12 15:14:44 +02:00
revision: 3
id: 102
comments: |-
A commit with wrong issue ids
IssueID #666 #3
repository_id: 10
committer: dlopper
user_id: 3
changesets_004:
commit_date: 2007-04-12
committed_on: 2007-04-12 15:14:44 +02:00
revision: 4
id: 103
comments: |-
A commit with an issue id of an other project
IssueID 4 2
repository_id: 10
committer: dlopper
user_id: 3
changesets_005:
commit_date: "2007-09-10"
comments: Modified one file in the folder.
committed_on: 2007-09-10 19:01:08
revision: "5"
id: 104
scmid:
user_id: 3
repository_id: 10
committer: dlopper
changesets_006:
commit_date: "2007-09-10"
comments: Moved helloworld.rb from / to /folder.
committed_on: 2007-09-10 19:01:47
revision: "6"
id: 105
scmid:
user_id: 3
repository_id: 10
committer: dlopper
changesets_007:
commit_date: "2007-09-10"
comments: Removed one file.
committed_on: 2007-09-10 19:02:16
revision: "7"
id: 106
scmid:
user_id: 3
repository_id: 10
committer: dlopper
changesets_008:
commit_date: "2007-09-10"
comments: |-
This commits references an issue.
Refs #2
committed_on: 2007-09-10 19:04:35
revision: "8"
id: 107
scmid:
user_id: 3
repository_id: 10
committer: dlopper
changesets_009:
commit_date: "2009-09-10"
comments: One file added.
committed_on: 2009-09-10 19:04:35
revision: "9"
id: 108
scmid:
user_id: 3
repository_id: 10
committer: dlopper
changesets_010:
commit_date: "2009-09-10"
comments: Same file modified.
committed_on: 2009-09-10 19:04:35
revision: "10"
id: 109
scmid:
user_id: 3
repository_id: 10
committer: dlopper

17
test/fixtures/comments.yml vendored Normal file
View file

@ -0,0 +1,17 @@
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
comments_001:
commented_type: News
commented_id: 1
id: 1
author_id: 1
comments: my first comment
created_on: 2006-12-10 18:10:10 +01:00
updated_on: 2006-12-10 18:10:10 +01:00
comments_002:
commented_type: News
commented_id: 1
id: 2
author_id: 2
comments: This is an other comment
created_on: 2006-12-10 18:12:10 +01:00
updated_on: 2006-12-10 18:12:10 +01:00

View file

@ -0,0 +1,8 @@
default:
somesetting: foo
production:
development:
test:

7
test/fixtures/configuration/empty.yml vendored Normal file
View file

@ -0,0 +1,7 @@
default:
production:
development:
test:

View file

@ -0,0 +1,8 @@
default:
production:
development:
test:
somesetting: foo

View file

@ -0,0 +1,9 @@
default:
somesetting: foo
production:
development:
test:
somesetting: bar

148
test/fixtures/custom_fields.yml vendored Normal file
View file

@ -0,0 +1,148 @@
---
custom_fields_001:
name: Database
regexp: ""
is_for_all: true
is_filter: true
type: IssueCustomField
possible_values:
- MySQL
- PostgreSQL
- Oracle
id: 1
is_required: false
field_format: list
default_value: ""
editable: true
position: 2
custom_fields_002:
name: Searchable field
min_length: 1
regexp: ""
is_for_all: true
is_filter: true
type: IssueCustomField
max_length: 100
possible_values: ""
id: 2
is_required: false
field_format: string
searchable: true
default_value: "Default string"
editable: true
position: 1
custom_fields_003:
name: Development status
regexp: ""
is_for_all: false
is_filter: true
type: ProjectCustomField
possible_values:
- Stable
- Beta
- Alpha
- Planning
id: 3
is_required: false
field_format: list
default_value: ""
editable: true
position: 1
custom_fields_004:
name: Phone number
regexp: ""
is_for_all: false
type: UserCustomField
possible_values: ""
id: 4
is_required: false
field_format: string
default_value: ""
editable: true
position: 1
custom_fields_005:
name: Money
regexp: ""
is_for_all: false
type: UserCustomField
possible_values: ""
id: 5
is_required: false
field_format: float
default_value: ""
editable: true
position: 2
custom_fields_006:
name: Float field
regexp: ""
is_for_all: true
type: IssueCustomField
possible_values: ""
id: 6
is_required: false
field_format: float
default_value: ""
editable: true
position: 3
custom_fields_007:
name: Billable
regexp: ""
is_for_all: false
is_filter: true
type: TimeEntryActivityCustomField
possible_values: ""
id: 7
is_required: false
field_format: bool
default_value: ""
editable: true
position: 1
custom_fields_008:
name: Custom date
regexp: ""
is_for_all: true
is_filter: false
type: IssueCustomField
possible_values: ""
id: 8
is_required: false
field_format: date
default_value: ""
editable: true
position: 4
custom_fields_009:
name: Project 1 cf
regexp: ""
is_for_all: false
is_filter: true
type: IssueCustomField
possible_values: ""
id: 9
is_required: false
field_format: date
default_value: ""
editable: true
position: 5
custom_fields_010:
name: Overtime
regexp: ""
is_for_all: false
is_filter: false
type: TimeEntryCustomField
possible_values: ""
id: 10
is_required: false
field_format: bool
default_value: 0
editable: true
position: 1
custom_fields_011:
id: 11
name: Binary
type: CustomField
possible_values:
- !binary |
SGXDqWzDp2prc2Tigqw2NTTDuQ==
- Other value
field_format: list
position: 1

View file

@ -0,0 +1,4 @@
---
custom_fields_projects_001:
custom_field_id: 9
project_id: 1

View file

@ -0,0 +1,31 @@
---
custom_fields_trackers_001:
custom_field_id: 1
tracker_id: 1
custom_fields_trackers_002:
custom_field_id: 2
tracker_id: 1
custom_fields_trackers_003:
custom_field_id: 2
tracker_id: 3
custom_fields_trackers_004:
custom_field_id: 6
tracker_id: 1
custom_fields_trackers_005:
custom_field_id: 6
tracker_id: 2
custom_fields_trackers_006:
custom_field_id: 6
tracker_id: 3
custom_fields_trackers_007:
custom_field_id: 8
tracker_id: 1
custom_fields_trackers_008:
custom_field_id: 8
tracker_id: 2
custom_fields_trackers_009:
custom_field_id: 8
tracker_id: 3
custom_fields_trackers_010:
custom_field_id: 9
tracker_id: 1

103
test/fixtures/custom_values.yml vendored Normal file
View file

@ -0,0 +1,103 @@
---
custom_values_006:
customized_type: Issue
custom_field_id: 2
customized_id: 3
id: 6
value: "125"
custom_values_007:
customized_type: Project
custom_field_id: 3
customized_id: 1
id: 7
value: Stable
custom_values_001:
customized_type: Principal
custom_field_id: 4
customized_id: 3
id: 1
value: ""
custom_values_002:
customized_type: Principal
custom_field_id: 4
customized_id: 4
id: 2
value: 01 23 45 67 89
custom_values_003:
customized_type: Principal
custom_field_id: 4
customized_id: 2
id: 3
value: "01 42 50 00 00"
custom_values_004:
customized_type: Issue
custom_field_id: 2
customized_id: 1
id: 4
value: "125"
custom_values_005:
customized_type: Issue
custom_field_id: 2
customized_id: 2
id: 5
value: ""
custom_values_008:
customized_type: Issue
custom_field_id: 1
customized_id: 3
id: 8
value: "MySQL"
custom_values_009:
customized_type: Issue
custom_field_id: 2
customized_id: 7
id: 9
value: "this is a stringforcustomfield search"
custom_values_010:
customized_type: Issue
custom_field_id: 6
customized_id: 1
id: 10
value: "2.1"
custom_values_011:
customized_type: Issue
custom_field_id: 6
customized_id: 2
id: 11
value: "2.05"
custom_values_012:
customized_type: Issue
custom_field_id: 6
customized_id: 3
id: 12
value: "11.65"
custom_values_013:
customized_type: Issue
custom_field_id: 6
customized_id: 7
id: 13
value: ""
custom_values_014:
customized_type: Issue
custom_field_id: 6
customized_id: 5
id: 14
value: "-7.6"
custom_values_015:
customized_type: Enumeration
custom_field_id: 7
customized_id: 10
id: 15
value: true
custom_values_016:
customized_type: Enumeration
custom_field_id: 7
customized_id: 11
id: 16
value: '1'
custom_values_017:
customized_type: Issue
custom_field_id: 8
customized_id: 1
id: 17
value: '2009-12-01'

25
test/fixtures/diffs/issue-12641-ja.diff vendored Normal file
View file

@ -0,0 +1,25 @@
# HG changeset patch
# User tmaruyama
# Date 1362559296 0
# Node ID ee54942e0289c30bea1b1973750b698b1ee7c466
# Parent 738777832f379f6f099c25251593fc57bc17f586
fix some Japanese "issue" translations (#13350)
Contributed by Go MAEDA.
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -904,9 +904,9 @@ ja:
text_journal_set_to: "%{label} を %{value} にセット"
text_journal_deleted: "%{label} を削除 (%{old})"
text_journal_added: "%{label} %{value} を追加"
- text_tip_issue_begin_day: この日に開始するタスク
- text_tip_issue_end_day: この日に終了するタスク
- text_tip_issue_begin_end_day: この日のうちに開始して終了するタスク
+ text_tip_issue_begin_day: この日に開始するチケット
+ text_tip_issue_end_day: この日に終了するチケット
+ text_tip_issue_begin_end_day: この日に開始・終了するチケット
text_caracters_maximum: "最大%{count}文字です。"
text_caracters_minimum: "最低%{count}文字の長さが必要です"
text_length_between: "長さは%{min}から%{max}文字までです。"

19
test/fixtures/diffs/issue-12641-ru.diff vendored Normal file
View file

@ -0,0 +1,19 @@
# HG changeset patch
# User tmaruyama
# Date 1355872765 0
# Node ID 8a13ebed1779c2e85fa644ecdd0de81996c969c4
# Parent 5c3c5f917ae92f278fe42c6978366996595b0796
Russian "about_x_hours" translation changed by Mikhail Velkin (#12640)
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -115,7 +115,7 @@ ru:
one: "около %{count} часа"
few: "около %{count} часов"
many: "около %{count} часов"
- other: "около %{count} часа"
+ other: "около %{count} часов"
x_hours:
one: "1 час"
other: "%{count} часов"

View file

@ -0,0 +1,7 @@
--- a.txt 2013-04-05 14:19:39.000000000 +0900
+++ b.txt 2013-04-05 14:19:51.000000000 +0900
@@ -1,3 +1,3 @@
aaaa
-日本
+日本語
bbbb

View file

@ -0,0 +1,7 @@
--- a.txt 2013-04-05 14:19:39.000000000 +0900
+++ b.txt 2013-04-05 14:19:51.000000000 +0900
@@ -1,3 +1,3 @@
aaaa
-日本
+にっぽん日本
bbbb

View file

@ -0,0 +1,7 @@
--- a.txt 2013-07-27 06:03:49.133257759 +0900
+++ b.txt 2013-07-27 06:03:58.791221118 +0900
@@ -1,3 +1,3 @@
aaaa
-日本記
+日本娘
bbbb

View file

@ -0,0 +1,7 @@
--- a.txt 2013-07-27 04:20:45.973229414 +0900
+++ b.txt 2013-07-27 04:20:52.366228105 +0900
@@ -1,3 +1,3 @@
aaaa
-日本記
+日本誘
bbbb

View file

@ -0,0 +1,7 @@
--- a.txt 2013-07-27 05:52:11.415223830 +0900
+++ b.txt 2013-07-27 05:52:18.249190358 +0900
@@ -1,3 +1,3 @@
aaaa
-日本記ok
+日本誘ok
bbbb

46
test/fixtures/diffs/partials.diff vendored Normal file
View file

@ -0,0 +1,46 @@
--- partials.txt Wed Jan 19 12:06:17 2011
+++ partials.1.txt Wed Jan 19 12:06:10 2011
@@ -1,31 +1,31 @@
-Lorem ipsum dolor sit amet, consectetur adipiscing elit
+Lorem ipsum dolor sit amet, consectetur adipiscing xx
Praesent et sagittis dui. Vivamus ac diam diam
-Ut sed auctor justo
+xxx auctor justo
Suspendisse venenatis sollicitudin magna quis suscipit
-Sed blandit gravida odio ac ultrices
+Sed blandit gxxxxa odio ac ultrices
Morbi rhoncus est ut est aliquam tempus
-Morbi id nisi vel felis tincidunt tempus
+Morbi id nisi vel felis xx tempus
Mauris auctor sagittis ante eu luctus
-Fusce commodo felis sed ligula congue molestie
+Fusce commodo felis sed ligula congue
Lorem ipsum dolor sit amet, consectetur adipiscing elit
-Praesent et sagittis dui. Vivamus ac diam diam
+et sagittis dui. Vivamus ac diam diam
Ut sed auctor justo
Suspendisse venenatis sollicitudin magna quis suscipit
Sed blandit gravida odio ac ultrices
-Lorem ipsum dolor sit amet, consectetur adipiscing elit
-Praesent et sagittis dui. Vivamus ac diam diam
+Lorem ipsum dolor sit amet, xxxx adipiscing elit
Ut sed auctor justo
Suspendisse venenatis sollicitudin magna quis suscipit
Sed blandit gravida odio ac ultrices
-Morbi rhoncus est ut est aliquam tempus
+Morbi rhoncus est ut est xxxx tempus
+New line
Morbi id nisi vel felis tincidunt tempus
Mauris auctor sagittis ante eu luctus
Fusce commodo felis sed ligula congue molestie
-Lorem ipsum dolor sit amet, consectetur adipiscing elit
-Praesent et sagittis dui. Vivamus ac diam diam
-Ut sed auctor justo
+Lorem ipsum dolor sit amet, xxxxtetur adipiscing elit
+Praesent et xxxxx. Vivamus ac diam diam
+Ut sed auctor
Suspendisse venenatis sollicitudin magna quis suscipit
Sed blandit gravida odio ac ultrices
Morbi rhoncus est ut est aliquam tempus

79
test/fixtures/diffs/subversion.diff vendored Normal file
View file

@ -0,0 +1,79 @@
Index: app/views/settings/_general.rhtml
===================================================================
--- app/views/settings/_general.rhtml (revision 2094)
+++ app/views/settings/_general.rhtml (working copy)
@@ -48,6 +48,9 @@
<p><label><%= l(:setting_feeds_limit) %></label>
<%= text_field_tag 'settings[feeds_limit]', Setting.feeds_limit, :size => 6 %></p>
+<p><label><%= l(:setting_diff_max_lines_displayed) %></label>
+<%= text_field_tag 'settings[diff_max_lines_displayed]', Setting.diff_max_lines_displayed, :size => 6 %></p>
+
<p><label><%= l(:setting_gravatar_enabled) %></label>
<%= check_box_tag 'settings[gravatar_enabled]', 1, Setting.gravatar_enabled? %><%= hidden_field_tag 'settings[gravatar_enabled]', 0 %></p>
</div>
Index: app/views/common/_diff.rhtml
===================================================================
--- app/views/common/_diff.rhtml (revision 2111)
+++ app/views/common/_diff.rhtml (working copy)
@@ -1,4 +1,5 @@
-<% Redmine::UnifiedDiff.new(diff, :type => diff_type).each do |table_file| -%>
+<% diff = Redmine::UnifiedDiff.new(diff, :type => diff_type, :max_lines => Setting.diff_max_lines_displayed.to_i) -%>
+<% diff.each do |table_file| -%>
<div class="autoscroll">
<% if diff_type == 'sbs' -%>
<table class="filecontent syntaxhl">
@@ -62,3 +63,5 @@
</div>
<% end -%>
+
+<%= l(:text_diff_truncated) if diff.truncated? %>
Index: lang/lt.yml
===================================================================
--- config/settings.yml (revision 2094)
+++ config/settings.yml (working copy)
@@ -61,6 +61,9 @@
feeds_limit:
format: int
default: 15
+diff_max_lines_displayed:
+ format: int
+ default: 1500
enabled_scm:
serialized: true
default:
Index: lib/redmine/unified_diff.rb
===================================================================
--- lib/redmine/unified_diff.rb (revision 2110)
+++ lib/redmine/unified_diff.rb (working copy)
@@ -19,8 +19,11 @@
# Class used to parse unified diffs
class UnifiedDiff < Array
def initialize(diff, options={})
+ options.assert_valid_keys(:type, :max_lines)
diff_type = options[:type] || 'inline'
+ lines = 0
+ @truncated = false
diff_table = DiffTable.new(diff_type)
diff.each do |line|
if line =~ /^(---|\+\+\+) (.*)$/
@@ -28,10 +31,17 @@
diff_table = DiffTable.new(diff_type)
end
diff_table.add_line line
+ lines += 1
+ if options[:max_lines] && lines > options[:max_lines]
+ @truncated = true
+ break
+ end
end
self << diff_table unless diff_table.empty?
self
end
+
+ def truncated?; @truncated; end
end
# Class that represents a file diff

14
test/fixtures/documents.yml vendored Normal file
View file

@ -0,0 +1,14 @@
documents_001:
created_on: 2007-01-27 15:08:27 +01:00
project_id: 1
title: "Test document"
id: 1
description: "Document description"
category_id: 1
documents_002:
created_on: 2007-02-12 15:08:27 +01:00
project_id: 1
title: "An other document"
id: 2
description: ""
category_id: 1

57
test/fixtures/email_addresses.yml vendored Normal file
View file

@ -0,0 +1,57 @@
---
email_address_001:
id: 1
user_id: 1
address: admin@somenet.foo
is_default: true
created_on: 2006-07-19 19:34:07 +02:00
updated_on: 2006-07-19 19:34:07 +02:00
email_address_002:
id: 2
user_id: 2
address: jsmith@somenet.foo
is_default: true
created_on: 2006-07-19 19:34:07 +02:00
updated_on: 2006-07-19 19:34:07 +02:00
email_address_003:
id: 3
user_id: 3
address: dlopper@somenet.foo
is_default: true
created_on: 2006-07-19 19:34:07 +02:00
updated_on: 2006-07-19 19:34:07 +02:00
email_address_004:
id: 4
user_id: 4
address: rhill@somenet.foo
is_default: true
created_on: 2006-07-19 19:34:07 +02:00
updated_on: 2006-07-19 19:34:07 +02:00
email_address_005:
id: 5
user_id: 5
address: dlopper2@somenet.foo
is_default: true
created_on: 2006-07-19 19:34:07 +02:00
updated_on: 2006-07-19 19:34:07 +02:00
email_address_007:
id: 7
user_id: 7
address: someone@foo.bar
is_default: true
created_on: 2006-07-19 19:34:07 +02:00
updated_on: 2006-07-19 19:34:07 +02:00
email_address_008:
id: 8
user_id: 8
address: miscuser8@foo.bar
is_default: true
created_on: 2006-07-19 19:34:07 +02:00
updated_on: 2006-07-19 19:34:07 +02:00
email_address_009:
id: 9
user_id: 9
address: miscuser9@foo.bar
is_default: true
created_on: 2006-07-19 19:34:07 +02:00
updated_on: 2006-07-19 19:34:07 +02:00

105
test/fixtures/enabled_modules.yml vendored Normal file
View file

@ -0,0 +1,105 @@
---
enabled_modules_001:
name: issue_tracking
project_id: 1
id: 1
enabled_modules_002:
name: time_tracking
project_id: 1
id: 2
enabled_modules_003:
name: news
project_id: 1
id: 3
enabled_modules_004:
name: documents
project_id: 1
id: 4
enabled_modules_005:
name: files
project_id: 1
id: 5
enabled_modules_006:
name: wiki
project_id: 1
id: 6
enabled_modules_007:
name: repository
project_id: 1
id: 7
enabled_modules_008:
name: boards
project_id: 1
id: 8
enabled_modules_009:
name: repository
project_id: 3
id: 9
enabled_modules_010:
name: wiki
project_id: 3
id: 10
enabled_modules_011:
name: issue_tracking
project_id: 2
id: 11
enabled_modules_012:
name: time_tracking
project_id: 3
id: 12
enabled_modules_013:
name: issue_tracking
project_id: 3
id: 13
enabled_modules_014:
name: issue_tracking
project_id: 5
id: 14
enabled_modules_015:
name: wiki
project_id: 2
id: 15
enabled_modules_016:
name: boards
project_id: 2
id: 16
enabled_modules_017:
name: calendar
project_id: 1
id: 17
enabled_modules_018:
name: gantt
project_id: 1
id: 18
enabled_modules_019:
name: calendar
project_id: 2
id: 19
enabled_modules_020:
name: gantt
project_id: 2
id: 20
enabled_modules_021:
name: calendar
project_id: 3
id: 21
enabled_modules_022:
name: gantt
project_id: 3
id: 22
enabled_modules_023:
name: calendar
project_id: 5
id: 23
enabled_modules_024:
name: gantt
project_id: 5
id: 24
enabled_modules_025:
name: news
project_id: 2
id: 25
enabled_modules_026:
name: repository
project_id: 2
id: 26

1
test/fixtures/encoding/iso-8859-1.txt vendored Normal file
View file

@ -0,0 +1 @@
Texte encodé en ISO-8859-1.

105
test/fixtures/enumerations.yml vendored Normal file
View file

@ -0,0 +1,105 @@
---
enumerations_001:
name: Uncategorized
id: 1
type: DocumentCategory
active: true
position: 1
enumerations_002:
name: User documentation
id: 2
type: DocumentCategory
active: true
position: 2
enumerations_003:
name: Technical documentation
id: 3
type: DocumentCategory
active: true
position: 3
enumerations_004:
name: Low
id: 4
type: IssuePriority
active: true
position: 1
position_name: lowest
enumerations_005:
name: Normal
id: 5
type: IssuePriority
is_default: true
active: true
position: 2
position_name: default
enumerations_006:
name: High
id: 6
type: IssuePriority
active: true
position: 3
position_name: high3
enumerations_007:
name: Urgent
id: 7
type: IssuePriority
active: true
position: 4
position_name: high2
enumerations_008:
name: Immediate
id: 8
type: IssuePriority
active: true
position: 5
position_name: highest
enumerations_009:
name: Design
id: 9
type: TimeEntryActivity
position: 1
active: true
enumerations_010:
name: Development
id: 10
type: TimeEntryActivity
position: 2
is_default: true
active: true
enumerations_011:
name: QA
id: 11
type: TimeEntryActivity
position: 3
active: true
enumerations_012:
name: Default Enumeration
id: 12
type: Enumeration
is_default: true
active: true
position: 1
enumerations_013:
name: Another Enumeration
id: 13
type: Enumeration
active: true
position: 2
enumerations_014:
name: Inactive Activity
id: 14
type: TimeEntryActivity
position: 4
active: false
enumerations_015:
name: Inactive Priority
id: 15
type: IssuePriority
position: 6
active: false
enumerations_016:
name: Inactive Document Category
id: 16
type: DocumentCategory
active: false
position: 4

Binary file not shown.

View file

@ -0,0 +1,13 @@
Index: trunk/app/controllers/issues_controller.rb
===================================================================
--- trunk/app/controllers/issues_controller.rb (révision 1483)
+++ trunk/app/controllers/issues_controller.rb (révision 1484)
@@ -149,7 +149,7 @@
attach_files(@issue, params[:attachments])
flash[:notice] = 'Demande créée avec succès'
Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added')
- redirect_to :controller => 'issues', :action => 'show', :id => @issue, :project_id => @project
+ redirect_to :controller => 'issues', :action => 'show', :id => @issue
return
end
end

View file

@ -0,0 +1,13 @@
Index: trunk/app/controllers/issues_controller.rb
===================================================================
--- trunk/app/controllers/issues_controller.rb (révision 1483)
+++ trunk/app/controllers/issues_controller.rb (révision 1484)
@@ -149,7 +149,7 @@
attach_files(@issue, params[:attachments])
flash[:notice] = 'Demande créée avec succès'
Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added')
- redirect_to :controller => 'issues', :action => 'show', :id => @issue, :project_id => @project
+ redirect_to :controller => 'issues', :action => 'show', :id => @issue
return
end
end

View file

@ -0,0 +1,10 @@
# The Greeter class
class Greeter
def initialize(name)
@name = name.capitalize
end
def salute
puts "Hello #{@name}!"
end
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

13
test/fixtures/files/hg-export.diff vendored Normal file
View file

@ -0,0 +1,13 @@
# HG changeset patch
# User test
# Date 1348014182 -32400
# Node ID d1c871b8ef113df7f1c56d41e6e3bfbaff976e1f
# Parent 180b6605936cdc7909c5f08b59746ec1a7c99b3e
modify test1.txt
diff -r 180b6605936c -r d1c871b8ef11 test1.txt
--- a/test1.txt
+++ b/test1.txt
@@ -1,1 +1,1 @@
-test1
+modify test1

4
test/fixtures/files/import_dates.csv vendored Normal file
View file

@ -0,0 +1,4 @@
subject;start;due;custom
Valid dates;10/07/2015;12/08/2015;14/07/2015
Invalid start date;04/15/2015;;
Invalid custom date;;;04/15/2015
1 subject start due custom
2 Valid dates 10/07/2015 12/08/2015 14/07/2015
3 Invalid start date 04/15/2015
4 Invalid custom date 04/15/2015

View file

@ -0,0 +1,3 @@
column A;column B;column C
Contenu en français;value1B;value1C
value2A;value2B;value2C
1 column A column B column C
2 Contenu en français value1B value1C
3 value2A value2B value2C

4
test/fixtures/files/import_issues.csv vendored Normal file
View file

@ -0,0 +1,4 @@
priority;subject;description;start_date;due_date;parent;private;progress;custom;version;category;user;estimated_hours;tracker;status
High;First;First description;2015-07-08;2015-08-25;;no;;PostgreSQL;;New category;dlopper;1;bug;new
Normal;Child 1;Child description;;;1;yes;10;MySQL;2.0;New category;;2;feature request;new
Normal;Child of existing issue;Child description;;;#2;no;20;;2.1;Printing;;3;bug;assigned
1 priority subject description start_date due_date parent private progress custom version category user estimated_hours tracker status
2 High First First description 2015-07-08 2015-08-25 no PostgreSQL New category dlopper 1 bug new
3 Normal Child 1 Child description 1 yes 10 MySQL 2.0 New category 2 feature request new
4 Normal Child of existing issue Child description #2 no 20 2.1 Printing 3 bug assigned

View file

@ -0,0 +1,5 @@
row;tracker;subject;parent
1;bug;Root;
2;bug;Child 1;1
3;bug;Grand-child;4
4;bug;Child 2;1
1 row tracker subject parent
2 1 bug Root
3 2 bug Child 1 1
4 3 bug Grand-child 4
5 4 bug Child 2 1

View file

@ -0,0 +1 @@
Ȁ
1 Ȁ

13
test/fixtures/files/iso8859-1.txt vendored Normal file
View file

@ -0,0 +1,13 @@
Index: trunk/app/controllers/issues_controller.rb
===================================================================
--- trunk/app/controllers/issues_controller.rb (révision 1483)
+++ trunk/app/controllers/issues_controller.rb (révision 1484)
@@ -149,7 +149,7 @@
attach_files(@issue, params[:attachments])
flash[:notice] = 'Demande créée avec succès'
Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added')
- redirect_to :controller => 'issues', :action => 'show', :id => @issue, :project_id => @project
+ redirect_to :controller => 'issues', :action => 'show', :id => @issue
return
end
end

View file

@ -0,0 +1 @@
日本語

2
test/fixtures/files/testfile.txt vendored Normal file
View file

@ -0,0 +1,2 @@
this is a text file for upload tests
with multiple lines

7
test/fixtures/groups_users.yml vendored Normal file
View file

@ -0,0 +1,7 @@
---
groups_users_001:
group_id: 10
user_id: 8
groups_users_002:
group_id: 11
user_id: 8

21
test/fixtures/issue_categories.yml vendored Normal file
View file

@ -0,0 +1,21 @@
---
issue_categories_001:
name: Printing
project_id: 1
assigned_to_id: 2
id: 1
issue_categories_002:
name: Recipes
project_id: 1
assigned_to_id:
id: 2
issue_categories_003:
name: Stock management
project_id: 2
assigned_to_id:
id: 3
issue_categories_004:
name: Printing
project_id: 2
assigned_to_id:
id: 4

12
test/fixtures/issue_relations.yml vendored Normal file
View file

@ -0,0 +1,12 @@
issue_relation_001:
id: 1
issue_from_id: 10
issue_to_id: 9
relation_type: blocks
delay:
issue_relation_002:
id: 2
issue_from_id: 2
issue_to_id: 3
relation_type: relates
delay:

31
test/fixtures/issue_statuses.yml vendored Normal file
View file

@ -0,0 +1,31 @@
---
issue_statuses_001:
id: 1
name: New
is_closed: false
position: 1
issue_statuses_002:
id: 2
name: Assigned
is_closed: false
position: 2
issue_statuses_003:
id: 3
name: Resolved
is_closed: false
position: 3
issue_statuses_004:
name: Feedback
id: 4
is_closed: false
position: 4
issue_statuses_005:
id: 5
name: Closed
is_closed: true
position: 5
issue_statuses_006:
id: 6
name: Rejected
is_closed: true
position: 6

268
test/fixtures/issues.yml vendored Normal file
View file

@ -0,0 +1,268 @@
---
issues_001:
created_on: <%= 3.days.ago.to_s(:db) %>
project_id: 1
updated_on: <%= 1.day.ago.to_s(:db) %>
priority_id: 4
subject: Cannot print recipes
id: 1
fixed_version_id:
category_id: 1
description: Unable to print recipes
tracker_id: 1
assigned_to_id:
author_id: 2
status_id: 1
start_date: <%= 1.day.ago.to_date.to_s(:db) %>
due_date: <%= 10.day.from_now.to_date.to_s(:db) %>
root_id: 1
lft: 1
rgt: 2
lock_version: 3
issues_002:
created_on: 2006-07-19 21:04:21 +02:00
project_id: 1
updated_on: 2006-07-19 21:09:50 +02:00
priority_id: 5
subject: Add ingredients categories
id: 2
fixed_version_id: 2
category_id:
description: Ingredients of the recipe should be classified by categories
tracker_id: 2
assigned_to_id: 3
author_id: 2
status_id: 2
start_date: <%= 2.day.ago.to_date.to_s(:db) %>
due_date:
root_id: 2
lft: 1
rgt: 2
lock_version: 3
done_ratio: 30
issues_003:
created_on: 2006-07-19 21:07:27 +02:00
project_id: 1
updated_on: 2006-07-19 21:07:27 +02:00
priority_id: 4
subject: Error 281 when updating a recipe
id: 3
fixed_version_id:
category_id:
description: Error 281 is encountered when saving a recipe
tracker_id: 1
assigned_to_id: 3
author_id: 2
status_id: 1
start_date: <%= 15.day.ago.to_date.to_s(:db) %>
due_date: <%= 5.day.ago.to_date.to_s(:db) %>
root_id: 3
lft: 1
rgt: 2
issues_004:
created_on: <%= 5.days.ago.to_s(:db) %>
project_id: 2
updated_on: <%= 2.days.ago.to_s(:db) %>
priority_id: 4
subject: Issue on project 2
id: 4
fixed_version_id:
category_id:
description: Issue on project 2
tracker_id: 1
assigned_to_id: 2
author_id: 2
status_id: 1
root_id: 4
lft: 1
rgt: 2
issues_005:
created_on: <%= 5.days.ago.to_s(:db) %>
project_id: 3
updated_on: <%= 2.days.ago.to_s(:db) %>
priority_id: 4
subject: Subproject issue
id: 5
fixed_version_id:
category_id:
description: This is an issue on a cookbook subproject
tracker_id: 1
assigned_to_id:
author_id: 2
status_id: 1
root_id: 5
lft: 1
rgt: 2
issues_006:
created_on: <%= 1.minute.ago.to_s(:db) %>
project_id: 5
updated_on: <%= 1.minute.ago.to_s(:db) %>
priority_id: 4
subject: Issue of a private subproject
id: 6
fixed_version_id:
category_id:
description: This is an issue of a private subproject of cookbook
tracker_id: 1
assigned_to_id:
author_id: 2
status_id: 1
start_date: <%= Date.today.to_s(:db) %>
due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
root_id: 6
lft: 1
rgt: 2
issues_007:
created_on: <%= 10.days.ago.to_s(:db) %>
project_id: 1
updated_on: <%= 10.days.ago.to_s(:db) %>
priority_id: 5
subject: Issue due today
id: 7
fixed_version_id:
category_id:
description: This is an issue that is due today
tracker_id: 1
assigned_to_id:
author_id: 2
status_id: 1
start_date: <%= 10.days.ago.to_s(:db) %>
due_date: <%= Date.today.to_s(:db) %>
lock_version: 0
root_id: 7
lft: 1
rgt: 2
issues_008:
created_on: <%= 10.days.ago.to_s(:db) %>
project_id: 1
updated_on: <%= 10.days.ago.to_s(:db) %>
priority_id: 5
subject: Closed issue
id: 8
fixed_version_id:
category_id:
description: This is a closed issue.
tracker_id: 1
assigned_to_id:
author_id: 2
status_id: 5
start_date:
due_date:
lock_version: 0
root_id: 8
lft: 1
rgt: 2
closed_on: <%= 3.days.ago.to_s(:db) %>
issues_009:
created_on: <%= 1.minute.ago.to_s(:db) %>
project_id: 5
updated_on: <%= 1.minute.ago.to_s(:db) %>
priority_id: 5
subject: Blocked Issue
id: 9
fixed_version_id:
category_id:
description: This is an issue that is blocked by issue #10
tracker_id: 1
assigned_to_id:
author_id: 2
status_id: 1
start_date: <%= Date.today.to_s(:db) %>
due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
root_id: 9
lft: 1
rgt: 2
issues_010:
created_on: <%= 1.minute.ago.to_s(:db) %>
project_id: 5
updated_on: <%= 1.minute.ago.to_s(:db) %>
priority_id: 5
subject: Issue Doing the Blocking
id: 10
fixed_version_id:
category_id:
description: This is an issue that blocks issue #9
tracker_id: 1
assigned_to_id:
author_id: 2
status_id: 1
start_date: <%= Date.today.to_s(:db) %>
due_date: <%= 1.days.from_now.to_date.to_s(:db) %>
root_id: 10
lft: 1
rgt: 2
issues_011:
created_on: <%= 3.days.ago.to_s(:db) %>
project_id: 1
updated_on: <%= 1.day.ago.to_s(:db) %>
priority_id: 5
subject: Closed issue on a closed version
id: 11
fixed_version_id: 1
category_id: 1
description:
tracker_id: 1
assigned_to_id:
author_id: 2
status_id: 5
start_date: <%= 1.day.ago.to_date.to_s(:db) %>
due_date:
root_id: 11
lft: 1
rgt: 2
closed_on: <%= 1.day.ago.to_s(:db) %>
issues_012:
created_on: <%= 3.days.ago.to_s(:db) %>
project_id: 1
updated_on: <%= 1.day.ago.to_s(:db) %>
priority_id: 5
subject: Closed issue on a locked version
id: 12
fixed_version_id: 2
category_id: 1
description:
tracker_id: 1
assigned_to_id:
author_id: 3
status_id: 5
start_date: <%= 1.day.ago.to_date.to_s(:db) %>
due_date:
root_id: 12
lft: 1
rgt: 2
closed_on: <%= 1.day.ago.to_s(:db) %>
issues_013:
created_on: <%= 5.days.ago.to_s(:db) %>
project_id: 3
updated_on: <%= 2.days.ago.to_s(:db) %>
priority_id: 4
subject: Subproject issue two
id: 13
fixed_version_id:
category_id:
description: This is a second issue on a cookbook subproject
tracker_id: 1
assigned_to_id:
author_id: 2
status_id: 1
root_id: 13
lft: 1
rgt: 2
issues_014:
id: 14
created_on: <%= 15.days.ago.to_s(:db) %>
project_id: 3
updated_on: <%= 15.days.ago.to_s(:db) %>
priority_id: 5
subject: Private issue on public project
fixed_version_id:
category_id:
description: This is a private issue
tracker_id: 1
assigned_to_id:
author_id: 2
status_id: 1
is_private: true
root_id: 14
lft: 1
rgt: 2

43
test/fixtures/journal_details.yml vendored Normal file
View file

@ -0,0 +1,43 @@
---
journal_details_001:
old_value: "1"
property: attr
id: 1
value: "2"
prop_key: status_id
journal_id: 1
journal_details_002:
old_value: "40"
property: attr
id: 2
value: "30"
prop_key: done_ratio
journal_id: 1
journal_details_003:
old_value:
property: attr
id: 3
value: "6"
prop_key: fixed_version_id
journal_id: 4
journal_details_004:
old_value: "This word was removed and an other was"
property: attr
id: 4
value: "This word was and an other was added"
prop_key: description
journal_id: 3
journal_details_005:
old_value: Old value
property: cf
id: 5
value: New value
prop_key: 2
journal_id: 3
journal_details_006:
old_value:
property: attachment
id: 6
value: 060719210727_picture.jpg
prop_key: 4
journal_id: 3

36
test/fixtures/journals.yml vendored Normal file
View file

@ -0,0 +1,36 @@
---
journals_001:
created_on: <%= 2.days.ago.to_date.to_s(:db) %>
notes: "Journal notes"
id: 1
journalized_type: Issue
user_id: 1
journalized_id: 1
journals_002:
created_on: <%= 1.days.ago.to_date.to_s(:db) %>
notes: "Some notes with Redmine links: #2, r2."
id: 2
journalized_type: Issue
user_id: 2
journalized_id: 1
journals_003:
created_on: <%= 1.days.ago.to_date.to_s(:db) %>
notes: "A comment with inline image: !picture.jpg! and a reference to #1 and r2."
id: 3
journalized_type: Issue
user_id: 2
journalized_id: 2
journals_004:
created_on: <%= 1.days.ago.to_date.to_s(:db) %>
notes: "A comment with a private version."
id: 4
journalized_type: Issue
user_id: 1
journalized_id: 6
journals_005:
id: 5
created_on: <%= 1.days.ago.to_date.to_s(:db) %>
notes: "A comment on a private issue."
user_id: 2
journalized_type: Issue
journalized_id: 14

24
test/fixtures/ldap/slapd.centos6.conf vendored Normal file
View file

@ -0,0 +1,24 @@
# Sample OpenLDAP configuration file for Redmine LDAP test server
# CentOS6 openldap-servers-2.4.40-6.el6_7.x86_64
#
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/nis.schema
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
modulepath /usr/lib64/openldap
moduleload back_bdb.la
database bdb
suffix "dc=redmine,dc=org"
rootdn "cn=Manager,dc=redmine,dc=org"
rootpw secret
directory /var/lib/ldap
# Indices to maintain
index objectClass eq

19
test/fixtures/ldap/slapd.conf vendored Normal file
View file

@ -0,0 +1,19 @@
# Sample OpenLDAP configuration file for Redmine LDAP test server
#
ucdata-path ./ucdata
include ./schema/core.schema
include ./schema/cosine.schema
include ./schema/inetorgperson.schema
include ./schema/openldap.schema
include ./schema/nis.schema
pidfile ./run/slapd.pid
argsfile ./run/slapd.args
database bdb
suffix "dc=redmine,dc=org"
rootdn "cn=Manager,dc=redmine,dc=org"
rootpw secret
directory ./redmine
# Indices to maintain
index objectClass eq

View file

@ -0,0 +1,23 @@
# Sample OpenLDAP configuration file for Redmine LDAP test server
# Ubuntu 12.04 LTS Server Edition 64 bit slapd (2.4.28-1.1ubuntu4.6)
#
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/nis.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
modulepath /usr/lib/ldap
moduleload back_bdb.la
database bdb
suffix "dc=redmine,dc=org"
rootdn "cn=Manager,dc=redmine,dc=org"
rootpw secret
# Indices to maintain
index objectClass eq

47
test/fixtures/ldap/test-ldap.ldif vendored Normal file
View file

@ -0,0 +1,47 @@
dn: dc=redmine,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: redmine.org
dc: redmine
dn: cn=admin,dc=redmine,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e2NyeXB0fWlWTU9DcUt6WWxXRDI=
dn: ou=Person,dc=redmine,dc=org
ou: Person
objectClass: top
objectClass: organizationalUnit
dn: uid=example1,ou=Person,dc=redmine,dc=org
objectClass: posixAccount
objectClass: top
objectClass: inetOrgPerson
gidNumber: 0
givenName: Example
sn: One
uid: example1
homeDirectory: /home/example1
cn: Example One
uidNumber: 0
mail: example1@redmine.org
userPassword:: e1NIQX1mRXFOQ2NvM1lxOWg1WlVnbEQzQ1pKVDRsQnM9
dn: uid=edavis,ou=Person,dc=redmine,dc=org
objectClass: posixAccount
objectClass: top
objectClass: inetOrgPerson
gidNumber: 0
givenName: Eric
sn: Davis
uid: edavis
mail: edavis@littlestreamsoftware.com
homeDirectory: /home/edavis
cn: Eric Davis
uidNumber: 0
userPassword:: e1NIQX1mRXFOQ2NvM1lxOWg1WlVnbEQzQ1pKVDRsQnM9

View file

@ -0,0 +1,240 @@
From JSmith@somenet.foo Mon Jun 27 06:55:56 2011
Return-Path: <JSmith@somenet.foo>
X-Original-To: redmine@somenet.foo
Delivered-To: redmine@somenet.foo
From: John Smith <JSmith@somenet.foo>
Mime-Version: 1.0 (Apple Message framework v1084)
Content-Type: multipart/alternative; boundary=Apple-Mail-3-163265085
Subject: Test attaching images to tickets by HTML mail
Date: Mon, 27 Jun 2011 16:55:46 +0300
To: redmine@somenet.foo
Message-Id: <7ABE3636-07E8-47C9-90A1-FCB1AA894DA1@somenet.foo>
X-Mailer: Apple Mail (2.1084)
--Apple-Mail-3-163265085
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
Yet another test!
--Apple-Mail-3-163265085
Content-Type: multipart/related;
type="text/html";
boundary=Apple-Mail-4-163265085
--Apple-Mail-4-163265085
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<html><head></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<br></body></html>=
--Apple-Mail-4-163265085
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename=paella.jpg
Content-Type: image/jpg;
x-unix-mode=0644;
name="paella.jpg"
Content-Id: <1207F0B5-9F9D-4AB4-B547-AF9033E82111>
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
cbis+/WpUqUcMZKdF44n/9k=
--Apple-Mail-4-163265085--
--Apple-Mail-3-163265085--

View file

@ -0,0 +1,14 @@
From: John Smith <JSmith@somenet.foo>
To: "redmine@somenet.foo" <redmine@somenet.foo>
Subject: This is a test
Content-Type: multipart/alternative;
boundary="_c20d9cfa-d16a-43a3-a7e5-71da7877ab23_"
--_c20d9cfa-d16a-43a3-a7e5-71da7877ab23_
Content-Type: text/plain; charset="ks_c_5601-1987"
Content-Transfer-Encoding: base64
sO24v73AtM+02S4=
--_c20d9cfa-d16a-43a3-a7e5-71da7877ab23_--

View file

@ -0,0 +1,35 @@
From JSmith@somenet.foo Fri Mar 22 08:30:28 2013
From: John Smith <JSmith@somenet.foo>
Content-Type: multipart/mixed; boundary="Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9"
Message-Id: <BB533668-3CC8-41CA-A951-0A5D8EA37FB0@somenet.foo>
Mime-Version: 1.0 (Mac OS X Mail 6.3 \(1503\))
Subject: Test with an empty text part
Date: Fri, 22 Mar 2013 17:30:20 +0200
To: redmine@somenet.foo
X-Mailer: Apple Mail (2.1503)
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8" />
</head>
<body>
</body>
</html>
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9--

View file

@ -0,0 +1,36 @@
From JSmith@somenet.foo Fri Mar 22 08:30:28 2013
From: John Smith <JSmith@somenet.foo>
Content-Type: multipart/mixed; boundary="Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9"
Message-Id: <BB533668-3CC8-41CA-A951-0A5D8EA37FB0@somenet.foo>
Mime-Version: 1.0 (Mac OS X Mail 6.3 \(1503\))
Subject: Test with an empty text part
Date: Fri, 22 Mar 2013 17:30:20 +0200
To: redmine@somenet.foo
X-Mailer: Apple Mail (2.1503)
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=us-ascii
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww=
w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8" />
</head>
<body>
<p>The html part.</p>
</body>
</html>
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9--

View file

@ -0,0 +1,5 @@
From: =?utf-8?b?w4TDpCDDlsO2?= <foo@example.org>
Subject: foo
Content-Type: text/plain; charset=utf-8
testing user creation with quoted From-header

View file

@ -0,0 +1,11 @@
Date: Tue, 13 Aug 2013 10:56:04 +0700
From: John Smith <JSmith@somenet.foo>
Subject: =?ISO-8859-2?Q?Nikad_vi=B9e?=
To: redmine@somenet.foo
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Na =B9triku se su=B9i =B9osi=E6.
--=20
=B9osi=E6

View file

@ -0,0 +1,26 @@
Date: Tue, 20 Nov 2012 23:08:25 +0900
Message-ID: <CANBr5-UZM=Odz4U3Q6vHd_9cd2tCT-_P9xDd=hRJ0aoMNTWXbw@mail.gmail.com>
Subject: test
From: John Smith <JSmith@somenet.foo>
To: redmine@somenet.foo
Content-Type: multipart/mixed; boundary=14dae93a13bf76ca5d04ceedc458
--14dae93a13bf76ca5d04ceedc458
Content-Type: text/plain; charset=ISO-8859-1
test
--14dae93a13bf76ca5d04ceedc458
Content-Type: text/plain; charset=US-ASCII;
name="=?ISO-8859-1?B?xOTW9tz8xOTW9tz8xOTW9tz8xOTW9tz8xOTW9tw=?=
=?ISO-8859-1?B?/MTk1vbc/MTk1vbc/MTk1vbc/MTk1vbc/MTk1vbc?=
=?ISO-8859-1?B?/MTk1vbc/C50eHQ=?="
Content-Disposition: attachment;
filename="=?ISO-8859-1?B?xOTW9tz8xOTW9tz8xOTW9tz8xOTW9tz8xOTW9tw=?=
=?ISO-8859-1?B?/MTk1vbc/MTk1vbc/MTk1vbc/MTk1vbc/MTk1vbc?=
=?ISO-8859-1?B?/MTk1vbc/C50eHQ=?="
Content-Transfer-Encoding: base64
X-Attachment-Id: f_h9r3mcjz0
dGVzdAo=
--14dae93a13bf76ca5d04ceedc458--

View file

@ -0,0 +1,20 @@
Date: Mon, 19 Nov 2012 10:17:45 +0900
Message-ID: <CANBr5-U6cXMfLek5QiB2ZrBPR3vTThn9_Upvdkf3Dkod664+Xw@mail.gmail.com>
Subject: test
From: John Smith <JSmith@somenet.foo>
To: redmine@somenet.foo
Content-Type: multipart/mixed; boundary=bcaec54ee4ea84f77904cecee22e
--bcaec54ee4ea84f77904cecee22e
Content-Type: text/plain; charset=ISO-8859-1
test
--bcaec54ee4ea84f77904cecee22e
Content-Type: text/plain; charset=US-ASCII; name="=?ISO-2022-JP?B?GyRCJUYlOSVIGyhCLnR4dA==?="
Content-Disposition: attachment; filename="=?ISO-2022-JP?B?GyRCJUYlOSVIGyhCLnR4dA==?="
Content-Transfer-Encoding: base64
X-Attachment-Id: f_h9owndpv0
dGVzdAo=
--bcaec54ee4ea84f77904cecee22e--

View file

@ -0,0 +1,14 @@
From: John Smith <JSmith@somenet.foo>
To: "redmine@somenet.foo" <redmine@somenet.foo>
Subject: This is a test
Content-Type: multipart/alternative;
boundary="_c20d9cfa-d16a-43a3-a7e5-71da7877ab23_"
--_c20d9cfa-d16a-43a3-a7e5-71da7877ab23_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
=D0=97=D0=B4=D1=80=D0=B0=D0=B2=D1=81=D1=82=D0=B2=D1=83=D0=B9=D1=82=D0=B5=AA
--_c20d9cfa-d16a-43a3-a7e5-71da7877ab23_--

View file

@ -0,0 +1,19 @@
Return-Path: <JSmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
In-Reply-To: <redmine.issue-2.20060719210421@osiris>
From: "John Smith" <JSmith@somenet.foo>
To: <redmine@somenet.foo>
Cc: <dlopper@somenet.foo>
Subject: Re: update to issue 2
Date: Sun, 22 Jun 2008 12:28:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 7bit
An update to the issue by the sender.

View file

@ -0,0 +1,48 @@
Return-Path: <JSmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
In-Reply-To: <redmine.issue-2.20060719210421@osiris>
From: "John Smith" <JSmith@somenet.foo>
To: <redmine@somenet.foo>
Subject: Re: update to issue 2
Date: Sun, 22 Jun 2008 12:28:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
An update to the issue by the sender.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas imperdiet
turpis et odio. Integer eget pede vel dolor euismod varius. Phasellus
blandit eleifend augue. Nulla facilisi. Duis id diam. Class aptent taciti
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In
in urna sed tellus aliquet lobortis. Morbi scelerisque tortor in dolor. Cras
sagittis odio eu lacus. Aliquam sem tortor, consequat sit amet, vestibulum
id, iaculis at, lectus. Fusce tortor libero, congue ut, euismod nec, luctus
eget, eros. Pellentesque tortor enim, feugiat in, dignissim eget, tristique
sed, mauris --- Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
platea dictumst.
>> > --- Reply above. Do not remove this line. ---
>> >
>> > Issue #6779 has been updated by Eric Davis.
>> >
>> > Subject changed from Projects with JSON to Project JSON API
>> > Status changed from New to Assigned
>> > Assignee set to Eric Davis
>> > Priority changed from Low to Normal
>> > Estimated time deleted (1.00)
>> >
>> > Looks like the JSON api for projects was missed. I'm going to be
>> > reviewing the existing APIs and trying to clean them up over the next
>> > few weeks.

View file

@ -0,0 +1,48 @@
Return-Path: <JSmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
In-Reply-To: <redmine.issue-2.20060719210421@osiris>
From: "John Smith" <JSmith@somenet.foo>
To: <redmine@somenet.foo>
Subject: Re: update to issue 2
Date: Sun, 22 Jun 2008 12:28:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
An update to the issue by the sender.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas imperdiet
turpis et odio. Integer eget pede vel dolor euismod varius. Phasellus
blandit eleifend augue. Nulla facilisi. Duis id diam. Class aptent taciti
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In
in urna sed tellus aliquet lobortis. Morbi scelerisque tortor in dolor. Cras
sagittis odio eu lacus. Aliquam sem tortor, consequat sit amet, vestibulum
id, iaculis at, lectus. Fusce tortor libero, congue ut, euismod nec, luctus
eget, eros. Pellentesque tortor enim, feugiat in, dignissim eget, tristique
sed, mauris --- Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
platea dictumst.
> --- Reply above. Do not remove this line. ---
>
> Issue #6779 has been updated by Eric Davis.
>
> Subject changed from Projects with JSON to Project JSON API
> Status changed from New to Assigned
> Assignee set to Eric Davis
> Priority changed from Low to Normal
> Estimated time deleted (1.00)
>
> Looks like the JSON api for projects was missed. I'm going to be
> reviewing the existing APIs and trying to clean them up over the next
> few weeks.

View file

@ -0,0 +1,60 @@
Message-ID: <001101ca9762$293d68c0$0600a8c0@osiris>
From: "jsmith" <jsmith@somenet.foo>
To: <redmine@somenet.foo>
Subject: Japanese Character pattern matching
Date: Sun, 17 Jan 2010 11:45:18 +0100
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_000E_01CA976A.8AF5E9E0"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
This is a multi-part message in MIME format.
------=_NextPart_000_000E_01CA976A.8AF5E9E0
Content-Type: text/plain;
charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable
It should be noted that I am receiving emails using pop and the patch in =
Issue #2420 but I don't think the problem lies with this.
When I try and send emails to the redmine server with Japanese =
characters in them it appears to work apart from the pattern matching.
For example if I send an email with the following keywords.
Tracker: =1B$B3+H/=1B(B
------=_NextPart_000_000E_01CA976A.8AF5E9E0
Content-Type: text/html;
charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-2022-jp" =
http-equiv=3DContent-Type>
<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.18702">
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2 face=3DArial>
<P>It should be noted that I am receiving emails using pop and the patch =
in=20
Issue <A class=3D"issue status-1 priority-2"=20
title=3D"Fetching emails from an POP server (New)"=20
href=3D"http://www.redmine.org/issues/2420">#2420</A> but I don't think =
the=20
problem lies with this.</P>
<P>When I try and send emails to the redmine server with Japanese =
characters in=20
them it appears to work apart from the pattern matching.</P>
<P>For example if I send an email with the following keywords.</P>
<P>Tracker: =
=1B$B3+H/=1B(B</P></FONT></DIV></BODY></HTML>
------=_NextPart_000_000E_01CA976A.8AF5E9E0--

View file

@ -0,0 +1,15 @@
Message-ID: <4974C93E.3070005@somenet.foo>
Date: Mon, 19 Jan 2009 19:41:02 +0100
From: "John Smith" <jsmith@somenet.foo>
User-Agent: Thunderbird 2.0.0.19 (Windows/20081209)
MIME-Version: 1.0
To: redmine@somenet.foo
Subject: Reply via email
References: <redmine.message-2.20070512171800@somenet.foo>
In-Reply-To: <redmine.message-2.20070512171800@somenet.foo>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
This is a reply to a forum message.

View file

@ -0,0 +1,13 @@
Message-ID: <4974C93E.3070005@somenet.foo>
Date: Mon, 19 Jan 2009 19:41:02 +0100
From: "John Smith" <jsmith@somenet.foo>
User-Agent: Thunderbird 2.0.0.19 (Windows/20081209)
MIME-Version: 1.0
To: redmine@somenet.foo
Subject: Re: [eCookbook - Help board - msg2] Reply to the first post
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
This is a reply to a forum message.

View file

@ -0,0 +1,62 @@
From JSmith@somenet.foo Fri Mar 22 08:30:28 2013
From: John Smith <JSmith@somenet.foo>
Content-Type: multipart/mixed; boundary="Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9"
Message-Id: <BB533668-3CC8-41CA-A951-0A5D8EA37FB0@somenet.foo>
Mime-Version: 1.0 (Mac OS X Mail 6.3 \(1503\))
Subject: Test with multiple text parts
Date: Fri, 22 Mar 2013 17:30:20 +0200
To: redmine@somenet.foo
X-Mailer: Apple Mail (2.1503)
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
The first text part.
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9
Content-Disposition: inline;
filename=1st.pdf
Content-Type: application/pdf;
x-unix-mode=0644;
name="1st.pdf"
Content-Transfer-Encoding: base64
JVBERi0xLjMKJcTl8uXrp/Og0MTGCjQgMCBvYmoKPDwgL0xlbmd0aCA1IDAgUiAvRmlsdGVyIC9G
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
The second text part.
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9
Content-Disposition: inline;
filename=2nd.pdf
Content-Type: application/pdf;
x-unix-mode=0644;
name="2nd.pdf"
Content-Transfer-Encoding: base64
JVBERi0xLjMKJcTl8uXrp/Og0MTGCjQgMCBvYmoKPDwgL0xlbmd0aCA1IDAgUiAvRmlsdGVyIC9G
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=us-ascii
The third one.
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="textfile.txt"
Plain text attachment
--Apple-Mail=_33C8180A-B097-4B87-A925-441300BDB9C9--

View file

@ -0,0 +1,10 @@
Content-Type: application/ms-tnef; name="winmail.dat"
Content-Transfer-Encoding: binary
From: John Smith <JSmith@somenet.foo>
To: "redmine@somenet.foo" <redmine@somenet.foo>
Date: Fri, 1 Jun 2012 14:39:38 +0200
Message-ID: <87C31D42249DD0489D1A1444E3232DD7019D6183@foo.bar>
Accept-Language: de-CH, en-US
Content-Language: de-CH
Fixture

View file

@ -0,0 +1,966 @@
From: jsmith@somenet.foo
To: testuser@example.org
Subject: =?utf-8?Q?Test_email?=
Date: Mon, 11 May 2015 10:50:31 -0500
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="Mark=_539924359269962179476"
X-Priority: 3
This is a multi-part message in MIME format.
--Mark=_539924359269962179476
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Simple, unadorned test email generated by Outlook 2010. It is in HTML f=
ormat, but no special formatting has been chosen. I=E2=80=99m going to =
save this as a draft and then manually drop it into the Inbox for scrap=
ing by Redmine 3.0.2.
--Mark=_539924359269962179476
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
<STYLE>
pre {
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
</STYLE>
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-=
microsoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:offic=
e:word" xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xm=
lns=3D"http://www.w3.org/TR/REC-html40"><head><meta name=3DProgId conte=
nt=3DWord.Document><meta name=3DGenerator content=3D"Microsoft Word 15"=
><meta name=3DOriginator content=3D"Microsoft Word 15"><link rel=3DFile=
-List href=3D"cid:filelist.xml@01D08BD8.4D051580"><!--[if gte mso 9]><x=
ml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><link rel=3DthemeData href=3D"~~themedata~~"><link re=
l=3DcolorSchemeMapping href=3D"~~colorschememapping~~"><!--[if gte mso =
9]><xml>
<w:WordDocument>
<w:Zoom>120</w:Zoom>
<w:SpellingState>Clean</w:SpellingState>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:EnvelopeVis/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:DoNotExpandShiftReturn/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val=3D"Cambria Math"/>
<m:brkBin m:val=3D"before"/>
<m:brkBinSub m:val=3D"&#45;-"/>
<m:smallFrac m:val=3D"off"/>
<m:dispDef/>
<m:lMargin m:val=3D"0"/>
<m:rMargin m:val=3D"0"/>
<m:defJc m:val=3D"centerGroup"/>
<m:wrapIndent m:val=3D"1440"/>
<m:intLim m:val=3D"subSup"/>
<m:naryLim m:val=3D"undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState=3D"false" DefUnhideWhenUsed=3D"false" De=
fSemiHidden=3D"false" DefQFormat=3D"false" DefPriority=3D"99" LatentSty=
leCount=3D"371">
<w:LsdException Locked=3D"false" Priority=3D"0" QFormat=3D"true" Name=3D=
"Normal"/>
<w:LsdException Locked=3D"false" Priority=3D"9" QFormat=3D"true" Name=3D=
"heading 1"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" Unh=
ideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 2"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" Unh=
ideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 3"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" Unh=
ideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 4"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" Unh=
ideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 5"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" Unh=
ideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 6"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" Unh=
ideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 7"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" Unh=
ideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 8"/>
<w:LsdException Locked=3D"false" Priority=3D"9" SemiHidden=3D"true" Unh=
ideWhenUsed=3D"true" QFormat=3D"true" Name=3D"heading 9"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"index 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"index 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"index 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"index 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"index 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"index 6"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"index 7"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"index 8"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"index 9"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" Un=
hideWhenUsed=3D"true" Name=3D"toc 1"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" Un=
hideWhenUsed=3D"true" Name=3D"toc 2"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" Un=
hideWhenUsed=3D"true" Name=3D"toc 3"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" Un=
hideWhenUsed=3D"true" Name=3D"toc 4"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" Un=
hideWhenUsed=3D"true" Name=3D"toc 5"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" Un=
hideWhenUsed=3D"true" Name=3D"toc 6"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" Un=
hideWhenUsed=3D"true" Name=3D"toc 7"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" Un=
hideWhenUsed=3D"true" Name=3D"toc 8"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" Un=
hideWhenUsed=3D"true" Name=3D"toc 9"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Normal Indent"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"footnote text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"annotation text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"header"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"footer"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"index heading"/>
<w:LsdException Locked=3D"false" Priority=3D"35" SemiHidden=3D"true" Un=
hideWhenUsed=3D"true" QFormat=3D"true" Name=3D"caption"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"table of figures"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"envelope address"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"envelope return"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"footnote reference"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"annotation reference"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"line number"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"page number"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"endnote reference"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"endnote text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"table of authorities"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"macro"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"toa heading"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Bullet"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Number"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Bullet 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Bullet 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Bullet 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Bullet 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Number 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Number 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Number 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Number 5"/>
<w:LsdException Locked=3D"false" Priority=3D"10" QFormat=3D"true" Name=3D=
"Title"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Closing"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Signature"/>
<w:LsdException Locked=3D"false" Priority=3D"1" SemiHidden=3D"true" Unh=
ideWhenUsed=3D"true" Name=3D"Default Paragraph Font"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Body Text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Body Text Indent"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Continue"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Continue 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Continue 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Continue 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"List Continue 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Message Header"/>
<w:LsdException Locked=3D"false" Priority=3D"11" QFormat=3D"true" Name=3D=
"Subtitle"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Salutation"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Date"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Body Text First Indent"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Body Text First Indent 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Note Heading"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Body Text 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Body Text 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Body Text Indent 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Body Text Indent 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Block Text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Hyperlink"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"FollowedHyperlink"/>
<w:LsdException Locked=3D"false" Priority=3D"22" QFormat=3D"true" Name=3D=
"Strong"/>
<w:LsdException Locked=3D"false" Priority=3D"20" QFormat=3D"true" Name=3D=
"Emphasis"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Document Map"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Plain Text"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"E-mail Signature"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"HTML Top of Form"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"HTML Bottom of Form"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Normal (Web)"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"HTML Acronym"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"HTML Address"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"HTML Cite"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"HTML Code"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"HTML Definition"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"HTML Keyboard"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"HTML Preformatted"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"HTML Sample"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"HTML Typewriter"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"HTML Variable"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Normal Table"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"annotation subject"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"No List"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Outline List 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Outline List 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Outline List 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Simple 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Simple 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Simple 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Classic 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Classic 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Classic 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Classic 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Colorful 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Colorful 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Colorful 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Columns 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Columns 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Columns 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Columns 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Columns 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Grid 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Grid 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Grid 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Grid 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Grid 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Grid 6"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Grid 7"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Grid 8"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table List 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table List 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table List 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table List 4"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table List 5"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table List 6"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table List 7"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table List 8"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table 3D effects 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table 3D effects 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table 3D effects 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Contemporary"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Elegant"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Professional"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Subtle 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Subtle 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Web 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Web 2"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Web 3"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Balloon Text"/>
<w:LsdException Locked=3D"false" Priority=3D"59" Name=3D"Table Grid"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" UnhideWhenUsed=3D"=
true" Name=3D"Table Theme"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" Name=3D"Placeholde=
r Text"/>
<w:LsdException Locked=3D"false" Priority=3D"1" QFormat=3D"true" Name=3D=
"No Spacing"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading"=
/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading=
1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading=
2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1"=
/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2"=
/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1"=
/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2"=
/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3"=
/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadi=
ng"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List"=
/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid"=
/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List Acc=
ent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid Acc=
ent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading=
1 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading=
2 Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 1"/>
<w:LsdException Locked=3D"false" SemiHidden=3D"true" Name=3D"Revision"/=
>
<w:LsdException Locked=3D"false" Priority=3D"34" QFormat=3D"true" Name=3D=
"List Paragraph"/>
<w:LsdException Locked=3D"false" Priority=3D"29" QFormat=3D"true" Name=3D=
"Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"30" QFormat=3D"true" Name=3D=
"Intense Quote"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List Acce=
nt 1"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadi=
ng Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List Acc=
ent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid Acc=
ent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading=
1 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading=
2 Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List Acce=
nt 2"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadi=
ng Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List Acc=
ent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid Acc=
ent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading=
1 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading=
2 Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List Acce=
nt 3"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadi=
ng Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List Acc=
ent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid Acc=
ent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading=
1 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading=
2 Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List Acce=
nt 4"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadi=
ng Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List Acc=
ent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid Acc=
ent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading=
1 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading=
2 Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List Acce=
nt 5"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadi=
ng Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"60" Name=3D"Light Shading =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"61" Name=3D"Light List Acc=
ent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"62" Name=3D"Light Grid Acc=
ent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"63" Name=3D"Medium Shading=
1 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"64" Name=3D"Medium Shading=
2 Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"65" Name=3D"Medium List 1 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"66" Name=3D"Medium List 2 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"67" Name=3D"Medium Grid 1 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"68" Name=3D"Medium Grid 2 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"69" Name=3D"Medium Grid 3 =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"70" Name=3D"Dark List Acce=
nt 6"/>
<w:LsdException Locked=3D"false" Priority=3D"71" Name=3D"Colorful Shadi=
ng Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"72" Name=3D"Colorful List =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"73" Name=3D"Colorful Grid =
Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"19" QFormat=3D"true" Name=3D=
"Subtle Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"21" QFormat=3D"true" Name=3D=
"Intense Emphasis"/>
<w:LsdException Locked=3D"false" Priority=3D"31" QFormat=3D"true" Name=3D=
"Subtle Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"32" QFormat=3D"true" Name=3D=
"Intense Reference"/>
<w:LsdException Locked=3D"false" Priority=3D"33" QFormat=3D"true" Name=3D=
"Book Title"/>
<w:LsdException Locked=3D"false" Priority=3D"37" SemiHidden=3D"true" Un=
hideWhenUsed=3D"true" Name=3D"Bibliography"/>
<w:LsdException Locked=3D"false" Priority=3D"39" SemiHidden=3D"true" Un=
hideWhenUsed=3D"true" QFormat=3D"true" Name=3D"TOC Heading"/>
<w:LsdException Locked=3D"false" Priority=3D"41" Name=3D"Plain Table 1"=
/>
<w:LsdException Locked=3D"false" Priority=3D"42" Name=3D"Plain Table 2"=
/>
<w:LsdException Locked=3D"false" Priority=3D"43" Name=3D"Plain Table 3"=
/>
<w:LsdException Locked=3D"false" Priority=3D"44" Name=3D"Plain Table 4"=
/>
<w:LsdException Locked=3D"false" Priority=3D"45" Name=3D"Plain Table 5"=
/>
<w:LsdException Locked=3D"false" Priority=3D"40" Name=3D"Grid Table Lig=
ht"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 L=
ight"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2"/=
>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3"/=
>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4"/=
>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 D=
ark"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 C=
olorful"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 C=
olorful"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 L=
ight Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 A=
ccent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 A=
ccent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 A=
ccent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 D=
ark Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 C=
olorful Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 C=
olorful Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 L=
ight Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 A=
ccent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 A=
ccent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 A=
ccent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 D=
ark Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 C=
olorful Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 C=
olorful Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 L=
ight Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 A=
ccent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 A=
ccent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 A=
ccent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 D=
ark Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 C=
olorful Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 C=
olorful Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 L=
ight Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 A=
ccent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 A=
ccent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 A=
ccent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 D=
ark Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 C=
olorful Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 C=
olorful Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 L=
ight Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 A=
ccent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 A=
ccent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 A=
ccent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 D=
ark Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 C=
olorful Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 C=
olorful Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"Grid Table 1 L=
ight Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"Grid Table 2 A=
ccent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"Grid Table 3 A=
ccent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"Grid Table 4 A=
ccent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"Grid Table 5 D=
ark Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"Grid Table 6 C=
olorful Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"Grid Table 7 C=
olorful Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 L=
ight"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2"/=
>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3"/=
>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4"/=
>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 D=
ark"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 C=
olorful"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 C=
olorful"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 L=
ight Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 A=
ccent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 A=
ccent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 A=
ccent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 D=
ark Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 C=
olorful Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 C=
olorful Accent 1"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 L=
ight Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 A=
ccent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 A=
ccent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 A=
ccent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 D=
ark Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 C=
olorful Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 C=
olorful Accent 2"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 L=
ight Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 A=
ccent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 A=
ccent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 A=
ccent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 D=
ark Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 C=
olorful Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 C=
olorful Accent 3"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 L=
ight Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 A=
ccent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 A=
ccent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 A=
ccent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 D=
ark Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 C=
olorful Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 C=
olorful Accent 4"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 L=
ight Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 A=
ccent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 A=
ccent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 A=
ccent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 D=
ark Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 C=
olorful Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 C=
olorful Accent 5"/>
<w:LsdException Locked=3D"false" Priority=3D"46" Name=3D"List Table 1 L=
ight Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"47" Name=3D"List Table 2 A=
ccent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"48" Name=3D"List Table 3 A=
ccent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"49" Name=3D"List Table 4 A=
ccent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"50" Name=3D"List Table 5 D=
ark Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"51" Name=3D"List Table 6 C=
olorful Accent 6"/>
<w:LsdException Locked=3D"false" Priority=3D"52" Name=3D"List Table 7 C=
olorful Accent 6"/>
</w:LatentStyles>
</xml><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:-536870145 1107305727 0 0 415 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-alt:"Times New Roman";
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-536870145 1073786111 1 0 415 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-style-qformat:yes;
mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
a:link, span.MsoHyperlink
{mso-style-noshow:yes;
mso-style-priority:99;
color:blue;
mso-themecolor:hyperlink;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-noshow:yes;
mso-style-priority:99;
color:purple;
mso-themecolor:followedhyperlink;
text-decoration:underline;
text-underline:single;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-noshow:yes;
mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
mso-bidi-font-size:10.5pt;
font-family:"Calibri",sans-serif;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-unhide:no;
mso-style-locked:yes;
mso-style-link:"Plain Text";
mso-bidi-font-size:10.5pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-hansi-font-family:Calibri;}
span.EmailStyle19
{mso-style-type:personal-compose;
mso-style-noshow:yes;
mso-style-unhide:no;}
.MsoChpDefault
{mso-style-type:export-only;
mso-default-props:yes;
font-size:10.0pt;
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:Calibri;
mso-fareast-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 10]><style>/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
</style><![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue=
vlink=3Dpurple style=3D'tab-interval:.5in'><div class=3DWordSection1><=
p class=3DMsoPlainText>Simple, unadorned test email generated by Outloo=
k 2010. It is in HTML format, but no special formatting has been chosen=
. I=E2=80=99m going to save this as a draft and then manually drop it i=
nto the Inbox for scraping by Redmine 3.0.2.<o:p></o:p></p></div></body=
></html>
--Mark=_539924359269962179476--

View file

@ -0,0 +1,65 @@
From: "John Smith" <jsmith@somenet.foo>
To: redmine <r@MYCOMPANYNAME.com>
Subject: Upgrade Redmine to 3.0.x
Thread-Topic: Upgrade Redmine to 3.0.x
Thread-Index: AQHQknBe94y5Or7Yl02JransMRF41p2Dv6Hu
Date: Tue, 19 May 2015 16:27:43 -0400
Message-ID: <A2D341A8808F024CAFA63F1287B9929CF1BC440F@EMBX01.exch.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Exchange-Organization-AuthAs: Internal
X-MS-Exchange-Organization-AuthMechanism: 04
X-MS-Exchange-Organization-AuthSource: EHUB01.exch.local
X-MS-Has-Attach:
X-MS-Exchange-Organization-SCL: -1
X-MS-TNEF-Correlator:
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
<html dir=3D"ltr">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style>=0A=
<!--=0A=
body=0A=
{font-family:Verdana,sans-serif;=0A=
font-size:0.8em;=0A=
color:#484848}=0A=
h1, h2, h3=0A=
{font-family:"Trebuchet MS",Verdana,sans-serif;=0A=
margin:0px}=0A=
h1=0A=
{font-size:1.2em}=0A=
h2, h3=0A=
{font-size:1.1em}=0A=
a, a:link, a:visited=0A=
{color:#2A5685}=0A=
a:hover, a:active=0A=
{color:#c61a1a}=0A=
fieldset.attachments=0A=
{border-width:1px 0 0 0}=0A=
hr=0A=
{width:100%;=0A=
height:1px;=0A=
background:#ccc;=0A=
border:0}=0A=
span.footer=0A=
{font-size:0.8em;=0A=
font-style:italic}=0A=
-->=0A=
</style><style id=3D"owaParaStyle" type=3D"text/css">P {margin-top:0;margin=
-bottom:0;}</style>
</head>
<body ocsi=3D"0" fpstyle=3D"1">
<div style=3D"direction: ltr;font-family: Tahoma;color: #000000;font-size: =
10pt;">A mess.<br>
<div><br>
<div style=3D"font-family:Tahoma; font-size:13px">--Geoff Maciolek<br>
MYCOMPANYNAME, LLC<br>
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,19 @@
Date: Tue, 13 Aug 2013 10:56:04 +0700
From: John Smith <JSmith@somenet.foo>
Content-Type: multipart/alternative; boundary=001a11c260fa53f8dc04e3cc380b
Subject: issue 14675
To: redmine@somenet.foo
--001a11c260fa53f8dc04e3cc380b
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Freundliche Gr=C3=BCsse
--001a11c260fa53f8dc04e3cc380b
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Freundliche Gr=C3=BCsse<br></div>
--001a11c260fa53f8dc04e3cc380b--

View file

@ -0,0 +1,11 @@
Content-Type: application/ms-tnef; name="winmail.dat"
Content-Transfer-Encoding: binary
From: John Smith <JSmith@somenet.foo>
To: "redmine@somenet.foo" <redmine@somenet.foo>
Subject: =?iso-8859-1?Q?Testmail_from_Webmail:_=E4_=F6_=FC...?=
Date: Fri, 1 Jun 2012 14:39:38 +0200
Message-ID: <87C31D42249DD0489D1A1444E3232DD7019D6183@foo.bar>
Accept-Language: de-CH, en-US
Content-Language: de-CH
Fixture

View file

@ -0,0 +1,7 @@
From: John Smith <JSmith@somenet.foo>
To: "redmine@somenet.foo" <redmine@somenet.foo>
Subject: =?iso-2022-jp?b?GyRCJUYlOSVIGyhCCg=?=
Date: Fri, 1 Jun 2012 14:39:38 +0200
Message-ID: <87C31D42249DD0489D1A1444E3232DD7019D6183@foo.bar>
Fixture

View file

@ -0,0 +1,7 @@
From: John Smith <JSmith@somenet.foo>
To: "redmine@somenet.foo" <redmine@somenet.foo>
Subject: Re: =?iso-2022-jp?b?GyRCJUYlOSVIGyhCCg=?=
Date: Fri, 1 Jun 2012 14:39:38 +0200
Message-ID: <87C31D42249DD0489D1A1444E3232DD7019D6183@foo.bar>
Fixture

View file

@ -0,0 +1,34 @@
Message-ID: <50AB9546.7020800@gmail.com>
Date: Tue, 20 Nov 2012 23:35:50 +0900
From: John Smith <JSmith@somenet.foo>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc13 Thunderbird/3.1.10
MIME-Version: 1.0
To: redmine@somenet.foo
Subject: test
Content-Type: multipart/mixed;
boundary="------------050902080306030406090208"
This is a multi-part message in MIME format.
--------------050902080306030406090208
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
test
--------------050902080306030406090208
Content-Type: image/png;
name="=?ISO-8859-1?Q?=C4=E4=D6=F6=DC=FC=C4=E4=D6=F6=DC=FC=C4=E4=D6=F6=DC=FC=C4=E4?=
=?ISO-8859-1?Q?=D6=F6=DC=FC=C4=E4=D6=F6=DC=FC=C4=E4=D6=F6=DC=FC=C4=E4=D6?=
=?ISO-8859-1?Q?=F6=DC=FC=C4=E4=D6=F6=DC=FC=C4=E4=D6=F6=DC=FC=C4=E4=D6=F6?=
=?ISO-8859-1?Q?=DC=FC=C4=E4=D6=F6=DC=FC=2Epng?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename*0*=ISO-8859-1''%C4%E4%D6%F6%DC%FC%C4%E4%D6%F6%DC%FC%C4%E4%D6%F6;
filename*1*=%DC%FC%C4%E4%D6%F6%DC%FC%C4%E4%D6%F6%DC%FC%C4%E4%D6%F6%DC%FC;
filename*2*=%C4%E4%D6%F6%DC%FC%C4%E4%D6%F6%DC%FC%C4%E4%D6%F6%DC%FC%C4%E4;
filename*3*=%D6%F6%DC%FC%C4%E4%D6%F6%DC%FC%2E%70%6E%67
iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAAAXNSR0IArs4c6QAAAAlwSFlz
AAALEwAACxMBAJqcGAAAAAd0SU1FB9wLFA4fJhRKIUQAAAAUSURBVAjXY/z//z8DEmBiQAWk
8gHq9gMHP8uZWAAAAABJRU5ErkJggg==
--------------050902080306030406090208--

View file

@ -0,0 +1,26 @@
Message-ID: <50AA00C6.4070108@gmail.com>
Date: Mon, 19 Nov 2012 18:49:58 +0900
From: John Smith <JSmith@somenet.foo>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.15) Gecko/20101027 Fedora/3.0.10-1.fc12 Lightning/1.0b1 Thunderbird/3.0.10
MIME-Version: 1.0
To: redmine@somenet.foo
Subject: test
Content-Type: multipart/mixed;
boundary="------------030104060902010800050907"
This is a multi-part message in MIME format.
--------------030104060902010800050907
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
test
--------------030104060902010800050907
Content-Type: text/plain;
name="=?ISO-2022-JP?B?GyRCJUYlOSVIGyhCLnR4dA==?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename*=ISO-2022-JP''%1B%24%42%25%46%25%39%25%48%1B%28%42%2E%74%78%74
dGVzdAo=
--------------030104060902010800050907--

View file

@ -0,0 +1,17 @@
Return-Path: <john.doe@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
To: <redmine@somenet.foo>
Subject: Ticket by unknown user
Date: Sun, 22 Jun 2008 12:28:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 7bit
This is a ticket submitted by an unknown user.

View file

@ -0,0 +1,18 @@
Return-Path: <john.doe@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
From: "John Doe" <john.doe@somenet.foo>
To: <redmine@somenet.foo>
Subject: Ticket by unknown user
Date: Sun, 22 Jun 2008 12:28:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 7bit
This is a ticket submitted by an unknown user.

View file

@ -0,0 +1,19 @@
Return-Path: <redmine@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
From: "John Doe" <Redmine@example.net>
To: <redmine@somenet.foo>
Subject: Ticket with the Redmine emission address
Date: Sun, 22 Jun 2008 12:28:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 7bit
This is a ticket submitted with the Redmine emission address.
It should be ignored.

View file

@ -0,0 +1,23 @@
x-sender: <jsmith@somenet.foo>
x-receiver: <redmine@somenet.foo>
Received: from [127.0.0.1] ([127.0.0.1]) by somenet.foo with Quick 'n Easy Mail Server SMTP (1.0.0.0);
Sun, 14 Dec 2008 16:18:06 GMT
Message-ID: <494531B9.1070709@somenet.foo>
Date: Sun, 14 Dec 2008 17:18:01 +0100
From: "John Smith" <jsmith@somenet.foo>
User-Agent: Thunderbird 2.0.0.18 (Windows/20081105)
MIME-Version: 1.0
To: redmine@somenet.foo
Subject: HTML email
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style>p {font-size:12.0pt;}</style>
</head>
<body bgcolor="#ffffff" text="#000000">
This is a <b>html-only</b> email.<br><h1>With a title</h1><p>and a paragraph.</p>
</body>
</html>

View file

@ -0,0 +1,60 @@
Return-Path: <JSmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
From: "John Smith" <JSmith@somenet.foo>
To: <redmine@somenet.foo>
Subject: New ticket on a given project
Date: Sun, 22 Jun 2008 12:28:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="utf-8";
reply-type=original
Content-Transfer-Encoding: quoted-printable
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas imperdiet
turpis et odio. Integer eget pede vel dolor euismod varius. Phasellus
blandit eleifend augue. Nulla facilisi. Duis id diam. Class aptent taciti
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In
in urna sed tellus aliquet lobortis. Morbi scelerisque tortor in dolor. Cras
sagittis odio eu lacus. Aliquam sem tortor, consequat sit amet, vestibulum
id, iaculis at, lectus. Fusce tortor libero, congue ut, euismod nec, luctus
eget, eros. Pellentesque tortor enim, feugiat in, dignissim eget, tristique
sed, mauris --- Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
platea dictumst.
Project: onlinestore
Status: Resolved
due date: 2010-12-31
Start Date:2010-01-01
Assigned to: John Smith
fixed version: alpha
estimated hours: 2.5
done ratio: 30
--- This line starts with a delimiter and should not be stripped
This paragraph is before delimiters.
BREAK
This paragraph is between delimiters.
---=C2=A0
This paragraph is after the delimiter so it shouldn't appear.
Nulla et nunc. Duis pede. Donec et ipsum. Nam ut dui tincidunt neque
sollicitudin iaculis. Duis vitae dolor. Vestibulum eget massa. Sed lorem.
Nullam volutpat cursus erat. Cras felis dolor, lacinia quis, rutrum et,
dictum et, ligula. Sed erat nibh, gravida in, accumsan non, placerat sed,
massa. Sed sodales, ante fermentum ultricies sollicitudin, massa leo
pulvinar dui, a gravida orci mi eget odio. Nunc a lacus.

View file

@ -0,0 +1,60 @@
Return-Path: <JSmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
From: "John Smith" <JSmith@somenet.foo>
To: <redmine+onlinestore@somenet.foo>
Subject: New ticket on a given project
Date: Sun, 22 Jun 2008 12:28:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas imperdiet
turpis et odio. Integer eget pede vel dolor euismod varius. Phasellus
blandit eleifend augue. Nulla facilisi. Duis id diam. Class aptent taciti
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In
in urna sed tellus aliquet lobortis. Morbi scelerisque tortor in dolor. Cras
sagittis odio eu lacus. Aliquam sem tortor, consequat sit amet, vestibulum
id, iaculis at, lectus. Fusce tortor libero, congue ut, euismod nec, luctus
eget, eros. Pellentesque tortor enim, feugiat in, dignissim eget, tristique
sed, mauris --- Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
platea dictumst.
Status: Resolved
due date: 2010-12-31
Start Date:2010-01-01
Assigned to: John Smith
fixed version: alpha
estimated hours: 2.5
done ratio: 30
--- This line starts with a delimiter and should not be stripped
This paragraph is before delimiters.
BREAK
This paragraph is between delimiters.
---
This paragraph is after the delimiter so it shouldn't appear.
Nulla et nunc. Duis pede. Donec et ipsum. Nam ut dui tincidunt neque
sollicitudin iaculis. Duis vitae dolor. Vestibulum eget massa. Sed lorem.
Nullam volutpat cursus erat. Cras felis dolor, lacinia quis, rutrum et,
dictum et, ligula. Sed erat nibh, gravida in, accumsan non, placerat sed,
massa. Sed sodales, ante fermentum ultricies sollicitudin, massa leo
pulvinar dui, a gravida orci mi eget odio. Nunc a lacus.

View file

@ -0,0 +1,74 @@
Return-Path: <jsmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sat, 21 Jun 2008 18:41:39 +0200
Message-ID: <006a01c8d3bd$ad9baec0$0a00a8c0@osiris>
In-Reply-To: <redmine.issue-2.20060719210421@osiris>
From: "John Smith" <jsmith@somenet.foo>
To: <redmine@somenet.foo>
References: <485d0ad366c88_d7014663a025f@osiris.tmail>
Subject: Re: Add ingredients categories
Date: Sat, 21 Jun 2008 18:41:39 +0200
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0067_01C8D3CE.711F9CC0"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
This is a multi-part message in MIME format.
------=_NextPart_000_0067_01C8D3CE.711F9CC0
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
This is reply
------=_NextPart_000_0067_01C8D3CE.711F9CC0
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8">
<STYLE>BODY {
FONT-SIZE: 0.8em; COLOR: #484848; FONT-FAMILY: Verdana, sans-serif
}
BODY H1 {
FONT-SIZE: 1.2em; MARGIN: 0px; FONT-FAMILY: "Trebuchet MS", Verdana, =
sans-serif
}
A {
COLOR: #2a5685
}
A:link {
COLOR: #2a5685
}
A:visited {
COLOR: #2a5685
}
A:hover {
COLOR: #c61a1a
}
A:active {
COLOR: #c61a1a
}
HR {
BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: #ccc; BORDER-LEFT: 0px; =
WIDTH: 100%; BORDER-BOTTOM: 0px; HEIGHT: 1px
}
.footer {
FONT-SIZE: 0.8em; FONT-STYLE: italic
}
</STYLE>
<META content=3D"MSHTML 6.00.2900.2883" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><SPAN class=3Dfooter><FONT face=3DArial color=3D#000000 =
size=3D2>This is=20
reply</FONT></DIV></SPAN></BODY></HTML>
------=_NextPart_000_0067_01C8D3CE.711F9CC0--

View file

@ -0,0 +1,35 @@
Return-Path: <jsmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer; Wed, 12 Oct 2016 03:05:50 -0700
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
From: "John Smith" <JSmith@somenet.foo>
To: <redmine@somenet.foo>
Subject: New ticket on a given project
Date: Wed, 12 Oct 2016 13:05:38 +0300
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
Project: onlinestore
Status: Resolved
due date: 2010-12-31
Start Date:2010-01-01
Assigned to: John Smith
fixed version: alpha
estimated hours: 2.5
remaining hours: 1
done ratio: 30
This paragraph is before delimiter
On Wed, 11 Oct at 1:05 PM, Jon Smith <jsmith@somenet.foo<mailto:jsmith@somenet.foo>> wrote:
This paragraph is after the delimiter

View file

@ -0,0 +1,80 @@
Return-Path: <jsmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sat, 21 Jun 2008 18:41:39 +0200
Message-ID: <006a01c8d3bd$ad9baec0$0a00a8c0@osiris>
From: "John Smith" <jsmith@somenet.foo>
To: <redmine@somenet.foo>
References: <485d0ad366c88_d7014663a025f@osiris.tmail>
Subject: Re: [Cookbook - Feature #2] (New) Add ingredients categories
Date: Sat, 21 Jun 2008 18:41:39 +0200
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0067_01C8D3CE.711F9CC0"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
This is a multi-part message in MIME format.
------=_NextPart_000_0067_01C8D3CE.711F9CC0
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
This is reply
Status: Resolved
due date: 2010-12-31
Start Date:2010-01-01
Assigned to: jsmith@somenet.foo
float field: 52.6
------=_NextPart_000_0067_01C8D3CE.711F9CC0
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8">
<STYLE>BODY {
FONT-SIZE: 0.8em; COLOR: #484848; FONT-FAMILY: Verdana, sans-serif
}
BODY H1 {
FONT-SIZE: 1.2em; MARGIN: 0px; FONT-FAMILY: "Trebuchet MS", Verdana, =
sans-serif
}
A {
COLOR: #2a5685
}
A:link {
COLOR: #2a5685
}
A:visited {
COLOR: #2a5685
}
A:hover {
COLOR: #c61a1a
}
A:active {
COLOR: #c61a1a
}
HR {
BORDER-RIGHT: 0px; BORDER-TOP: 0px; BACKGROUND: #ccc; BORDER-LEFT: 0px; =
WIDTH: 100%; BORDER-BOTTOM: 0px; HEIGHT: 1px
}
.footer {
FONT-SIZE: 0.8em; FONT-STYLE: italic
}
</STYLE>
<META content=3D"MSHTML 6.00.2900.2883" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#ffffff>
<DIV><SPAN class=3Dfooter><FONT face=3DArial color=3D#000000 =
size=3D2>This is=20
reply Status: Resolved</FONT></DIV></SPAN></BODY></HTML>
------=_NextPart_000_0067_01C8D3CE.711F9CC0--

View file

@ -0,0 +1,248 @@
Return-Path: <jsmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sat, 21 Jun 2008 15:53:25 +0200
Message-ID: <002301c8d3a6$2cdf6950$0a00a8c0@osiris>
From: "John Smith" <jsmith@somenet.foo>
To: <redmine@somenet.foo>
Subject: Ticket created by email with attachment
Date: Sat, 21 Jun 2008 15:53:25 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_001F_01C8D3B6.F05C5270"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
This is a multi-part message in MIME format.
------=_NextPart_000_001F_01C8D3B6.F05C5270
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0020_01C8D3B6.F05C5270"
------=_NextPart_001_0020_01C8D3B6.F05C5270
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
This is a new ticket with attachments
------=_NextPart_001_0020_01C8D3B6.F05C5270
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2900.2883" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>This is&nbsp; a new ticket with=20
attachments</FONT></DIV></BODY></HTML>
------=_NextPart_001_0020_01C8D3B6.F05C5270--
------=_NextPart_000_001F_01C8D3B6.F05C5270
Content-Type: image/jpeg;
name="Paella.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="Paella.jpg"
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
cbis+/WpUqUcMZKdF44n/9k=
------=_NextPart_000_001F_01C8D3B6.F05C5270--

View file

@ -0,0 +1,43 @@
Return-Path: <jsmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
From: "John Smith" <jsmith@somenet.foo>
To: <redmine@somenet.foo>
Subject: New ticket on a given project
Date: Sun, 22 Jun 2008 12:28:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas imperdiet
turpis et odio. Integer eget pede vel dolor euismod varius. Phasellus
blandit eleifend augue. Nulla facilisi. Duis id diam. Class aptent taciti
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In
in urna sed tellus aliquet lobortis. Morbi scelerisque tortor in dolor. Cras
sagittis odio eu lacus. Aliquam sem tortor, consequat sit amet, vestibulum
id, iaculis at, lectus. Fusce tortor libero, congue ut, euismod nec, luctus
eget, eros. Pellentesque tortor enim, feugiat in, dignissim eget, tristique
sed, mauris. Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
platea dictumst.
Nulla et nunc. Duis pede. Donec et ipsum. Nam ut dui tincidunt neque
sollicitudin iaculis. Duis vitae dolor. Vestibulum eget massa. Sed lorem.
Nullam volutpat cursus erat. Cras felis dolor, lacinia quis, rutrum et,
dictum et, ligula. Sed erat nibh, gravida in, accumsan non, placerat sed,
massa. Sed sodales, ante fermentum ultricies sollicitudin, massa leo
pulvinar dui, a gravida orci mi eget odio. Nunc a lacus.
Project: onlinestore
Tracker: Feature Request
category: stock management
priority: URGENT

View file

@ -0,0 +1,40 @@
Return-Path: <JSmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
From: "John Smith" <JSmith@somenet.foo>
To: <redmine@somenet.foo>
Cc: <DLopper@somenet.foo>
Subject: New ticket on a given project
Date: Sun, 22 Jun 2008 12:28:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas imperdiet
turpis et odio. Integer eget pede vel dolor euismod varius. Phasellus
blandit eleifend augue. Nulla facilisi. Duis id diam. Class aptent taciti
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In
in urna sed tellus aliquet lobortis. Morbi scelerisque tortor in dolor. Cras
sagittis odio eu lacus. Aliquam sem tortor, consequat sit amet, vestibulum
id, iaculis at, lectus. Fusce tortor libero, congue ut, euismod nec, luctus
eget, eros. Pellentesque tortor enim, feugiat in, dignissim eget, tristique
sed, mauris. Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
platea dictumst.
Nulla et nunc. Duis pede. Donec et ipsum. Nam ut dui tincidunt neque
sollicitudin iaculis. Duis vitae dolor. Vestibulum eget massa. Sed lorem.
Nullam volutpat cursus erat. Cras felis dolor, lacinia quis, rutrum et,
dictum et, ligula. Sed erat nibh, gravida in, accumsan non, placerat sed,
massa. Sed sodales, ante fermentum ultricies sollicitudin, massa leo
pulvinar dui, a gravida orci mi eget odio. Nunc a lacus.

View file

@ -0,0 +1,43 @@
Return-Path: <jsmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
From: "John Smith" <jsmith@somenet.foo>
To: <redmine@somenet.foo>
Subject: New ticket with custom field values
Date: Sun, 22 Jun 2008 12:28:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas imperdiet
turpis et odio. Integer eget pede vel dolor euismod varius. Phasellus
blandit eleifend augue. Nulla facilisi. Duis id diam. Class aptent taciti
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In
in urna sed tellus aliquet lobortis. Morbi scelerisque tortor in dolor. Cras
sagittis odio eu lacus. Aliquam sem tortor, consequat sit amet, vestibulum
id, iaculis at, lectus. Fusce tortor libero, congue ut, euismod nec, luctus
eget, eros. Pellentesque tortor enim, feugiat in, dignissim eget, tristique
sed, mauris. Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
platea dictumst.
Nulla et nunc. Duis pede. Donec et ipsum. Nam ut dui tincidunt neque
sollicitudin iaculis. Duis vitae dolor. Vestibulum eget massa. Sed lorem.
Nullam volutpat cursus erat. Cras felis dolor, lacinia quis, rutrum et,
dictum et, ligula. Sed erat nibh, gravida in, accumsan non, placerat sed,
massa. Sed sodales, ante fermentum ultricies sollicitudin, massa leo
pulvinar dui, a gravida orci mi eget odio. Nunc a lacus.
category: Stock management
searchable field: Value for a custom field
Database: postgresql
OS: Mac OS X ,windows

View file

@ -0,0 +1,25 @@
Return-Path: <JSmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
From: "John Smith" <JSmith@somenet.foo>
To: <redmine@somenet.foo>
Subject: New ticket on a given project
Date: Sun, 22 Jun 2008 12:28:07 +0200
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Project: ecookbook
Priority: High
Priority: Low

View file

@ -0,0 +1,58 @@
Return-Path: <jsmith@somenet.foo>
Received: from osiris ([127.0.0.1])
by OSIRIS
with hMailServer ; Sat, 21 Jun 2008 15:53:25 +0200
Message-ID: <002301c8d3a6$2cdf6950$0a00a8c0@osiris>
From: "John Smith" <jsmith@somenet.foo>
To: <redmine@somenet.foo>
Subject: Ticket created by email with attachment
Date: Sat, 21 Jun 2008 15:53:25 +0200
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_001F_01C8D3B6.F05C5270"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
This is a multi-part message in MIME format.
------=_NextPart_000_001F_01C8D3B6.F05C5270
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0020_01C8D3B6.F05C5270"
------=_NextPart_001_0020_01C8D3B6.F05C5270
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
This is a new ticket with attachments
------=_NextPart_001_0020_01C8D3B6.F05C5270
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2900.2883" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>This is&nbsp; a new ticket with=20
attachments</FONT></DIV></BODY></HTML>
------=_NextPart_001_0020_01C8D3B6.F05C5270--
------=_NextPart_000_001F_01C8D3B6.F05C5270
Content-Type: application/json;
name="response.json"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="response.json"
------=_NextPart_000_001F_01C8D3B6.F05C5270--

Some files were not shown because too many files have changed in this diff Show more