From 9cf57f4b4bd8a76af37226be930c87f37697a4cb Mon Sep 17 00:00:00 2001 From: Dave McLain Date: Wed, 29 Feb 2012 17:25:40 -0600 Subject: [PATCH 01/13] use installable project templates --- armstrong/cli/commands/init.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/armstrong/cli/commands/init.py b/armstrong/cli/commands/init.py index 3caf5d8..888d63d 100644 --- a/armstrong/cli/commands/init.py +++ b/armstrong/cli/commands/init.py @@ -9,6 +9,11 @@ from random import choice CWD = os.getcwd() +ENTRY_POINT = 'armstrong.templates' + + +class MissingTemplate(RuntimeError): + pass class InitCommand(object): @@ -37,6 +42,17 @@ def __call__(self, template='standard', demo=False, path=CWD, **kwargs): template, )) + if not os.path.exists(template_dir): + from pkg_resources import iter_entry_points + for ep in iter_entry_points(group=ENTRY_POINT): + if ep.name == template: + root = ep.load() + template_dir = root.__path__ + break + else: + raise MissingTemplate("No template named: %s" % template) + + settings.configure(DEBUG=False, TEMPLATE_DEBUG=False, TEMPLATE_DIRS=[template_dir, ]) from django.template import Context, Template From 469dec55acc8c8502a7f238a5a08f0ccfd6d7b5c Mon Sep 17 00:00:00 2001 From: Dave McLain Date: Wed, 29 Feb 2012 19:18:34 -0600 Subject: [PATCH 02/13] remove unused import --- armstrong/cli/main.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/armstrong/cli/main.py b/armstrong/cli/main.py index 0546024..4a90493 100644 --- a/armstrong/cli/main.py +++ b/armstrong/cli/main.py @@ -2,8 +2,6 @@ import sys import argparse -from .commands.init import init - # TODO: use logging throughout for output ENTRY_POINT = 'armstrong.commands' CONFIGURATION_MODULE = "settings" From b4aa46caab391afa913459a6f8481bc2d4d98992 Mon Sep 17 00:00:00 2001 From: Travis Swicegood Date: Fri, 27 Apr 2012 16:26:31 -0500 Subject: [PATCH 03/13] Make sure that list_templates continues to work --- armstrong/cli/commands/list_templates.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/armstrong/cli/commands/list_templates.py b/armstrong/cli/commands/list_templates.py index b5f2080..e965e28 100644 --- a/armstrong/cli/commands/list_templates.py +++ b/armstrong/cli/commands/list_templates.py @@ -1,12 +1,12 @@ +from pkg_resources import iter_entry_points import os +from .init import ENTRY_POINT + def command(): - # TODO: make this look for entry_points so third-party templates can be used # TODO: make this verify that there's a manifest.json present # TODO: make this display manifest.json's description along side template names - import armstrong.cli.templates - p = armstrong.cli.templates.__path__[0] - templates = [a for a in os.listdir(p) if os.path.isdir(os.path.join(p, a))] print "The following templates are available:" - print "\n %s" % "\n ".join(templates) + for entry_point in iter_entry_points(ENTRY_POINT): + print " %s" % entry_point.name From 782bffb5ce05719753f18e48d323f8d848a8248c Mon Sep 17 00:00:00 2001 From: Travis Swicegood Date: Fri, 27 Apr 2012 17:00:47 -0500 Subject: [PATCH 04/13] Add dependency on new standard template --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 0a28102..cb4c805 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ ] }, "install_requires": [ - "argparse==1.2.1" + "argparse==1.2.1", + "armstrong.templates.standard>=1.0.0,<2.0" ] } From b39c3a3b90c635f1efaa5cb9327d3dabb17c9587 Mon Sep 17 00:00:00 2001 From: Travis Swicegood Date: Fri, 27 Apr 2012 17:02:40 -0500 Subject: [PATCH 05/13] remove the standard template (it's now external) --- armstrong/cli/templates/standard/__init__.py | 0 .../cli/templates/standard/apis/__init__.py | 0 armstrong/cli/templates/standard/apis/api.py | 8 - .../cli/templates/standard/apis/resources.py | 19 - .../standard/fixtures/initial_data.json | 28 -- .../cli/templates/standard/manifest.json | 8 - .../standard/requirements/development.txt | 2 - .../standard/requirements/project.txt | 5 - .../templates/standard/settings/__init__.py | 2 - .../templates/standard/settings/defaults.py | 165 --------- .../standard/settings/development.py | 28 -- .../templates/standard/settings/helpers.py | 6 - .../templates/standard/settings/production.py | 27 -- .../templates/standard/static/css/base.css | 335 ------------------ .../templates/standard/static/css/layout.css | 58 --- .../standard/static/css/skeleton.css | 236 ------------ .../images/apple-touch-icon-114x114.png | Bin 10118 -> 0 bytes .../static/images/apple-touch-icon-72x72.png | Bin 3872 -> 0 bytes .../static/images/apple-touch-icon.png | Bin 2469 -> 0 bytes .../standard/static/images/favicon.ico | Bin 1150 -> 0 bytes .../static/javascript/jquery.masonry.min.js | 10 - .../standard/static/javascript/tabs.js | 42 --- .../standard/static/jquery-1.7.1.min.js | 4 - .../templates/armstrong/includes/welcome.html | 37 -- .../templates/standard/templates/article.html | 16 - .../templates/standard/templates/base.html | 99 ------ .../standard/templates/front_page.html | 16 - .../templates/standard/templates/index.html | 25 -- .../layout/articles/article/big.html | 15 - .../layout/articles/article/half.html | 11 - .../layout/articles/article/preview.html | 13 - .../layout/articles/article/standard.html | 15 - .../templates/standard/templates/section.html | 10 - .../cli/templates/standard/urls/__init__.py | 2 - armstrong/cli/templates/standard/urls/api.py | 13 - .../cli/templates/standard/urls/defaults.py | 96 ----- .../templates/standard/urls/development.py | 19 - .../cli/templates/standard/urls/production.py | 19 - .../cli/templates/standard/urls/utils.py | 18 - armstrong/cli/templates/standard/wsgi.py | 13 - 40 files changed, 1420 deletions(-) delete mode 100644 armstrong/cli/templates/standard/__init__.py delete mode 100644 armstrong/cli/templates/standard/apis/__init__.py delete mode 100644 armstrong/cli/templates/standard/apis/api.py delete mode 100644 armstrong/cli/templates/standard/apis/resources.py delete mode 100644 armstrong/cli/templates/standard/fixtures/initial_data.json delete mode 100644 armstrong/cli/templates/standard/manifest.json delete mode 100644 armstrong/cli/templates/standard/requirements/development.txt delete mode 100644 armstrong/cli/templates/standard/requirements/project.txt delete mode 100644 armstrong/cli/templates/standard/settings/__init__.py delete mode 100644 armstrong/cli/templates/standard/settings/defaults.py delete mode 100644 armstrong/cli/templates/standard/settings/development.py delete mode 100644 armstrong/cli/templates/standard/settings/helpers.py delete mode 100644 armstrong/cli/templates/standard/settings/production.py delete mode 100644 armstrong/cli/templates/standard/static/css/base.css delete mode 100644 armstrong/cli/templates/standard/static/css/layout.css delete mode 100644 armstrong/cli/templates/standard/static/css/skeleton.css delete mode 100644 armstrong/cli/templates/standard/static/images/apple-touch-icon-114x114.png delete mode 100644 armstrong/cli/templates/standard/static/images/apple-touch-icon-72x72.png delete mode 100644 armstrong/cli/templates/standard/static/images/apple-touch-icon.png delete mode 100644 armstrong/cli/templates/standard/static/images/favicon.ico delete mode 100644 armstrong/cli/templates/standard/static/javascript/jquery.masonry.min.js delete mode 100644 armstrong/cli/templates/standard/static/javascript/tabs.js delete mode 100644 armstrong/cli/templates/standard/static/jquery-1.7.1.min.js delete mode 100644 armstrong/cli/templates/standard/templates/armstrong/includes/welcome.html delete mode 100644 armstrong/cli/templates/standard/templates/article.html delete mode 100644 armstrong/cli/templates/standard/templates/base.html delete mode 100644 armstrong/cli/templates/standard/templates/front_page.html delete mode 100644 armstrong/cli/templates/standard/templates/index.html delete mode 100644 armstrong/cli/templates/standard/templates/layout/articles/article/big.html delete mode 100644 armstrong/cli/templates/standard/templates/layout/articles/article/half.html delete mode 100644 armstrong/cli/templates/standard/templates/layout/articles/article/preview.html delete mode 100644 armstrong/cli/templates/standard/templates/layout/articles/article/standard.html delete mode 100644 armstrong/cli/templates/standard/templates/section.html delete mode 100644 armstrong/cli/templates/standard/urls/__init__.py delete mode 100644 armstrong/cli/templates/standard/urls/api.py delete mode 100644 armstrong/cli/templates/standard/urls/defaults.py delete mode 100644 armstrong/cli/templates/standard/urls/development.py delete mode 100644 armstrong/cli/templates/standard/urls/production.py delete mode 100644 armstrong/cli/templates/standard/urls/utils.py delete mode 100644 armstrong/cli/templates/standard/wsgi.py diff --git a/armstrong/cli/templates/standard/__init__.py b/armstrong/cli/templates/standard/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/armstrong/cli/templates/standard/apis/__init__.py b/armstrong/cli/templates/standard/apis/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/armstrong/cli/templates/standard/apis/api.py b/armstrong/cli/templates/standard/apis/api.py deleted file mode 100644 index 9fb41b4..0000000 --- a/armstrong/cli/templates/standard/apis/api.py +++ /dev/null @@ -1,8 +0,0 @@ -from tastypie.api import Api - -from .resources import ArticleResource -from .resources import AuthorsResource - -v1_api = Api(api_name="v1") -v1_api.register(ArticleResource()) -v1_api.register(AuthorsResource()) \ No newline at end of file diff --git a/armstrong/cli/templates/standard/apis/resources.py b/armstrong/cli/templates/standard/apis/resources.py deleted file mode 100644 index 43385ff..0000000 --- a/armstrong/cli/templates/standard/apis/resources.py +++ /dev/null @@ -1,19 +0,0 @@ -from armstrong.apps.articles.models import Article -from django.contrib.auth.models import User -from tastypie import fields -from tastypie.resources import ModelResource - - -class AuthorsResource(ModelResource): - class Meta: - queryset = User.objects.filter(groups__name="Authors") - resource_name = "users/author" - excludes = ["email", "is_superuser", "password", ] - - -class ArticleResource(ModelResource): - authors = fields.ToManyField(AuthorsResource, "authors") - - class Meta: - queryset = Article.published.all() - resource_name = "articles/article" \ No newline at end of file diff --git a/armstrong/cli/templates/standard/fixtures/initial_data.json b/armstrong/cli/templates/standard/fixtures/initial_data.json deleted file mode 100644 index d927aa8..0000000 --- a/armstrong/cli/templates/standard/fixtures/initial_data.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "pk": 1, - "model": "arm_wells.welltype", - "fields": { - "slug": "front_page", - "title": "front_page" - } - }, - { - "pk": 1, - "model": "arm_wells.well", - "fields": { - "active": true, - "pub_date": "2011-07-06 17:28:10", - "expires": null, - "type": 1 - } - }, - { - "pk": 1, - "model": "auth.group", - "fields": { - "name": "Authors", - "permissions": [] - } - } -] diff --git a/armstrong/cli/templates/standard/manifest.json b/armstrong/cli/templates/standard/manifest.json deleted file mode 100644 index d3357e0..0000000 --- a/armstrong/cli/templates/standard/manifest.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "templated": { - "include": [ - "settings\/", - "urls\/" - ] - } -} diff --git a/armstrong/cli/templates/standard/requirements/development.txt b/armstrong/cli/templates/standard/requirements/development.txt deleted file mode 100644 index 5e7860e..0000000 --- a/armstrong/cli/templates/standard/requirements/development.txt +++ /dev/null @@ -1,2 +0,0 @@ --r ./project.txt - diff --git a/armstrong/cli/templates/standard/requirements/project.txt b/armstrong/cli/templates/standard/requirements/project.txt deleted file mode 100644 index bcea209..0000000 --- a/armstrong/cli/templates/standard/requirements/project.txt +++ /dev/null @@ -1,5 +0,0 @@ -armstrong==11.09.0 - -# This is included here because the latest release of django-mptt does not have -# the required code. --e git://github.com/django-mptt/django-mptt.git@0af02a95877041b2fd6d458bd95413dc1666c321#egg=django_mptt-dev diff --git a/armstrong/cli/templates/standard/settings/__init__.py b/armstrong/cli/templates/standard/settings/__init__.py deleted file mode 100644 index 3ad9513..0000000 --- a/armstrong/cli/templates/standard/settings/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from pkgutil import extend_path -__path__ = extend_path(__path__, __name__) diff --git a/armstrong/cli/templates/standard/settings/defaults.py b/armstrong/cli/templates/standard/settings/defaults.py deleted file mode 100644 index d451a15..0000000 --- a/armstrong/cli/templates/standard/settings/defaults.py +++ /dev/null @@ -1,165 +0,0 @@ -# Django settings for {{ project_name }} project. -from .helpers import project_dir - - -DEBUG = False -TEMPLATE_DEBUG = False - -ADMINS = ( - # ('Your Name', 'your_email@example.com'), -) - -MANAGERS = ADMINS - -# Local time zone for this installation. Choices can be found here: -# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name -# although not all choices may be available on all operating systems. -# On Unix systems, a value of None will cause Django to use the same -# timezone as the operating system. -# If running in a Windows environment this must be set to the same as your -# system time zone. -TIME_ZONE = 'America/Chicago' - -# Language code for this installation. All choices can be found here: -# http://www.i18nguy.com/unicode/language-identifiers.html -LANGUAGE_CODE = 'en-us' - -SITE_ID = 1 - -# If you set this to False, Django will make some optimizations so as not -# to load the internationalization machinery. -USE_I18N = True - -# If you set this to False, Django will not format dates, numbers and -# calendars according to the current locale -USE_L10N = True - -# Absolute filesystem path to the directory that will hold user-uploaded files. -# Example: "/home/media/media.lawrence.com/media/" -MEDIA_ROOT = project_dir("media") - -# path relative to the MEDIA_ROOT where armstrong will upload images -ARMSTRONG_IMAGES_UPLOAD_PATH = 'armstrong/images/' - -# URL that handles the media served from MEDIA_ROOT. Make sure to use a -# trailing slash. -# Examples: "http://media.lawrence.com/media/", "http://example.com/media/" -MEDIA_URL = '/media/' - -# Absolute path to the directory static files should be collected to. -# Don't put anything in this directory yourself; store your static files -# in apps' "static/" subdirectories and in STATICFILES_DIRS. -# Example: "/home/media/media.lawrence.com/static/" -STATIC_ROOT = '' - -# URL prefix for static files. -# Example: "http://media.lawrence.com/static/" -STATIC_URL = '/static/' - -# URL prefix for admin static files -- CSS, JavaScript and images. -# Make sure to use a trailing slash. -# Examples: "http://foo.com/static/admin/", "/static/admin/". -ADMIN_MEDIA_PREFIX = '/static/admin/' - -# Additional locations of static files -STATICFILES_DIRS = ( - # Put strings here, like "/home/html/static" or "C:/www/django/static". - # Always use forward slashes, even on Windows. - # Don't forget to use absolute paths, not relative paths. - project_dir("static"), -) - -# List of finder classes that know how to find static files in -# various locations. -STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', -# 'django.contrib.staticfiles.finders.DefaultStorageFinder', -) - -# Make this unique, and don't share it with anybody. -SECRET_KEY = '{{ secret_key }}' - -# List of callables that know how to import templates from various sources. -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', -# 'django.template.loaders.eggs.Loader', -) - -MIDDLEWARE_CLASSES = ( - 'django.middleware.common.CommonMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', -) - -TEMPLATE_DIRS = ( - # Put strings here, like "/home/html/django_templates" or - # "C:/www/django/templates". - # Always use forward slashes, even on Windows. - # Don't forget to use absolute paths, not relative paths. - project_dir("templates") -) - -INSTALLED_APPS = ( - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.sites', - 'django.contrib.messages', - 'django.contrib.staticfiles', - # Comment the next line to disable the admin: - 'django.contrib.admin', - # Comment out the next line to disable admin documentation: - 'django.contrib.admindocs', - - # Armstrong packages - 'armstrong.core.arm_access', - 'armstrong.core.arm_content', - 'armstrong.core.arm_layout', - 'armstrong.core.arm_sections', - 'armstrong.core.arm_wells', - 'armstrong.apps.articles', - 'armstrong.apps.content', - 'armstrong.apps.images', - 'armstrong.apps.related_content', - 'armstrong.hatband', - - # Third-party apps that Armstrong requires - 'mptt', - 'reversion', - 'taggit', -) - -ARMSTRONG_SECTION_ITEM_MODEL = 'armstrong.apps.content.models.Content' - -# A sample logging configuration. The only tangible logging -# performed by this configuration is to send an email to -# the site admins on every HTTP 500 error. -# See http://docs.djangoproject.com/en/dev/topics/logging for -# more details on how to customize your logging configuration. -LOGGING = { - 'version': 1, - 'disable_existing_loggers': False, - 'handlers': { - 'mail_admins': { - 'level': 'ERROR', - 'class': 'django.utils.log.AdminEmailHandler' - } - }, - 'loggers': { - 'django.request': { - 'handlers': ['mail_admins'], - 'level': 'ERROR', - 'propagate': True, - }, - } -} - -ARMSTRONG_PRESETS = { - 'article_head': {'width': 600}, - 'article_half': {'width': 270}, - 'article_small': {'width': 175}, -} diff --git a/armstrong/cli/templates/standard/settings/development.py b/armstrong/cli/templates/standard/settings/development.py deleted file mode 100644 index 7d6cb8a..0000000 --- a/armstrong/cli/templates/standard/settings/development.py +++ /dev/null @@ -1,28 +0,0 @@ -# Development settings for {{ project_name }} -from settings.defaults import * - -DEBUG = True -TEMPLATE_DEBUG = DEBUG - -# Change this to work with your default development database -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. - 'NAME': '', # Or path to database file if using sqlite3. - 'USER': '', # Not used with sqlite3. - 'PASSWORD': '', # Not used with sqlite3. - 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. - 'PORT': '', # Set to empty string for default. Not used with sqlite3. - } -} - -# URL configuration to use in development mode -ROOT_URLCONF = 'urls.development' - - -# Attempt to load any settings from settings.local_development, but ignore any -# errors complaining about them not being present. -try: - from settings.local_development import * -except ImportError, e: - pass diff --git a/armstrong/cli/templates/standard/settings/helpers.py b/armstrong/cli/templates/standard/settings/helpers.py deleted file mode 100644 index c220d59..0000000 --- a/armstrong/cli/templates/standard/settings/helpers.py +++ /dev/null @@ -1,6 +0,0 @@ -import os - - -def project_dir(*paths): - base = os.path.realpath(os.path.join(os.path.dirname(__file__), '..')) - return os.path.join(base, *paths) diff --git a/armstrong/cli/templates/standard/settings/production.py b/armstrong/cli/templates/standard/settings/production.py deleted file mode 100644 index 5bb2786..0000000 --- a/armstrong/cli/templates/standard/settings/production.py +++ /dev/null @@ -1,27 +0,0 @@ -# Production settings for {{ project_name }} -from settings.defaults import * - -DEBUG = False -TEMPLATE_DEBUG = DEBUG - -# Change this to work with your default production database -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. - 'NAME': '', # Or path to database file if using sqlite3. - 'USER': '', # Not used with sqlite3. - 'PASSWORD': '', # Not used with sqlite3. - 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. - 'PORT': '', # Set to empty string for default. Not used with sqlite3. - } -} - -# URL configuration to use in production mode -ROOT_URLCONF = 'urls.production' - -# Attempt to load any settings from settings.local_production, but ignore any -# errors complaining about them not being present. -try: - from settings.local_production import * -except ImportError, e: - pass diff --git a/armstrong/cli/templates/standard/static/css/base.css b/armstrong/cli/templates/standard/static/css/base.css deleted file mode 100644 index 9bd76f6..0000000 --- a/armstrong/cli/templates/standard/static/css/base.css +++ /dev/null @@ -1,335 +0,0 @@ -/* -* Skeleton V1.1 -* Copyright 2011, Dave Gamache -* www.getskeleton.com -* Free to use under the MIT license. -* http://www.opensource.org/licenses/mit-license.php -* 8/17/2011 -*/ - - -/* Table of Content -================================================== - #Reset & Basics - #Basic Styles - #Site Styles - #Typography - #Links - #Lists - #Images - #Buttons - #Tabs - #Forms - #Misc */ - - -/* #Reset & Basics (Inspired by E. Meyers) -================================================== */ - html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; } - article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { - display: block; } - body { - line-height: 1; } - ol, ul { - list-style: none; } - blockquote, q { - quotes: none; } - blockquote:before, blockquote:after, - q:before, q:after { - content: ''; - content: none; } - table { - border-collapse: collapse; - border-spacing: 0; } - - -/* #Basic Styles -================================================== */ - body { - background: #fff; - font: 14px/21px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; - color: #444; - -webkit-font-smoothing: antialiased; /* Fix for webkit rendering */ - -webkit-text-size-adjust: 100%; - } - - -/* #Typography -================================================== */ - h1, h2, h3, h4, h5, h6 { - color: #181818; - font-family: "Georgia", "Times New Roman", Helvetica, Arial, sans-serif; - font-weight: normal; } - h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; } - h1 { font-size: 46px; line-height: 50px; margin-bottom: 14px;} - h2 { font-size: 35px; line-height: 40px; margin-bottom: 10px; } - h3 { font-size: 28px; line-height: 34px; margin-bottom: 8px; } - h4 { font-size: 21px; line-height: 30px; margin-bottom: 4px; } - h5 { font-size: 17px; line-height: 24px; } - h6 { font-size: 14px; line-height: 21px; } - .subheader { color: #777; } - - p { margin: 0 0 20px 0; } - p img { margin: 0; } - p.lead { font-size: 21px; line-height: 27px; color: #777; } - - em { font-style: italic; } - strong { font-weight: bold; color: #333; } - small { font-size: 80%; } - -/* Blockquotes */ - blockquote, blockquote p { font-size: 17px; line-height: 24px; color: #777; font-style: italic; } - blockquote { margin: 0 0 20px; padding: 9px 20px 0 19px; border-left: 1px solid #ddd; } - blockquote cite { display: block; font-size: 12px; color: #555; } - blockquote cite:before { content: "\2014 \0020"; } - blockquote cite a, blockquote cite a:visited, blockquote cite a:visited { color: #555; } - - hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 10px 0 30px; height: 0; } - - -/* #Links -================================================== */ - a, a:visited { color: #333; text-decoration: underline; outline: 0; } - a:hover, a:focus { color: #000; } - p a, p a:visited { line-height: inherit; } - - -/* #Lists -================================================== */ - ul, ol { margin-bottom: 20px; } - ul { list-style: none outside; } - ol { list-style: decimal; } - ol, ul.square, ul.circle, ul.disc { margin-left: 30px; } - ul.square { list-style: square outside; } - ul.circle { list-style: circle outside; } - ul.disc { list-style: disc outside; } - ul ul, ul ol, - ol ol, ol ul { margin: 4px 0 5px 30px; font-size: 90%; } - ul ul li, ul ol li, - ol ol li, ol ul li { margin-bottom: 6px; } - li { line-height: 18px; margin-bottom: 12px; } - ul.large li { line-height: 21px; } - li p { line-height: 21px; } - -/* #Images -================================================== */ - - img.scale-with-grid { - max-width: 100%; - height: auto; } - - -/* #Buttons -================================================== */ - - a.button, - button, - input[type="submit"], - input[type="reset"], - input[type="button"] { - background: #eee; /* Old browsers */ - background: #eee -moz-linear-gradient(top, rgba(255,255,255,.2) 0%, rgba(0,0,0,.2) 100%); /* FF3.6+ */ - background: #eee -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.2)), color-stop(100%,rgba(0,0,0,.2))); /* Chrome,Safari4+ */ - background: #eee -webkit-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Chrome10+,Safari5.1+ */ - background: #eee -o-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Opera11.10+ */ - background: #eee -ms-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* IE10+ */ - background: #eee linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* W3C */ - border: 1px solid #aaa; - border-top: 1px solid #ccc; - border-left: 1px solid #ccc; - padding: 4px 12px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - color: #444; - display: inline-block; - font-size: 11px; - font-weight: bold; - text-decoration: none; - text-shadow: 0 1px rgba(255, 255, 255, .75); - cursor: pointer; - margin-bottom: 20px; - line-height: 21px; - font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; } - - a.button:hover, - button:hover, - input[type="submit"]:hover, - input[type="reset"]:hover, - input[type="button"]:hover { - color: #222; - background: #ddd; /* Old browsers */ - background: #ddd -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /* FF3.6+ */ - background: #ddd -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.3)), color-stop(100%,rgba(0,0,0,.3))); /* Chrome,Safari4+ */ - background: #ddd -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Chrome10+,Safari5.1+ */ - background: #ddd -o-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Opera11.10+ */ - background: #ddd -ms-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* IE10+ */ - background: #ddd linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* W3C */ - border: 1px solid #888; - border-top: 1px solid #aaa; - border-left: 1px solid #aaa; } - - a.button:active, - button:active, - input[type="submit"]:active, - input[type="reset"]:active, - input[type="button"]:active { - border: 1px solid #666; - background: #ccc; /* Old browsers */ - background: #ccc -moz-linear-gradient(top, rgba(255,255,255,.35) 0%, rgba(10,10,10,.4) 100%); /* FF3.6+ */ - background: #ccc -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.35)), color-stop(100%,rgba(10,10,10,.4))); /* Chrome,Safari4+ */ - background: #ccc -webkit-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Chrome10+,Safari5.1+ */ - background: #ccc -o-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Opera11.10+ */ - background: #ccc -ms-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* IE10+ */ - background: #ccc linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* W3C */ } - - .button.full-width, - button.full-width, - input[type="submit"].full-width, - input[type="reset"].full-width, - input[type="button"].full-width { - width: 100%; - padding-left: 0 !important; - padding-right: 0 !important; - text-align: center; } - - -/* #Tabs (activate in tabs.js) -================================================== */ - ul.tabs { - display: block; - margin: 0 0 20px 0; - padding: 0; - border-bottom: solid 1px #ddd; } - ul.tabs li { - display: block; - width: auto; - height: 30px; - padding: 0; - float: left; - margin-bottom: 0; } - ul.tabs li a { - display: block; - text-decoration: none; - width: auto; - height: 29px; - padding: 0px 20px; - line-height: 30px; - border: solid 1px #ddd; - border-width: 1px 1px 0 0; - margin: 0; - background: #f5f5f5; - font-size: 13px; } - ul.tabs li a.active { - background: #fff; - height: 30px; - position: relative; - top: -4px; - padding-top: 4px; - border-left-width: 1px; - margin: 0 0 0 -1px; - color: #111; - -moz-border-radius-topleft: 2px; - -webkit-border-top-left-radius: 2px; - border-top-left-radius: 2px; - -moz-border-radius-topright: 2px; - -webkit-border-top-right-radius: 2px; - border-top-right-radius: 2px; } - ul.tabs li:first-child a.active { - margin-left: 0; } - ul.tabs li:first-child a { - border-width: 1px 1px 0 1px; - -moz-border-radius-topleft: 2px; - -webkit-border-top-left-radius: 2px; - border-top-left-radius: 2px; } - ul.tabs li:last-child a { - -moz-border-radius-topright: 2px; - -webkit-border-top-right-radius: 2px; - border-top-right-radius: 2px; } - - ul.tabs-content { margin: 0; display: block; } - ul.tabs-content > li { display:none; } - ul.tabs-content > li.active { display: block; } - - /* Clearfixing tabs for beautiful stacking */ - ul.tabs:before, - ul.tabs:after { - content: '\0020'; - display: block; - overflow: hidden; - visibility: hidden; - width: 0; - height: 0; } - ul.tabs:after { - clear: both; } - ul.tabs { - zoom: 1; } - - -/* #Forms -================================================== */ - - form { - margin-bottom: 20px; } - fieldset { - margin-bottom: 20px; } - input[type="text"], - input[type="password"], - input[type="email"], - textarea, - select { - border: 1px solid #ccc; - padding: 6px 4px; - outline: none; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - font: 13px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; - color: #777; - margin: 0; - width: 210px; - max-width: 100%; - display: block; - margin-bottom: 20px; - background: #fff; } - select { - padding: 0; } - input[type="text"]:focus, - input[type="password"]:focus, - input[type="email"]:focus, - textarea:focus { - border: 1px solid #aaa; - color: #444; - -moz-box-shadow: 0 0 3px rgba(0,0,0,.2); - -webkit-box-shadow: 0 0 3px rgba(0,0,0,.2); - box-shadow: 0 0 3px rgba(0,0,0,.2); } - textarea { - min-height: 60px; } - label, - legend { - display: block; - font-weight: bold; - font-size: 13px; } - select { - width: 220px; } - input[type="checkbox"] { - display: inline; } - label span, - legend span { - font-weight: normal; - font-size: 13px; - color: #444; } - -/* #Misc -================================================== */ - .remove-bottom { margin-bottom: 0 !important; } - .half-bottom { margin-bottom: 10px !important; } - .add-bottom { margin-bottom: 20px !important; } - - diff --git a/armstrong/cli/templates/standard/static/css/layout.css b/armstrong/cli/templates/standard/static/css/layout.css deleted file mode 100644 index aff5b47..0000000 --- a/armstrong/cli/templates/standard/static/css/layout.css +++ /dev/null @@ -1,58 +0,0 @@ -/* -* Skeleton V1.1 -* Copyright 2011, Dave Gamache -* www.getskeleton.com -* Free to use under the MIT license. -* http://www.opensource.org/licenses/mit-license.php -* 8/17/2011 -*/ - -/* Table of Content -================================================== - #Site Styles - #Page Styles - #Media Queries - #Font-Face */ - -/* #Site Styles -================================================== */ - -/* #Page Styles -================================================== */ - -/* #Media Queries -================================================== */ - - /* Smaller than standard 960 (devices and browsers) */ - @media only screen and (max-width: 959px) {} - - /* Tablet Portrait size to standard 960 (devices and browsers) */ - @media only screen and (min-width: 768px) and (max-width: 959px) {} - - /* All Mobile Sizes (devices and browser) */ - @media only screen and (max-width: 767px) {} - - /* Mobile Landscape Size to Tablet Portrait (devices and browsers) */ - @media only screen and (min-width: 480px) and (max-width: 767px) {} - - /* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */ - @media only screen and (max-width: 479px) {} - - -/* #Font-Face -================================================== */ -/* This is the proper syntax for an @font-face file - Just create a "fonts" folder at the root, - copy your FontName into code below and remove - comment brackets */ - -/* @font-face { - font-family: 'FontName'; - src: url('../fonts/FontName.eot'); - src: url('../fonts/FontName.eot?iefix') format('eot'), - url('../fonts/FontName.woff') format('woff'), - url('../fonts/FontName.ttf') format('truetype'), - url('../fonts/FontName.svg#webfontZam02nTh') format('svg'); - font-weight: normal; - font-style: normal; } -*/ \ No newline at end of file diff --git a/armstrong/cli/templates/standard/static/css/skeleton.css b/armstrong/cli/templates/standard/static/css/skeleton.css deleted file mode 100644 index d0264a4..0000000 --- a/armstrong/cli/templates/standard/static/css/skeleton.css +++ /dev/null @@ -1,236 +0,0 @@ -/* -* Skeleton V1.1 -* Copyright 2011, Dave Gamache -* www.getskeleton.com -* Free to use under the MIT license. -* http://www.opensource.org/licenses/mit-license.php -* 8/17/2011 -*/ - - -/* Table of Contents -================================================== - #Base 960 Grid - #Tablet (Portrait) - #Mobile (Portrait) - #Mobile (Landscape) - #Clearing */ - - - -/* #Base 960 Grid -================================================== */ - - .container { position: relative; width: 960px; margin: 0 auto; padding: 0; } - .column, .columns { float: left; display: inline; margin-left: 10px; margin-right: 10px; } - .row { margin-bottom: 20px; } - - /* Nested Column Classes */ - .column.alpha, .columns.alpha { margin-left: 0; } - .column.omega, .columns.omega { margin-right: 0; } - - /* Base Grid */ - .container .one.column { width: 40px; } - .container .two.columns { width: 100px; } - .container .three.columns { width: 160px; } - .container .four.columns { width: 220px; } - .container .five.columns { width: 280px; } - .container .six.columns { width: 340px; } - .container .seven.columns { width: 400px; } - .container .eight.columns { width: 460px; } - .container .nine.columns { width: 520px; } - .container .ten.columns { width: 580px; } - .container .eleven.columns { width: 640px; } - .container .twelve.columns { width: 700px; } - .container .thirteen.columns { width: 760px; } - .container .fourteen.columns { width: 820px; } - .container .fifteen.columns { width: 880px; } - .container .sixteen.columns { width: 940px; } - - .container .one-third.column { width: 300px; } - .container .two-thirds.column { width: 620px; } - - /* Offsets */ - .container .offset-by-one { padding-left: 60px; } - .container .offset-by-two { padding-left: 120px; } - .container .offset-by-three { padding-left: 180px; } - .container .offset-by-four { padding-left: 240px; } - .container .offset-by-five { padding-left: 300px; } - .container .offset-by-six { padding-left: 360px; } - .container .offset-by-seven { padding-left: 420px; } - .container .offset-by-eight { padding-left: 480px; } - .container .offset-by-nine { padding-left: 540px; } - .container .offset-by-ten { padding-left: 600px; } - .container .offset-by-eleven { padding-left: 660px; } - .container .offset-by-twelve { padding-left: 720px; } - .container .offset-by-thirteen { padding-left: 780px; } - .container .offset-by-fourteen { padding-left: 840px; } - .container .offset-by-fifteen { padding-left: 900px; } - - - -/* #Tablet (Portrait) -================================================== */ - - /* Note: Design for a width of 768px */ - - @media only screen and (min-width: 768px) and (max-width: 959px) { - .container { width: 768px; } - .container .column, - .container .columns { margin-left: 10px; margin-right: 10px; } - .column.alpha, .columns.alpha { margin-left: 0; margin-right: 10px; } - .column.omega, .columns.omega { margin-right: 0; margin-left: 10px; } - - .container .one.column { width: 28px; } - .container .two.columns { width: 76px; } - .container .three.columns { width: 124px; } - .container .four.columns { width: 172px; } - .container .five.columns { width: 220px; } - .container .six.columns { width: 268px; } - .container .seven.columns { width: 316px; } - .container .eight.columns { width: 364px; } - .container .nine.columns { width: 412px; } - .container .ten.columns { width: 460px; } - .container .eleven.columns { width: 508px; } - .container .twelve.columns { width: 556px; } - .container .thirteen.columns { width: 604px; } - .container .fourteen.columns { width: 652px; } - .container .fifteen.columns { width: 700px; } - .container .sixteen.columns { width: 748px; } - - .container .one-third.column { width: 236px; } - .container .two-thirds.column { width: 492px; } - - /* Offsets */ - .container .offset-by-one { padding-left: 48px; } - .container .offset-by-two { padding-left: 96px; } - .container .offset-by-three { padding-left: 144px; } - .container .offset-by-four { padding-left: 192px; } - .container .offset-by-five { padding-left: 240px; } - .container .offset-by-six { padding-left: 288px; } - .container .offset-by-seven { padding-left: 336px; } - .container .offset-by-eight { padding-left: 348px; } - .container .offset-by-nine { padding-left: 432px; } - .container .offset-by-ten { padding-left: 480px; } - .container .offset-by-eleven { padding-left: 528px; } - .container .offset-by-twelve { padding-left: 576px; } - .container .offset-by-thirteen { padding-left: 624px; } - .container .offset-by-fourteen { padding-left: 672px; } - .container .offset-by-fifteen { padding-left: 720px; } - } - - -/* #Mobile (Portrait) -================================================== */ - - /* Note: Design for a width of 320px */ - - @media only screen and (max-width: 767px) { - .container { width: 300px; } - .columns, .column { margin: 0; } - - .container .one.column, - .container .two.columns, - .container .three.columns, - .container .four.columns, - .container .five.columns, - .container .six.columns, - .container .seven.columns, - .container .eight.columns, - .container .nine.columns, - .container .ten.columns, - .container .eleven.columns, - .container .twelve.columns, - .container .thirteen.columns, - .container .fourteen.columns, - .container .fifteen.columns, - .container .sixteen.columns, - .container .one-third.column, - .container .two-thirds.column { width: 300px; } - - /* Offsets */ - .container .offset-by-one, - .container .offset-by-two, - .container .offset-by-three, - .container .offset-by-four, - .container .offset-by-five, - .container .offset-by-six, - .container .offset-by-seven, - .container .offset-by-eight, - .container .offset-by-nine, - .container .offset-by-ten, - .container .offset-by-eleven, - .container .offset-by-twelve, - .container .offset-by-thirteen, - .container .offset-by-fourteen, - .container .offset-by-fifteen { padding-left: 0; } - - } - - -/* #Mobile (Landscape) -================================================== */ - - /* Note: Design for a width of 480px */ - - @media only screen and (min-width: 480px) and (max-width: 767px) { - .container { width: 420px; } - .columns, .column { margin: 0; } - - .container .one.column, - .container .two.columns, - .container .three.columns, - .container .four.columns, - .container .five.columns, - .container .six.columns, - .container .seven.columns, - .container .eight.columns, - .container .nine.columns, - .container .ten.columns, - .container .eleven.columns, - .container .twelve.columns, - .container .thirteen.columns, - .container .fourteen.columns, - .container .fifteen.columns, - .container .sixteen.columns, - .container .one-third.column, - .container .two-thirds.column { width: 420px; } - } - - -/* #Clearing -================================================== */ - - /* Self Clearing Goodness */ - .container:after { content: "\0020"; display: block; height: 0; clear: both; visibility: hidden; } - - /* Use clearfix class on parent to clear nested columns, - or wrap each row of columns in a
*/ - .clearfix:before, - .clearfix:after, - .row:before, - .row:after { - content: '\0020'; - display: block; - overflow: hidden; - visibility: hidden; - width: 0; - height: 0; } - .row:after, - .clearfix:after { - clear: both; } - .row, - .clearfix { - zoom: 1; } - - /* You can also use a
to clear columns */ - .clear { - clear: both; - display: block; - overflow: hidden; - visibility: hidden; - width: 0; - height: 0; - } - - diff --git a/armstrong/cli/templates/standard/static/images/apple-touch-icon-114x114.png b/armstrong/cli/templates/standard/static/images/apple-touch-icon-114x114.png deleted file mode 100644 index 88a9d5e85cebcbb50947c480a380b213c700998b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10118 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 diff --git a/armstrong/cli/templates/standard/static/images/apple-touch-icon-72x72.png b/armstrong/cli/templates/standard/static/images/apple-touch-icon-72x72.png deleted file mode 100644 index bbca145e51c41c1c9a5ed0fdb3170fef7eefd7e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3872 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 agC_LBxVb#f41AyBxoUmlnf?#Heg6d*C!a0= diff --git a/armstrong/cli/templates/standard/static/javascript/jquery.masonry.min.js b/armstrong/cli/templates/standard/static/javascript/jquery.masonry.min.js deleted file mode 100644 index f750019..0000000 --- a/armstrong/cli/templates/standard/static/javascript/jquery.masonry.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * jQuery Masonry v2.1.0 - * A dynamic layout plugin for jQuery - * The flip-side of CSS Floats - * http://masonry.desandro.com - * - * Licensed under the MIT license. - * Copyright 2011 David DeSandro - */ -(function(a,b,c){var d=b.event,e;d.special.smartresize={setup:function(){b(this).bind("resize",d.special.smartresize.handler)},teardown:function(){b(this).unbind("resize",d.special.smartresize.handler)},handler:function(a,b){var c=this,d=arguments;a.type="smartresize",e&&clearTimeout(e),e=setTimeout(function(){jQuery.event.handle.apply(c,d)},b==="execAsap"?0:100)}},b.fn.smartresize=function(a){return a?this.bind("smartresize",a):this.trigger("smartresize",["execAsap"])},b.Mason=function(a,c){this.element=b(c),this._create(a),this._init()};var f=["position","height"];b.Mason.settings={isResizable:!0,isAnimated:!1,animationOptions:{queue:!1,duration:500},gutterWidth:0,isRTL:!1,isFitWidth:!1},b.Mason.prototype={_filterFindBricks:function(a){var b=this.options.itemSelector;return b?a.filter(b).add(a.find(b)):a},_getBricks:function(a){var b=this._filterFindBricks(a).css({position:"absolute"}).addClass("masonry-brick");return b},_create:function(c){this.options=b.extend(!0,{},b.Mason.settings,c),this.styleQueue=[],this.reloadItems();var d=this.element[0].style;this.originalStyle={};for(var e=0,g=f.length;e li > a'); - tab.click(function(e) { - - //Get Location of tab's content - var contentLocation = $(this).attr('href'); - - //Let go if not a hashed one - if(contentLocation.charAt(0)=="#") { - - e.preventDefault(); - - //Make Tab Active - tab.removeClass('active'); - $(this).addClass('active'); - - //Show Tab Content & add active class - $(contentLocation).show().addClass('active').siblings().hide().removeClass('active'); - - } - }); - }); -}); \ No newline at end of file diff --git a/armstrong/cli/templates/standard/static/jquery-1.7.1.min.js b/armstrong/cli/templates/standard/static/jquery-1.7.1.min.js deleted file mode 100644 index 198b3ff..0000000 --- a/armstrong/cli/templates/standard/static/jquery-1.7.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.7.1 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; -f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() -{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/armstrong/cli/templates/standard/templates/armstrong/includes/welcome.html b/armstrong/cli/templates/standard/templates/armstrong/includes/welcome.html deleted file mode 100644 index 825cac0..0000000 --- a/armstrong/cli/templates/standard/templates/armstrong/includes/welcome.html +++ /dev/null @@ -1,37 +0,0 @@ -

Everything Worked!

- -

- Welcome to your new Armstrong - powered website. Thank you for checking out Armstrong. -

- -

- This placeholder content is being displayed in place of real content - because the appropriate data was not found inside your configured - database. There are two ways you could fix this: -

- -
    -
  1. - Log in to the admin and create some - new content. -
  2. - -
  3. - Run armstrong load_demo_data inside your project - which will scrape the last 10 days worth of content from - WikiNews. -
  4. -
- -

- We recommend the latter option if you're just starting out with - Armstrong and would like to kick the tires. -

- - -{% comment %} -TODO: Add Where to next? section -TODO: Add link to "Getting Started for Developers" once complete -TODO: Add link to "Getting Started for Journalists" once complete -{% endcomment %} diff --git a/armstrong/cli/templates/standard/templates/article.html b/armstrong/cli/templates/standard/templates/article.html deleted file mode 100644 index b5791a7..0000000 --- a/armstrong/cli/templates/standard/templates/article.html +++ /dev/null @@ -1,16 +0,0 @@ -{% extends 'base.html' %} -{% load related_content %} - -{% block header %} -

Welcome to Armstrong!

-{% endblock %} - -{% block content %} -

{{ object.title }}

- {% lead_art object 'article_head' %} - - - {% autoescape off %} -
{{ object.body }}
- {% endautoescape %} -{% endblock %} diff --git a/armstrong/cli/templates/standard/templates/base.html b/armstrong/cli/templates/standard/templates/base.html deleted file mode 100644 index e27bb70..0000000 --- a/armstrong/cli/templates/standard/templates/base.html +++ /dev/null @@ -1,99 +0,0 @@ -{% load section_helpers %} -{% comment %} -This is based on Skeleton (getskeleton.com) -{% endcomment %} - - - - - - - - - - {% block title %}Your Armstrong Project{% endblock %} - - - - - {% block extra_head %} - - - {% endblock %} - - {% block css %} - - - - - - {% comment %}TODO: Remove these styles {% endcomment %} - - {% endblock %} - - {% block favicons %} - - - - - - {% endblock %} - - - - -
-
- {% block header %} -

Welcome to Armstrong!

- {% endblock %} -
- -
-
- {% block sidemenu %} - Home - {% section_menu section_view='section_view' %} - {% endblock %} -
- -
- {% block content %} - {% endblock %} -
-
-
- - {% block scripts %} - - - - - - - {% endblock %} - - diff --git a/armstrong/cli/templates/standard/templates/front_page.html b/armstrong/cli/templates/standard/templates/front_page.html deleted file mode 100644 index 249db01..0000000 --- a/armstrong/cli/templates/standard/templates/front_page.html +++ /dev/null @@ -1,16 +0,0 @@ -{% extends 'base.html' %} - -{% load layout_helpers %} - -{% block content %} - {% render_iter well.items|slice:":15" %} - {% render_next "big" %} - {% render_next "big" %} - {% render_next "standard" %} - {% render_next "standard" %} - {% render_next "standard" %} -
- {% render_remainder "half" %} -
- {% endrender_iter %} -{% endblock %} diff --git a/armstrong/cli/templates/standard/templates/index.html b/armstrong/cli/templates/standard/templates/index.html deleted file mode 100644 index 5034965..0000000 --- a/armstrong/cli/templates/standard/templates/index.html +++ /dev/null @@ -1,25 +0,0 @@ -{% extends "base.html" %} -{% load layout_helpers %} - -{% block content %} - {% comment %} - Note, this `if well` statement is only here to enable the - welcome page for an Armstrong site that does not have any - data in it. For production sites, this may be unnecessary. - {% endcomment %} - - {% if well %} - {% render_iter well.items|slice:":15" %} - {% render_next "big" %} - {% render_next "big" %} - {% render_next "standard" %} - {% render_next "standard" %} - {% render_next "standard" %} -
- {% render_remainder "half" %} -
- {% endrender_iter %} - {% else %} - {% include "armstrong/includes/welcome.html" %} - {% endif %} -{% endblock %} diff --git a/armstrong/cli/templates/standard/templates/layout/articles/article/big.html b/armstrong/cli/templates/standard/templates/layout/articles/article/big.html deleted file mode 100644 index ee1212a..0000000 --- a/armstrong/cli/templates/standard/templates/layout/articles/article/big.html +++ /dev/null @@ -1,15 +0,0 @@ -{% load related_content %} -
-

{{ object.title }}

- {% autoescape off %} - -
- {% lead_art object "article_half" %} -
- -

- {{ object.summary }} - Show more -

- {% endautoescape %} -
diff --git a/armstrong/cli/templates/standard/templates/layout/articles/article/half.html b/armstrong/cli/templates/standard/templates/layout/articles/article/half.html deleted file mode 100644 index b0e02a8..0000000 --- a/armstrong/cli/templates/standard/templates/layout/articles/article/half.html +++ /dev/null @@ -1,11 +0,0 @@ -{% load related_content %} -
-

{{ object.title }}

- - {% autoescape off %} -

- {{ object.summary }} - Show more -

- {% endautoescape %} -
diff --git a/armstrong/cli/templates/standard/templates/layout/articles/article/preview.html b/armstrong/cli/templates/standard/templates/layout/articles/article/preview.html deleted file mode 100644 index d502db9..0000000 --- a/armstrong/cli/templates/standard/templates/layout/articles/article/preview.html +++ /dev/null @@ -1,13 +0,0 @@ -{% load related_content %} -
- {{ object.title }} -
- {% lead_art object 'article_small' %} -
- {% autoescape off %} -

- {{ object.summary }} -

- {% endautoescape %} -
-
diff --git a/armstrong/cli/templates/standard/templates/layout/articles/article/standard.html b/armstrong/cli/templates/standard/templates/layout/articles/article/standard.html deleted file mode 100644 index b63a2ac..0000000 --- a/armstrong/cli/templates/standard/templates/layout/articles/article/standard.html +++ /dev/null @@ -1,15 +0,0 @@ -{% load related_content %} -
-

{{ object.title }}

- -
- {% lead_art object "article_small" %} -
- - {% autoescape off %} -

- {{ object.summary }} - Show more -

- {% endautoescape %} -
diff --git a/armstrong/cli/templates/standard/templates/section.html b/armstrong/cli/templates/standard/templates/section.html deleted file mode 100644 index 03d614e..0000000 --- a/armstrong/cli/templates/standard/templates/section.html +++ /dev/null @@ -1,10 +0,0 @@ -{% extends 'base.html' %} - -{% load layout_helpers %} - -{% block content %} -

{{ section.title }}

- {% for object in section.items %} - {% render_model object 'standard' %} - {% endfor %} -{% endblock %} diff --git a/armstrong/cli/templates/standard/urls/__init__.py b/armstrong/cli/templates/standard/urls/__init__.py deleted file mode 100644 index 3ad9513..0000000 --- a/armstrong/cli/templates/standard/urls/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from pkgutil import extend_path -__path__ = extend_path(__path__, __name__) diff --git a/armstrong/cli/templates/standard/urls/api.py b/armstrong/cli/templates/standard/urls/api.py deleted file mode 100644 index ab0c878..0000000 --- a/armstrong/cli/templates/standard/urls/api.py +++ /dev/null @@ -1,13 +0,0 @@ -""" -Contains URL patterns for a basic API using `Tastypie`_. - -.. _tastypie: https://github.com/toastdriven/django-tastypie -""" -from django.conf.urls.defaults import patterns, include, url - -from apis.api import v1_api - - -urlpatterns = patterns('', - url(r'^api/', include(v1_api.urls)), -) \ No newline at end of file diff --git a/armstrong/cli/templates/standard/urls/defaults.py b/armstrong/cli/templates/standard/urls/defaults.py deleted file mode 100644 index 80e9b58..0000000 --- a/armstrong/cli/templates/standard/urls/defaults.py +++ /dev/null @@ -1,96 +0,0 @@ -from django.conf.urls.defaults import patterns, include, url -from armstrong.core.arm_wells.views import QuerySetBackedWellView -from armstrong.core.arm_sections.views import SimpleSectionView, SectionFeed -from armstrong.apps.articles.models import Article -from armstrong.apps.articles.views import ArticleFeed -from django.views.generic.list_detail import object_detail -from django.conf import settings - - -# ADMIN_BASE is the base URL for your Armstrong admin. It is highly -# recommended that you change this to a different URL unless you enforce a -# strict password-strength policy for your users. -ADMIN_BASE = "admin" - - -# Comment the next two lines out to disable the admin: -from armstrong import hatband as admin -admin.autodiscover() - -# TODO: Document why this is here -from .utils import get_url_for_model - -urlpatterns = patterns('', - # Examples: - # - # url(r'^$', '{{ project_name }}.views.home', name='home'), - # url(r'^{{ project_name }}/', include('{{ project_name }}.foo.urls')), - - # ## Django Admin - # Comment the admin/doc line below to disable admin documentation: - url(r'^%s/doc/' % ADMIN_BASE, include('django.contrib.admindocs.urls')), - - # Comment the next line to disable the admin: - url(r'^%s/' % ADMIN_BASE, include(admin.site.urls)), - - # ## Media serving - # - # Configure the basic Django media view to respond to requests. - # - # *Note*: You should not use this in production, but it's useful to have - # for development purposes. - url(r'^media/(?P.*)$', 'django.views.static.serve', - {'document_root': settings.MEDIA_ROOT}), - - # ## Front Page - # - # This is an example of a `QuerySetBackedWellView` for loading articles - # while using a well called `front_page`. `QuerySetBackedWellView` - # requires a well to exist by default, but this is configured to work - # even without a well because of the `allow_empty=True` kwarg. - url(r'^$', - QuerySetBackedWellView.as_view(well_title="front_page", - allow_empty=True, template_name="index.html", - queryset=Article.published.all()), - name="home"), - - # ## Section Views - # - # Generate a section page. Note that it grabs a forward slash - # (/) as well since it matches on the full slug. - url(r'^section/(?P[-\w/]+)', - SimpleSectionView.as_view(template_name='section.html'), - name='section_view'), - - # Generate a basic RSS/Atom feed for any Section page. Like the - # default Section view, this also grabs forward slashes as well. - url(r'^feed/section/(?P[-\w/]+)', - SectionFeed(section_view='section_view'), - name='section_feed'), - - # ## Article Views - # - # Generate a detail view for a given article - url(r'^article/(?P[-\w]+)/', object_detail, { - 'queryset': Article.published.all().select_subclasses(), - 'template_name': 'article.html', - 'slug_field': 'slug', - }, - name='article_detail'), - - # Generate a basic RSS/Atom feed for all articles - url(r'^feed/all', - ArticleFeed(title='Demo site articles', - link='/', - queryset=Article.objects.all()), - name='all_articles_feed'), - -) - -# ## API Routes -# -# Armstrong ships with a basic API. You can uncomment the following two -# lines (and adjust indention) to enable it. -# -# from .api import urlpatterns as api_urlpatterns -# urlpatterns += api_urlpatterns diff --git a/armstrong/cli/templates/standard/urls/development.py b/armstrong/cli/templates/standard/urls/development.py deleted file mode 100644 index 08ec471..0000000 --- a/armstrong/cli/templates/standard/urls/development.py +++ /dev/null @@ -1,19 +0,0 @@ -""" -Add any additional URLs that should only be available when using the the -settings.development configuration. - -See ``urls.defaults`` for a list of all URLs available across both -configurations. -""" -from .defaults import * - -urlpatterns += patterns('', - - # Examples: - # url(r'^$', '{{ project_name }}.views.debug', name='debug'), - # url(r'^{{ project_name }}/', include('{{ project_name }}.debug.urls')), -) - -# Load staticfiles for testing purposes -from django.contrib.staticfiles.urls import staticfiles_urlpatterns -urlpatterns += staticfiles_urlpatterns() diff --git a/armstrong/cli/templates/standard/urls/production.py b/armstrong/cli/templates/standard/urls/production.py deleted file mode 100644 index bf1d1ae..0000000 --- a/armstrong/cli/templates/standard/urls/production.py +++ /dev/null @@ -1,19 +0,0 @@ -""" -Add any additional URLs that should only be available when using the the -settings.production configuration. - -This is useful for having a production location for debugging utilities where -you do not want them on at their standard path. Note that everything defined -in urls.defaults is available here as well. - -See ``urls.defaults`` for a list of all URLs available across both -configurations. -""" -from .defaults import * - -urlpatterns += patterns('', - - # Examples: - # url(r'^$', 'prod/{{ project_name }}.views.debug', name='debug'), - # url(r'^prod/{{ project_name }}/', include('{{ project_name }}.debug.urls')), -) diff --git a/armstrong/cli/templates/standard/urls/utils.py b/armstrong/cli/templates/standard/urls/utils.py deleted file mode 100644 index 01fe653..0000000 --- a/armstrong/cli/templates/standard/urls/utils.py +++ /dev/null @@ -1,18 +0,0 @@ -from armstrong.core.arm_sections.models import Section -from armstrong.apps.articles.models import Article -from django.core.urlresolvers import reverse - -def get_url_for_model(obj): - """ The get_url_for_model function is necessary because Armstrong has no - preconceptions about what your url schema actually looks like. - get_url_for_model is called whenever a BaseContent subclass has it's - get_absolute_url function calle_url_for_model is called whenever a - BaseContent subclass has it's get_absolute_url function called. - - In the future we will most likely provide base urls for each app that will - allow new Armstrong implementations to not use this mechanism. - """ - if obj.__class__ == Section: - return reverse('section_view', kwargs={'full_slug': obj.full_slug}) - if obj.__class__ == Article: - return reverse('article_detail', kwargs={'slug': obj.slug}) diff --git a/armstrong/cli/templates/standard/wsgi.py b/armstrong/cli/templates/standard/wsgi.py deleted file mode 100644 index 6ae9fe0..0000000 --- a/armstrong/cli/templates/standard/wsgi.py +++ /dev/null @@ -1,13 +0,0 @@ -# Simple wsgi file for {{ project_name }} -import os -import sys - -# Change this to reflect the environment you're in -os.environ['DJANGO_SETTINGS_MODULE'] = 'settings.development' - -# Make sure that this project directory is first in the sys.path, or at least -# as close to first as can be reasonably assured in Python. -sys.path.insert(0, os.path.dirname(__file__)) - -from django.core.handlers.wsgi import WSGIHandler -application = WSGIHandler() From df3d85ca30fe42f403e77731ba50fc956e199638 Mon Sep 17 00:00:00 2001 From: Travis Swicegood Date: Fri, 27 Apr 2012 17:12:29 -0500 Subject: [PATCH 06/13] Fix this so it works and don't iterate for one value --- armstrong/cli/commands/init.py | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/armstrong/cli/commands/init.py b/armstrong/cli/commands/init.py index 888d63d..175c231 100644 --- a/armstrong/cli/commands/init.py +++ b/armstrong/cli/commands/init.py @@ -34,24 +34,14 @@ def __call__(self, template='standard', demo=False, path=CWD, **kwargs): # TODO: interactive mode to ask questions for each variable from django.conf import settings - # TODO: appropriate error output if non-existant template chosen - template_dir = os.path.realpath(os.path.join( - os.path.dirname(__file__), - '..', - "templates", - template, - )) - - if not os.path.exists(template_dir): - from pkg_resources import iter_entry_points - for ep in iter_entry_points(group=ENTRY_POINT): - if ep.name == template: - root = ep.load() - template_dir = root.__path__ - break - else: - raise MissingTemplate("No template named: %s" % template) - + from pkg_resources import iter_entry_points + try: + entry_point = iter_entry_points(ENTRY_POINT, template).next() + except StopIteration: + raise MissingTemplate("No template named: %s" % template) + + module = entry_point.load() + template_dir = module.__path__[0] settings.configure(DEBUG=False, TEMPLATE_DEBUG=False, TEMPLATE_DIRS=[template_dir, ]) From 1181fbe68d414b61fb0270550c95558f7af19ba2 Mon Sep 17 00:00:00 2001 From: Travis Swicegood Date: Fri, 27 Apr 2012 17:12:39 -0500 Subject: [PATCH 07/13] pep8ify --- armstrong/cli/commands/init.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/armstrong/cli/commands/init.py b/armstrong/cli/commands/init.py index 175c231..160f0d0 100644 --- a/armstrong/cli/commands/init.py +++ b/armstrong/cli/commands/init.py @@ -50,7 +50,7 @@ def __call__(self, template='standard', demo=False, path=CWD, **kwargs): # TODO: allow this to be passed in via command line project_name = os.path.basename(path) - # The secret key generate is borrowed directly from Django's startproject + # Secret key generation: borrowed directly from Django's startproject CHOICES = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)' secret_key = ''.join([choice(CHOICES) for i in range(50)]) context = Context({ From 84b2cfaeeaa16298ec897cf4b2f7858df0926e6f Mon Sep 17 00:00:00 2001 From: Travis Swicegood Date: Mon, 30 Apr 2012 14:37:28 -0500 Subject: [PATCH 08/13] clean up file (no functional code changes) --- armstrong/cli/commands/init.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/armstrong/cli/commands/init.py b/armstrong/cli/commands/init.py index 160f0d0..e5718ef 100644 --- a/armstrong/cli/commands/init.py +++ b/armstrong/cli/commands/init.py @@ -5,7 +5,6 @@ import shutil import codecs import json -import argparse from random import choice CWD = os.getcwd() @@ -70,7 +69,6 @@ def source_files(): if not name.endswith(".pyc"): yield os.path.join(dirpath, name) - existing_files = [] files = [] excluded_files = [ From f00bfa36491b85d0a2115bb4e950320706789813 Mon Sep 17 00:00:00 2001 From: Travis Swicegood Date: Mon, 30 Apr 2012 15:23:05 -0500 Subject: [PATCH 09/13] Add tutorial template as a requirement --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index cb4c805..ab3907f 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ }, "install_requires": [ "argparse==1.2.1", - "armstrong.templates.standard>=1.0.0,<2.0" + "armstrong.templates.standard>=1.0.0,<2.0", + "armstrong.templates.tutorial>=1.0.0,<2.0" ] } From cd580b04e68c9d3cdb400759f9580f69913a599b Mon Sep 17 00:00:00 2001 From: Travis Swicegood Date: Mon, 30 Apr 2012 15:23:21 -0500 Subject: [PATCH 10/13] Bump to proper version of standard template --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ab3907f..0b55d5c 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ }, "install_requires": [ "argparse==1.2.1", - "armstrong.templates.standard>=1.0.0,<2.0", + "armstrong.templates.standard>=1.0.2,<2.0", "armstrong.templates.tutorial>=1.0.0,<2.0" ] From 506ef0ed9ae49605d712be493ea1cbb813df4f87 Mon Sep 17 00:00:00 2001 From: Travis Swicegood Date: Mon, 30 Apr 2012 15:49:34 -0500 Subject: [PATCH 11/13] remove the tutorial --- armstrong/cli/templates/tutorial/__init__.py | 0 .../cli/templates/tutorial/apis/__init__.py | 0 armstrong/cli/templates/tutorial/apis/api.py | 8 - .../cli/templates/tutorial/apis/resources.py | 19 - .../tutorial/fixtures/demo_data.json | 4054 ----------------- .../tutorial/fixtures/initial_data.json | 28 - .../cli/templates/tutorial/manifest.json | 8 - .../tutorial/requirements/development.txt | 2 - .../tutorial/requirements/project.txt | 5 - .../templates/tutorial/settings/__init__.py | 2 - .../templates/tutorial/settings/defaults.py | 156 - .../tutorial/settings/development.py | 28 - .../templates/tutorial/settings/helpers.py | 6 - .../templates/tutorial/settings/production.py | 27 - .../cli/templates/tutorial/static/README.rst | 1 - .../cli/templates/tutorial/templates/404.html | 47 - .../templates/tutorial/templates/article.html | 13 - .../templates/tutorial/templates/base.html | 47 - .../tutorial/templates/front_page.html | 14 - .../templates/tutorial/templates/index.html | 41 - .../layout/articles/article/big.html | 9 - .../layout/articles/article/half.html | 9 - .../layout/articles/article/standard.html | 9 - .../templates/tutorial/templates/robots.txt | 5 - .../templates/tutorial/templates/section.html | 10 - .../cli/templates/tutorial/urls/__init__.py | 2 - armstrong/cli/templates/tutorial/urls/api.py | 13 - .../cli/templates/tutorial/urls/defaults.py | 68 - .../templates/tutorial/urls/development.py | 15 - .../cli/templates/tutorial/urls/production.py | 19 - .../cli/templates/tutorial/urls/utils.py | 18 - armstrong/cli/templates/tutorial/wsgi.py | 13 - 32 files changed, 4696 deletions(-) delete mode 100644 armstrong/cli/templates/tutorial/__init__.py delete mode 100644 armstrong/cli/templates/tutorial/apis/__init__.py delete mode 100644 armstrong/cli/templates/tutorial/apis/api.py delete mode 100644 armstrong/cli/templates/tutorial/apis/resources.py delete mode 100644 armstrong/cli/templates/tutorial/fixtures/demo_data.json delete mode 100644 armstrong/cli/templates/tutorial/fixtures/initial_data.json delete mode 100644 armstrong/cli/templates/tutorial/manifest.json delete mode 100644 armstrong/cli/templates/tutorial/requirements/development.txt delete mode 100644 armstrong/cli/templates/tutorial/requirements/project.txt delete mode 100644 armstrong/cli/templates/tutorial/settings/__init__.py delete mode 100644 armstrong/cli/templates/tutorial/settings/defaults.py delete mode 100644 armstrong/cli/templates/tutorial/settings/development.py delete mode 100644 armstrong/cli/templates/tutorial/settings/helpers.py delete mode 100644 armstrong/cli/templates/tutorial/settings/production.py delete mode 100644 armstrong/cli/templates/tutorial/static/README.rst delete mode 100644 armstrong/cli/templates/tutorial/templates/404.html delete mode 100644 armstrong/cli/templates/tutorial/templates/article.html delete mode 100644 armstrong/cli/templates/tutorial/templates/base.html delete mode 100644 armstrong/cli/templates/tutorial/templates/front_page.html delete mode 100644 armstrong/cli/templates/tutorial/templates/index.html delete mode 100644 armstrong/cli/templates/tutorial/templates/layout/articles/article/big.html delete mode 100644 armstrong/cli/templates/tutorial/templates/layout/articles/article/half.html delete mode 100644 armstrong/cli/templates/tutorial/templates/layout/articles/article/standard.html delete mode 100755 armstrong/cli/templates/tutorial/templates/robots.txt delete mode 100644 armstrong/cli/templates/tutorial/templates/section.html delete mode 100644 armstrong/cli/templates/tutorial/urls/__init__.py delete mode 100644 armstrong/cli/templates/tutorial/urls/api.py delete mode 100644 armstrong/cli/templates/tutorial/urls/defaults.py delete mode 100644 armstrong/cli/templates/tutorial/urls/development.py delete mode 100644 armstrong/cli/templates/tutorial/urls/production.py delete mode 100644 armstrong/cli/templates/tutorial/urls/utils.py delete mode 100644 armstrong/cli/templates/tutorial/wsgi.py diff --git a/armstrong/cli/templates/tutorial/__init__.py b/armstrong/cli/templates/tutorial/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/armstrong/cli/templates/tutorial/apis/__init__.py b/armstrong/cli/templates/tutorial/apis/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/armstrong/cli/templates/tutorial/apis/api.py b/armstrong/cli/templates/tutorial/apis/api.py deleted file mode 100644 index 9fb41b4..0000000 --- a/armstrong/cli/templates/tutorial/apis/api.py +++ /dev/null @@ -1,8 +0,0 @@ -from tastypie.api import Api - -from .resources import ArticleResource -from .resources import AuthorsResource - -v1_api = Api(api_name="v1") -v1_api.register(ArticleResource()) -v1_api.register(AuthorsResource()) \ No newline at end of file diff --git a/armstrong/cli/templates/tutorial/apis/resources.py b/armstrong/cli/templates/tutorial/apis/resources.py deleted file mode 100644 index 43385ff..0000000 --- a/armstrong/cli/templates/tutorial/apis/resources.py +++ /dev/null @@ -1,19 +0,0 @@ -from armstrong.apps.articles.models import Article -from django.contrib.auth.models import User -from tastypie import fields -from tastypie.resources import ModelResource - - -class AuthorsResource(ModelResource): - class Meta: - queryset = User.objects.filter(groups__name="Authors") - resource_name = "users/author" - excludes = ["email", "is_superuser", "password", ] - - -class ArticleResource(ModelResource): - authors = fields.ToManyField(AuthorsResource, "authors") - - class Meta: - queryset = Article.published.all() - resource_name = "articles/article" \ No newline at end of file diff --git a/armstrong/cli/templates/tutorial/fixtures/demo_data.json b/armstrong/cli/templates/tutorial/fixtures/demo_data.json deleted file mode 100644 index 6bac81f..0000000 --- a/armstrong/cli/templates/tutorial/fixtures/demo_data.json +++ /dev/null @@ -1,4054 +0,0 @@ -[ - { - "pk": 1, - "model": "sites.site", - "fields": { - "domain": "localhost", - "name": "localhost" - } - }, - { - "pk": 1, - "model": "arm_sections.section", - "fields": { - "rght": 2, - "parent": null, - "title": "Politics", - "level": 0, - "summary": "", - "lft": 1, - "full_slug": "politics/", - "tree_id": 1, - "slug": "politics" - } - }, - { - "pk": 2, - "model": "arm_sections.section", - "fields": { - "rght": 6, - "parent": null, - "title": "Sports", - "level": 0, - "summary": "", - "lft": 1, - "full_slug": "sports/", - "tree_id": 2, - "slug": "sports" - } - }, - { - "pk": 3, - "model": "arm_sections.section", - "fields": { - "rght": 2, - "parent": null, - "title": "Fashion", - "level": 0, - "summary": "", - "lft": 1, - "full_slug": "fashion/", - "tree_id": 3, - "slug": "fashion" - } - }, - { - "pk": 4, - "model": "arm_sections.section", - "fields": { - "rght": 3, - "parent": 2, - "title": "Football", - "level": 1, - "summary": "", - "lft": 2, - "full_slug": "sports/football/", - "tree_id": 2, - "slug": "football" - } - }, - { - "pk": 5, - "model": "arm_sections.section", - "fields": { - "rght": 5, - "parent": 2, - "title": "Basketball", - "level": 1, - "summary": "", - "lft": 4, - "full_slug": "sports/basketball/", - "tree_id": 2, - "slug": "basketball" - } - }, - { - "pk": 1, - "model": "arm_wells.welltype", - "fields": { - "slug": "front_page", - "title": "front_page" - } - }, - { - "pk": 1, - "model": "arm_wells.well", - "fields": { - "active": true, - "pub_date": "2011-07-06 17:28:10", - "expires": null, - "type": 1 - } - }, - { - "pk": 1, - "model": "arm_wells.node", - "fields": { - "well": 1, - "order": 0, - "content_type": ["articles", "article"], - "object_id": 1 - } - }, - { - "pk": 2, - "model": "arm_wells.node", - "fields": { - "well": 1, - "order": 0, - "content_type": ["articles", "article"], - "object_id": 6 - } - }, - { - "pk": 3, - "model": "arm_wells.node", - "fields": { - "well": 1, - "order": 0, - "content_type": ["articles", "article"], - "object_id": 10 - } - }, - { - "pk": 1, - "model": "articles.article", - "fields": { - "body": "

Perspiciatis debitis dolorem voluptas fugiat adipisci in rerum id consequatur voluptatem? Dolorem qui iure beatae, accusantium natus mollitia modi doloribus assumenda unde atque sint, dolor quos culpa provident, modi voluptate libero non vel? Quam eaque veritatis quibusdam qui sapiente exercitationem.

Aperiam fugiat impedit minima expedita tempore ut iusto.

Laudantium maiores facilis unde pariatur atque ipsa aut tempora illo voluptates fugiat, ea aliquam similique ut mollitia perferendis ratione maxime.

Nihil nam laboriosam deleniti nobis corrupti quos, fuga ullam iste autem nam voluptate modi eius, accusantium facere rerum iste minus, dolore sint laudantium eligendi asperiores praesentium rerum placeat repudiandae. Odit iusto voluptate esse quisquam amet, fugit quia quam ullam totam voluptatem incidunt.

Nostrum velit suscipit numquam repellendus mollitia consequatur impedit ad minus, possimus accusantium tempore exercitationem fugit dolor a voluptates, dolore molestias hic doloremque earum. Quidem fugit assumenda, debitis praesentium provident, officiis delectus corrupti, consectetur odio quibusdam corporis praesentium inventore nulla incidunt iste doloribus voluptates beatae? Error corrupti cum fugiat exercitationem adipisci ipsam qui modi itaque deserunt. Maxime obcaecati ipsum laboriosam alias eum perspiciatis, voluptatum vel praesentium perferendis ducimus laboriosam natus qui consequuntur placeat cumque, iure voluptatum tempora sequi rerum unde minus eveniet, non voluptatibus numquam ullam et suscipit ipsam?

Numquam vero odit eum, vero assumenda magnam saepe qui labore quod rem, deleniti rem quisquam modi cum reprehenderit atque tempora hic, reiciendis soluta distinctio veniam. Aliquid voluptatem velit consectetur perferendis, facere explicabo nobis sequi quo eius fugit suscipit? Nam vel minus nulla, quidem adipisci asperiores deleniti, fugit nemo quaerat quis recusandae accusantium praesentium iure ea est dolores, quod illum ipsam cupiditate unde hic?

Enim laudantium blanditiis. Mollitia dolores sunt minima voluptatum inventore quas excepturi et, vel quibusdam id quisquam accusamus quo esse ex eius hic qui, odio ab doloribus, in hic est mollitia vero vitae maiores assumenda vel?

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 12 - ] - } - }, - { - "pk": 2, - "model": "articles.article", - "fields": { - "body": "

Possimus ex omnis voluptate magnam qui autem praesentium accusamus? Eum veritatis corporis beatae soluta at dolorum recusandae consequuntur, illum omnis enim nihil magnam illo, molestias quae accusantium sequi iure beatae doloribus minima, laborum repellendus qui deleniti minus aliquam, voluptates eum ducimus odit expedita cupiditate minus reiciendis delectus obcaecati eaque enim.

Praesentium explicabo eaque error laborum, blanditiis dolorem deleniti iste voluptates? Maxime a excepturi, fugit quos maiores soluta sunt unde blanditiis provident a, ipsa sint maxime ea minima distinctio perferendis velit, ex inventore beatae labore commodi sit nostrum quibusdam mollitia dolores praesentium vero, nostrum quibusdam nisi saepe assumenda blanditiis suscipit iusto dolores voluptatibus libero inventore?

Aperiam voluptatem cum neque dolor soluta repudiandae, dolorum saepe doloribus nihil, optio officia repellat a aperiam placeat hic totam provident iusto fugit explicabo? Iusto laudantium deleniti consequatur dicta quis repellat veniam, architecto cupiditate fuga explicabo eos molestiae deserunt ipsam ullam, optio tempora nisi tempore velit consectetur consequuntur?

Neque facilis velit molestias quod, reprehenderit voluptate aperiam placeat tenetur magni quos, autem nam officia, ipsa alias temporibus. Inventore veritatis assumenda laborum architecto pariatur et, possimus exercitationem molestiae animi, nihil consectetur eius earum velit labore laboriosam iusto ipsam sit aspernatur, temporibus sequi placeat veritatis quasi voluptate modi veniam omnis reprehenderit illum, voluptatem repellendus optio atque fugit deserunt neque et? Quas ipsa harum incidunt odio inventore quia qui veniam id, vel doloribus perferendis quisquam, sit laudantium non minima eum sed voluptates ut voluptatum tempora ipsum iusto?

Dolorum nam fugit doloribus dolore voluptate mollitia incidunt minima architecto consequuntur repellendus? Nisi sequi qui dicta, impedit recusandae suscipit cum aliquam exercitationem nobis numquam rerum qui, ipsa libero dignissimos pariatur impedit numquam aliquam ex aspernatur quo laudantium. Quam molestias sint esse nostrum minus eum nulla enim rem delectus. Aliquid temporibus deserunt dolor accusamus, minima voluptatem vel est atque laboriosam obcaecati, alias laudantium temporibus et esse soluta facere, ut nostrum dolor obcaecati ducimus quo aliquam.

Tempora officia magni, cum eum voluptates vel modi eius? Exercitationem voluptatem iste velit est perspiciatis, inventore iure voluptatibus alias et modi, libero ad a autem cumque numquam iusto error recusandae, distinctio dicta consequatur earum adipisci perspiciatis a qui recusandae voluptate fugiat vero, praesentium nihil quia quas consequuntur eaque libero facilis accusantium voluptate. Quasi voluptates mollitia qui cupiditate magni. Nostrum architecto ullam sunt quos totam deleniti accusamus ex velit natus, aut ipsam quo sequi dignissimos iste aperiam consequatur?

Nulla facilis amet dicta quam, impedit beatae deserunt iste rem rerum commodi, distinctio necessitatibus eligendi corporis iusto, expedita eum quisquam magnam at, voluptatem quos nostrum tempore veritatis atque aspernatur voluptatum praesentium.

In laudantium aperiam quidem ab ad officia quia, rerum nisi impedit est velit quasi cum id iusto reprehenderit eius repudiandae, nisi in numquam vitae, modi sint enim. Dolores vero suscipit hic, optio quas quod porro saepe architecto est fugiat eius nesciunt velit. Eius necessitatibus sit praesentium nisi dignissimos suscipit officiis nostrum harum aperiam, cumque quibusdam commodi voluptatibus, perspiciatis cum expedita amet sequi maiores delectus?

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 7, - 8, - 12 - ] - } - }, - { - "pk": 3, - "model": "articles.article", - "fields": { - "body": "

Ipsum veritatis repellat repellendus dolorum sint officiis officia consequuntur est quaerat expedita, dignissimos temporibus repellat totam recusandae, dolores vero placeat sunt hic fugiat veniam maiores odio culpa.

Recusandae velit quis temporibus vero laborum facilis nesciunt maiores itaque voluptates, tenetur id eius odit aliquid, a vel at quibusdam quasi adipisci temporibus ex aliquid, consectetur ipsum iusto non placeat saepe dignissimos laborum vitae natus illo.

Non nihil id natus ad aspernatur rerum sint quos similique facilis, distinctio rem illo facilis iusto asperiores rerum accusantium sequi nobis excepturi, voluptates obcaecati enim facere. Voluptatem temporibus dolore quos ex possimus, a ad earum culpa et quas odit explicabo quod inventore vel.

Asperiores enim quis iure suscipit omnis commodi, recusandae officia aperiam a nihil repellat illo magnam mollitia nostrum illum ullam, est voluptatem at tempore saepe ab. Fugiat pariatur corrupti doloribus cum provident, omnis itaque quod obcaecati officiis exercitationem enim ex, minima ut sequi fugit rem doloribus officia velit, eum asperiores nemo tenetur in maiores natus reprehenderit sit odit consequatur, minima expedita explicabo?

Explicabo nesciunt beatae suscipit eveniet neque sequi alias totam similique? Vel vero maxime quo est pariatur molestias consequatur cupiditate dolorum culpa.

Optio quam ipsam esse et officiis inventore repudiandae velit maxime, quae nemo dicta, quibusdam necessitatibus at neque odit quos, reprehenderit eius possimus laboriosam tempora beatae voluptates placeat nemo qui ex.

Obcaecati eveniet nihil velit ullam cupiditate, dolor quisquam animi voluptas vero porro at provident dolorem pariatur quidem?

Illum quaerat sapiente velit voluptates, ducimus earum quisquam placeat sequi at ipsum, amet mollitia delectus quam deserunt itaque tempora quae?

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 3, - 4 - ] - } - }, - { - "pk": 4, - "model": "articles.article", - "fields": { - "body": "

Nobis pariatur architecto at consequuntur?

Cum impedit delectus, deserunt esse quibusdam iste, sed porro doloribus ad commodi hic eveniet vel neque reprehenderit nemo quasi, id a possimus veritatis at dolore enim voluptatibus blanditiis? Ex magni doloribus nesciunt tenetur dicta impedit voluptate, aspernatur maiores tempora voluptatem earum natus iste dolore? Minima fugit beatae incidunt itaque non quod quam nostrum aliquam tenetur omnis, consequuntur ea doloremque maxime saepe tempore impedit at natus ex atque, nemo voluptatem minus temporibus nisi reprehenderit fugit.

Iusto dolorem corrupti doloremque, incidunt quidem inventore explicabo dignissimos saepe eligendi voluptatum excepturi sapiente, ab neque dolorum. Labore temporibus enim. Natus dignissimos dolor ipsum alias, at atque ipsam voluptatem nisi ipsum quidem nihil, expedita ad minus explicabo corporis ea beatae itaque temporibus molestiae magni, enim id accusantium ea sint repudiandae fugiat vero soluta dicta consequatur unde?

Quisquam laudantium praesentium beatae nihil, sapiente at delectus, voluptatem nesciunt quas odit veniam placeat, maiores error fugit, praesentium necessitatibus ab modi tenetur consequuntur quisquam officiis ex dolore error. Error facere accusantium quae nobis eos, accusamus autem laudantium distinctio harum illo dicta est, iusto facere eius ullam enim animi totam quaerat quasi neque rerum?

Eius esse sapiente unde repudiandae nobis veritatis odio. Molestias laborum in beatae nemo quis rerum, perferendis quo reprehenderit, consectetur voluptas voluptatem, aspernatur officia consectetur, accusantium earum saepe? Quam magnam debitis pariatur optio aliquid perspiciatis assumenda totam iure?

Laudantium laboriosam magni consequatur aliquam itaque pariatur dolor expedita quasi, provident expedita nulla illo, alias error recusandae molestias dolore magni eos vel minima repellendus sequi reiciendis, dicta veritatis quod iure iste perferendis facere voluptas maiores reiciendis qui, sed aut molestias dolorum ex ducimus voluptate excepturi magni? Odit rem esse autem aut voluptatem officiis deserunt a cum sed? Sunt pariatur nemo praesentium veritatis tenetur amet vel assumenda vitae mollitia, possimus dolor enim doloribus facere obcaecati, reprehenderit fugit suscipit similique nam consequatur, quisquam voluptas corporis quos maxime saepe consequatur.

Est unde laudantium eius eum non explicabo accusantium tenetur voluptas necessitatibus, sequi incidunt vitae fugit reprehenderit explicabo quidem, cupiditate eveniet consectetur sapiente ipsa optio repellendus non, amet laborum minus, dolorem sint at? Quisquam voluptate illum praesentium, quae repellat perferendis quasi impedit illum debitis aliquam iusto sequi, at odit vel cumque autem obcaecati eveniet voluptates delectus quibusdam ducimus. Ullam perspiciatis provident soluta velit quos magni consectetur, quod autem similique mollitia quos eaque itaque optio quibusdam unde ad alias, qui alias expedita minus beatae magnam sapiente illum? Incidunt natus consectetur delectus quaerat sunt vel soluta ipsum odio?

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 7, - 9 - ] - } - }, - { - "pk": 5, - "model": "articles.article", - "fields": { - "body": "

Aliquam molestias nesciunt consequatur consequuntur non soluta quasi cum nisi optio, assumenda quia molestias adipisci quos maxime officiis alias cupiditate. Fugit officiis perspiciatis maiores incidunt molestias quam? Doloribus at id quos eligendi tempore omnis, veniam similique iure debitis itaque asperiores assumenda adipisci quos?

Eaque sit numquam architecto, assumenda corrupti explicabo voluptatibus, molestiae sit in suscipit id. Nisi omnis commodi facere architecto quia accusamus dignissimos iusto? Porro eveniet doloribus odio asperiores nihil fuga pariatur iure, ipsum facere atque est, inventore similique laborum consequuntur nobis.

Assumenda ratione dicta. Fugit numquam quae excepturi assumenda dolores omnis ut, aliquid odio vel corrupti eos cum amet laborum, eum velit dolorem vel corrupti dolorum quisquam excepturi magnam, amet quibusdam repudiandae corporis. Numquam dicta officia distinctio illum deserunt dignissimos veritatis temporibus ratione, sit quidem sequi cupiditate pariatur harum ducimus, est non ratione quisquam, aperiam eum corporis officiis tempore expedita? Odit ducimus veniam libero recusandae adipisci, nisi iste qui amet commodi debitis mollitia maiores vitae?

Exercitationem provident nam est, dolore nulla neque laudantium facilis iste eius labore incidunt, voluptates quaerat repellat rerum aut esse voluptate soluta possimus vitae assumenda, libero vero necessitatibus quae repudiandae quia cumque.

", - "sections": [ - 5 - ], - "sites": [ - 1 - ], - "authors": [ - 3, - 13 - ] - } - }, - { - "pk": 6, - "model": "articles.article", - "fields": { - "body": "

Praesentium magni consequuntur repellat explicabo molestiae ducimus recusandae sed laudantium dolore excepturi, illum quaerat blanditiis molestiae officia laudantium. Voluptates distinctio autem facere deleniti quod. Ratione blanditiis commodi vero, dolor natus minus, voluptatem dignissimos earum hic aspernatur ullam quisquam consequatur natus optio, fuga suscipit error, error harum dolorum numquam doloribus accusantium ullam totam inventore minima nam?

Quis minus obcaecati vitae odio eveniet sint consequatur beatae quasi, atque amet doloribus nobis eaque.

Corrupti harum autem aperiam ea asperiores atque porro suscipit, alias voluptates atque molestias ad deserunt saepe non dolores odio suscipit, voluptatum harum totam et maiores mollitia qui, nobis molestias aliquid nostrum?

Suscipit consequuntur consectetur voluptatibus amet, porro ab dolores quam laboriosam distinctio architecto inventore fugit placeat tempore, voluptates non dicta unde facilis consequuntur iste modi cumque perferendis, similique rem mollitia, aliquid impedit nam ipsa possimus officia eveniet consequuntur? Cum excepturi ex necessitatibus expedita, laboriosam ullam beatae repellat, explicabo facilis officiis adipisci cupiditate quibusdam pariatur distinctio vel accusantium corrupti, placeat obcaecati natus assumenda? Sed laborum repellat, nesciunt atque voluptatibus distinctio suscipit eveniet earum nostrum, iure veritatis laborum cum veniam quibusdam porro ea ipsa animi rem. Commodi tempora vel dignissimos perferendis deleniti voluptatem ipsum excepturi in voluptate repellat, soluta aliquam ipsa temporibus, aut nobis dolorem?

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 4, - 7, - 10 - ] - } - }, - { - "pk": 7, - "model": "articles.article", - "fields": { - "body": "

Porro nemo iusto debitis eos repellendus cupiditate blanditiis, possimus impedit quisquam ut accusantium neque porro officiis velit, veniam eos excepturi delectus hic dolore soluta dolorum, nihil maxime corporis nulla, obcaecati reprehenderit distinctio corporis rem ipsa.

Aperiam culpa quos perspiciatis at porro rerum quidem ea quibusdam quis, consequatur et maxime necessitatibus nihil aperiam dignissimos fugit accusamus nam unde quas, dolorem debitis excepturi tenetur vero esse odio illum dicta, ipsa culpa magnam nobis quam reprehenderit quasi quae explicabo provident? Optio sequi aperiam suscipit, nam vitae eaque officia architecto quos fugit labore eius ipsam, voluptatem architecto nobis provident praesentium nam alias laboriosam minima natus odit maiores, veritatis est inventore dicta odio obcaecati nisi veniam aliquid excepturi laudantium, nam provident corporis quod libero illo aperiam? Alias officiis possimus delectus cum error neque modi optio, vel assumenda quos minus facere porro maxime quo fugiat a deleniti quibusdam, ipsam harum maxime debitis perspiciatis eligendi animi laborum obcaecati adipisci ab velit, voluptates esse blanditiis laboriosam beatae pariatur illum eum possimus voluptas. Iusto suscipit debitis neque mollitia sapiente exercitationem tempore nemo sit aut placeat, earum excepturi eius voluptatem adipisci explicabo officia perspiciatis nobis, fugiat delectus iusto ipsa commodi numquam ducimus?

Vel odit ea commodi temporibus eum saepe autem dolor.

Nihil tempora odit sequi blanditiis.

Quisquam earum animi commodi iusto illum eveniet molestiae expedita veniam distinctio dolores, quo rem ipsum velit et quod modi eligendi voluptates itaque, pariatur minima amet quae?

Facere cumque illum laboriosam, atque esse temporibus illo, explicabo sit fugit in corporis molestiae asperiores inventore distinctio? Tempore saepe rem maxime id inventore, illum et libero quo adipisci, beatae explicabo eius ab asperiores, nostrum ut quia magnam laborum harum exercitationem rerum nam quibusdam deleniti, cum nesciunt neque vel alias id. Est error soluta doloremque hic magnam possimus ipsam laboriosam, magnam nihil incidunt rem dolor earum quos, dolores sed eius. Velit repellat dicta architecto autem error fugit ipsa officia natus debitis dolor, similique magni consequuntur aperiam quo rerum deleniti ex, corrupti animi maxime illo sint pariatur soluta est nisi impedit, quia voluptate labore ad animi nobis aliquam incidunt mollitia quidem placeat vel, velit quos cupiditate rerum consequatur laudantium porro ipsum et commodi dolore.

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 2 - ] - } - }, - { - "pk": 8, - "model": "articles.article", - "fields": { - "body": "

Excepturi aperiam quod. Impedit perferendis quam corporis placeat neque officia, ipsam ipsa corrupti excepturi neque cupiditate, delectus sed error.

Unde a harum rem minima odit error ea excepturi quam quis amet, dolor quaerat debitis eligendi cumque quo fugit accusamus iure. Culpa animi inventore velit repudiandae eius harum, ipsam nulla dolorem maxime consequatur culpa ab, est aperiam quaerat sapiente? Vero tenetur deleniti repellendus reprehenderit alias, nesciunt autem repellendus, nisi doloremque soluta fugit iusto nostrum praesentium voluptatem odio.

Animi amet eligendi sit atque ipsa nostrum eaque tempora, at voluptas neque eveniet tenetur voluptatem eius inventore, illum blanditiis ad eos? Porro nisi iste cumque earum vero nihil officia, et nobis quod dolores nemo a eius delectus quis cumque quisquam, excepturi sequi tempore ab veniam? Ullam in veritatis id accusamus adipisci laudantium eius, aliquid cumque voluptas earum esse. Ut beatae odio officiis adipisci quibusdam ratione laboriosam aliquam voluptas perspiciatis fugiat, vero minima iusto quisquam consectetur consequatur magnam nulla, porro repudiandae nemo voluptatum necessitatibus, maxime libero quae aperiam?

Ut nulla ipsam minus itaque mollitia?

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 5 - ] - } - }, - { - "pk": 9, - "model": "articles.article", - "fields": { - "body": "

Accusamus laboriosam omnis at voluptatem sit nostrum ducimus asperiores consequatur quae, earum ullam consectetur? Incidunt saepe earum quo consequuntur possimus magnam, rerum adipisci obcaecati neque incidunt velit autem molestias quod, a fuga ex aperiam molestiae maiores harum nemo exercitationem sapiente cum cumque. Error facilis corrupti natus debitis excepturi perspiciatis, aperiam exercitationem veniam dignissimos debitis voluptatum, enim itaque delectus corporis non.

Debitis temporibus totam ea, aperiam sequi eos molestiae rerum quas minus deserunt tempora itaque, maiores quos placeat odit cumque ipsam nobis fugiat tempora sequi.

Culpa enim tempora nisi repellendus quo soluta accusamus expedita unde, sit facilis sapiente neque provident ullam quod quia fugiat, animi quibusdam possimus, quia quis distinctio aspernatur hic culpa. Eveniet eius fugiat itaque illo molestiae, reprehenderit accusamus iure et odit officiis, dolor distinctio iure cupiditate soluta ea molestiae, placeat hic molestias eum quidem? Nobis cum provident rem sapiente enim delectus, fugiat esse suscipit mollitia ut sint hic, incidunt impedit laboriosam minus temporibus, nostrum dignissimos dolorum?

Quisquam ullam eos voluptatem repellendus magnam perspiciatis sint eveniet pariatur, repellendus reiciendis officia adipisci aliquid architecto praesentium numquam maxime illum enim provident, perferendis obcaecati inventore distinctio cum voluptatibus necessitatibus quos vitae esse? Hic inventore eveniet rerum vel.

Ipsam illo sunt provident dolorum veritatis exercitationem blanditiis nesciunt distinctio iure hic, iste neque perferendis ullam sequi dolorum, natus fugiat excepturi eos, iure commodi blanditiis, rerum consectetur minima doloribus voluptatum id ipsa? Minus tenetur asperiores mollitia praesentium laudantium?

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 5, - 12 - ] - } - }, - { - "pk": 10, - "model": "articles.article", - "fields": { - "body": "

Ut obcaecati aliquam natus itaque fuga modi blanditiis distinctio illum optio, illum quos fuga eos animi, in est ducimus, voluptates eaque nihil porro quae sit? Quos qui eveniet delectus debitis, nihil molestiae voluptatem explicabo eos nam laborum, deserunt eius dolor vero nostrum, quae atque molestiae. Enim quae rerum. Sapiente tempora dolores beatae eaque minus.

Neque eaque ullam libero id ratione maiores iste aliquam suscipit eligendi ex? Officia ad repellat temporibus obcaecati ullam esse beatae rerum tempore tempora rem, ad enim laudantium quasi animi quas autem perspiciatis odit sit, magnam perferendis nesciunt ea numquam ipsum, ipsa aperiam placeat unde quis fugit animi aspernatur, vero iste enim maiores aliquid praesentium soluta facere explicabo quas quisquam eum. Porro nisi est mollitia quos iste illo magni quod quidem quis itaque, doloribus nam impedit quae repellendus atque? Facere illum sunt praesentium quibusdam officia autem recusandae ea, ipsa dicta doloribus, nobis eos modi molestias cum delectus quia, cum mollitia ex facilis deserunt?

Accusantium odio ullam pariatur repudiandae, mollitia quis reiciendis ut impedit optio quo a, reprehenderit amet commodi repellendus in odit?

Facilis nostrum nulla, impedit et vel id nihil nulla rem numquam, aliquam nulla sapiente atque ducimus ab, fugiat alias magnam aperiam mollitia praesentium sapiente sed, quasi harum quia rerum. Quaerat perferendis exercitationem molestiae suscipit consectetur. Odio repudiandae libero facere animi ex doloribus, itaque accusantium impedit rerum perferendis unde incidunt ad, aperiam saepe neque? Deleniti commodi repellendus recusandae quod magni deserunt exercitationem ullam labore unde harum, ratione ab ipsam nam.

Ex eveniet explicabo architecto libero, esse laborum recusandae molestiae sed ipsam veniam sint nihil omnis tempore, ullam porro exercitationem nihil facere error totam enim, facilis adipisci suscipit, perspiciatis consequuntur quasi nostrum? Incidunt architecto atque hic, quaerat hic distinctio fugit tempora deserunt nulla harum perferendis odio quod aut, accusantium doloremque deserunt laudantium neque molestias, commodi accusamus est repellat dolorum asperiores nostrum veritatis impedit modi. Distinctio suscipit voluptates, quos porro at nostrum praesentium, voluptas odio fugit quod quidem ducimus id alias fuga animi, perspiciatis eos libero. Repellat natus officiis quia similique dolorem totam ipsam nulla quo maiores nihil?

Vitae assumenda impedit natus a exercitationem reiciendis quibusdam, maxime quia quisquam rerum aspernatur non, amet delectus quis sequi, aperiam esse expedita iste necessitatibus ipsum molestiae blanditiis aut eum autem porro, voluptatem veniam ab ex fugiat at eveniet. Laborum atque vel iusto eligendi expedita ab consequuntur adipisci incidunt, voluptatibus deserunt magni esse neque ea in, officiis velit nemo id voluptatem obcaecati quas, delectus porro veritatis asperiores debitis, natus ratione voluptates. Ipsam error maxime quibusdam vero quo aliquam similique natus laborum tempora, exercitationem iste dolorem officia architecto sint at earum cupiditate?

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 6, - 9 - ] - } - }, - { - "pk": 11, - "model": "articles.article", - "fields": { - "body": "

Odit modi nesciunt veniam voluptas officia laborum. Est obcaecati soluta nemo earum repellendus, officiis deserunt dicta dolore facilis sapiente omnis ad neque enim, dicta aperiam mollitia ipsam tempora voluptas doloremque repudiandae ratione, officiis dolorem quod ullam aspernatur beatae doloribus amet laudantium aut voluptatibus, unde fugiat suscipit ab? Assumenda odit laborum impedit nesciunt quasi omnis voluptatem quae optio eum ipsum, modi quaerat reprehenderit eligendi cumque illo quibusdam sed minus neque nulla explicabo, amet quasi maiores?

Magni ipsum sit eius officiis natus cumque. Eius facilis non odio unde assumenda saepe autem placeat nam cumque doloribus, laborum nostrum deleniti id vel nam voluptas nobis doloremque perferendis vero a, sit culpa dolorum sed rerum quasi vero minus ex voluptas qui placeat, consequatur minima praesentium maiores a deserunt temporibus autem, illum neque aspernatur quos debitis.

Ratione rem porro itaque eos saepe dignissimos accusamus, obcaecati excepturi magni possimus iste eos nostrum corrupti cumque pariatur corporis exercitationem? Quaerat voluptates earum obcaecati repellat, doloribus nostrum voluptas et consequatur dignissimos, ea sequi eveniet nemo ipsum ratione quasi nisi quis architecto doloribus.

Enim nesciunt nemo libero ratione quos iure. Assumenda enim ex repudiandae deleniti corrupti facere, voluptate voluptas repudiandae distinctio? Obcaecati cumque rem incidunt culpa voluptates eveniet ea, ab laboriosam odio doloribus deserunt laudantium aliquam delectus, aut amet sunt dolore. Fugit veritatis optio vero, aperiam beatae error hic quibusdam temporibus mollitia?

Reprehenderit voluptatem omnis, dignissimos ad veniam corporis iste eum neque inventore atque illum fugit, cupiditate nostrum velit necessitatibus voluptatem quae possimus saepe atque minima? Delectus at optio nam suscipit rerum blanditiis praesentium, magnam maxime nisi eaque veniam exercitationem est architecto eos, veritatis sed amet nostrum ducimus, quisquam libero expedita placeat maxime?

Ducimus consectetur modi, voluptas a excepturi facere nam voluptatem quia itaque ipsum dolores delectus, quae quod voluptate. Consectetur recusandae at iste tempore dignissimos, deserunt fuga nemo sapiente reprehenderit et adipisci non laboriosam reiciendis asperiores, soluta eos fuga sequi minima voluptatibus et quis, beatae facilis iste veritatis eum, consequuntur minus saepe molestiae? Reiciendis nostrum facere fugiat modi repudiandae libero inventore ea, exercitationem adipisci at repudiandae voluptatum pariatur blanditiis iure ipsam, tempore quae ducimus maxime odit earum velit, eaque tempora nulla cupiditate odit iure sint?

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 3, - 5, - 14 - ] - } - }, - { - "pk": 12, - "model": "articles.article", - "fields": { - "body": "

Itaque similique molestias, quasi sunt numquam, maxime perferendis veniam ullam cumque ratione nam harum sequi, quos rem repudiandae neque deserunt cupiditate provident. Voluptates repellat voluptate, nam odio ad exercitationem qui sequi aliquam, illo ad ratione molestias accusamus rerum, veritatis dolorem aut distinctio similique iste, voluptatum architecto amet in asperiores eveniet corporis debitis rerum quos deleniti consequatur. Vitae eveniet eos molestias ab totam assumenda, nobis ut facere quos deserunt blanditiis fugit ad libero ipsa temporibus omnis, delectus obcaecati ea placeat ut dicta voluptatem optio pariatur.

Earum harum tempore culpa architecto dolorem sint?

Molestias alias illum facilis quis aliquid veniam maiores quisquam nobis labore. Quos facilis alias quo, hic maiores neque minus fugit quisquam sequi iure praesentium, accusamus debitis sequi vero distinctio quaerat, perspiciatis expedita amet sapiente eaque fuga dignissimos rem mollitia inventore consequatur, eaque id possimus illo doloribus facere?

Nihil dolor tenetur nemo.

Animi illum ullam natus necessitatibus ex recusandae veniam. Illo earum doloribus ad a est dolores rerum aliquam, magnam labore est voluptatem hic illo placeat eaque velit. Impedit omnis veritatis ullam rem eum laudantium vitae culpa. Ad ex fugit nulla dolorem?

In veniam sequi modi quidem eius debitis officiis quasi, tenetur tempore dolore optio omnis porro deleniti provident eveniet maxime minima veritatis, consectetur voluptate unde explicabo dolorem, voluptatum illo quos explicabo distinctio ducimus ipsum? Quia similique accusantium consectetur aliquid illum, veniam autem esse dolorem recusandae quis dolore dolorum labore voluptas distinctio, quia veniam quod modi? In voluptas aut repellendus maxime, doloribus omnis obcaecati consequuntur autem nihil itaque quas voluptas rerum iure eligendi, officia quo consequatur accusantium quis facilis aperiam nemo ut vel? Ab accusantium maiores non quibusdam iusto dolorem, repellat dolorum voluptas incidunt facilis aperiam sunt doloremque animi, temporibus doloribus neque dolorum pariatur nesciunt beatae reprehenderit suscipit.

Harum velit ab unde nulla beatae necessitatibus repudiandae esse, nihil iure mollitia laboriosam ut quam assumenda expedita sint optio nulla dicta, soluta accusamus modi adipisci, optio recusandae reprehenderit id provident cum velit enim, nobis laboriosam aperiam animi? Iure accusantium vel corrupti architecto, recusandae iure rem similique voluptas dolorem expedita officia veniam quia obcaecati, aliquid sequi culpa error quia aperiam fuga omnis, ab rerum nostrum in quod? Quasi accusamus vero tenetur qui expedita in adipisci pariatur ex, saepe sed voluptatem dolor illum id voluptate molestiae voluptates, in quis temporibus, quam atque delectus eius minima officiis rem harum expedita, aspernatur quaerat perferendis laboriosam libero aliquid? Et possimus cum eum ex, dolore vero nihil, tempore ut ullam iure nihil.

", - "sections": [ - 5 - ], - "sites": [ - 1 - ], - "authors": [ - 2 - ] - } - }, - { - "pk": 13, - "model": "articles.article", - "fields": { - "body": "

Porro qui inventore cumque iste quidem, sed asperiores quasi qui dolorum voluptates numquam rerum temporibus illo in animi, quaerat cupiditate accusantium voluptate quas beatae molestias delectus ratione tenetur aut enim, beatae possimus consequuntur iusto minus labore cumque sit delectus at, a vero aut. Sit quas voluptates consectetur dolor minima repellat, repellat minima molestiae minus ipsam iste velit possimus quae consequuntur aliquam, perspiciatis doloribus omnis nulla tenetur consequatur tempora sint.

Nobis architecto officia quam itaque dolores delectus numquam corporis natus.

Quasi omnis accusamus recusandae maxime nisi obcaecati aspernatur repudiandae dicta. Aut fuga nihil, voluptatum exercitationem aperiam, reprehenderit laborum odit odio voluptatibus possimus vitae a commodi consequatur ex, necessitatibus officia recusandae labore voluptate fuga possimus, doloribus dolore ducimus saepe similique libero laborum? Voluptatem provident nostrum nulla explicabo iusto possimus laboriosam accusamus, soluta numquam distinctio fugit, fugit eum quaerat quos molestiae quo. Similique qui aspernatur asperiores numquam obcaecati officia officiis minus modi magni praesentium, harum et quasi ullam fugit cum, fuga repudiandae aliquam modi doloribus itaque totam, alias vero error minus sit enim ullam nemo officiis.

Sint doloribus consectetur exercitationem dicta architecto quis, minus non corporis temporibus, distinctio pariatur praesentium soluta vel repellat nesciunt quae eligendi recusandae, sequi minima asperiores iure sed nobis expedita magni? Delectus alias reiciendis doloribus at cumque id fugiat nihil. Atque consequuntur nostrum eum quo perferendis aperiam, eum quas ipsam temporibus laudantium fugit magni facilis?

Impedit voluptates cupiditate rem soluta debitis at aliquam dolores, laboriosam dignissimos molestiae rerum, pariatur accusantium reprehenderit molestiae doloremque suscipit provident maiores incidunt? Repellat magni aspernatur accusamus deleniti sed distinctio dolor ullam sint consequatur possimus, explicabo animi adipisci voluptate iure quam quaerat culpa, natus maiores explicabo quas fugit corporis? Fugit libero atque eligendi magnam tempora quibusdam, commodi corrupti alias adipisci ipsam praesentium quis ex cumque, alias qui accusamus eligendi illum dolorum atque fuga odit omnis nam, quibusdam non nihil ex incidunt? Vero a blanditiis ullam quidem eius illo cupiditate nobis repellendus, cum odio ipsam?

", - "sections": [ - 5 - ], - "sites": [ - 1 - ], - "authors": [ - 4, - 7, - 13 - ] - } - }, - { - "pk": 14, - "model": "articles.article", - "fields": { - "body": "

Eum ullam placeat architecto ratione explicabo obcaecati praesentium quaerat doloribus? Voluptates nostrum voluptatibus nesciunt deleniti id mollitia in qui amet nemo molestiae, saepe nam architecto at possimus magnam ducimus, quo suscipit debitis sequi perspiciatis non soluta quas. Facere sunt voluptates porro enim provident repellendus totam nemo amet.

Veritatis corrupti nam eum temporibus quod sit voluptatum laborum sequi sapiente? Eius aspernatur ipsam, quia eum suscipit pariatur a praesentium commodi qui reprehenderit, atque est perspiciatis ex itaque non cumque culpa nostrum maiores exercitationem, culpa nihil vitae dolorem mollitia dolore quos autem ab minus esse animi. Obcaecati reiciendis odio dignissimos itaque similique, iusto reprehenderit cum delectus? Unde voluptatibus debitis nostrum fugiat eius et illo consectetur ut quae, totam atque placeat velit provident veritatis distinctio dicta adipisci, dolor quam ipsa soluta quis expedita placeat ea, consectetur dolore fugiat dolorem consequatur quaerat dolores voluptatum incidunt consequuntur, placeat iure tempora?

Voluptates exercitationem vitae aliquam magnam ratione amet officia reiciendis deserunt nam, incidunt optio est molestiae excepturi neque beatae nobis, omnis itaque animi cumque harum deleniti adipisci a nemo quibusdam rem, tenetur ipsam reiciendis atque quas explicabo iste consequuntur.

Nisi vero dolore cupiditate deleniti quibusdam similique quisquam aliquam? Repellendus laudantium officia quod doloremque ex harum recusandae doloribus, unde sequi magnam, repellendus beatae accusamus libero velit, saepe hic perferendis quos ullam vero dolore architecto molestias earum minus, quibusdam sit suscipit fugiat voluptate in magni impedit placeat cupiditate voluptas cumque? Sequi itaque porro esse dignissimos voluptas aliquid fuga cum sunt, eos laudantium quisquam, fuga pariatur blanditiis? Repudiandae illo quisquam tempora molestiae culpa necessitatibus doloribus veniam nisi asperiores, dolore laudantium suscipit laborum debitis eos praesentium dolores vero soluta, dolores incidunt doloremque, vero fugit inventore fuga minus aspernatur odio commodi earum, quia sit maiores commodi at illo asperiores quae ipsa.

Debitis veritatis blanditiis odit vero explicabo unde tempore ipsa? Voluptas officia commodi ipsam placeat labore praesentium consequatur debitis autem animi tenetur, mollitia ullam nobis impedit, dolorem blanditiis porro incidunt dolore culpa quos iure ipsa voluptatum vero eos?

Aperiam aut sapiente sit atque officiis voluptates voluptatem, voluptates reiciendis nostrum eveniet, repudiandae itaque quisquam molestias quidem soluta, quo labore obcaecati perferendis sint nemo ab distinctio numquam natus? Repudiandae maiores laborum, ab aspernatur repudiandae, saepe officiis molestias quod consectetur assumenda aut? Praesentium tenetur atque quis excepturi animi, neque exercitationem consequatur odio tenetur eius in illo rem veritatis, placeat alias praesentium quae eveniet repellendus optio ipsam accusamus a voluptatem, exercitationem ab rem optio fugiat tempora blanditiis?

Cupiditate quo itaque ipsum perspiciatis quidem pariatur alias, unde enim similique perspiciatis laudantium nisi consequatur voluptatum iusto aut ducimus, possimus perferendis doloribus necessitatibus voluptates impedit soluta? Quisquam harum officiis perferendis molestiae iusto maiores odit? Nam laborum eligendi recusandae fugit libero repellendus obcaecati.

Temporibus suscipit corrupti illum distinctio?

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 4, - 6, - 7 - ] - } - }, - { - "pk": 15, - "model": "articles.article", - "fields": { - "body": "

Placeat modi dicta recusandae eligendi molestiae pariatur eos odit nam ad? Aspernatur quaerat non doloribus, soluta consectetur incidunt, corporis magni tempora aspernatur nulla, officiis eos quidem?

Alias saepe reiciendis ut, suscipit esse soluta quod voluptates sunt corporis et fugit praesentium placeat, repellat hic optio molestiae quas incidunt, dolore quidem magnam maiores voluptatem a voluptates ut minus, reprehenderit facilis vero? Deleniti magnam quia ipsum voluptates quaerat, reiciendis consectetur amet corrupti quis commodi cupiditate earum. Illo iusto nesciunt, quibusdam laborum ipsam tempore soluta esse rem minima aut error, reiciendis laborum aut placeat dolore harum cupiditate magni qui et eveniet repellat, deserunt quod blanditiis iusto obcaecati? Amet aliquam tempore accusantium in mollitia totam corporis maxime suscipit, eligendi mollitia repellendus.

Iure earum sequi cumque incidunt sunt nesciunt asperiores nisi? Sint dolore at et id illo maxime. Ipsa vero velit tenetur quos, soluta tempora neque fuga dolores recusandae officia cumque quis atque laborum? Possimus laudantium vel veritatis laborum mollitia tempore architecto nihil, nulla eius error tenetur vero accusantium nobis unde numquam rerum dolorum quisquam, rem at molestias omnis repudiandae.

Quasi nisi quisquam suscipit, fugit consequatur impedit alias autem. Saepe tempora similique est animi, dolore nemo maiores labore officia maxime aliquid excepturi, facere sint modi quo est, facere accusantium mollitia quis dolores recusandae velit rem fuga veritatis cumque possimus, esse cum dolore cumque et quia unde nostrum libero alias consequatur? Eligendi optio culpa quia maxime nobis sed odio voluptatem veniam earum commodi, vero temporibus odit error exercitationem, autem consectetur optio illo provident ullam ipsa voluptatum et hic quasi aliquam. Sunt fuga minus facilis vero quasi illum eum dolore mollitia quod?

Odio fuga possimus itaque nobis ratione eaque magnam ipsam asperiores distinctio sit.

Dolores ipsam a assumenda nemo natus tempora sit accusamus, provident ad eum at doloribus quia sint ducimus rerum deserunt, distinctio eius ex adipisci harum quos deleniti unde reiciendis alias qui ut, quis repudiandae tempora animi eos cumque quasi debitis odio, cum magnam corrupti exercitationem quam esse eveniet suscipit assumenda sint totam ratione. Reiciendis pariatur tempora est necessitatibus ex nesciunt suscipit id, enim architecto natus, consectetur vitae commodi unde magni fuga explicabo? Eius ad corporis voluptatibus nihil unde natus eum repellat deserunt officia, modi corrupti ad odio iure eligendi optio. Veniam amet voluptatem possimus recusandae dolores reiciendis ea ducimus, ipsam veniam ipsum aperiam perferendis quisquam enim corrupti fugiat, quos exercitationem itaque ratione suscipit architecto maxime sint eos tenetur quis, ad saepe laboriosam non eos soluta id.

Dolores ratione debitis possimus quia, similique magni veritatis iusto, voluptatem aut asperiores iure earum placeat corrupti laboriosam magnam, in nesciunt eius alias explicabo reprehenderit architecto molestiae ut aperiam, quae tenetur harum temporibus iste odio? Culpa exercitationem et aspernatur, suscipit ipsam reprehenderit, placeat omnis nostrum repellendus enim rem impedit beatae illo, ratione soluta fugiat at in voluptatem. Praesentium corrupti officiis tempora aspernatur mollitia rerum dolore consectetur itaque? Vero exercitationem maiores, ad quo aperiam, architecto suscipit ullam impedit, reprehenderit dolores reiciendis vel, ipsam possimus facere ullam aspernatur dolores cupiditate neque laboriosam animi maiores.

Perspiciatis expedita tempore, exercitationem similique repellat ipsam, doloremque ratione nulla magni inventore explicabo? Provident adipisci sit, facere ab autem, provident fugit unde architecto aperiam quae ex? Delectus harum vero earum, numquam sed et praesentium error, error temporibus quidem accusantium deserunt quam, aliquid quasi quam voluptatum excepturi vel labore voluptate rem ipsum id consectetur. Doloribus quibusdam nam voluptatibus numquam eaque?

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 4 - ] - } - }, - { - "pk": 16, - "model": "articles.article", - "fields": { - "body": "

Dicta explicabo similique provident excepturi ab veniam eaque libero? Modi et voluptate laboriosam alias dolore nobis cupiditate nam inventore, doloremque in quisquam inventore quibusdam quasi, amet odit reiciendis, excepturi nesciunt deserunt commodi ex laborum quia rem fugiat alias qui quisquam, officia vel et aspernatur. Unde ratione cum vitae culpa natus, praesentium accusamus voluptate suscipit molestias modi quasi iusto minus velit, sint atque sed inventore omnis ducimus corporis labore eum saepe?

Vitae in quas mollitia impedit ex maxime, vitae sit eveniet eum, ipsam modi hic similique ea quas dolor quod vitae esse molestiae, suscipit illum quaerat est facilis earum quisquam itaque nulla doloremque dolorum, beatae optio totam exercitationem ipsam maiores animi architecto a quibusdam enim tempora.

Commodi neque est doloribus praesentium laboriosam vero libero accusamus vitae ea? Tempore quas delectus doloremque? Consequuntur inventore recusandae quaerat ipsum voluptatibus accusamus saepe doloribus. Repellendus soluta adipisci vero amet, facilis enim totam assumenda porro inventore.

Quas deleniti laudantium ipsa cumque numquam non debitis eos blanditiis, beatae placeat suscipit quis, amet ab asperiores voluptatum.

Earum placeat nulla nobis fugiat provident deleniti est. Atque asperiores nobis rem molestiae quibusdam laudantium incidunt.

Nulla quaerat odit optio inventore assumenda. Perferendis quae sed modi expedita vitae deleniti a culpa, commodi dolores autem neque, eaque beatae consectetur quasi repellendus. Pariatur quia cumque ipsum distinctio laudantium soluta, cum excepturi laboriosam voluptate quod, commodi debitis beatae est corrupti ipsam accusantium eius minus recusandae eos, inventore harum nisi facere ducimus corrupti sit esse voluptatem, ab possimus natus quibusdam repellat libero ullam asperiores accusamus.

Aspernatur culpa molestiae velit totam sunt minus sequi mollitia reprehenderit, veritatis accusantium esse neque praesentium soluta voluptatem eos facere? Ex pariatur alias commodi minus ratione rem beatae officiis perferendis accusamus, nobis eligendi placeat ducimus nisi incidunt harum cum mollitia, voluptate vitae tempora sit quis labore magnam quod officia officiis distinctio saepe?

", - "sections": [ - 5 - ], - "sites": [ - 1 - ], - "authors": [ - 5, - 10, - 13 - ] - } - }, - { - "pk": 17, - "model": "articles.article", - "fields": { - "body": "

Eum cupiditate esse expedita totam repellat accusantium magnam est, voluptate vero soluta, doloremque rerum nulla reiciendis similique ipsum ipsa eius. Quas nam praesentium at. Maxime harum qui, totam corrupti harum culpa cum nulla? Suscipit molestiae itaque, cumque nesciunt soluta laudantium reprehenderit eum molestiae iste tenetur laboriosam omnis?

Ratione eveniet nihil? Soluta autem voluptatibus similique, id veniam dolorem, perspiciatis a eius debitis sequi qui accusantium illo eligendi sit.

Aspernatur alias fugiat maiores, quisquam quo rerum accusamus reprehenderit eaque ipsam ipsa cupiditate nemo at, porro totam quas praesentium eius eligendi aut? Nulla eaque vel ipsum explicabo assumenda officiis illum pariatur velit, unde totam ad commodi illo amet assumenda voluptatibus porro distinctio sequi. Libero corrupti eius accusantium obcaecati iste voluptatem, reiciendis reprehenderit nemo, voluptate necessitatibus et ea expedita eius molestias molestiae ipsa sed optio? Corporis aliquid voluptatum soluta reiciendis ex.

Fugiat esse consequuntur dicta eos cupiditate veritatis praesentium, iusto accusamus nemo a praesentium architecto ipsa quas. Quasi error excepturi voluptas nulla quaerat repellat vel corporis dicta hic.

Officiis vel quo ipsum ab nam error voluptatem adipisci quod, mollitia porro iure vel distinctio rerum, quibusdam facilis ab deserunt eligendi, adipisci provident consequatur sint excepturi, laboriosam debitis officiis laudantium reiciendis quisquam possimus recusandae facilis sit suscipit rerum. Placeat reprehenderit libero amet aliquid corporis neque ut maiores architecto laboriosam, fuga quia harum eum facilis, debitis incidunt ratione nulla cum officiis quasi, quos placeat vero officiis qui quod nam inventore ab magnam impedit?

Obcaecati suscipit error impedit eligendi dolores.

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 11 - ] - } - }, - { - "pk": 18, - "model": "articles.article", - "fields": { - "body": "

Id libero fugit consequuntur dolorum vitae est, totam dolorum commodi omnis aliquam illum porro necessitatibus cupiditate obcaecati? Dignissimos quis repudiandae modi dolorem fuga adipisci animi? Architecto rem dolor iure omnis eius, quia tenetur voluptate ducimus facere doloribus autem illum deserunt nemo, ea quaerat eligendi dolores tempore earum assumenda voluptatem dolorum? Corporis aut autem, nemo sapiente aliquam ut quas neque, nam veritatis amet fuga similique numquam magnam pariatur, amet quia assumenda officiis eaque sapiente fugit corrupti.

Sit hic doloribus ducimus facere saepe vitae, ipsum voluptates earum, velit dicta ducimus rerum amet a natus, ipsam facilis nemo dignissimos cupiditate et optio iure? Vel voluptatibus eos iste ipsam totam quasi, eius nam minima rerum labore, amet nesciunt aliquam voluptatibus doloribus voluptate laboriosam dolor accusantium ea consectetur. Rem placeat fugiat? Nam saepe quidem excepturi, laborum adipisci veritatis pariatur dolorem aliquid, eius assumenda veniam ipsum enim facilis tempore reiciendis hic repellat fugiat nemo, deserunt officia molestias delectus quaerat iste nobis accusantium, delectus odit minima natus?

Assumenda dolorem alias aut nemo repudiandae doloremque vel, dolor ad et soluta possimus. Repellendus necessitatibus alias modi incidunt, necessitatibus veritatis minima dicta.

Adipisci maxime optio ducimus mollitia temporibus facere, earum deleniti distinctio ipsum repudiandae harum laborum temporibus dignissimos magnam, qui blanditiis culpa fugit iusto quibusdam recusandae omnis, facilis quibusdam vero repellat cupiditate reprehenderit omnis dicta id, hic provident fuga? Cupiditate tempora libero assumenda dicta sequi veritatis, maxime non neque.

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 10 - ] - } - }, - { - "pk": 19, - "model": "articles.article", - "fields": { - "body": "

Asperiores soluta est atque autem alias dicta. Enim laboriosam a dicta exercitationem veniam velit quae similique, tempore amet quasi excepturi, quam architecto suscipit ex laudantium repellendus pariatur, ut beatae voluptatum, quam cumque laborum molestias sint. Blanditiis aspernatur neque nobis voluptatem necessitatibus dolorum repellat consequatur facere suscipit at? Libero laborum saepe veniam, incidunt commodi cupiditate quos, tempore illo quisquam exercitationem harum, magni quaerat numquam eos sapiente ipsum recusandae molestiae rerum consequatur fuga cumque.

Praesentium minima adipisci exercitationem accusantium, molestias voluptatibus corrupti harum ullam voluptatum debitis ea libero, atque praesentium reprehenderit quos sit beatae? Quo quos saepe perferendis deserunt ratione ea totam aut rerum, nemo numquam vitae at non atque quae, eveniet eos deleniti inventore itaque voluptatem magnam sapiente autem molestiae incidunt non? Accusantium repellat aliquam nulla illum quam a odio quaerat animi qui voluptates?

Non laudantium aut dolorum maiores consequuntur soluta ab totam temporibus, vero eos minima assumenda quisquam officiis molestias rem? Aut placeat expedita repellat eaque mollitia.

Vel sed quia doloribus eum quas tenetur dicta placeat reiciendis dolore, dolor voluptate vitae sed ea deserunt quia, accusantium dolore tempora harum repellendus dolor molestias, soluta quos nulla ullam velit natus architecto deserunt commodi ut aspernatur, perspiciatis cumque porro delectus aliquid unde iste? Deserunt cum odit quod, et eius eveniet ad, excepturi iusto quam repudiandae dolorem quaerat numquam expedita corporis eum quae quo, quod sapiente aliquam consectetur enim magni sed voluptate, corporis nisi assumenda? Omnis qui incidunt ad eligendi perspiciatis vitae voluptatibus, voluptatibus eius dolore a rem minima, adipisci ratione aperiam sunt suscipit ad placeat, non saepe cupiditate fuga aut illum at vel, maiores quam deleniti officiis optio blanditiis distinctio quas.

Fuga iure excepturi placeat repellendus nostrum quidem facilis autem qui, deleniti nesciunt sunt quod eius reprehenderit, amet doloremque molestias eum harum, amet earum atque voluptatum sunt neque ducimus totam harum est, fuga doloribus consequuntur in totam ea beatae.

Enim labore error, dolor maxime similique amet vitae, ullam consequuntur et nulla aperiam molestiae excepturi dolor, modi magnam minus explicabo doloribus placeat dolorem neque mollitia sunt, reprehenderit debitis amet omnis saepe fugit exercitationem beatae atque accusamus. Praesentium quam veniam nemo exercitationem harum ipsam explicabo quo esse, obcaecati dolorum voluptatem dolorem impedit id recusandae quas autem, ratione nulla molestias cumque, dolore dolores qui. Provident suscipit nemo mollitia, illo iure eveniet aliquid eos soluta earum autem voluptatum sapiente recusandae. Enim pariatur nulla quo amet a similique reiciendis illo, numquam maxime unde reiciendis facere inventore, quae repellat consequatur commodi quidem, repellendus beatae facilis quibusdam deserunt?

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 9, - 12 - ] - } - }, - { - "pk": 20, - "model": "articles.article", - "fields": { - "body": "

Delectus rem qui nemo neque sunt eum officia esse, enim nostrum beatae fugiat placeat necessitatibus. Sed eaque doloribus distinctio dolorum molestias a fuga pariatur, odio tempore numquam nemo odit, vero iusto temporibus possimus necessitatibus nostrum ex, minima ipsam voluptatum explicabo? Ad officia inventore temporibus cupiditate tempora qui modi quia, voluptatem impedit porro, doloribus dolorum inventore asperiores doloremque officiis praesentium. Necessitatibus expedita quae molestias voluptatum dolorum reprehenderit ab, sequi sint sed ullam neque magni eum saepe amet, placeat eligendi ipsam, eum vitae officiis at nesciunt eligendi natus ratione quibusdam labore?

Saepe distinctio quas aperiam sapiente laborum, explicabo officia ea vero recusandae magnam architecto mollitia corporis rem soluta cumque, sequi rerum eos esse magni harum ad tempora rem explicabo assumenda beatae, temporibus delectus dicta officiis impedit vitae quo ad, unde harum exercitationem accusantium recusandae fuga quidem consequatur natus laudantium placeat? Aperiam vero dicta adipisci dolore sint excepturi magni consectetur perferendis doloribus facilis, ducimus placeat possimus delectus, eligendi quos ut atque ducimus officiis et a consequuntur deserunt quam dolorem, corporis recusandae laborum?

Porro sit nulla. Voluptatum accusantium quisquam dolores soluta tempora est expedita numquam libero in deleniti.

Illum esse temporibus adipisci. At illo odio sunt rerum, provident recusandae cumque earum possimus corporis porro eligendi repellendus fugiat minus modi. Quasi et illum ipsa sapiente illo architecto, magni ipsam blanditiis et, officiis cupiditate praesentium ut a dolorem officia nisi non commodi quam laudantium, nobis ducimus consequuntur nesciunt optio tenetur saepe alias velit ipsa, laboriosam eligendi eos velit dicta provident consequatur rem at nobis eius aperiam.

Tenetur perferendis laboriosam veritatis similique odio, nesciunt saepe architecto veritatis deserunt reiciendis officiis blanditiis quibusdam placeat, totam ab dolorem omnis praesentium porro cum eligendi beatae sequi voluptate? Aut non nostrum nihil quo natus adipisci sunt atque, necessitatibus autem quo voluptate vel soluta ex velit sed repudiandae perspiciatis laboriosam, dolorem autem aliquam earum quisquam ipsa corrupti impedit? Aliquam quaerat odio eaque sapiente necessitatibus iure asperiores, deleniti iste labore voluptas dicta repudiandae a obcaecati consequuntur sequi laudantium porro, fuga sint nam corrupti ea delectus culpa. Ullam voluptatem ipsa explicabo officia placeat, recusandae tempora omnis facere vel maxime, eaque ex sed quia illum aspernatur ipsam voluptatem eos exercitationem.

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 3, - 5 - ] - } - }, - { - "pk": 21, - "model": "articles.article", - "fields": { - "body": "

Suscipit possimus omnis, voluptatum repellendus eaque tenetur aut officia deleniti.

Similique ut ipsum quasi cum fuga et laboriosam omnis, neque minima officiis nostrum modi accusamus eos, consectetur sit eos enim ex nesciunt eius eaque qui odit? Doloribus quia aut ipsum reiciendis omnis quo nihil officia non vitae, distinctio tenetur optio aspernatur assumenda consectetur. Est unde eveniet asperiores vitae cupiditate numquam in veniam quas, ipsum odio excepturi aliquam nihil consequuntur dolorum, blanditiis dicta repellendus aut officia consectetur architecto animi perferendis debitis ad quibusdam, blanditiis impedit odit temporibus illum beatae porro, ab quas cupiditate. Nam sequi aperiam, enim deleniti natus impedit voluptas perspiciatis eligendi, quas sit assumenda commodi ad hic unde, non suscipit voluptas facilis perferendis consectetur, praesentium odio quaerat eos accusantium voluptate vel.

Asperiores voluptas labore perspiciatis provident magni molestias, ad natus veritatis delectus, sapiente distinctio velit cum, quasi eligendi repellat illo eveniet. Provident ipsam vero suscipit harum error adipisci architecto ducimus, quas est dignissimos quo magnam suscipit beatae deleniti deserunt nisi dolorem, nam aliquid ea impedit numquam non veritatis voluptatem eligendi, praesentium blanditiis omnis adipisci nulla error quam. Deleniti placeat provident expedita odit ratione? Architecto aliquid quae nulla incidunt assumenda modi quibusdam saepe voluptatibus vero consectetur, voluptate consectetur officia, quaerat eligendi a consequuntur quod et.

Deleniti esse dicta minima fugit dolorem omnis expedita fuga, impedit beatae culpa, aut cum earum tenetur tempore at animi odio vel illo quia. Odit consectetur cum corrupti vero similique voluptatem eum numquam excepturi porro dicta, earum dicta fugiat? Repellat fugiat assumenda necessitatibus illo, saepe amet asperiores sint aliquam obcaecati nisi architecto incidunt similique, accusantium ad illum asperiores deleniti quis libero blanditiis dolorem ut cum, quos facilis aliquid sapiente possimus animi libero?

Impedit velit iste architecto repellat esse mollitia dolore beatae nulla, ad ipsa repudiandae reiciendis eum quam nihil ea vitae? Aperiam perspiciatis soluta aliquam necessitatibus hic tempore quod minus consequatur, eveniet laborum vero consectetur tempore quia a nihil, itaque repudiandae provident, cumque hic nesciunt quasi cum magni voluptatibus culpa id, non assumenda deleniti nostrum nam. Animi hic eveniet rem quibusdam inventore illum voluptas dolorem repellendus ut, minus delectus temporibus illum velit sapiente rem quo minima. Ducimus temporibus labore recusandae laboriosam quo voluptatibus dolores doloremque aperiam facilis, quibusdam nesciunt necessitatibus et natus ratione minima, beatae accusantium praesentium inventore itaque ipsam asperiores, sint pariatur delectus in ut dicta incidunt?

Quidem dolor iusto repellat porro, corporis tempora modi amet repellat soluta consequatur perspiciatis, necessitatibus porro laboriosam.

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 7, - 14 - ] - } - }, - { - "pk": 22, - "model": "articles.article", - "fields": { - "body": "

Quaerat accusantium minima quod aperiam ex repellat fugit.

Alias placeat atque soluta quo, aliquam dolores vel quo rem quaerat nam velit, amet quidem nulla quae deleniti corrupti minima quo tempore suscipit modi, nisi laudantium consequuntur, esse asperiores fugiat atque quisquam? Architecto quae cumque corporis, aliquid eum labore dicta architecto et facere eius rerum ratione alias, facere aut veniam veritatis ipsa aliquam vero architecto, ratione eos dolorum id mollitia sit placeat dignissimos molestiae praesentium expedita?

Magnam quis ratione tempore possimus et repellendus nisi expedita explicabo, reiciendis aut magni modi esse facilis, obcaecati sint error magni deserunt eveniet voluptatem ad, sapiente natus quo rem. Cum odit minus repellat placeat voluptatum commodi cupiditate inventore, libero nisi unde amet earum doloremque possimus voluptates voluptatem praesentium voluptatibus?

Incidunt inventore excepturi unde magni odio?

Mollitia ipsum vero sequi quaerat maxime. Quaerat eum voluptas labore qui similique, dolorum tempora illum sed accusantium odio id ex quae, et iusto dolorum quasi repellat laborum? Laborum architecto praesentium accusantium libero ab reprehenderit expedita aspernatur in, eos nesciunt veniam? Deserunt omnis dicta praesentium error odio consequatur nostrum quas accusamus ullam eaque, at laudantium delectus.

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 4, - 6, - 10 - ] - } - }, - { - "pk": 23, - "model": "articles.article", - "fields": { - "body": "

Corporis officiis distinctio sint perferendis eveniet dignissimos nisi temporibus ducimus, explicabo eum nisi consequuntur quia possimus excepturi architecto dolorum, harum nihil qui error in.

Nobis nulla eveniet ullam nemo ab natus laboriosam soluta ipsa, perferendis iure perspiciatis sequi commodi totam itaque esse, porro illo suscipit minus commodi recusandae exercitationem quis atque magnam autem et, beatae soluta nisi. Sapiente minus commodi perspiciatis quisquam provident enim autem suscipit iste voluptatibus, corporis quod praesentium repudiandae delectus est nulla illum culpa, amet adipisci accusamus molestias corrupti iure blanditiis doloremque distinctio necessitatibus repellat quas, officia architecto porro a? Natus repudiandae suscipit vel debitis quas dolores fugit deserunt atque molestiae cum, accusamus perspiciatis rem, illo fuga debitis labore soluta expedita maxime incidunt, id consectetur quia laborum libero fugit provident iusto eum minus eius.

Laudantium exercitationem harum cum ab ipsa et quidem adipisci, quae accusamus quod, ad natus repellendus, iusto perspiciatis quidem rem aliquam cum tempore quis quam eum sunt rerum, itaque qui rem sapiente vel tempora necessitatibus dolor ullam corporis ab? Illum blanditiis in quas, velit eius nisi quos ut distinctio sit doloribus at magnam, ratione unde perspiciatis voluptatibus, amet earum dolor asperiores fuga?

Odio dolorum voluptate eaque voluptatum nulla quia, labore expedita unde autem inventore beatae quaerat sunt amet, asperiores illum architecto, quibusdam voluptatibus eligendi placeat expedita nisi magnam commodi enim id architecto, eius repudiandae velit facilis molestias consequuntur officia minima reprehenderit. Ex assumenda quis, quaerat quos vero veniam velit dolor perspiciatis asperiores voluptatum atque quisquam illo. Alias esse quos est amet natus inventore deserunt dolor et eos adipisci, commodi laborum pariatur labore eveniet nisi in veniam dicta, est amet quos iure doloremque minus asperiores numquam, culpa ea rerum tenetur dicta fugiat temporibus minima veniam, consequatur commodi aspernatur. Tempora non perferendis voluptatem deleniti, recusandae nobis quos nostrum debitis quibusdam error animi odio quam hic nisi, quo magnam facere quos fuga ducimus corrupti quam incidunt, nulla assumenda accusantium natus perspiciatis itaque dolores adipisci similique repellat exercitationem soluta, id eaque sapiente voluptate repellat itaque saepe?

Consequuntur vitae amet, quisquam vero consequatur ducimus suscipit cumque voluptatem modi necessitatibus maiores, enim earum exercitationem maxime maiores veniam, labore earum iste, at aspernatur officiis quos molestias a voluptatibus nulla illo provident cumque assumenda. Corrupti tempora aspernatur nemo sunt eveniet soluta assumenda voluptatem aliquid tenetur culpa, quasi ut necessitatibus, sit voluptate harum accusantium corrupti cum saepe facilis eius expedita inventore autem? Libero repellat consequuntur id eos voluptate fugiat aut necessitatibus dolores, quisquam distinctio dolorem omnis magni natus laudantium fugit eos culpa quam, atque facilis alias nostrum quo dolor consectetur aut, obcaecati praesentium commodi porro debitis odit eaque aut iure? Eum error saepe eligendi velit similique.

Sed eum quas numquam provident consequuntur eveniet ad quam debitis cum, doloremque ex aliquam dolorum culpa qui earum error expedita, non accusamus quos aliquid pariatur accusantium quasi obcaecati perspiciatis cum numquam. Sit voluptas expedita eos quidem soluta a exercitationem tenetur facere harum ipsum, quidem nihil vero corrupti delectus. Fuga dolore enim consequatur, ut similique non ea, quasi dignissimos esse necessitatibus obcaecati minus iusto animi libero?

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 5, - 9 - ] - } - }, - { - "pk": 24, - "model": "articles.article", - "fields": { - "body": "

Rerum fugit facere perferendis asperiores qui placeat aliquid eaque? Eaque excepturi ipsa ex reprehenderit provident molestias ut maiores cum, facere esse quam. Minima reprehenderit quisquam, assumenda in mollitia corrupti magni veritatis quia quae ullam dicta nostrum, id minima dignissimos aspernatur distinctio, veritatis velit esse eum magnam? Necessitatibus deleniti saepe quos eos minima praesentium, enim eos rem doloremque doloribus blanditiis quas a impedit pariatur consequuntur, quidem quas at excepturi quasi aperiam minima molestiae mollitia rem?

Quia amet non magni magnam quasi fugiat quo quis, est quas incidunt voluptates commodi voluptas corporis quidem qui eos, tenetur fuga quidem at rem maxime sapiente natus fugiat cupiditate voluptates. Expedita corrupti dignissimos aspernatur facere qui soluta vero voluptatum sequi, labore iure quaerat corporis veritatis libero dolores eveniet esse consequuntur exercitationem, harum adipisci magnam laboriosam voluptates necessitatibus aspernatur nihil laborum nulla ad? Obcaecati tempore quibusdam nostrum excepturi ducimus rem fuga ullam tempora molestiae asperiores, sit labore dolore similique voluptas doloremque cumque voluptates cum sunt dolorum fuga, aut veritatis illum consequatur? Necessitatibus nemo cum tempora accusantium quisquam commodi fuga deserunt dolorem animi, eos amet culpa officia earum itaque soluta, fuga amet maxime dolor nam error nisi ipsam, beatae doloremque eum ut quos omnis accusamus vel praesentium tenetur dicta?

Sapiente facere fugit.

Culpa quasi voluptatem, perferendis dolorem unde rem magnam tempora odio nulla error perspiciatis ea doloribus, sequi doloremque a officia ad eaque voluptatibus eum, explicabo porro eos sint accusamus, praesentium ipsam maxime hic modi veritatis eos accusantium culpa tempore aperiam. Eaque vitae itaque deserunt quod vel, nobis similique provident consequatur maxime cumque nemo non autem pariatur, nobis excepturi cum accusantium animi quae ad quia rerum. Ipsam voluptatum quo molestiae minus ipsa nisi voluptatem aliquid architecto porro explicabo, culpa assumenda consequatur aperiam id error molestias explicabo possimus eligendi nihil minus, ut magni possimus. Quas excepturi quis animi?

Earum obcaecati a, voluptates nulla iure quisquam, neque doloribus in aspernatur similique eligendi dolorem dolorum architecto vitae, animi quidem voluptatem aliquam minus velit tempora rem modi libero quos sed? Ipsum odit voluptas tempore nihil dolor quidem deleniti quam, architecto consequatur voluptate omnis et dolor placeat eius sint sequi rerum? Est repellendus natus esse obcaecati omnis nisi nam facere, aperiam autem quos voluptatem perspiciatis, officia at beatae? Necessitatibus ex aliquid aspernatur, rerum mollitia dolore maiores eos aperiam officia eum dicta, facilis eum quaerat iusto qui ex, eos dolore veritatis quod nostrum omnis reprehenderit facere laboriosam impedit tempora officiis, nulla aspernatur placeat porro aperiam nisi?

Laboriosam nam temporibus, consequatur iusto sapiente delectus eius in iste voluptatibus. Perspiciatis blanditiis hic minima dicta? Cum aspernatur neque cumque quas nesciunt officiis? Accusamus unde architecto blanditiis ipsum error numquam itaque eligendi, natus cupiditate vel nesciunt repudiandae placeat, facilis blanditiis inventore eaque temporibus eveniet dignissimos aut voluptas modi harum, laboriosam neque quod doloribus autem beatae voluptates amet quasi dignissimos nesciunt architecto.

Dolorem alias praesentium consectetur, corporis magni facere, repellendus quae inventore nemo quasi dignissimos accusamus quam atque doloribus. Maxime rerum commodi optio veritatis, amet alias rem in, perferendis rem cum at unde minus consectetur deserunt ipsam, dolor quae minima doloribus impedit adipisci numquam delectus reprehenderit? Amet blanditiis repellendus pariatur consequatur laborum dolorem hic. Enim sapiente alias a incidunt corporis voluptatem quaerat necessitatibus illo quasi perferendis.

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 3, - 8, - 10 - ] - } - }, - { - "pk": 25, - "model": "articles.article", - "fields": { - "body": "

Necessitatibus ducimus neque soluta rem, iste praesentium eum exercitationem illum asperiores illo dignissimos quisquam consequatur? Porro tempora officia eum consequuntur perspiciatis in aliquid sunt autem non quisquam, consectetur deserunt voluptatum esse commodi dolor ad ducimus explicabo labore, iusto quaerat sunt sequi neque, officiis nobis natus autem est nisi, quisquam facere natus culpa quia neque sequi ab sit amet dolor? Tempora similique reprehenderit fugit, deleniti accusamus quam. Totam rem expedita facere enim nulla voluptates minima earum, esse inventore dolores quae aut pariatur id doloribus neque odio reprehenderit officiis, voluptatibus provident cumque suscipit reprehenderit soluta, corrupti repellendus sunt numquam?

Animi quia tempore ea eum quibusdam ab sequi alias? Maxime rerum id doloremque ratione tempore? Minus veritatis totam vitae consequatur deleniti cumque repudiandae dignissimos iusto saepe pariatur, natus ducimus odio vel delectus sapiente, adipisci hic eos et unde molestiae aperiam autem qui rerum animi, veniam laudantium facilis nobis ea placeat eius nemo reprehenderit quod harum quasi, veniam molestias temporibus cumque et consequatur numquam iure suscipit itaque neque?

Quos dignissimos facere maiores vitae autem modi, eum veritatis asperiores omnis dolorum hic dolore suscipit ea, soluta repellat quia facilis suscipit excepturi dicta, consequatur voluptate ratione odio sequi quibusdam quaerat maxime, laborum quas odit totam facilis tempora quis ut eligendi? Repellat error praesentium magni necessitatibus? Deserunt quam mollitia consectetur maxime vero, fuga harum mollitia dignissimos, omnis veniam harum numquam in minus. Architecto recusandae in ad a maiores ea nisi eum delectus mollitia beatae, porro aliquid cumque repudiandae ratione fugit quis sequi ipsum labore voluptatem.

Facilis laudantium accusantium assumenda odio nobis, enim eius assumenda natus sint odio quidem, deserunt sed dolor animi sequi quasi perspiciatis excepturi itaque? Dignissimos dolore nesciunt perspiciatis quibusdam saepe sapiente, repellendus accusantium voluptatibus voluptate iusto, fugit dicta fuga.

Explicabo voluptatum quas nisi perspiciatis facilis consequatur fugiat, quo ipsa excepturi possimus consectetur, quam architecto corporis laudantium quaerat natus soluta doloremque praesentium similique quo aut.

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 7, - 9 - ] - } - }, - { - "pk": 26, - "model": "articles.article", - "fields": { - "body": "

Deserunt natus nulla aliquid, delectus veniam reprehenderit assumenda voluptates dolores, aliquid facilis sunt eligendi molestiae accusamus tempora quam officiis perferendis. Inventore id mollitia aliquam nobis fugiat tempore ullam illo voluptatibus veniam sequi?

Ipsa voluptatem quos libero animi nostrum accusamus debitis delectus officia cumque ut?

Quisquam quod praesentium sapiente sint reiciendis? Aliquid eaque quae totam optio ipsum repellat, laboriosam illo aliquam eum cum commodi voluptate asperiores corrupti tenetur at assumenda, consequuntur unde quae a dolorum quidem nihil? Dolore praesentium odio debitis hic inventore mollitia ad nobis corporis id? Odio blanditiis laboriosam?

Et est molestias cum harum aliquid reiciendis provident laudantium voluptatem repellat? Corrupti soluta accusamus eos laborum inventore culpa, esse saepe quasi neque iste eum. Sint dolorum temporibus maxime expedita, ipsam asperiores repellendus veniam eos nobis minus corrupti inventore nostrum, sed laborum doloremque eligendi, earum iure recusandae cupiditate quos, nesciunt voluptas non aperiam rerum modi atque nostrum vero similique dolor.

Vero esse nam voluptates iste assumenda corrupti eum, vitae explicabo fuga optio veniam necessitatibus quasi quam?

Itaque iusto est cum sapiente repudiandae, rerum distinctio veritatis consectetur nulla ipsum asperiores, officiis sequi veritatis, quae tenetur eveniet necessitatibus.

Soluta quia exercitationem deserunt. Reprehenderit dolore dolorem eveniet debitis, ea praesentium quidem qui quibusdam recusandae nulla perferendis incidunt eligendi vitae accusantium, ex illo tempora assumenda ipsa expedita quae quas perspiciatis eveniet voluptas, illo eos voluptatem quas doloribus, eligendi laudantium unde perferendis?

", - "sections": [ - 5 - ], - "sites": [ - 1 - ], - "authors": [ - 13, - 14 - ] - } - }, - { - "pk": 27, - "model": "articles.article", - "fields": { - "body": "

Voluptates esse eveniet, cupiditate odio consectetur similique quis aperiam quibusdam corrupti modi, corporis natus magni qui corrupti quis dolor necessitatibus rem, in dignissimos consectetur optio architecto placeat. Aliquid officia id veritatis exercitationem nesciunt nostrum. Esse ipsum consequuntur aspernatur, libero autem ab distinctio?

Dicta deleniti molestiae neque, veritatis ipsa quos, cupiditate amet quo atque consequuntur optio soluta molestiae, error laborum dolore mollitia ipsum distinctio, alias adipisci praesentium numquam ea corrupti placeat pariatur dolores sapiente modi ducimus. Quibusdam inventore sit.

Modi vitae saepe itaque quis ab mollitia temporibus placeat laborum atque? Voluptates fugit hic at placeat iste repudiandae tempore non tempora necessitatibus velit, architecto laboriosam voluptatibus nulla molestias exercitationem alias ipsam, impedit rerum molestias veritatis blanditiis quo id, consequatur reprehenderit vero maxime distinctio sed totam explicabo quos ipsam tempore, voluptatem fugit alias hic blanditiis eius animi fuga unde. Mollitia blanditiis suscipit optio culpa provident labore debitis nemo fugit, impedit dolores veritatis at ab odio cum, cupiditate minus rem velit veniam, corporis vel voluptas incidunt, officiis et dolorum aliquam provident?

Velit deserunt cumque aut animi laudantium quasi, libero illum non voluptatibus voluptas ab ipsum corporis, nulla illo fugiat dicta quos nostrum, quos modi consequatur placeat harum magnam ut aliquid mollitia? Explicabo laborum ut vitae dolorum quo?

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 3, - 4, - 10 - ] - } - }, - { - "pk": 28, - "model": "articles.article", - "fields": { - "body": "

Beatae velit ipsum tempore at aspernatur dolorum quidem, nesciunt voluptatum accusamus illo sed, voluptatem laboriosam vitae, a distinctio molestias sequi. Saepe optio explicabo quasi aperiam veniam repellendus quae consequuntur corrupti quod. Dicta in ratione laborum ducimus iure perferendis nihil quae corporis amet maiores, esse consequuntur ea. At sit quasi distinctio dolores neque modi earum hic nesciunt, at dolore nihil voluptatem beatae reprehenderit quidem architecto, enim laborum possimus non eum quo corrupti, hic in enim dignissimos rerum modi cum cumque, itaque saepe animi earum amet enim dolorum mollitia veniam voluptate explicabo placeat?

Neque eligendi reprehenderit explicabo asperiores laudantium, quas distinctio aliquam accusantium sint, esse adipisci corrupti aperiam ducimus pariatur culpa, corporis in praesentium, incidunt nulla ad dolorem. Nulla alias aliquam ab minima repudiandae voluptatum inventore neque officia, perspiciatis tenetur doloribus perferendis nobis deleniti sit quidem voluptas earum sequi quaerat, animi delectus nam natus vitae nostrum reprehenderit accusantium aliquid voluptatem enim nihil? Recusandae beatae voluptates porro illum est consectetur ipsum numquam tempore rerum nisi?

Rerum sapiente numquam provident quibusdam sed unde natus expedita eveniet, numquam alias officia suscipit dolore accusamus eveniet blanditiis non adipisci itaque iure, fugiat ratione vero debitis dicta alias, expedita repellendus qui ipsum dolorem.

Minus aliquam blanditiis magnam nemo iste rem tenetur. Nostrum cupiditate cumque quaerat omnis alias ullam, vitae iste impedit porro repudiandae, ullam dignissimos ipsa fuga veniam et eos?

Perferendis atque quod recusandae veniam, vel provident animi nesciunt hic exercitationem minus deserunt quos, labore dolorum sapiente doloremque provident explicabo nostrum reprehenderit quae iusto, labore quibusdam pariatur doloribus minima dolor autem? Sed tempora necessitatibus nulla ducimus aut consequuntur voluptas impedit temporibus, nulla fugiat ut laudantium rerum eaque modi quibusdam expedita eos, voluptas unde optio ut quam tempora pariatur velit reprehenderit. At suscipit nostrum consequuntur ex placeat tempore, corrupti recusandae sint dolorum quis debitis unde nam harum perspiciatis?

Sint a saepe consequuntur debitis labore cumque illum quam doloribus, eum fuga consectetur animi minima illum id velit possimus soluta nihil ab, hic illum minus labore?

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 9, - 10, - 12 - ] - } - }, - { - "pk": 29, - "model": "articles.article", - "fields": { - "body": "

Aspernatur nemo repellendus minima molestiae, exercitationem non doloribus facilis quam eaque, dolorem consectetur dolorum tenetur placeat sequi iusto quas magni, ex ad quas quos fugit maxime repudiandae?

Architecto esse tenetur perspiciatis sunt vitae blanditiis corrupti recusandae, dolor fugiat sit non harum et placeat quasi iste labore, incidunt dicta deserunt perferendis praesentium sed a voluptatibus molestias expedita dolores, magni quisquam unde beatae dolor deserunt eligendi illum culpa minima ad assumenda?

Omnis reprehenderit perferendis, quis vero deleniti necessitatibus unde atque iure aliquid cupiditate accusantium a eveniet. Distinctio libero excepturi quis maxime aut nobis assumenda, quas libero doloremque magnam, eum animi reiciendis, quisquam iste numquam, hic sunt corrupti nulla.

Rerum ab voluptates ut praesentium ipsa non, consectetur mollitia iusto praesentium quae rem, incidunt necessitatibus cupiditate.

Minima illum sapiente reiciendis sint facilis culpa beatae voluptatem, molestiae sequi iure voluptates cum, nostrum debitis iusto voluptatum nemo suscipit cumque et nisi ullam, ipsum magnam consequatur labore dolorem perferendis repudiandae, repellat itaque corporis reiciendis quae. Rem ad eligendi deleniti beatae aperiam, omnis provident aliquam odio nulla rem atque quam iste, corrupti minus suscipit quidem veritatis, placeat pariatur consequuntur soluta? Deserunt modi quas quod adipisci nihil, esse maiores ab, ratione corrupti et similique commodi ipsa eos voluptatem ullam autem, vel fuga cum pariatur esse laboriosam, maiores nesciunt obcaecati beatae fugit suscipit nobis dolorum quisquam. Libero non aliquam doloribus minima consectetur voluptas officiis error vitae, inventore a at aperiam ratione iure, vel ipsum architecto consequuntur vero corrupti quis, repellat magni sit voluptates ducimus et temporibus officia tempora?

Eum laudantium obcaecati illum vitae doloribus consequuntur optio molestiae reiciendis, similique minus et suscipit alias, modi obcaecati ipsum veniam, officiis amet necessitatibus modi suscipit, laudantium a porro provident adipisci? Accusantium est distinctio libero inventore earum provident mollitia eum?

Sint iusto enim id animi nisi molestias dignissimos ea accusantium, provident voluptatum officia ducimus aut dignissimos voluptates atque dolorum itaque? Quia mollitia delectus labore atque tempore saepe alias pariatur adipisci, earum ipsa perferendis magnam delectus quaerat harum fugit. Vitae maxime fugiat officia ea nam sed saepe modi enim veritatis perspiciatis, tempore suscipit est voluptatum temporibus odio nobis, molestias in fugiat pariatur laboriosam veritatis aperiam voluptatibus assumenda id excepturi, cumque placeat odit eum sit consequuntur maxime ut enim laudantium? Temporibus iusto voluptate quae odio consectetur tenetur qui asperiores incidunt, quas nisi magni omnis quis ab nam aliquid.

", - "sections": [ - 5 - ], - "sites": [ - 1 - ], - "authors": [ - 3, - 4, - 8 - ] - } - }, - { - "pk": 30, - "model": "articles.article", - "fields": { - "body": "

Cupiditate quod culpa porro laudantium libero similique quidem? Beatae quo fugit nisi soluta a officiis iusto dolorum autem quasi explicabo? Minus porro vero tempora possimus, veniam quas aliquam. Necessitatibus quasi dicta, dolore dolor alias aliquid fugit sint ratione ducimus, quibusdam eum iste officiis saepe ut reiciendis laborum aliquam tenetur.

Incidunt repellat harum placeat officiis alias praesentium itaque laboriosam illo iusto, repellendus nemo vel earum recusandae iure dolore cum a tenetur, exercitationem aut facere eligendi alias illum ut aperiam cum voluptas, perspiciatis consequatur amet architecto reprehenderit animi labore magnam?

Magni tenetur quis? Unde saepe tenetur eaque ipsum hic animi temporibus. Molestiae odit rem repellendus iure commodi vitae minima soluta, vero ratione quisquam quam veritatis enim recusandae. Expedita beatae perspiciatis ut possimus magni, eum aspernatur veniam eos magni perferendis facilis atque recusandae alias consequuntur possimus?

Nisi eveniet sit perferendis earum molestias quasi autem ducimus delectus ipsam, aut error nulla cupiditate nihil fugit tempore pariatur maiores, repudiandae error totam quod pariatur hic aliquam officia? Rerum blanditiis illo sunt ipsum quos aperiam cumque, ab libero quaerat voluptate cupiditate id aliquam ipsum suscipit laudantium iste?

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 13 - ] - } - }, - { - "pk": 31, - "model": "articles.article", - "fields": { - "body": "

Dicta quo hic accusamus ad velit perspiciatis libero voluptate molestias id architecto, laboriosam a impedit dolorum praesentium, explicabo quae quasi eaque praesentium ex vel. Aut omnis aperiam labore esse ratione iusto rerum sequi, veritatis ipsa ab repellat labore exercitationem explicabo cupiditate, ea perspiciatis exercitationem neque sunt est quas eligendi dolor amet quae, eaque similique voluptatibus consequuntur aut dolore ratione, animi corrupti consectetur eveniet maxime totam quam voluptatem eum similique minima id? Mollitia dignissimos repudiandae?

Tempore quas perferendis amet fugiat sequi cupiditate mollitia. Esse atque vel adipisci molestiae praesentium, praesentium blanditiis explicabo nobis modi ipsam. Nemo perspiciatis cum? Natus possimus sed dolorum voluptatem quas corrupti culpa nostrum vitae iure deleniti, error reiciendis sunt, perferendis laboriosam tempore?

Sint quisquam obcaecati, delectus nemo natus officiis beatae et rerum dolorum eos, in dignissimos consequuntur laboriosam quia mollitia quis nobis neque libero? Exercitationem eaque sequi magni similique voluptatum deserunt architecto dicta, quo incidunt doloribus, tempora excepturi ex doloremque dolorem sint esse itaque dolorum, dolorem a voluptatum, distinctio eum consequuntur eius vel dolorem aperiam temporibus porro veniam.

Iure soluta dolorum consequatur tempore assumenda numquam laborum voluptatibus maiores alias illo? Quos possimus esse iste nostrum earum alias quae ea, optio obcaecati architecto fuga quibusdam tempore ad voluptatibus consectetur voluptate, corrupti dolorem omnis suscipit, qui tempore tenetur rerum. Ullam natus quibusdam optio voluptatem quis iste aperiam magni rerum?

Quis quisquam saepe voluptatem fuga enim temporibus hic iure atque, assumenda quis facere? Dolorum perferendis blanditiis ex saepe excepturi et in aperiam itaque qui, saepe corporis officiis odio ipsum, iure accusantium aperiam maiores provident facere asperiores, quaerat accusamus quidem impedit harum veniam porro fugit quia maxime eaque aperiam, vel provident ducimus quae harum totam temporibus nemo doloremque ea. Incidunt maxime delectus perspiciatis, nulla voluptatibus consequatur. Reprehenderit soluta consectetur maxime veniam quam, animi architecto sapiente nesciunt maxime provident, ut perferendis ducimus consectetur asperiores provident vel aut sed beatae sapiente delectus, officia voluptatibus architecto ullam reiciendis eveniet.

Ea aperiam quod delectus, tenetur possimus ipsa iusto consectetur nam ab incidunt ipsam sed alias, voluptate inventore perspiciatis dolorem provident sit nisi at omnis ratione quam, aperiam mollitia delectus, voluptatibus non est saepe veniam exercitationem sapiente aperiam?

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 5, - 9 - ] - } - }, - { - "pk": 32, - "model": "articles.article", - "fields": { - "body": "

Id aliquid culpa dolorem, impedit ad natus veniam, doloribus repellendus fugit amet iste. Pariatur exercitationem recusandae vero sit? Saepe consequatur illo sequi, vero error atque nostrum aliquam facere necessitatibus a earum corrupti, dignissimos fuga nobis quis quia velit maiores aspernatur impedit? Aliquam autem fugiat assumenda labore, sed velit veniam voluptatibus deleniti ex sunt debitis libero error, voluptate sed magni voluptatem natus dolores esse reiciendis error.

Velit nesciunt odio, quam commodi temporibus odio natus velit aliquid accusamus similique minus, inventore vitae odit possimus reprehenderit dolorem exercitationem ducimus et pariatur illum minus, sunt maiores tempora beatae nihil nemo molestias sed vero optio mollitia? Suscipit sunt quae cupiditate laborum ipsa totam perferendis, ipsum numquam doloribus, vel soluta facilis dolorum aliquam dignissimos asperiores laudantium repellendus sapiente error, doloribus debitis vel placeat dolor repellat fuga illum in voluptatibus repellendus, adipisci rem amet cumque et aut totam quos ratione magni facere incidunt.

Quisquam rerum distinctio soluta tempora aperiam? Asperiores ullam ducimus, quibusdam error a tenetur possimus facilis, quo recusandae tempore animi iusto quidem consequatur voluptatem corrupti voluptatum error? Quam quibusdam asperiores repellat aperiam, illum fugit quae amet, rerum quisquam voluptatem veritatis dolores nostrum quos minus, dolorem in praesentium, repellendus assumenda dolor accusantium nobis laborum.

Sunt quas ut, hic error fugiat dolores quibusdam, voluptas inventore error enim. Magnam at a impedit cum itaque cumque, consequuntur placeat commodi ratione soluta ex eligendi ad praesentium. Itaque amet earum ad ratione aspernatur recusandae dolores iusto nihil voluptates animi, repellat modi soluta rerum magni minus et, ex quae consequatur, iste perspiciatis vitae amet in non tempore illum sit neque, omnis dolor qui magni fugit debitis labore quos eaque. Facilis praesentium sapiente voluptatem dignissimos hic harum?

Quasi reiciendis repellat voluptatum quis ullam, recusandae tenetur possimus sed harum quia non, voluptate porro omnis laborum provident nobis, numquam voluptatibus doloribus, quisquam eaque totam quis reiciendis voluptate labore? Totam odio animi quidem iusto aliquam magnam ipsa officiis minima veniam.

Amet voluptates numquam quibusdam corporis, autem ipsum quidem recusandae corrupti sed, saepe eum itaque fuga iste eligendi voluptatem vel est quos possimus praesentium, sed voluptatem eligendi quia ratione cumque deserunt itaque, vitae ea distinctio numquam. Voluptate cum officia voluptates repellat dicta reprehenderit ducimus soluta porro corrupti labore. Amet dolore accusamus deserunt reprehenderit eveniet velit, itaque eius qui, officiis at dolor, labore suscipit expedita harum repudiandae magni odit, praesentium natus eos sunt excepturi ipsam eius assumenda ex at neque doloremque. Ea sint cumque aut doloremque laborum voluptate cum ab voluptatum quas illo, blanditiis iusto rerum dolorum hic neque animi magni earum veniam eos, minus quos deserunt, quos ratione corrupti obcaecati minus porro quasi?

", - "sections": [ - 5 - ], - "sites": [ - 1 - ], - "authors": [ - 2 - ] - } - }, - { - "pk": 33, - "model": "articles.article", - "fields": { - "body": "

Aliquam modi velit delectus laboriosam porro deserunt debitis, aut omnis beatae quidem quas nostrum commodi, commodi enim distinctio dolor labore quia iure, dolor sunt labore? Sit id eveniet sequi enim nemo obcaecati necessitatibus ipsum.

Doloremque architecto accusantium tempore exercitationem molestiae ab veniam esse rerum odio, saepe consequatur vero cupiditate perferendis consequuntur iure pariatur suscipit rem, laudantium eius tenetur? Aperiam tempora itaque facilis illo quam adipisci, voluptate voluptatum doloribus, eligendi ipsam placeat accusamus dignissimos alias optio amet fuga, delectus illo repellendus esse dignissimos iste quas dolorum distinctio possimus mollitia, ex provident earum sunt nihil.

Enim incidunt facere quisquam similique?

Laudantium obcaecati quis saepe.

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 13, - 14 - ] - } - }, - { - "pk": 34, - "model": "articles.article", - "fields": { - "body": "

Itaque nesciunt obcaecati rem ad nulla ex, eligendi adipisci nisi fugit placeat facilis quod quia tempore, hic sapiente ut, porro perspiciatis sapiente obcaecati cupiditate minus pariatur laboriosam distinctio in nemo?

A iusto voluptatibus tenetur officiis magnam facilis quaerat est eum quae eaque, esse molestias nobis placeat cupiditate, accusamus deleniti cupiditate eos illum sed dolores id iste est debitis eaque, quibusdam sapiente hic omnis quisquam at culpa placeat, error asperiores velit atque nesciunt suscipit corrupti dolor aspernatur cupiditate non. Reiciendis nisi ea quaerat odit in ratione consequuntur necessitatibus possimus, ipsa enim animi aliquam, dolore odio unde quasi repellendus pariatur voluptatem ipsa, eligendi cum voluptatibus numquam, maxime quaerat eligendi similique labore nisi beatae voluptatum odio optio odit saepe?

Totam facere officiis soluta inventore impedit enim corrupti ullam nesciunt? Veritatis ad quo quia eius reprehenderit, mollitia obcaecati et? Hic molestias velit quod debitis distinctio nisi, non magni ipsa, quisquam officiis odio atque at mollitia doloribus ipsam maiores nobis quis, libero at amet illo et magni, voluptas doloribus voluptatem sunt unde similique sit? Veritatis illum nemo nihil deleniti in ipsam totam, cumque nemo id, labore praesentium facilis laboriosam commodi, facilis placeat velit enim ut tenetur?

Dolorem cum libero eius molestiae aperiam nobis quam molestias, deleniti maiores sapiente quod temporibus minus at laudantium, minus deserunt possimus laboriosam itaque, aspernatur repellat exercitationem nostrum dolores iste eos accusamus enim nulla sit vitae, quo pariatur nihil aut. Odit voluptatibus alias fugit similique dolorum ipsam cum quam et, perspiciatis officia autem, labore nemo accusamus assumenda, animi commodi debitis tempore, illo perspiciatis sit obcaecati voluptatum perferendis non.

Tempore incidunt expedita quidem ad culpa dolore quas, nobis recusandae sequi nesciunt odio itaque molestiae asperiores beatae iste dignissimos, impedit exercitationem eum fugiat dolore unde officia libero amet. Nisi cumque quo debitis, hic accusamus aliquam aspernatur ipsam facilis et, necessitatibus dolorum consectetur possimus animi tenetur temporibus blanditiis voluptate nisi.

Ab ex unde dolor provident, ab exercitationem quibusdam sequi quas reprehenderit. Placeat modi quo fugit, illo repellat a, molestias minima repellendus dignissimos quia neque sed necessitatibus delectus vero dolores, quibusdam dolore rem commodi adipisci at alias quae nihil provident eius praesentium. Eius consectetur explicabo temporibus velit mollitia nesciunt itaque, rerum repellat quas, laboriosam porro enim ipsam nam deleniti quos modi architecto. Harum adipisci similique cum dolorum quis, suscipit mollitia distinctio quam deleniti, sint architecto id velit quia veniam nihil molestiae?

Quos totam soluta quas, asperiores amet explicabo cumque fuga dolores quam perspiciatis provident accusamus, sapiente suscipit enim ducimus laboriosam possimus in, eos quaerat quam molestiae expedita vero tempora blanditiis at sunt deserunt, nihil beatae quas exercitationem voluptatum?

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 12, - 13 - ] - } - }, - { - "pk": 35, - "model": "articles.article", - "fields": { - "body": "

Accusantium dolorem suscipit quod voluptatum, dolore doloribus blanditiis soluta commodi quisquam corrupti facilis a, eaque magni dolore deserunt eos minus nihil possimus corporis accusantium, aspernatur mollitia numquam facilis impedit modi ea. Quisquam necessitatibus tempore quia dolore illum ipsum earum ullam obcaecati, aut laborum doloremque, optio dolorum eaque modi, accusantium laborum pariatur commodi sint amet tempora nesciunt libero? Eos labore voluptatum pariatur molestiae iste, odio harum repellat iusto quaerat at eligendi sint aspernatur laborum eius, dolor reprehenderit a inventore deserunt tenetur aut, voluptatum tenetur optio consectetur quisquam quam deleniti, fuga suscipit voluptas adipisci perferendis nesciunt autem hic aliquid facere laudantium? Velit cum nisi labore ullam earum ducimus voluptates, doloribus animi modi, quisquam dolorum excepturi dolores, mollitia suscipit eaque odio ea illum?

Blanditiis unde adipisci expedita quis, expedita dolor est in maxime incidunt ex magnam sapiente impedit veritatis. Repellendus perferendis quam iure? Ipsam magni nulla, qui minus soluta unde pariatur optio perspiciatis iure earum veniam nihil? Soluta dicta hic esse cupiditate recusandae nostrum omnis ut, maxime quo animi officiis repellendus est optio incidunt nobis consectetur?

Soluta eligendi cumque maxime harum cupiditate consequatur reprehenderit nulla et, laboriosam at assumenda aliquid omnis, odit beatae optio accusamus magni maiores, inventore nihil quae, exercitationem soluta provident unde ullam nulla necessitatibus nam ipsam. Ut nihil voluptatibus possimus, incidunt consequuntur eaque mollitia recusandae voluptatem totam, atque aspernatur labore nemo veritatis accusantium minima enim ad sapiente deleniti, ad pariatur voluptatibus aperiam culpa voluptatem deleniti quis nobis tempore ab eum, doloribus ullam voluptates libero nobis nesciunt minus ipsam? Suscipit esse quos reprehenderit debitis aperiam modi, beatae mollitia rem doloribus non quisquam, placeat ab fugit perspiciatis delectus, sint nostrum reiciendis. Tempora maiores placeat labore deserunt laudantium error voluptate fugiat rem, excepturi magnam consequatur praesentium quam, aliquam nostrum aut, fuga deserunt aspernatur architecto, quod aut obcaecati quibusdam hic enim nisi incidunt consequatur ex libero.

Ut harum fugiat quas laborum libero nesciunt eos nisi incidunt eligendi rerum, vero iure soluta cum, dolorem repudiandae odio repellendus tenetur necessitatibus quis ratione.

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 10, - 14 - ] - } - }, - { - "pk": 36, - "model": "articles.article", - "fields": { - "body": "

Est perspiciatis molestias quod voluptas dolorum, doloribus error atque tempore dignissimos, esse autem molestias ipsam nisi nostrum, neque alias ullam cupiditate molestiae quos at ut officiis impedit sit sapiente, ut officiis iure animi consequuntur quisquam perferendis corrupti nemo? Ipsam iure odio nihil minus odit?

Odio laboriosam laborum quaerat iste recusandae alias distinctio ratione nisi consequatur explicabo, reiciendis aperiam quidem voluptas porro quaerat repudiandae quas a corporis, quibusdam id itaque, ducimus sunt consectetur earum distinctio tempore nesciunt quae. Necessitatibus minus exercitationem et molestiae odio architecto laboriosam iure inventore, officiis repudiandae voluptatum nam dolores quae atque laborum, animi fuga eligendi facilis quam quia?

Sed quae repudiandae distinctio, aliquam fugit veritatis assumenda, tempora enim in ex fugit repellat incidunt deleniti saepe laudantium atque sit? Doloribus temporibus dolorum saepe ea amet ratione neque natus, iste sint hic quidem natus dicta quasi odit omnis minima, fuga at quaerat doloremque libero odit culpa numquam cumque eveniet, exercitationem tempore at, nostrum laudantium laboriosam. Laborum officia soluta ea vero aliquid ab exercitationem porro asperiores placeat. Omnis corporis atque rem dicta a, dignissimos laborum asperiores magnam omnis unde nam eveniet officia explicabo dolore, quo cumque dicta distinctio autem libero provident perspiciatis explicabo?

Laborum nihil voluptatibus vitae ab sed quisquam blanditiis praesentium assumenda hic. Eius fugiat reprehenderit ratione fuga facilis iste repellendus magnam, sed saepe dignissimos non dolorum deserunt quasi tenetur reprehenderit debitis sit aliquam, quo eaque incidunt nisi aliquam adipisci voluptatibus suscipit aspernatur libero vero.

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 13 - ] - } - }, - { - "pk": 37, - "model": "articles.article", - "fields": { - "body": "

Nobis cum illum nulla esse, sunt illo atque minima quod incidunt eos saepe?

Accusantium unde dolore a consectetur suscipit facere autem, eos adipisci neque blanditiis, at odio ipsam laudantium consequuntur? Asperiores optio minus fuga corrupti molestiae, rem eos modi minus, odio dolore ducimus est eveniet dolores deleniti rerum voluptas minima expedita quo, obcaecati nisi enim minima quam accusantium id?

Iure dolorem quis repellat numquam explicabo officiis similique consequuntur consectetur doloremque id. In ipsa saepe. Quod cumque ex ipsa deserunt, tempore asperiores suscipit tempora delectus iusto, alias natus provident, at quis a iusto, suscipit doloribus natus obcaecati harum vitae fugit numquam ipsum iure ratione? Eaque eligendi dolore excepturi amet modi, ratione harum sint?

Tempora placeat laborum voluptas, aliquam nemo quod dolorum distinctio laborum fuga repellendus quasi explicabo?

Voluptatum eius omnis libero, dolore ut pariatur aut dolorum quidem alias rerum nobis nesciunt eius? Delectus accusantium nihil facilis explicabo suscipit laboriosam doloribus ipsum omnis iste dolores, perspiciatis delectus modi velit magnam?

Inventore ea deleniti voluptates voluptatem illo, cupiditate maxime labore sapiente expedita repellat sit, praesentium aperiam nobis nesciunt totam porro, accusantium quidem hic aut nemo nostrum, et id nisi libero itaque quae fugit? Tenetur nobis sint aspernatur ducimus perferendis fugiat hic nesciunt, sapiente praesentium perspiciatis eaque ipsum nemo exercitationem consequuntur, recusandae sequi autem obcaecati porro quis praesentium aperiam amet, placeat officiis amet.

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 3, - 11 - ] - } - }, - { - "pk": 38, - "model": "articles.article", - "fields": { - "body": "

Adipisci deserunt quia laudantium, soluta vero necessitatibus iste voluptatem nemo et, ipsa consequatur reiciendis ad ullam labore repellendus dolores asperiores dolore impedit dicta, alias eveniet placeat distinctio sunt hic in.

Ipsum rerum illum sapiente omnis rem sint atque, quo doloribus ab quidem fugit quasi id voluptas quisquam incidunt possimus. Error delectus atque ipsum laborum illum sapiente, quia enim nobis sit magnam libero perspiciatis molestiae, corporis illo fugiat quibusdam enim sapiente alias dolores, corrupti natus tempora nam alias molestias delectus? Quidem facilis itaque veritatis doloribus alias quis possimus consequuntur hic, nostrum officiis vero voluptate adipisci deserunt laborum, provident asperiores ratione error autem nihil odit perspiciatis, nulla sunt accusantium error eaque aut dolore dolorum nobis minima necessitatibus nihil, praesentium animi dolore laudantium quia.

Numquam tempora inventore natus ex similique provident ab reprehenderit minima. Ex veniam porro blanditiis totam autem, dolorem quia labore quidem, dignissimos dolorem vitae pariatur magni.

Necessitatibus minus odit corporis voluptatem similique perspiciatis earum aliquam, excepturi temporibus adipisci, neque doloremque assumenda ad delectus suscipit nesciunt rem asperiores placeat quasi libero, dolorem rem quam, accusantium at deleniti. Debitis architecto quaerat expedita exercitationem harum recusandae quae. Eum recusandae sunt quod quidem, maxime nobis possimus, optio tempora quis natus fuga reiciendis tenetur perspiciatis veritatis aut sed placeat, minus autem necessitatibus incidunt nulla?

Inventore laboriosam architecto aliquid aspernatur expedita nostrum quae eum doloremque voluptate officia, consequatur vero et quia cum obcaecati.

Suscipit error pariatur veniam similique eum doloremque, quisquam est vero quasi ullam? Repellat delectus perferendis consectetur eos, error blanditiis vero nesciunt debitis delectus reprehenderit officiis dolore placeat amet iusto, necessitatibus corrupti eligendi aspernatur reiciendis dolore assumenda quas quibusdam tenetur aperiam accusamus, nam corporis voluptas deserunt ullam reiciendis placeat veniam similique provident nulla id. Quam deleniti tempora odio culpa dolores eum fuga, tempore quam odio labore modi ducimus optio, libero dolorum animi assumenda ut. Ipsam at numquam quae quaerat?

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 3, - 9 - ] - } - }, - { - "pk": 39, - "model": "articles.article", - "fields": { - "body": "

Placeat saepe non odit id dicta quibusdam veniam assumenda est, debitis natus expedita? Ea cupiditate ex exercitationem esse facilis minima atque excepturi adipisci, incidunt neque ex, cum veritatis aperiam enim quas dignissimos debitis vitae non quasi corrupti, itaque nesciunt veritatis esse deleniti accusantium recusandae est architecto facere, error dolore praesentium excepturi dicta laboriosam ratione voluptate modi voluptatibus?

Dolorum quaerat accusamus mollitia, eveniet ut amet, quae nisi dicta doloremque aspernatur praesentium veritatis distinctio?

Dolorum sint nisi quaerat, ex et dolorem corporis animi, non minima voluptas similique maiores sed, omnis animi optio sapiente quae quas earum sunt eius necessitatibus? Iusto reiciendis ipsa maxime eligendi eaque dolorum, nulla incidunt molestiae fugiat eveniet iusto repudiandae praesentium consectetur, cupiditate placeat cum eaque at repudiandae?

Error blanditiis odio nesciunt ex assumenda quasi hic officiis, error natus nulla, ipsam adipisci voluptatem ad eaque obcaecati doloribus aliquid tempora? Labore consequuntur nihil unde excepturi doloribus accusantium eius eaque vero quaerat magnam, quia quam odit error et, mollitia facere nobis. Praesentium ut odit ipsa maiores veritatis a laudantium nobis magni, reprehenderit odio beatae voluptatibus, nam deleniti iusto amet laborum saepe vel sequi quibusdam illo cumque eligendi, ipsam cum possimus sequi ea odio officiis cumque, culpa tenetur esse laudantium accusantium maiores necessitatibus ipsa.

Voluptates error laudantium labore ad dolores, sapiente placeat animi quos reprehenderit delectus cupiditate aspernatur.

Nihil id quidem quis voluptatem non commodi exercitationem saepe, cumque sed quia nobis deserunt. Natus delectus tempore deserunt quaerat.

Eligendi quos doloribus in deleniti vero est a, odit blanditiis quis porro maxime, alias dolore enim quaerat earum itaque ullam hic fugit.

Aliquid ipsam sequi esse quia quaerat illo quod eius eaque, eveniet id provident nisi vero, labore distinctio maiores eius, omnis maxime nostrum asperiores et modi beatae ipsam saepe voluptatem ab itaque. Quia suscipit quo cupiditate eaque necessitatibus deserunt tempore dolorum placeat sapiente? Provident odio obcaecati architecto minima quis ullam porro nam unde sapiente quo, aliquid atque dignissimos deleniti voluptatem nesciunt, impedit soluta adipisci beatae voluptatem voluptas ad omnis, dolorum perferendis omnis laudantium nulla laboriosam soluta eveniet ab totam quidem, et molestias a pariatur incidunt laborum praesentium nostrum?

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 9, - 10 - ] - } - }, - { - "pk": 40, - "model": "articles.article", - "fields": { - "body": "

Exercitationem animi deserunt quo, voluptate pariatur illo placeat minus ipsam aspernatur atque ratione reiciendis nam, iste a libero aliquam beatae expedita eveniet hic odio officia velit. Odit quo minus libero pariatur perferendis, aspernatur minus adipisci facilis iusto omnis delectus fugit autem soluta, nesciunt aspernatur magni praesentium nisi beatae quae optio sequi. Ut voluptatibus culpa dolore cumque dolorem officia ipsam, tempora quae atque suscipit deserunt saepe sint laborum doloremque.

Expedita sint praesentium dignissimos eveniet beatae est porro nesciunt inventore corrupti, veritatis enim neque veniam molestias ea architecto repudiandae?

Esse incidunt aspernatur magnam quaerat, similique distinctio mollitia ut tempora excepturi explicabo, quos iusto a eligendi tenetur maxime, repellendus hic atque sapiente incidunt nihil laudantium praesentium. Deleniti minus quisquam, explicabo cumque esse? Dolore illum nemo consequuntur vero, sint reprehenderit molestiae atque, itaque adipisci voluptatem, magni labore voluptates tempora.

Nihil odit enim eius accusantium, possimus cumque quis vero pariatur eveniet, beatae atque voluptas amet ad, aspernatur commodi perspiciatis eius possimus distinctio culpa, in dicta eligendi consequuntur omnis? Aperiam modi odio ut excepturi, praesentium sed consequatur totam minus nam. In perspiciatis nesciunt excepturi sapiente libero facilis atque tenetur vero soluta amet? Architecto repellendus commodi exercitationem minima maxime illum quibusdam rerum saepe, tempore delectus quae explicabo sequi, pariatur facilis quae saepe sint porro sit sequi, minus ea dolorum sunt voluptates et qui placeat repellendus quam.

Culpa tempore fugiat odit voluptatem optio? Sed quas quae esse saepe molestias autem tenetur reiciendis placeat, fuga tempora rem hic eligendi, veniam quasi vitae nobis ut voluptatem id, quod ipsum dolorum exercitationem expedita iusto id eligendi magnam eveniet iure. Voluptatem adipisci tenetur, earum laborum laboriosam nam ad, sed eius saepe quo velit voluptatem sapiente alias totam ad rem, reiciendis id quia, exercitationem nisi deleniti?

Aliquam consectetur error sunt, fugit ipsum quibusdam. Aspernatur quidem atque quis molestiae, quis nostrum asperiores velit enim quo quisquam quidem voluptas iste eveniet at, id sed ipsam facilis odio eius quod corrupti architecto, eligendi magni obcaecati autem cumque placeat et aspernatur corporis neque, quidem facere et debitis saepe doloremque. Porro optio dolore aliquam qui, aspernatur qui iusto quae eveniet similique enim unde at voluptates minima ad, ipsam quasi odio maxime exercitationem sint libero qui sapiente, iste rerum voluptatum officia perferendis laudantium, necessitatibus in totam maxime ipsum tempora impedit quam. Cumque necessitatibus earum ea dolor facere officia ducimus impedit ipsa ipsam deleniti, saepe nam ullam modi distinctio praesentium deleniti, maxime adipisci quos libero sapiente, quas modi assumenda blanditiis praesentium ratione similique odit suscipit accusamus, quia vero perferendis facilis.

Expedita suscipit perferendis quasi rem alias dicta, ut unde iure ad laborum natus reprehenderit fugit fuga illum maiores, quam illo quod repellendus ipsam commodi, facere quam voluptatum illo minima cumque ad omnis quo eligendi, dolores ex dolorum quis atque veritatis quam necessitatibus repellendus possimus. A debitis in, totam quod exercitationem, laboriosam quidem ex? Rerum tempora ducimus beatae eligendi, quidem fugiat illum doloribus commodi perferendis amet officiis ipsa neque, exercitationem ipsam soluta voluptatibus sunt cupiditate facilis culpa molestias repellat eius, exercitationem cum quod esse nisi accusamus nam ut, doloremque laborum quis pariatur.

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 8, - 9, - 10 - ] - } - }, - { - "pk": 41, - "model": "articles.article", - "fields": { - "body": "

Dolorem possimus nobis vitae odio eum quaerat, asperiores tempore accusamus saepe explicabo, impedit omnis iste dolore, dolorem laborum perspiciatis quidem odio consectetur nisi blanditiis officiis consequuntur. Explicabo error neque, repudiandae velit qui repellat magnam aliquam non cupiditate.

Velit eaque tempora adipisci ea cumque distinctio similique. Eaque nisi voluptatum nobis autem laudantium repudiandae animi, delectus natus quas aspernatur asperiores quaerat veniam nesciunt tenetur voluptatibus autem commodi, cum aperiam explicabo possimus perspiciatis necessitatibus a eveniet ab quos. Quidem sunt itaque ut voluptate doloribus et deserunt architecto nam fugiat quaerat? Dolorem tempore fugiat nobis veniam, illo incidunt hic voluptates rerum ullam aspernatur ipsum magni quae, cumque aut blanditiis dolore id beatae similique pariatur porro expedita vel, eveniet delectus modi.

Nesciunt assumenda dolorum veritatis sapiente vero dicta ullam, nam facere sequi, nesciunt ea magnam ad eos sapiente voluptates nostrum expedita, in excepturi soluta explicabo qui minima dolor nostrum corporis mollitia illo, reprehenderit inventore veniam nisi dolores veritatis repellat nesciunt neque. Quae ex laudantium blanditiis cumque labore voluptatum facere asperiores nam est illum, sapiente laborum provident mollitia, distinctio iste labore quae fugiat amet esse quas libero qui, repudiandae eaque itaque exercitationem? Quam officia est corrupti dicta eligendi maiores obcaecati, sed itaque distinctio ipsam iure provident maiores impedit, nemo unde tempora reprehenderit provident culpa dolorum voluptatem, tempore explicabo unde nesciunt consequuntur dignissimos, quas provident tenetur veniam eaque sed quae?

Dolore ad molestias assumenda. A nostrum fugit error quibusdam esse veniam illum?

Deserunt blanditiis rerum. Exercitationem ipsam molestiae alias perferendis animi, adipisci facere magni debitis nisi rem a voluptatibus voluptate repellat, quo aspernatur eum numquam doloribus quibusdam vel assumenda quos, doloribus hic quae nulla reprehenderit nisi enim animi sit quaerat dolorum?

Doloremque fugiat quis quisquam, asperiores ab blanditiis minus voluptates. Dolores optio eaque omnis quisquam? Dolorum eveniet vel? Est accusantium voluptate minus, et velit molestiae facilis expedita nobis possimus provident neque vitae harum, saepe odit accusamus molestias quisquam deleniti non doloremque, debitis mollitia nisi ipsum perferendis saepe amet optio et doloremque tempora libero.

Similique aut minus ipsam corrupti soluta eius harum commodi nemo, voluptas cum et eveniet ut earum deserunt recusandae iusto. Quae dicta commodi impedit repellendus nulla consectetur, excepturi itaque distinctio adipisci enim natus officiis ea sed velit, beatae tempore recusandae natus et earum nihil cum, fuga doloremque natus pariatur neque, mollitia officiis ut harum iusto est a minima perferendis corrupti? Laborum quae id aliquam, et voluptatem qui sapiente id officia temporibus esse iste eaque, dignissimos rem veritatis blanditiis commodi harum eos vel pariatur et, modi voluptates porro officiis molestias ipsum possimus consequuntur.

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 7, - 13 - ] - } - }, - { - "pk": 42, - "model": "articles.article", - "fields": { - "body": "

Soluta consequuntur cupiditate aperiam officiis deserunt velit facere dolores, laboriosam necessitatibus molestiae excepturi officiis quia dolore quibusdam dolorum, aliquam rerum nam ex cum libero aspernatur debitis soluta, nobis eligendi porro iure impedit iusto omnis facere consequatur quos laborum? Magni quis nulla mollitia earum aut itaque laboriosam atque tempore perspiciatis est, nam quos provident facere sint, eaque doloremque qui ex voluptatum quisquam delectus labore animi maxime ea iste, accusamus quasi exercitationem nihil unde soluta omnis expedita accusantium pariatur alias, nostrum mollitia porro repellat sit excepturi? Officia tempora quisquam, quis error adipisci, nulla rem itaque ullam porro atque eligendi perspiciatis fugiat, eaque error veritatis modi dolorum sequi assumenda fugit repellat harum.

Impedit voluptas numquam itaque delectus repudiandae eaque? Iusto laudantium deserunt excepturi culpa saepe optio consequatur, culpa quos dolor consectetur harum iste sed asperiores vitae, eaque animi fuga corporis distinctio nemo iste corrupti quaerat voluptas, amet quidem dolor voluptatum voluptates iusto non assumenda quos numquam atque? Vitae ducimus cum incidunt quam eos delectus quae totam.

Ab tempora exercitationem temporibus, ullam id doloremque mollitia voluptas eos hic.

Amet quis repudiandae aut expedita possimus alias rem, voluptate ducimus doloremque accusantium atque quos pariatur natus illum necessitatibus saepe, non iusto numquam voluptate libero quibusdam, aspernatur unde est praesentium ea, iste esse voluptatibus harum facere temporibus id eius in sint recusandae? Voluptas voluptate quisquam et magnam quam dolorem exercitationem praesentium sint a ullam, consectetur error aspernatur dolorem libero non, asperiores earum odit veniam aspernatur beatae sint eum in nemo repellendus. Vero natus facere repellendus quasi atque, saepe cum possimus.

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 12, - 13, - 14 - ] - } - }, - { - "pk": 43, - "model": "articles.article", - "fields": { - "body": "

Exercitationem cupiditate pariatur magnam distinctio ab corrupti, culpa porro dolore, sed omnis iusto. Impedit nobis voluptatum ex recusandae cum, cupiditate recusandae reprehenderit similique ut rerum dignissimos id explicabo, quod non vel aliquam eaque similique quas quibusdam eius eos, minima repellat odio.

Laudantium sapiente in facere, excepturi hic in incidunt quae, voluptates rem unde animi quod necessitatibus earum porro perferendis? Sapiente nostrum officiis corrupti sed id facilis nihil nam velit voluptates alias?

Quaerat mollitia reprehenderit voluptates voluptas at molestias laboriosam quia tenetur deleniti. Delectus in quam, eligendi ratione hic. Enim eum recusandae unde doloremque quisquam temporibus officiis culpa debitis, nostrum veniam dolorum, facilis repudiandae commodi amet quos nam. Blanditiis est porro reprehenderit nesciunt itaque consequuntur eos rerum?

Dicta vero dolorem at qui officia consequatur, error sit neque aliquid, culpa voluptatum illo vero nostrum magnam optio perspiciatis fugiat? Perspiciatis autem saepe similique aperiam aut ut. Magnam fugiat consequuntur cupiditate possimus, sapiente atque id cumque distinctio, consequuntur libero pariatur? Eaque dolorem doloremque esse eius incidunt reiciendis?

Ratione suscipit dolores ad iste rerum ullam blanditiis odit repellendus aspernatur nulla, sint suscipit nisi cum, nam obcaecati nisi consequatur?

Sed ea nobis tenetur veritatis similique quae eligendi amet sapiente, corporis eius enim at, reprehenderit adipisci eaque placeat consectetur cupiditate aliquam amet dolore temporibus dolorem, quidem ducimus nobis unde quibusdam est impedit consectetur nemo quasi. Unde libero ea tempore quam in perferendis asperiores deleniti dignissimos aperiam hic, qui aliquid harum laboriosam dicta voluptas culpa dolorum, perferendis est necessitatibus nisi corporis consequuntur animi rerum obcaecati assumenda ipsam facere, aspernatur laboriosam voluptas eaque quod magni? Laboriosam eveniet iste, minus nulla velit magnam quo aspernatur excepturi assumenda incidunt, in autem quia libero ipsa praesentium velit, illo fuga culpa quia ab reiciendis eius totam, cupiditate sint commodi maiores. Optio debitis magnam atque quis placeat modi eveniet suscipit explicabo consequuntur.

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 5 - ] - } - }, - { - "pk": 44, - "model": "articles.article", - "fields": { - "body": "

Quasi ex esse laborum fuga ipsum, sunt itaque eveniet aliquid vero, rem quod repudiandae harum neque in soluta sunt ad doloremque, nam labore mollitia voluptatibus similique, repudiandae aperiam tempore et esse totam.

Sunt quidem commodi possimus rerum exercitationem sint aliquid, ipsam animi sunt, eum inventore neque praesentium maiores dolore, temporibus quia repudiandae dolorem fuga saepe dolore deleniti mollitia pariatur, at quisquam praesentium consectetur rem cupiditate itaque cum. Magnam nemo dicta similique quisquam qui ad.

Perferendis libero sint est nesciunt repudiandae ratione vitae alias iusto.

Rem earum repudiandae aspernatur harum perspiciatis similique in labore quibusdam, perferendis eveniet rem officiis deserunt suscipit numquam corporis quaerat consequuntur odio quibusdam, ad labore iusto minus earum aliquam cupiditate facere maxime sit commodi, esse quia eius harum cupiditate maxime a distinctio provident eligendi explicabo. Unde perspiciatis facere omnis consequuntur earum mollitia, eius aut repellat eos, id vero et consequuntur iure quasi, quam est a repellat sint consectetur aliquam quibusdam.

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 5, - 14 - ] - } - }, - { - "pk": 45, - "model": "articles.article", - "fields": { - "body": "

Quibusdam deserunt dolores et nesciunt quo suscipit odio voluptates doloribus soluta, reiciendis suscipit vel nihil commodi, iusto accusantium voluptates facilis et laudantium nihil officiis numquam, aliquam dolor architecto natus illo perspiciatis. Voluptatem molestiae distinctio fugiat dolor rerum, voluptatum quod nulla officia laboriosam, perferendis dolorem voluptatem aliquam eos sit consequuntur ad ipsa commodi, totam nulla accusamus repellat, vel quisquam aperiam fugit praesentium perspiciatis voluptates asperiores modi nulla dicta. Doloremque quis cupiditate quia, incidunt ullam amet quaerat consectetur illum? Eum blanditiis atque nobis debitis odit aperiam ratione quibusdam perspiciatis reiciendis fuga, necessitatibus sit laboriosam itaque modi, quo quaerat sequi ea atque ab ipsam eaque aut illum nobis amet.

Ex nobis id architecto obcaecati nisi, expedita molestiae voluptate accusantium facilis accusamus iure temporibus, suscipit id saepe eos a eum vel deserunt aperiam impedit repellendus facere, aliquam sapiente nobis delectus aperiam tempore, sequi hic inventore rerum? Accusantium atque neque praesentium quasi sapiente a perferendis blanditiis sequi delectus? Officia itaque tempore facere hic suscipit atque earum, quos ipsa mollitia ad nisi minima adipisci reiciendis possimus temporibus, placeat exercitationem dolorum id laboriosam quasi porro? Maiores nobis pariatur commodi aut ullam excepturi, aperiam a nobis fuga voluptas obcaecati reprehenderit cumque, voluptas blanditiis inventore molestiae saepe magnam, modi ipsum laboriosam autem repellendus.

Recusandae eaque minima enim fuga quis veritatis nobis veniam nostrum, temporibus porro ipsum molestiae animi, eligendi aliquid eum quae temporibus illo alias voluptatem. Odit adipisci quas ad deserunt tempora laudantium possimus amet sunt recusandae, maiores animi incidunt nemo, numquam odio obcaecati debitis est, sunt ipsam a repellendus nulla culpa suscipit excepturi iste necessitatibus error. Adipisci labore expedita ducimus quam, necessitatibus explicabo minima aperiam hic earum, labore ducimus quisquam dolor molestias, placeat accusamus aspernatur, dicta error adipisci ad quod obcaecati veniam?

Corrupti corporis aspernatur soluta atque optio delectus porro? Quae sed dolore quo nesciunt omnis sit similique officiis tempora harum illo, ratione neque ipsum a dolore, obcaecati cupiditate eos adipisci dolore perspiciatis, cupiditate repellendus nulla asperiores reprehenderit velit fuga similique, dolores eum aperiam reiciendis laboriosam autem quae totam? Deserunt impedit pariatur perferendis officiis exercitationem sapiente, accusantium id facere iusto et consequatur provident nihil, voluptates vitae eos perferendis quibusdam iusto qui ut rem ipsa architecto, laborum laudantium tenetur beatae atque quibusdam perspiciatis mollitia. Veritatis sint dicta laboriosam dignissimos nisi porro nulla debitis maiores laudantium in, voluptas dolores asperiores corrupti odio, iure perferendis neque facilis unde officiis repellat harum et numquam ratione?

Impedit optio delectus, enim nemo obcaecati dolorem quae illum fugiat minus id facilis ad inventore. At quo molestiae aspernatur? Est ipsam officiis odio facere optio excepturi, similique officia ex illum consequatur harum ipsam odit quod, quis natus ex consequuntur cumque, repellat sit numquam deserunt pariatur ipsam blanditiis consectetur quod impedit, rerum laudantium consequatur nisi ratione facere pariatur alias deleniti suscipit? Deserunt iusto non optio esse voluptatem quo, ad architecto sapiente quaerat laborum sint recusandae porro neque, aspernatur fugiat alias pariatur expedita enim similique nisi molestias.

Necessitatibus saepe nostrum provident, animi atque qui repellendus ipsam maxime impedit iusto veritatis, aliquid obcaecati in enim nam, numquam distinctio fugit debitis illum cupiditate asperiores incidunt molestiae qui sint. Quae doloremque eveniet animi numquam vero hic labore ipsum? Veritatis accusantium velit ullam, minima consectetur laboriosam accusamus ea ex illum, minus perspiciatis maxime adipisci debitis nemo sed quod, soluta debitis maxime at officia suscipit corporis dolores totam beatae maiores temporibus.

Aperiam facilis molestiae, quaerat rerum nesciunt nostrum, amet suscipit eius reiciendis molestiae ipsa nostrum, a harum error possimus autem aut voluptatem culpa molestiae commodi ex, accusamus molestiae quia quibusdam sequi temporibus nostrum optio.

Explicabo consequuntur nulla at eius, consequatur labore deserunt alias neque repellendus vel, praesentium eum repellat iste quasi totam perferendis voluptatem nisi ipsam. Aspernatur eos enim necessitatibus inventore ex a dolores porro aut voluptate laborum, fuga sit quae dicta velit quam voluptate corporis harum impedit veritatis ea, officiis non perferendis dolorem rerum tenetur dignissimos vero doloribus saepe ad, consequatur dolorem commodi iusto adipisci necessitatibus quod, unde non totam placeat tempora laboriosam dolorum ipsum cum blanditiis harum libero? Harum ducimus voluptas eius vel praesentium quo ab quisquam culpa earum, temporibus blanditiis ducimus doloribus ullam corporis consectetur harum nemo, minus magni numquam consequatur explicabo eum ad accusantium esse, eveniet repellat aliquid explicabo. Unde consectetur corporis sequi odio recusandae.

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 4, - 10 - ] - } - }, - { - "pk": 46, - "model": "articles.article", - "fields": { - "body": "

Expedita quisquam esse porro perferendis, dolorum pariatur voluptates officia voluptate autem excepturi praesentium fugit, laboriosam facere voluptas reprehenderit.

Voluptatum veritatis eum aliquid deleniti, tenetur corporis cupiditate voluptatibus, rem quas illum necessitatibus laborum quae atque error eos, adipisci pariatur magni dolore sequi numquam. Asperiores quos officia aliquid, iusto ipsum culpa cum corrupti consequuntur quo odio dicta sunt quibusdam inventore, voluptatem maiores tenetur placeat corrupti neque eaque dolor reiciendis accusantium sint necessitatibus, culpa consequatur odit aliquid asperiores.

Excepturi vitae nisi natus omnis obcaecati nulla quas. Itaque fugit laborum adipisci soluta sapiente natus quas, natus nemo omnis nisi vel sint voluptates cumque aspernatur, nesciunt facere obcaecati repudiandae corrupti, fugit dolore assumenda natus, veniam distinctio corporis ratione alias?

Modi labore architecto quae autem odit assumenda, maiores deleniti architecto repellendus ratione distinctio quam quia neque totam? Necessitatibus consequuntur culpa eligendi minima veritatis dolorum nihil facilis quae omnis dicta? Vitae at delectus voluptatum eveniet ipsam corporis voluptates molestiae voluptas, enim ipsam eius accusantium ad, animi voluptate illo repellendus quod rem perspiciatis, ullam eum praesentium nemo eveniet ad eius beatae?

Labore cum omnis voluptatem aperiam eum necessitatibus magnam asperiores, delectus accusantium impedit doloremque alias. Eligendi minus laudantium accusamus temporibus ad amet quaerat voluptates perspiciatis? Mollitia cum recusandae corrupti voluptate, delectus consequuntur voluptas facere doloribus reiciendis nam mollitia, corporis ea dignissimos numquam labore aliquid tempore dolores odio. Quibusdam possimus officia quidem voluptatibus sit atque similique ipsam magnam quas, est dolorem dolor enim ea.

Non repudiandae omnis consectetur deleniti? Error minima iure alias itaque ad voluptate praesentium nostrum, architecto quis pariatur repudiandae id nesciunt dicta esse? Excepturi consequatur amet sit enim impedit laudantium quis explicabo exercitationem voluptatibus cumque, perspiciatis eum ipsum porro architecto dolores enim doloremque labore? Esse beatae quod ipsum ea inventore, error magnam exercitationem nobis ullam excepturi dignissimos nisi iure cumque, error facere quidem harum natus optio delectus?

Praesentium cupiditate aut, at ratione adipisci eligendi excepturi aut dolores quaerat, excepturi placeat voluptatem, inventore ratione dolor nulla iure assumenda ipsa nihil possimus amet vero officia, animi maiores ipsa delectus necessitatibus numquam dolorum doloribus ut? Esse possimus totam laboriosam nobis aut vel architecto non odit, debitis consectetur porro omnis earum a ipsum, nisi aliquid quo qui earum vitae. Atque asperiores voluptatibus culpa nam iste rerum sit voluptatum nobis, vero odit debitis maxime quasi voluptate distinctio porro, tempora a deserunt sint ducimus commodi quis nisi similique sequi iste nobis.

Ex eaque architecto fugiat minus repellat voluptatum sint molestiae incidunt rem error, possimus alias dolorum nobis perferendis. Recusandae dicta deserunt numquam enim ut, facere hic facilis sunt nisi veritatis dicta praesentium, numquam dolorum modi id accusantium, aspernatur quae esse consequatur saepe iusto quo libero quis at odio, similique fuga odit officiis possimus nisi nesciunt veritatis ab eligendi earum. Excepturi quis repellendus itaque quibusdam laudantium voluptas aliquid quaerat veritatis, facilis quidem eum qui nesciunt enim debitis?

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 12 - ] - } - }, - { - "pk": 47, - "model": "articles.article", - "fields": { - "body": "

Illum ea aspernatur eius inventore vel delectus molestiae provident, officiis magnam doloribus sint quidem, doloribus veritatis expedita necessitatibus facere exercitationem dolorem ab repellendus voluptate tempore dolores, obcaecati adipisci aliquam, velit sequi exercitationem accusamus quis. Quasi alias cupiditate nostrum earum eligendi vero eaque, beatae laudantium aspernatur maxime sit quis officia. Possimus dolor tempora temporibus iusto optio quos magnam consequatur voluptatum a, asperiores necessitatibus aperiam ratione atque quibusdam nisi culpa, libero enim sed consectetur numquam expedita, beatae quidem illum laudantium at eaque tenetur iusto asperiores molestias. Exercitationem dolor voluptates sint odio accusantium, amet eligendi rem facilis, molestias quasi debitis cum amet, dolor voluptatibus quis ut provident repellendus neque aperiam.

Libero quod obcaecati quia at minus autem quae inventore corrupti ex, error dolore doloremque sapiente ipsum aspernatur quibusdam dolorem corporis et, magnam ducimus natus, rerum esse ratione? Perferendis corrupti fuga illum temporibus placeat consequatur dignissimos ex eos nostrum, repellat rem ut, consectetur beatae ullam, debitis quidem odit blanditiis consectetur, in recusandae nisi harum inventore eum perspiciatis a.

Nisi nemo repudiandae dolor soluta ut quia aperiam excepturi ad, debitis excepturi accusamus velit ut repellendus non quam deleniti? Autem nulla sapiente odio a molestiae voluptatum corporis beatae, deserunt iste sequi dicta modi incidunt quam error atque eos voluptatum, iure distinctio ducimus in iste est libero. Deserunt error rerum alias nihil laboriosam praesentium atque, deserunt ullam doloremque alias, voluptas mollitia voluptate. Enim distinctio quae officiis dolores accusamus voluptatibus est neque consequuntur mollitia, ducimus similique id libero consequatur harum quam eos, cum vitae fuga quisquam delectus voluptates nemo ea porro nulla minus animi, inventore neque nihil maxime.

Aut praesentium voluptas iste. Cupiditate consequuntur deleniti quaerat numquam minima a ad repellat asperiores cumque autem, inventore distinctio repellendus quidem ex, deleniti labore ipsum incidunt quae ab ipsam ut adipisci porro fugiat aliquid, aut iste aliquid dolorem, nisi excepturi libero natus consequuntur.

Magni eligendi expedita incidunt rerum ipsa dolores velit nesciunt nam cupiditate laborum, labore quibusdam odio culpa dolorum, necessitatibus expedita ipsa nostrum maiores quidem molestias iure id beatae, eveniet facere quidem maxime distinctio, ratione facilis dolores error nemo dolorum rerum architecto deserunt beatae sed facere. Asperiores mollitia corrupti iste ipsum ullam. Voluptate beatae esse, cum officiis autem ut nesciunt illo sequi, harum magnam a architecto mollitia ad? Quis molestiae nulla non aut eos nam suscipit.

Voluptatem voluptatibus ipsum eos voluptates aliquid neque fugit culpa vel explicabo ut, aspernatur minus deserunt nihil dolorum nobis consequatur reprehenderit similique. Inventore iste deleniti ullam delectus aliquid repudiandae quia, dolorum quaerat voluptatum id ullam incidunt ut possimus ratione corrupti molestiae, tempora repellendus aliquid dolorum? Voluptate quia error sint reiciendis dolore rem, qui deserunt explicabo aut praesentium illo autem corporis voluptates error reprehenderit, eos possimus maiores perferendis laudantium saepe modi.

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 4 - ] - } - }, - { - "pk": 48, - "model": "articles.article", - "fields": { - "body": "

Odit distinctio rem velit deserunt suscipit et cumque reiciendis eos unde, iste cupiditate inventore exercitationem, ipsam voluptatem quae labore repudiandae perferendis, quos dolor obcaecati doloremque odio asperiores aliquam ab repudiandae officiis nulla dicta. Neque aut facilis natus dolores?

Minus atque id quidem at velit saepe dolores repellendus nesciunt, voluptate veniam laborum perferendis sint hic ipsa perspiciatis consectetur, excepturi accusamus adipisci soluta molestias, earum exercitationem cupiditate animi excepturi nesciunt corrupti quam iste suscipit quas. Ut ad dicta quos voluptas harum, eius iusto iste minima similique fuga exercitationem quasi temporibus architecto itaque, enim quod eos dolore ratione minus doloremque, voluptas deleniti consectetur magnam repellendus rem molestiae voluptatem placeat, vitae possimus fugit rem corporis quasi est doloremque alias? Officia aliquam quibusdam tenetur provident incidunt aspernatur assumenda accusantium, aut dolor maiores vero, nulla corrupti iste enim fuga quibusdam itaque sit sint? Quaerat illum dolorum quasi in consequuntur reiciendis distinctio, tempore aliquam numquam eaque assumenda illo qui pariatur sit aperiam autem adipisci?

Hic ea molestiae corrupti, ipsam inventore assumenda totam laboriosam deleniti id reprehenderit, libero voluptatibus dolorem ipsa? Exercitationem eveniet cupiditate libero temporibus voluptates a ducimus dicta quisquam, deleniti illo facilis ex corrupti numquam nemo incidunt at officia in, alias voluptatem dolor itaque saepe voluptatibus accusantium, nam nesciunt molestias eveniet quasi nulla quibusdam autem explicabo. Aspernatur quasi quaerat placeat consequatur asperiores reprehenderit magni beatae doloribus in, quos consequatur non corporis sapiente at tenetur provident. Consectetur libero earum.

Iure perferendis sed molestiae quasi ipsa totam, voluptatum aut quasi, iusto porro laudantium cupiditate consectetur, animi enim dolorum, ducimus eaque vero quod nesciunt fuga aliquid. Magni dolore quos, voluptatum cumque a provident laborum error, dolores repellat praesentium quasi minima ut et ea, minima illo possimus nam facere consequatur, error quia dolore quam cumque necessitatibus dolor natus dignissimos est. Delectus nulla vel fugit totam eaque repudiandae qui recusandae voluptatibus distinctio quam. Mollitia dolorum quia illum, impedit quidem excepturi suscipit repudiandae cupiditate molestiae itaque tempora sint ratione, ratione assumenda tempore laudantium corrupti unde temporibus tempora aut nulla placeat sit, necessitatibus non et libero pariatur at?

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 5, - 8 - ] - } - }, - { - "pk": 49, - "model": "articles.article", - "fields": { - "body": "

Rerum ab explicabo. A exercitationem consectetur quaerat sint animi unde, libero amet explicabo id, quidem sint nesciunt aut officiis nisi deleniti recusandae blanditiis tempora vel veniam, earum distinctio perferendis libero eveniet totam, ipsam non magni provident? Est non ipsam accusamus magni quas dolorum nulla fugiat, accusamus totam exercitationem iure quisquam modi, placeat cumque id ipsum necessitatibus, non quasi praesentium labore dolor expedita, quis nam nesciunt?

Ea expedita distinctio asperiores porro magnam. Necessitatibus ea atque suscipit eos placeat nulla minus quos mollitia labore quod, commodi officiis provident suscipit, id sit totam sint, quos est natus tempore veritatis pariatur unde rem accusantium deleniti, dicta consequuntur quas autem aliquam porro.

Sunt voluptatibus soluta, sint veritatis ducimus odio earum corporis cupiditate quisquam corrupti incidunt, tenetur sequi asperiores, officiis eaque ipsum vero veritatis? Qui id non error nemo inventore exercitationem rem recusandae rerum minima, quos nobis qui veniam modi unde quae voluptate reiciendis dolorum, illum praesentium ea. Corrupti deleniti blanditiis doloremque sapiente maxime sed vel debitis cum sit cupiditate, a voluptas ducimus ratione ut laboriosam consequuntur reprehenderit voluptates? Dolores ad accusantium libero dignissimos officiis nesciunt inventore qui labore eos fugit, laudantium consectetur dolor totam veritatis veniam quae non architecto maiores, non ipsa suscipit in rerum quae enim aperiam, pariatur laudantium sapiente excepturi ipsa expedita, voluptas non aliquam qui quas amet temporibus quos quaerat est libero modi?

Facilis ducimus possimus voluptatibus molestias quasi deserunt numquam perspiciatis modi, officia nam quis praesentium facilis quidem dolor adipisci repudiandae vitae voluptates, voluptates ab laborum? Beatae omnis quisquam odit sint ullam magnam accusantium placeat, fuga officia ex, veritatis ipsam incidunt ea eaque sit aliquid expedita. Illo et molestias dolor aliquam adipisci cupiditate rem quasi dolorem culpa quaerat.

Quos reiciendis non tenetur tempora saepe eligendi expedita, amet tempora fugit sunt repellat, inventore alias cum reiciendis commodi obcaecati ratione aperiam pariatur porro, nesciunt debitis amet itaque quos sit cupiditate earum quisquam?

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 8, - 14 - ] - } - }, - { - "pk": 50, - "model": "articles.article", - "fields": { - "body": "

Eveniet laboriosam delectus modi nostrum, ducimus inventore quae placeat eveniet repellendus itaque possimus accusamus ea cupiditate deleniti, consequuntur repellendus quisquam neque dolore at, magni odio nemo sint iste corrupti? Beatae totam voluptatem eligendi sequi a dicta iste ex reprehenderit vitae soluta, ad assumenda minima nobis nesciunt obcaecati, iure voluptatum hic dolorum est corrupti. Quaerat veniam explicabo molestiae corrupti odit distinctio illo unde provident maxime placeat, deserunt atque voluptates quam iure molestias explicabo, quos nam debitis illo quae distinctio voluptate repudiandae quidem possimus doloremque, praesentium consequuntur nam. Soluta earum reprehenderit minima quia debitis nihil natus?

Voluptas neque rerum architecto enim officia, unde quidem dolor suscipit itaque iusto eveniet, debitis provident sapiente enim laudantium recusandae reprehenderit reiciendis, facilis inventore unde exercitationem dignissimos fugit nesciunt temporibus ipsum?

Non deserunt vero laudantium necessitatibus. Rerum consectetur nisi cupiditate, voluptatibus facere omnis nihil magni impedit fuga consectetur alias, dolorem odio aut explicabo odit illum, veritatis voluptate minus tenetur?

Dolores doloribus perferendis sed autem beatae aperiam voluptates dolorum repudiandae praesentium, odit accusantium voluptate quaerat quas architecto quisquam aliquam labore? Laboriosam minima ducimus aliquid eaque consequatur earum tenetur impedit sunt pariatur, praesentium iste esse ipsa? Pariatur doloribus odit quam nulla quas quasi animi blanditiis cum inventore quidem, molestias illo ad odio consequuntur possimus nihil illum quo veniam, nostrum ut dolore officia sit voluptatibus. Explicabo nostrum molestias nesciunt eveniet voluptatem, vel officiis laudantium omnis similique ducimus esse amet ex magnam consequatur asperiores, eveniet quisquam recusandae pariatur consectetur et itaque in impedit id eligendi, nam optio ipsam perferendis, sequi quam quia nemo eveniet facilis sapiente.

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 4, - 11 - ] - } - }, - { - "pk": 51, - "model": "articles.article", - "fields": { - "body": "

Nobis officiis harum dolore numquam animi eum, tempore dolorem mollitia deleniti eum illo alias quo voluptatum harum, quam corrupti voluptatem delectus facere consequatur aperiam fugiat amet nihil, dicta omnis explicabo possimus laudantium sapiente voluptatum nisi error aspernatur corrupti illo?

Impedit totam obcaecati quis alias necessitatibus commodi accusantium, deserunt at voluptatibus a eligendi harum ad animi possimus nam incidunt, aliquid unde dolor eligendi nulla fuga mollitia possimus nemo, nihil eos doloribus culpa nostrum.

Soluta quod magni distinctio facere, est autem dolor nihil provident quos.

Iste distinctio eveniet omnis voluptatem reiciendis culpa totam consequuntur minus a, accusamus voluptatum sapiente iure numquam reprehenderit iusto? Impedit magnam laboriosam optio libero rem sint, dolorum obcaecati quasi molestias quaerat sint quidem debitis ipsa eaque iusto porro, ducimus reprehenderit incidunt laborum voluptates placeat accusantium iste. Necessitatibus voluptatem architecto, mollitia et debitis accusantium molestiae rem aliquam maiores, dolorum placeat sapiente libero doloremque repudiandae delectus cum iusto, eius delectus inventore quasi.

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 3, - 13 - ] - } - }, - { - "pk": 52, - "model": "articles.article", - "fields": { - "body": "

Dignissimos sapiente minus fugit atque vero. Ullam quidem facilis, saepe blanditiis quibusdam placeat non. Accusamus ab nulla veritatis, assumenda blanditiis necessitatibus voluptatum esse laboriosam adipisci, a neque porro officiis? Eum amet sapiente inventore provident ex sunt eveniet id nihil, vel soluta accusamus eius optio deserunt consequuntur incidunt tenetur, aspernatur inventore doloremque itaque quibusdam iure nisi aperiam unde laudantium fugiat, facilis officia laudantium dolor.

Aut deleniti dolorem at, necessitatibus optio iusto sapiente nemo quidem ad facilis atque eveniet, ut dignissimos fuga officia aut dolore iusto, enim expedita nihil quaerat officiis voluptates non obcaecati. Saepe repellendus itaque inventore velit minus blanditiis commodi quos, sunt esse impedit exercitationem ipsum obcaecati debitis excepturi velit unde quis. Eos et cum provident quam quos vel similique quis, fuga dignissimos harum, tenetur impedit doloribus, eum neque repellendus quisquam officia beatae quaerat?

Odit molestiae obcaecati corrupti id magni, dolore quis rerum ipsum sit aperiam eius commodi temporibus.

Officiis deleniti tempora dolores voluptate recusandae facere quisquam optio sapiente.

Numquam sit provident veritatis accusantium repudiandae quidem ipsa optio placeat, id quisquam adipisci ullam quidem aut accusamus aperiam, deserunt ab nihil fuga doloribus quo optio, quasi ab minus iste vitae necessitatibus eaque inventore modi aperiam voluptatem, cum iure alias dolorem molestiae voluptas hic exercitationem? Amet maiores quo tenetur labore at deleniti quod dolore sapiente, ratione sunt iure nam ex nesciunt alias iste laborum, neque doloribus reiciendis nobis obcaecati possimus mollitia eaque consequatur consectetur ratione aliquid, exercitationem quas harum nulla deleniti dolorem expedita vitae aliquam eos excepturi voluptates, aliquid quibusdam magni esse.

Sunt sequi blanditiis repellendus, vero voluptatibus velit aut obcaecati beatae provident pariatur totam laudantium animi est? Fuga nemo ipsam tenetur facilis, consequuntur quos libero repudiandae voluptate sed dolores cumque inventore eligendi assumenda asperiores, corporis pariatur recusandae totam officiis dolore possimus nostrum quia fugiat, sit molestias nostrum ullam odit rerum et mollitia tempore voluptas eaque est, hic placeat maxime officiis fugit nemo atque. Sed debitis aspernatur quas, doloribus natus delectus est neque pariatur reprehenderit numquam velit, doloribus natus quidem harum quos id temporibus atque iusto, inventore quibusdam voluptatum porro nesciunt officia nostrum nemo rem tempora id expedita? Animi quasi cum molestias incidunt?

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 5, - 11 - ] - } - }, - { - "pk": 53, - "model": "articles.article", - "fields": { - "body": "

Eius delectus sit accusantium accusamus eveniet vel voluptate inventore vero ratione, cum est rerum quod unde hic cupiditate veniam minus rem temporibus soluta, repellat molestias velit delectus dolor illo molestiae sequi, molestias tenetur reiciendis corporis facilis? Ipsum neque ex cumque esse nostrum quod, est repudiandae inventore itaque expedita quaerat labore eum sequi fugit, quasi doloremque atque tempora ipsam architecto sit nihil, nobis deleniti corporis iste vero, aspernatur veniam ut repudiandae qui?

Accusamus quos fugit ut doloremque laborum culpa vero maxime veniam reiciendis. Debitis maxime dolore placeat officia minima quidem consequatur aspernatur in itaque, nobis mollitia aliquid tempore, temporibus nostrum soluta? Earum officia neque quaerat cum magni consectetur, maxime minus error sed repellat at dolorum, voluptate eius dolor tenetur eaque dignissimos illo, at sapiente facilis maiores obcaecati itaque id magni laborum. Voluptatem nemo in nesciunt sequi.

Asperiores accusantium nam sed. Earum dolor iste nesciunt illum rem laborum officia corporis. Voluptates qui vel impedit aut?

Eum fugiat aut modi repudiandae dignissimos consequuntur tempore? Sequi repudiandae alias similique dolores officia facere at saepe ratione. Nam eligendi voluptatum tempora animi hic et consequuntur excepturi laborum assumenda, architecto molestias numquam hic ullam atque exercitationem officia, tempore eum illo laudantium doloribus. Corporis dolorem eius asperiores atque repellat quo, nostrum iste asperiores quasi voluptatibus perspiciatis voluptates libero, molestias amet unde impedit voluptatibus saepe doloribus rem quas, perferendis modi aspernatur sed alias et fuga a nulla enim animi perspiciatis?

Neque quisquam veritatis, quaerat vero ipsa laboriosam necessitatibus, commodi praesentium cumque dolore saepe veniam harum mollitia consequatur nihil. Soluta eum laudantium accusamus vel ut numquam aliquid ducimus distinctio, fugit accusamus molestias numquam, velit voluptate nulla fugit, dignissimos recusandae dolore repudiandae quia officia quas assumenda a, suscipit expedita nisi repellendus beatae maiores quis repudiandae qui aperiam dicta? Ipsam odit fugit tenetur aspernatur atque reprehenderit totam, dolorum fuga corporis, recusandae iste ipsa eveniet rem facilis aperiam voluptatem exercitationem?

Eius omnis aliquid saepe consectetur, aperiam ut nulla maiores commodi, suscipit beatae tempore dolores ipsa magnam libero repudiandae dicta commodi, numquam nostrum tenetur, numquam ex blanditiis voluptates. Soluta corrupti ex illo. Commodi enim officia dicta eligendi cumque amet temporibus tempore, voluptatum error libero, adipisci eius minus accusantium quia esse officiis dignissimos, nam rerum veritatis facilis quod repellat maxime harum illum maiores aperiam vero, illo doloremque corrupti eius voluptatem obcaecati libero nulla eos non consequuntur hic.

Minus dicta est, iusto ullam corporis?

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 3, - 4, - 5 - ] - } - }, - { - "pk": 54, - "model": "articles.article", - "fields": { - "body": "

Laborum at eius vero fugit eum qui vitae neque, praesentium quidem delectus minima repellat quam, neque tempora consectetur? Quia itaque consectetur consequatur porro et commodi dolorum nihil, excepturi repellat pariatur aliquid libero, blanditiis et nemo aliquid odio magnam porro mollitia, culpa ipsum eveniet mollitia natus quaerat incidunt veniam blanditiis quas at?

Iure itaque porro id perspiciatis laboriosam ab nobis vitae repellendus quisquam, dignissimos distinctio expedita ab officia, itaque blanditiis soluta.

Omnis magnam aspernatur, facilis animi atque laudantium beatae tempora commodi aut odio sequi id, error impedit suscipit quibusdam sequi et alias. Deleniti aspernatur rem ea sapiente tempora quia facere, tempora numquam quas, qui ipsum sit omnis nemo a consectetur quibusdam dicta accusantium temporibus, minima possimus soluta vero esse non aperiam at rerum totam, unde cumque ut reiciendis doloribus tempora beatae aperiam atque ea repellendus.

Sed repudiandae nobis distinctio, quaerat dignissimos assumenda officia officiis possimus modi pariatur accusantium non praesentium at. Nam adipisci iusto repellendus quis tempora eaque provident illum ut? Quisquam eligendi minima praesentium veniam eius obcaecati a?

Assumenda consequatur perspiciatis impedit magni voluptates repellendus quod asperiores aliquid pariatur quas?

", - "sections": [ - 5 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 12 - ] - } - }, - { - "pk": 55, - "model": "articles.article", - "fields": { - "body": "

Recusandae tempore ad nostrum minus sequi incidunt autem cumque, odio labore animi, architecto ducimus nam quis harum magni a officiis error. Nobis nemo possimus numquam eligendi autem ducimus minima excepturi, nam ad ipsa eius illo molestiae, blanditiis laborum enim exercitationem eligendi earum veritatis asperiores quidem, quam necessitatibus dolore reprehenderit quae et, debitis odit distinctio adipisci enim culpa assumenda commodi rem voluptatum aspernatur vel?

Consequuntur quae eos officiis, at nisi quam quis distinctio velit eum blanditiis impedit, inventore temporibus perferendis architecto consequuntur voluptatibus cupiditate deserunt, incidunt ratione magni reprehenderit ad quam possimus atque. Rerum accusamus consequuntur alias quasi quos veritatis nobis, repudiandae itaque veritatis illo nobis officiis ea impedit asperiores eaque corporis ipsum. Autem fuga cupiditate adipisci, placeat voluptates quidem, nisi quo officia id sequi molestias sint fuga amet praesentium delectus quia, aliquid incidunt corporis enim nobis fuga, nobis officia aperiam perferendis debitis reiciendis.

Velit quae cum ullam exercitationem, tempora quidem dolorem ipsam nihil minima, doloribus quibusdam laudantium itaque totam quisquam culpa quam odit ex vel maxime, soluta ab mollitia illum tempora quas, molestiae facere sunt adipisci repudiandae neque inventore voluptatum placeat omnis? Nisi accusamus eligendi cum ipsa quae possimus voluptate animi adipisci, exercitationem natus commodi quibusdam enim expedita rem, voluptas optio tenetur autem quod saepe beatae error, facilis neque ad voluptatum libero porro possimus laborum officia. Iusto ad eaque assumenda aliquam nostrum fuga eum, odio distinctio ut necessitatibus, sint explicabo iste exercitationem obcaecati?

Vel sed aliquam voluptatibus maiores quaerat aspernatur, impedit quod laborum magni saepe tenetur voluptatem perferendis necessitatibus blanditiis quis? Nam velit saepe, dolores corrupti ipsa unde deserunt, cumque labore necessitatibus eius, magnam consequuntur quasi a, accusamus provident nisi omnis iste delectus. Mollitia suscipit sequi veritatis aliquid architecto repellendus reiciendis tempore nemo reprehenderit, cumque quo enim ipsa quis harum aliquam, nam repellat reiciendis eos quam unde quod ut quae delectus magnam beatae, quod obcaecati ad possimus quae cupiditate optio corrupti ducimus nostrum, consectetur aspernatur id?

Ipsum quos quam facere, sapiente facilis accusamus adipisci quia tempora. Impedit earum veritatis nulla consequatur soluta cupiditate ipsa quae saepe debitis? Inventore harum eius quisquam quis itaque provident eum deleniti, itaque rem nam officia ipsum perspiciatis iste, odit corporis ipsam quo? Doloribus ducimus autem dolores dolore, tempore accusantium dolor explicabo, veritatis incidunt ducimus impedit odit esse illo earum unde atque, possimus sed consectetur cum quo dicta?

Eveniet laborum cum quo hic, soluta in nam architecto harum excepturi quas modi ipsa recusandae inventore, saepe molestias deserunt reprehenderit, et quibusdam aspernatur dolores quisquam exercitationem amet accusantium ratione sequi libero? Expedita harum nihil exercitationem cumque molestias aperiam officia amet, numquam minima iste distinctio delectus pariatur, explicabo fuga ipsum magni numquam odio facere expedita voluptate nam cupiditate corporis. Id exercitationem similique soluta quasi voluptas nostrum quod rerum nam.

Ipsa exercitationem non mollitia corrupti, expedita earum amet sed iste necessitatibus fuga ipsa non fugiat, esse illo voluptatibus dolores voluptatum quia dicta odit incidunt maxime consequuntur alias, ipsa nostrum asperiores amet ut incidunt possimus ipsam expedita eligendi.

At quos ullam doloribus praesentium ex id assumenda alias ratione aliquid. Consectetur vero earum modi, aspernatur ducimus quasi quis fuga provident quia et voluptatibus enim, eaque asperiores molestias est voluptate modi, quam tempora molestiae placeat illo. Voluptatem pariatur repellat fuga debitis natus commodi voluptatibus, odio minima alias non nam repellat similique placeat in dolor eum, illo est corrupti ex asperiores harum enim labore necessitatibus vitae, corporis architecto voluptates? Accusantium vitae vero quisquam fugiat earum aspernatur esse, ducimus ipsam nemo quas nesciunt, rerum error dolor aperiam et odio ipsa vel minima magnam ea placeat?

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 3, - 14 - ] - } - }, - { - "pk": 56, - "model": "articles.article", - "fields": { - "body": "

At veniam facilis amet ut?

Tenetur quidem recusandae, fugiat laborum repudiandae asperiores alias quas corrupti modi perspiciatis doloribus, explicabo rerum similique officia fugiat distinctio magni. Omnis eveniet vitae quisquam iste fugiat, ducimus saepe quia at deserunt aperiam est. Voluptas non voluptatibus molestiae autem repudiandae explicabo, illum vel ad fuga optio rerum inventore velit, neque quia laudantium molestiae odio enim repudiandae dolorem rerum aliquam accusantium placeat.

Numquam accusantium dolor molestiae assumenda odit, libero pariatur harum id quaerat obcaecati expedita, exercitationem illo deserunt dolorem. Officia tenetur consequatur numquam.

Ea quo culpa ullam iusto vero iure ipsa, nostrum repellat at ipsam expedita amet ut accusantium porro nihil, eligendi labore fuga aperiam maxime consequatur velit blanditiis omnis aut explicabo ut, neque nostrum vel repellendus nobis minima vero aperiam eligendi modi, quod molestiae inventore? Ratione natus error amet voluptas maxime reprehenderit earum non sed sapiente, consequuntur qui earum deleniti neque nobis corporis laboriosam quisquam quam ipsa, veritatis nisi dolorem velit harum asperiores aperiam perferendis labore atque necessitatibus, exercitationem possimus atque? Consequuntur nulla ipsum sapiente quos, et iure ipsa repellendus dolorum tempora pariatur aspernatur impedit, quis sunt unde sed earum, perspiciatis numquam magni officiis, cupiditate alias ab minima aliquid neque harum culpa doloremque. Blanditiis repellendus nam, neque nam eveniet eius eaque placeat numquam impedit sit repellat, nulla tenetur corrupti beatae quaerat magni harum laudantium culpa?

Laborum odio similique dicta dolorem dolores tempore praesentium. Architecto dicta similique alias reiciendis expedita obcaecati praesentium eos aliquid dolorem ipsam, ad cupiditate laboriosam ex, deleniti reiciendis sequi culpa asperiores, architecto illum natus maiores? Voluptatibus magni ad sapiente ipsam optio dolores, cumque a possimus delectus distinctio. Maiores ab eum dolor dolorem et assumenda sit doloribus, nam doloribus voluptates labore asperiores consequatur temporibus, minima repellat quaerat ipsum dolorum nihil unde eaque fuga.

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 3, - 12, - 13 - ] - } - }, - { - "pk": 57, - "model": "articles.article", - "fields": { - "body": "

Neque earum quae voluptas maiores dolore, cupiditate illum earum sequi vel architecto fugiat ad, impedit perspiciatis dolores possimus expedita facere temporibus sint cupiditate? Quasi a deserunt fugiat hic ad atque, expedita necessitatibus sed, cupiditate assumenda ducimus, modi distinctio velit veniam amet minus, quae cumque ratione minus atque inventore laudantium nostrum totam. Cupiditate nesciunt reiciendis, nemo mollitia commodi, tempore explicabo corrupti quibusdam facere?

Distinctio molestias modi. Porro odit itaque veritatis maxime. Beatae est iste ab explicabo neque assumenda qui nisi animi, perferendis similique aspernatur id vero dicta ipsam, exercitationem dolore reiciendis, exercitationem voluptate voluptates officia magni laboriosam quibusdam nihil similique, aliquid libero nihil labore adipisci ex enim nam natus veritatis odio? Dolor dolorem adipisci ad magnam eaque dicta maiores ullam esse explicabo deleniti.

Nulla debitis quia quam sint blanditiis modi itaque, illum nostrum voluptates obcaecati, impedit illum officia harum inventore, sunt ea quas optio, itaque excepturi veritatis ipsum nemo?

Consectetur sequi voluptatum eos ea, fugiat dolore temporibus sunt molestiae? Tempore cumque nulla quidem laborum numquam esse voluptatum, nobis omnis accusantium animi hic recusandae enim fugiat totam adipisci nulla repellendus.

Molestiae ipsa dolores?

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 3 - ] - } - }, - { - "pk": 58, - "model": "articles.article", - "fields": { - "body": "

Temporibus numquam animi beatae officia saepe illum enim nihil non quisquam ullam? Aliquam dolor repellendus distinctio nemo consequuntur tenetur deleniti, doloribus ipsam reprehenderit, similique omnis autem aspernatur libero expedita ullam dignissimos corrupti? Ipsa ratione totam odio sint sapiente vel necessitatibus voluptatibus molestias, magnam molestias optio deserunt debitis explicabo repellat exercitationem dolor, laboriosam doloremque incidunt voluptates, quas quidem sint suscipit id.

Cum maxime ullam libero quas modi odit inventore, magnam eius adipisci reiciendis cumque placeat harum incidunt accusantium, beatae laboriosam ipsam et enim incidunt accusamus? Libero dolorem possimus? Quas debitis illo. Ipsam reprehenderit nulla provident dolores molestiae perspiciatis laboriosam adipisci eligendi ipsa, nisi quidem mollitia, laboriosam magni quasi odit, quo dolorem architecto temporibus eveniet magnam voluptatum vero expedita error?

Impedit quis molestiae, architecto aspernatur placeat sapiente, dolores ratione quaerat sit tempore est reprehenderit soluta, magni inventore impedit ipsum repellat neque maiores officia omnis debitis nemo reprehenderit? Dolorem autem dignissimos repellat numquam voluptas corporis sequi neque alias voluptatem, optio reiciendis deleniti nemo provident voluptatum cumque impedit, harum nostrum reprehenderit quos incidunt debitis sunt voluptatem modi eaque neque ipsa, expedita accusamus provident rem quo. Quas amet id hic? Deserunt minima possimus sunt totam, perspiciatis dolorem sapiente quos fugit repudiandae eius possimus quam, repudiandae modi quaerat.

At eaque alias, accusantium magnam inventore quaerat officiis, dolore eum harum doloremque sunt quaerat, necessitatibus minima reiciendis id quibusdam a molestias deleniti? Commodi natus laborum ipsam praesentium suscipit rem amet neque non, nisi necessitatibus explicabo perspiciatis autem fuga in, ducimus saepe a, quos deserunt dolorem voluptate nisi perspiciatis deleniti laudantium. Hic distinctio inventore alias at amet, debitis obcaecati soluta nisi eaque necessitatibus odit asperiores aperiam molestias, itaque eius minus voluptates quos tempore assumenda iusto, excepturi repellendus illo animi sed aliquid labore eligendi repudiandae.

Eos reprehenderit qui rerum, nostrum alias possimus, consequuntur perspiciatis facere quas numquam voluptates sit maxime possimus qui, assumenda aspernatur ipsum pariatur ipsam, deserunt nobis facilis. Assumenda mollitia ab rem nisi voluptatem blanditiis numquam eius similique, temporibus nemo dolore eligendi, commodi omnis eos error cumque veritatis sed aspernatur similique.

Quia inventore non a eveniet doloribus totam, ducimus fugiat nihil totam laudantium sapiente fuga minima eaque saepe, possimus ut quos corrupti deleniti modi voluptatum libero explicabo est, eveniet eius omnis asperiores assumenda numquam repudiandae? Aliquam dignissimos iure quae corporis repudiandae voluptatum, culpa voluptate nisi, nihil laudantium necessitatibus expedita error assumenda molestias placeat iure, ut a adipisci perspiciatis officiis maiores, molestiae hic rerum amet commodi possimus expedita tenetur facere nesciunt. Atque eligendi quis, totam ipsam aspernatur ad omnis adipisci, corrupti adipisci harum.

Nihil repudiandae dolorum, ullam ut qui exercitationem molestias odio numquam reprehenderit consequuntur asperiores reiciendis quas, facere maiores enim velit praesentium fugit, voluptates animi delectus blanditiis praesentium iste dolores minus tempora ipsam. Doloribus culpa qui perferendis blanditiis temporibus iure, debitis ipsum quo eius dolores voluptatem soluta id. Qui laborum tempora explicabo aut at est distinctio omnis magni itaque, culpa illo consectetur accusantium nam libero facere impedit dolorem, molestiae labore pariatur natus corporis recusandae magni impedit praesentium ad laboriosam autem, quis quo odio consequuntur sunt atque, a expedita ea explicabo distinctio autem ipsam? Corrupti fuga provident tempora explicabo sequi obcaecati iusto voluptas excepturi.

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 10, - 13 - ] - } - }, - { - "pk": 59, - "model": "articles.article", - "fields": { - "body": "

Veniam est molestias ratione quidem, enim illo architecto at accusantium laudantium accusamus, laboriosam incidunt fugiat adipisci sequi blanditiis non excepturi voluptatum suscipit.

Ab temporibus soluta in voluptate, quod praesentium odit tempore soluta, quis cumque necessitatibus labore nisi optio nulla impedit recusandae et, et eius sit nam vitae. Neque nulla perferendis assumenda architecto sequi ipsam voluptatibus ab soluta, mollitia quo veritatis asperiores cupiditate excepturi dignissimos aspernatur animi obcaecati placeat? Fuga porro esse deleniti, sapiente distinctio ullam dicta odio nulla quasi quo debitis quas quod? Fugiat nostrum a molestiae porro dolores, similique praesentium laborum perferendis modi non, modi amet hic exercitationem tenetur est similique, tenetur dolorem velit dolore consectetur.

Facilis sunt voluptate iusto maxime distinctio, cum distinctio iure laboriosam eveniet facere impedit eius unde, illo rerum enim nostrum laudantium id veritatis velit suscipit molestiae molestias. Ipsum dolorem pariatur praesentium sapiente adipisci delectus laborum.

Consectetur veritatis id velit ut, vitae error natus. Animi nam obcaecati quia saepe quo aliquam porro et eveniet debitis voluptatibus, saepe eveniet sit quisquam veniam modi similique qui, vero quas unde suscipit fuga error, unde accusamus explicabo aliquid voluptatum obcaecati perferendis quo ad mollitia quod laudantium. Voluptatibus esse nostrum aliquid earum optio, temporibus voluptatum eos non veritatis esse error maxime rerum tempora doloribus, facere ducimus sequi animi amet natus labore ad, maxime unde omnis est labore dicta? Minus commodi odio voluptate harum ipsa explicabo officiis, ullam culpa debitis in voluptate aperiam quae magnam rerum ipsum repellat enim, laudantium atque architecto repellat ipsam fuga sequi mollitia?

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 7 - ] - } - }, - { - "pk": 60, - "model": "articles.article", - "fields": { - "body": "

Velit ex ea quam ullam voluptatibus animi itaque necessitatibus maiores doloribus minima, animi cum inventore dolorum commodi repudiandae cupiditate et modi recusandae, quis corrupti ea ipsum id asperiores architecto aspernatur at ipsa. Facere vitae dolorem doloremque sunt non ipsum atque placeat deleniti praesentium tempore, iste ratione recusandae aliquam ipsa voluptatum, a illum earum voluptatum magni, adipisci in ipsa sit natus nostrum quae quia libero vero cumque ea, provident incidunt vitae possimus ipsum. Pariatur exercitationem ut dolorum laboriosam iusto nemo id obcaecati dolor quis, amet mollitia culpa quasi atque nulla sequi vero cumque quos sapiente corporis, nihil quos impedit officiis doloribus numquam corporis illum inventore fugit?

Dolorem aliquid quis molestiae beatae temporibus doloremque illum dolor rerum, fugit amet dolorem ratione recusandae hic unde suscipit molestias quam harum, recusandae aperiam voluptas dignissimos.

Quia error ut unde nostrum, fugit maxime voluptatem nulla, veniam necessitatibus voluptates similique dolorem accusamus eveniet totam doloremque laboriosam dicta ab, dolores quam est enim, omnis provident minima tempora fuga reprehenderit quam voluptatibus maxime? Numquam porro aut unde a magnam soluta, facilis similique blanditiis minus voluptas voluptatum reiciendis fuga optio ipsa eaque iure, neque nihil nemo dolor expedita?

Totam corporis explicabo rerum assumenda, unde possimus harum modi ipsa itaque, tenetur magni officia distinctio animi ducimus provident, voluptatum laudantium laboriosam error optio odio tenetur ut quae modi numquam, voluptas quaerat eos unde beatae dignissimos necessitatibus nulla voluptatibus cupiditate. Voluptatibus dolore itaque libero cupiditate facilis voluptates ea placeat porro.

Deserunt possimus quisquam vitae sit hic commodi minus neque? Sapiente aut consectetur quae perspiciatis, debitis suscipit modi sint amet hic totam voluptate iure?

Nisi aliquam tempore doloribus cumque sint laborum, illo officiis at quasi praesentium sed, iusto tempore sapiente distinctio architecto cupiditate commodi dignissimos praesentium? Error asperiores ipsum placeat dolorem. Quaerat sunt odit. Nulla dolorum exercitationem dolores?

Fugit perspiciatis quas autem ea, quisquam non animi rem in nulla ullam, corrupti a doloribus maiores unde atque inventore saepe dolor quam voluptatem, blanditiis repellat suscipit veniam beatae hic consequuntur, quam consectetur repudiandae et a debitis eligendi iste dolor aperiam dolorem? Ducimus voluptatem est tempore nobis iusto ab maiores voluptate possimus quasi odio, impedit quo praesentium similique possimus omnis corporis ea sed?

Quia adipisci aut error in ducimus amet ullam neque expedita facilis pariatur, fugit nihil nobis enim ea praesentium adipisci fuga quod laudantium perferendis sunt, perspiciatis quas aliquam minus voluptates minima reprehenderit perferendis in ab sint, cumque praesentium iure voluptates facere eos quo illo. Ducimus nostrum commodi officia nisi repudiandae id numquam rem. Maxime minima sequi, saepe dolores ipsum ut incidunt iusto.

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 3, - 8 - ] - } - }, - { - "pk": 61, - "model": "articles.article", - "fields": { - "body": "

Nulla neque nobis labore, veniam reiciendis aperiam nam sequi corporis dolore consectetur praesentium unde, a minus quas sapiente repellat veritatis tenetur placeat corrupti dolores, itaque error repudiandae obcaecati nostrum sunt numquam veritatis iusto explicabo vel, corporis est error quo animi autem consectetur a culpa tempora? Molestiae reprehenderit fugiat eos nam inventore placeat cumque accusamus magni accusantium, aperiam rem dolorum alias iusto quia maxime nisi ea, deserunt tenetur ullam, corporis neque id ducimus corrupti quae ipsum voluptatem reiciendis adipisci incidunt tempora, nostrum minus deserunt expedita eaque tenetur dolorem excepturi doloremque quisquam sint?

Debitis ducimus consequuntur officiis, corrupti quaerat beatae excepturi expedita quis facilis ad tempore? Animi odit reprehenderit perferendis, sint obcaecati recusandae voluptatem?

Dolorem nemo error impedit. Eius ea molestias officiis vero, at eos quos veritatis doloremque, quos pariatur sed minus harum molestias doloribus a laboriosam eaque eligendi?

Quas doloremque aut, facere sunt inventore explicabo ipsam iusto repudiandae ipsa natus, sunt nobis porro quisquam ullam dicta totam vitae provident quasi eum, asperiores voluptatibus earum dolorum, sequi quam provident saepe voluptate illo vitae dignissimos excepturi corrupti veritatis? Quisquam ab deleniti voluptatum, qui nostrum tempora non praesentium illum labore quae natus quam consequatur distinctio? Molestiae accusamus corrupti eligendi saepe aperiam voluptatem recusandae dicta neque rerum, at dolorum incidunt suscipit unde quisquam maiores ad, incidunt ipsa nulla ab quas enim deserunt iure atque omnis est voluptatem, necessitatibus consequuntur ut fuga laborum nostrum dignissimos placeat quibusdam similique id, repudiandae similique blanditiis illum modi expedita nisi quos omnis. Recusandae at corporis animi, vitae id voluptatem reprehenderit odio vero dicta inventore rem ratione debitis, laborum quas nesciunt, quas doloribus modi sequi illo fugit numquam in, labore amet eaque accusantium?

Iste corporis facere maxime tempora aliquam, nemo repudiandae ullam, saepe est asperiores ut omnis. Architecto tenetur dolorum officia doloribus cupiditate velit culpa iste, esse deserunt dolore. Saepe nemo quidem quae blanditiis. Aliquid molestiae dolorum explicabo inventore, dolorem officia ab mollitia deleniti vitae consequatur, quod et ducimus nostrum, ipsum atque facere quidem laudantium hic voluptatem incidunt.

Pariatur dicta ipsa recusandae nemo vitae quod aspernatur asperiores laboriosam, error dolores debitis nemo tempore a id reiciendis odio modi et, nostrum labore exercitationem pariatur mollitia quas accusamus animi, odit voluptatum officiis distinctio cumque non veritatis perferendis quia autem. Odio tempora quam dicta hic corporis, beatae ullam quod dolor atque incidunt libero sapiente velit voluptas, veritatis quae blanditiis optio vel ea fugit, nam sed accusamus distinctio, culpa amet similique aliquam voluptas odit aut asperiores libero voluptatem quibusdam.

", - "sections": [ - 5 - ], - "sites": [ - 1 - ], - "authors": [ - 6, - 7 - ] - } - }, - { - "pk": 62, - "model": "articles.article", - "fields": { - "body": "

Voluptas consequuntur nesciunt exercitationem quia expedita sapiente unde praesentium quibusdam, reprehenderit nesciunt eius totam mollitia quis, reiciendis quae amet, tenetur reprehenderit sed labore nisi ullam repellat corrupti nemo similique ipsum vero. Sunt labore natus fuga obcaecati fugiat officia optio sit explicabo expedita, voluptates molestiae ipsum porro aspernatur?

Earum alias officia ex sunt recusandae eveniet fugiat praesentium sapiente nisi, omnis rerum necessitatibus a velit. Id odit nobis, fugiat suscipit minus expedita et, non tenetur explicabo, quisquam soluta in distinctio non eaque ipsum sequi alias illum, vero repellat atque est non nam aspernatur ipsa accusamus nobis doloribus expedita. Quod accusantium consequuntur necessitatibus sint?

Aliquam cumque quis minima architecto vitae blanditiis suscipit, consectetur sapiente mollitia voluptates labore, ducimus repellendus vero dolore voluptatum molestiae hic porro aspernatur? Sunt eum a ullam aliquam illum commodi, reiciendis dolor totam a odit harum voluptatum aliquam suscipit, distinctio eius asperiores consequatur, nostrum nobis ipsa ipsum repudiandae vel odit dolor in quibusdam numquam?

Quo soluta qui fugit, dolores ipsam quibusdam rem porro adipisci illum, minus minima quia officiis vel quo et excepturi nobis consequatur, voluptatem impedit laborum quidem cum nam ea molestias. Enim vero illum saepe earum sit ipsum, vitae ratione illo accusamus voluptate, praesentium in debitis tenetur voluptates. Porro soluta fugit aspernatur tempora quaerat adipisci earum vel, necessitatibus eos repellendus provident ipsam incidunt eius rem animi doloribus delectus repellat, ea ab quibusdam magni unde tempora in quam ex culpa amet possimus, ad quisquam perspiciatis esse magnam quia molestiae, deleniti nesciunt incidunt iste quia provident officiis? Facere culpa aspernatur molestias consectetur excepturi obcaecati pariatur, eum recusandae alias nam maiores odio, nulla cumque dicta esse fugiat officia quibusdam sed eaque quidem voluptates, quod quis nulla alias.

Ad dicta sunt dolores deleniti corrupti harum officiis rem autem esse, asperiores animi culpa maiores.

Iste eaque voluptates ea, facilis sequi culpa sit a in quos atque quae harum suscipit possimus, iste eos explicabo sed modi possimus id laboriosam consequatur obcaecati repudiandae, recusandae accusantium magnam at dignissimos, nemo laboriosam nostrum explicabo natus quibusdam eius eos. Laboriosam repellat consequatur eaque, hic iure enim animi dolorem aperiam ipsam explicabo aliquam facilis expedita repudiandae?

Laboriosam eveniet voluptates culpa nisi, incidunt nam debitis aut saepe porro tempore non repudiandae sunt beatae, inventore provident architecto molestias aperiam numquam sequi libero modi fugiat veniam, quasi aliquam officiis vel placeat. Veniam aliquid maiores cupiditate corporis perspiciatis aliquam, ipsum vitae consectetur blanditiis hic saepe eveniet aliquid, et molestias explicabo tenetur repellat doloribus, animi harum molestiae eveniet maiores reprehenderit quia distinctio, corporis recusandae labore et nulla earum molestias porro aspernatur unde dicta voluptate?

Ex autem vel dolorem accusantium facere corrupti non placeat beatae accusamus, ut laudantium suscipit tenetur?

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 7, - 10 - ] - } - }, - { - "pk": 63, - "model": "articles.article", - "fields": { - "body": "

Magni saepe debitis architecto optio perferendis ut possimus dignissimos? Eos quis voluptatem dolore velit quos inventore possimus, voluptatum ipsam magni est asperiores incidunt fuga earum amet architecto dolor quibusdam.

Harum sint deserunt velit, unde quas maiores, est ratione aliquam. Possimus nemo architecto assumenda explicabo maiores? Enim assumenda temporibus nesciunt quam soluta id reiciendis neque cum, nemo rem ipsum repudiandae sunt suscipit unde, vero assumenda libero molestias impedit sunt hic omnis blanditiis expedita labore?

Omnis ut id blanditiis voluptas optio nesciunt, aliquam sapiente in vitae laudantium similique perferendis quibusdam quae numquam, omnis repellendus corporis exercitationem sapiente blanditiis enim officia. Officiis id sit, necessitatibus facere dolor praesentium minus? Inventore quibusdam officia ratione consequatur iure facere fugit molestias hic sapiente, sit magni blanditiis culpa, maiores quam sit vero a quisquam cum aperiam. Dolorem rerum perferendis aliquid asperiores corrupti officiis dicta non consequatur doloribus rem, numquam odio animi nisi aperiam laudantium maxime sit vitae id cupiditate tempore, saepe aliquid obcaecati, sint fugiat eligendi, doloribus optio totam dolore voluptatibus ducimus possimus sequi dolorum corrupti deserunt recusandae.

Dolor cum explicabo nam voluptatem quisquam architecto laudantium commodi maiores nesciunt beatae, enim a repellendus harum hic veritatis necessitatibus, sed ducimus neque illum possimus consequuntur quia reprehenderit non, ipsum nam ipsam officiis asperiores quibusdam porro omnis consequatur nihil, sit illum earum? Voluptas consequatur rem praesentium perspiciatis aliquid amet deserunt voluptatibus, modi odit magnam, vitae quam amet non? Laborum hic eos esse dignissimos, praesentium dolores quo commodi tempora nam pariatur excepturi cum omnis accusamus quia, dignissimos reiciendis ab autem aliquam soluta, delectus cumque temporibus cupiditate. Eaque distinctio quas voluptates possimus assumenda molestiae magni numquam autem commodi necessitatibus, ratione similique tenetur totam id corporis esse consequatur itaque, sequi eos iusto voluptatibus quae ut ullam praesentium.

Quam inventore itaque deleniti numquam quaerat fuga ut nihil reprehenderit fugiat. Aliquam eius veniam architecto eveniet unde reiciendis. Reiciendis eveniet quaerat exercitationem, iure similique est natus facere nihil alias. Dolores qui provident ipsa ut a odio eveniet magnam, ratione perferendis excepturi officiis in dolore esse deserunt neque qui culpa, quis eos perspiciatis, quibusdam placeat aliquid minima nostrum eius animi consequuntur similique molestiae quam, cupiditate amet optio unde reprehenderit.

Eligendi asperiores delectus velit beatae sit modi tenetur dolore culpa quisquam nam, quos iste alias? Voluptate exercitationem ad consectetur accusamus molestiae facilis laborum iusto laudantium aperiam assumenda, minus id cumque aut dolorum magni voluptatum, sequi aperiam perferendis porro voluptatem quae nobis explicabo, asperiores doloribus molestias. Hic voluptates animi quidem temporibus beatae, asperiores voluptate nihil quasi qui consequatur eos cum minima voluptates, aliquid reiciendis modi laborum aperiam, placeat suscipit culpa molestiae incidunt alias molestias esse maxime beatae? Nihil similique sint error libero dolorem, sunt quaerat amet, harum illo perferendis reprehenderit consectetur consequuntur.

Repellendus dolorum cupiditate ullam, fugiat dolorem minima perferendis nesciunt, amet sit omnis optio inventore tenetur modi porro corrupti, minima iste sequi fuga perferendis nihil dignissimos exercitationem at totam animi a, sequi officia sapiente? Autem in optio a.

Cupiditate quo aut quis ducimus perferendis numquam eos, maiores aut eum, doloribus labore placeat voluptatibus asperiores obcaecati officia voluptas saepe, natus eaque quidem atque quia ut? Quia sapiente adipisci doloremque ullam nisi, suscipit voluptas nemo totam, ipsa distinctio nam amet cupiditate nihil blanditiis esse deserunt omnis eaque ratione, voluptates animi maiores? Repudiandae voluptatum aspernatur quia doloremque deserunt architecto tempore dolorem ab distinctio, odit nemo similique sint incidunt culpa veritatis facilis quas in dolores, porro voluptas natus possimus atque provident facilis?

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 5 - ] - } - }, - { - "pk": 64, - "model": "articles.article", - "fields": { - "body": "

Perspiciatis reiciendis vitae dolorem illo porro quisquam, fugit obcaecati ullam aspernatur dolorum? Beatae mollitia distinctio dolore tempore minima ullam voluptatum reprehenderit earum optio. In ullam quasi nesciunt voluptatum, pariatur illo voluptates ullam quis quae beatae consectetur, at ab fugit commodi mollitia velit temporibus quo ex cum, omnis minima voluptas placeat nulla. Incidunt culpa enim.

Nulla doloremque sapiente maiores cupiditate porro? Suscipit totam esse cum voluptate, totam tempore provident cum error illum quas dolorum non culpa. Ut assumenda harum dolor ullam modi quibusdam vel deleniti, autem ratione veniam nostrum, nobis consequuntur numquam nemo asperiores cupiditate aut dolor molestiae non dicta magnam, corporis quos exercitationem in repellendus sed architecto laboriosam iste adipisci, modi et excepturi omnis earum officiis aliquam temporibus.

Pariatur nobis nostrum, quisquam quibusdam asperiores adipisci aliquid numquam consectetur cupiditate sit ut, quisquam veritatis dignissimos, animi quos dolorem eaque unde atque velit natus suscipit ea reprehenderit inventore, necessitatibus aut id molestias sed deleniti magnam omnis facilis quidem. Ea accusantium provident culpa sit autem ut ex consequuntur natus magnam, aliquid dolores praesentium voluptatem iusto nulla ratione provident, aliquid eveniet ea adipisci rem incidunt sit ab maiores esse. Consequatur blanditiis nulla quaerat libero cumque et maiores repellat.

Quos maiores doloribus voluptatem, dicta impedit ducimus minus libero quo temporibus earum voluptates corporis nesciunt, eum doloribus molestiae et natus ducimus qui iusto cumque, cupiditate eligendi distinctio vel magnam? Dignissimos praesentium pariatur illo iusto optio veniam deleniti deserunt, odio voluptas mollitia minima accusantium alias nobis impedit, in ea assumenda ex nobis sed, corporis nulla excepturi esse quod odio? Est rem ipsa fuga tempore quos veritatis neque hic laudantium, quas repellendus omnis nemo voluptates nobis, voluptate inventore assumenda aut, suscipit totam ducimus nostrum voluptate dignissimos ipsam voluptas sapiente ea minus unde, soluta natus laborum saepe earum iure libero eaque minima voluptatibus aliquid praesentium.

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 6 - ] - } - }, - { - "pk": 65, - "model": "articles.article", - "fields": { - "body": "

Illum placeat sapiente ex inventore sequi? Quaerat voluptatum doloribus tenetur aliquam animi nostrum, culpa veritatis atque cumque asperiores exercitationem error accusantium optio, error veniam sit odio maxime unde eaque? Sapiente nostrum officia eius repudiandae rerum omnis, odio suscipit rem vel laudantium eveniet recusandae cumque voluptates, maiores asperiores officiis saepe quam totam tempora nam deserunt quas laboriosam? Numquam rerum architecto, eos esse porro, ad facere consectetur nisi vel dolore unde nam est inventore repellendus.

Magnam quisquam similique veritatis porro soluta suscipit officia incidunt repellat, reiciendis nesciunt voluptatibus similique nobis deserunt sint ipsum totam expedita optio, temporibus vitae hic odit velit fuga adipisci nesciunt sapiente itaque necessitatibus, quos qui eos nisi praesentium vel est accusantium, ipsa perferendis quos dolore impedit eligendi ut id perspiciatis ad in? Beatae itaque officiis sed odio ullam exercitationem ut dolor fugiat mollitia, vero ipsum maiores iure blanditiis minus qui suscipit ullam, laborum voluptates expedita modi, optio asperiores voluptatum consectetur odio. Magni non nobis tempora sapiente laboriosam accusantium esse, neque adipisci incidunt deserunt odit repellat accusantium accusamus impedit et quo nostrum?

Eum delectus porro dicta, repudiandae ex nobis tempora repellat eius sint doloribus velit temporibus inventore, esse amet in nesciunt minus suscipit minima, ut reprehenderit expedita debitis repudiandae. Esse beatae modi laboriosam illo velit fugiat soluta quam aliquid, dolore accusamus animi facilis quia error voluptatem rem, quisquam iure velit eius dolore, magnam aperiam repellendus vero quidem inventore rem doloribus id non harum, itaque tempora nulla expedita saepe ab explicabo perferendis quia excepturi vero autem? Odit adipisci ut quisquam dicta quibusdam natus placeat illo omnis, doloribus natus at veniam vero fuga rerum consequuntur architecto nihil incidunt, enim facere modi veritatis quis fugit numquam fugiat voluptas repellendus laboriosam distinctio, quae consequuntur omnis optio dolorem commodi impedit inventore eum. Corrupti incidunt labore molestias dolores aut quas reprehenderit tempora ullam, illum officia minima modi, pariatur nihil quaerat mollitia fugiat iste vitae corrupti veritatis itaque, ut quaerat sit possimus quam ipsum necessitatibus ratione tempore, vero quos praesentium pariatur necessitatibus rem.

Tenetur commodi tempora sed itaque placeat aliquid aspernatur odit perspiciatis minima odio, debitis vero error cupiditate dolore, sequi deleniti aliquid itaque culpa quam veritatis repellat amet quaerat quos, ipsum accusantium tempora rem quos illo ex delectus tenetur beatae.

Quos laborum excepturi incidunt voluptatibus laboriosam. Assumenda dolorum in recusandae suscipit facere veniam similique minima ullam repellat, quidem similique aliquid libero quod, quidem enim natus magni ex cum quas quaerat similique ipsum, quibusdam delectus porro pariatur animi veniam eaque modi inventore soluta, excepturi ratione adipisci illo reiciendis? Ipsam sed architecto cum ex eum fugit minus, sint harum corrupti sit necessitatibus consequuntur labore omnis, dolores quam iste consectetur asperiores voluptas officia deleniti magni amet quas nihil, nesciunt est officiis fugit tempore nemo natus eum fuga, suscipit velit est corrupti.

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 12 - ] - } - }, - { - "pk": 66, - "model": "articles.article", - "fields": { - "body": "

Cum reiciendis dignissimos maxime quasi obcaecati inventore repudiandae tenetur debitis ad vitae, soluta labore obcaecati iure deleniti incidunt consequuntur, voluptate esse reiciendis nisi voluptates, accusamus deleniti iste ratione rem voluptates totam veritatis ab nulla laudantium adipisci, autem maiores quidem?

Suscipit esse voluptatem facere qui?

Sit voluptatem libero, dignissimos doloribus corrupti voluptas sequi magnam exercitationem, officia magni quos debitis illo reiciendis eos aperiam ea iusto quas aliquid, obcaecati voluptate voluptates minima sed repudiandae consequatur nostrum harum deleniti modi, perferendis voluptas illo labore. Aut totam magnam hic blanditiis eligendi commodi eveniet, deserunt quidem corporis odio et similique quasi a sapiente. Fugiat aliquid sapiente molestiae veritatis? Voluptatem consequatur magnam officiis fugit incidunt labore veritatis, magnam quis eum sapiente numquam veritatis, totam porro odio voluptate quod mollitia tenetur ad incidunt itaque neque, aliquid maiores at eveniet, fugiat voluptas repellendus molestias ab perferendis quam quod beatae earum officiis?

Aperiam accusantium hic odit non natus, culpa odio ea saepe officiis iusto voluptatum earum excepturi mollitia dignissimos, cum doloremque eligendi consectetur eaque dolor commodi, mollitia in saepe. Deserunt amet repellendus maxime laudantium ipsam, nesciunt fugiat mollitia at reprehenderit voluptatum perspiciatis. Nihil sed veniam iste. Maiores velit voluptas possimus cumque sunt repellat nemo delectus dicta esse est.

Molestias sunt laudantium saepe, tempora mollitia hic ab quos et deserunt similique sit, unde delectus iure impedit consequuntur error, iure ratione provident sunt eveniet aliquam ea veniam nesciunt omnis.

Culpa quibusdam magnam ullam aut quas facilis voluptatum maxime iste rerum quo, rem velit facere necessitatibus, molestias cum neque tenetur reiciendis eligendi sunt labore aspernatur est, ipsum sequi quas quae laudantium, amet aut praesentium eum?

Ipsa quaerat quo laudantium illo ratione, iste commodi ea voluptate provident harum laudantium quidem.

Cum alias id quas similique exercitationem in distinctio labore accusantium.

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 6, - 8, - 9 - ] - } - }, - { - "pk": 67, - "model": "articles.article", - "fields": { - "body": "

Adipisci cum nulla laboriosam placeat. Consequatur iste veritatis totam eos ratione exercitationem inventore dolor voluptatem dicta quos, minima eos veritatis repellat earum commodi, obcaecati odio omnis asperiores, deleniti inventore animi sunt quisquam hic, error voluptatibus reiciendis harum cupiditate corrupti pariatur officia dolor ut accusantium qui?

Ratione error non modi vero eos est ex quasi repudiandae, perspiciatis animi earum aliquam porro eaque cumque labore repellat velit voluptatum sit, commodi nihil voluptas voluptatem nesciunt rerum omnis? Repellat cumque ducimus quibusdam dignissimos corrupti aliquam molestiae, quia optio quasi consectetur rerum eaque debitis blanditiis possimus, in tempora aspernatur ab hic aperiam harum eum minima temporibus repellendus, molestias ratione eveniet nobis cum accusantium eaque enim, inventore quae fugiat atque et illo animi nobis?

Est vitae sunt ab vel ipsa aperiam id.

Porro iure enim rem a consectetur, possimus ad debitis adipisci facilis doloribus nobis placeat soluta alias harum iure, distinctio sed vel vitae necessitatibus eos quod quo earum dignissimos nobis unde, temporibus unde beatae at, in facere maiores ipsa exercitationem explicabo harum.

Voluptatem cum at dicta porro voluptas, perspiciatis cum tempora quod quisquam nisi obcaecati, labore hic minus tempora possimus animi dolor modi, alias ex magnam, praesentium porro exercitationem suscipit ipsa nulla magnam officia earum ab illum minus. Voluptatum pariatur nam hic fuga nesciunt obcaecati dolores, deleniti veniam harum culpa repellendus molestiae possimus dignissimos est libero. Quisquam quia rem repellendus voluptas consequuntur voluptatum impedit, modi corporis perspiciatis mollitia architecto veniam nesciunt minima distinctio quaerat dolor, sunt sit necessitatibus quos quod, sequi laborum sunt illo, tempora illum cupiditate ut eveniet debitis odit enim reprehenderit possimus ratione natus? Dolorem reiciendis fugit ducimus laborum officiis, vero adipisci autem, laborum quae similique nemo excepturi distinctio doloremque velit debitis nihil numquam?

Fugit maxime et libero voluptatem hic tenetur recusandae amet enim, dolores consectetur harum ut commodi eius iusto temporibus neque. Cum voluptatibus nulla ut pariatur iste ullam quas aliquid possimus consectetur.

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 2 - ] - } - }, - { - "pk": 68, - "model": "articles.article", - "fields": { - "body": "

Provident voluptate qui consequuntur repellendus perspiciatis fugit, voluptatibus nesciunt incidunt vitae dolor neque commodi pariatur cum natus dicta, sapiente enim obcaecati architecto in voluptatem magni omnis ipsum dolorem, facere ad similique, amet necessitatibus quae ab? Corrupti itaque quia iure consequatur exercitationem consequuntur, ducimus illum nam vero in minus alias neque labore atque, accusantium repellat quam minima consectetur, eligendi sapiente odit consequuntur voluptatibus veritatis? Eos iste nisi architecto sapiente ipsum eius adipisci incidunt accusamus perferendis, veniam autem ipsa maxime libero laudantium neque sint est accusantium, cum aliquid vel labore commodi ipsum doloribus consectetur veniam culpa, eius fuga veniam, expedita aliquam necessitatibus amet rem dolore ab tenetur?

Asperiores natus veritatis ad voluptates quis amet nobis dicta necessitatibus, ducimus fuga repudiandae, atque perspiciatis natus corrupti eligendi qui debitis architecto fugiat totam cum, corporis error pariatur sed a voluptates, ex fugit ab id quaerat praesentium amet enim eveniet nam saepe sunt? Eligendi alias quasi dolores nam aut reprehenderit, sequi accusantium labore nam aliquam eligendi temporibus laborum quod, nemo adipisci eius similique ut asperiores fugit, fugit laborum officia natus aut obcaecati laboriosam sunt minus, at doloribus adipisci eos distinctio aliquam tempora autem repudiandae dignissimos optio necessitatibus. Aut provident laudantium non ad dicta nemo quod nihil, quisquam nihil sequi perferendis ipsum aut doloremque pariatur, quaerat in ut.

Nemo voluptate repellendus et nulla minus deserunt labore commodi molestias ad ipsum. Nulla voluptates soluta provident ratione animi veniam architecto fugiat vero eveniet, adipisci deleniti autem maxime ad quasi consectetur id, culpa rerum incidunt minima veniam dolorem temporibus rem deleniti modi amet asperiores? Distinctio quasi laboriosam, repellat earum optio excepturi tempore quos explicabo corporis hic voluptatem non sed, expedita provident ipsam impedit corrupti, maiores ullam ipsam deleniti sapiente explicabo. Dolore nemo mollitia cupiditate aperiam, accusamus aut corporis odio quasi recusandae quas et ab enim?

Enim magnam ipsam perspiciatis ut, neque magnam dolores laudantium praesentium ratione fugiat, nihil ex hic odio vero saepe eaque, quod illum veniam suscipit id ea quas sapiente? Laboriosam natus quibusdam asperiores atque culpa at non, nemo dolores suscipit, iure odio dignissimos corporis officia necessitatibus ea facilis nostrum molestiae culpa, dolorum sapiente molestias expedita, eligendi placeat eaque.

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 4 - ] - } - }, - { - "pk": 69, - "model": "articles.article", - "fields": { - "body": "

Tempora consequatur quae consequuntur nam quod perferendis accusamus rerum. Cupiditate quasi facilis quaerat blanditiis deleniti dicta, aliquam natus repellendus maxime veritatis accusantium corporis. Non expedita quam quibusdam sunt neque, sapiente dolore id quidem qui, quisquam reprehenderit dolore, atque veniam soluta architecto id pariatur in minima repellendus neque, deleniti voluptatem molestias laborum velit.

Nemo odio quidem ullam autem sequi exercitationem ad voluptatum, libero consequuntur maiores itaque eius porro sapiente a.

Repellendus hic eius quis possimus ipsa necessitatibus a autem cumque dolores. Rerum aliquam accusamus temporibus natus nam aperiam officia sint suscipit, natus ullam consequuntur maxime fugiat dicta quas ea rem molestiae est, rem tempore nesciunt voluptates repellat cum commodi?

Enim quia eaque quae molestias ipsa animi exercitationem cum quam reprehenderit dolorum, rerum pariatur sit reiciendis aliquid hic magnam facilis voluptatibus illum vel beatae, ea quos eos assumenda voluptate impedit totam, totam autem perferendis assumenda suscipit, rerum et debitis distinctio placeat praesentium minima. Quas non quibusdam dignissimos dolores id vero repellendus, saepe dolorum praesentium magni atque cum, incidunt reprehenderit magni itaque pariatur ullam quod. Ut consequuntur voluptas repudiandae repellat commodi mollitia libero maxime?

Sed animi accusantium repudiandae eum rerum vero debitis ab, porro veritatis fugit iste quisquam rerum optio magnam aperiam delectus vitae saepe? Adipisci accusantium laborum possimus alias assumenda odit excepturi quisquam amet, quas illo nostrum quos neque porro hic ut a tempora, quaerat unde in doloremque iste, nulla harum cum doloremque minus, earum eum magni deserunt nostrum dignissimos? Dicta ducimus dolore corrupti odit doloremque recusandae, ipsa aliquid eius ratione ipsam deleniti hic, ducimus quia amet aspernatur quis eveniet accusantium veritatis aut, saepe tempore esse eum consectetur excepturi deserunt ipsam in corporis necessitatibus, tempore repellat adipisci incidunt impedit id. Assumenda amet quam architecto, ratione magni libero incidunt vel ab doloribus porro, delectus quaerat culpa molestias optio tenetur omnis assumenda molestiae.

Hic vero ipsa suscipit ullam officia ipsam iste commodi? Repellendus doloremque beatae unde velit atque rem dolores quasi amet fugit, et dolores itaque hic tempore voluptatem, labore pariatur voluptatibus minima odio tempore quo corporis architecto in? Minima ipsum consequuntur ea molestias placeat corrupti blanditiis ut.

Ea eveniet temporibus doloremque odit dolorem similique eos exercitationem asperiores, eos dolor ex aliquam, provident explicabo beatae voluptatem dolor tenetur. Error dolore unde mollitia, aut cumque suscipit neque dolores sequi a consequuntur reprehenderit soluta qui, qui ipsum magnam repudiandae illum impedit? Consequuntur quas rerum facilis veniam harum accusamus id deserunt neque sequi quaerat, dolore porro laudantium mollitia esse eum eius fugiat ratione voluptas adipisci. Obcaecati eius ipsa, ut veniam maiores nemo sequi neque ea tempore voluptas a ipsa dolores, hic ratione illum nihil?

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 6 - ] - } - }, - { - "pk": 70, - "model": "articles.article", - "fields": { - "body": "

Illum nostrum voluptate delectus harum repellendus inventore facilis at aspernatur nulla molestiae, esse maiores assumenda sequi in voluptate neque dolores.

Cumque iusto necessitatibus culpa mollitia, corrupti nobis rerum, voluptatum facere mollitia doloremque, nulla velit soluta illum fuga eligendi minus voluptas doloribus laudantium non accusantium?

Dolorem odit eligendi eveniet laborum. Amet earum laboriosam cum nesciunt quos nemo illo dolor delectus obcaecati, soluta impedit maiores rem maxime quos dolores, rem aperiam nostrum nam est inventore maiores omnis hic laudantium, asperiores impedit officiis qui eligendi consectetur iure nesciunt incidunt voluptatibus assumenda cum? Ea nisi quae, culpa totam modi facilis maiores perferendis iure rem tempore.

Delectus incidunt sunt mollitia asperiores optio quis voluptas alias?

Atque error voluptatibus hic iure odit cumque deserunt fuga accusamus repellat culpa, accusamus rerum vero consequuntur dolore, perferendis quidem veniam rerum?

Necessitatibus eveniet quibusdam modi repudiandae quo, obcaecati iure totam veritatis reprehenderit beatae tempore alias tempora dolorem, dicta ratione earum alias. Ratione facere architecto iste nulla dolor iusto perferendis, ratione earum distinctio sit fugiat dicta illo cumque maiores illum, atque animi saepe nulla, voluptate dolorum at fugit corporis odio, voluptatum deserunt voluptates rerum? Eius quidem commodi doloremque deserunt laborum accusantium consequuntur, odit reiciendis autem aperiam asperiores maiores ipsam, modi dolore sunt a architecto, assumenda nobis dolore totam libero tenetur minus?

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 10 - ] - } - }, - { - "pk": 71, - "model": "articles.article", - "fields": { - "body": "

Dicta dolor veritatis id cum omnis atque aliquam molestias dolorem iure sed, hic itaque asperiores nam, perferendis reiciendis quos adipisci tempora culpa tenetur repellat molestiae praesentium molestias distinctio, assumenda est laudantium, ad enim quos sint cupiditate. Repellat excepturi error voluptatum quibusdam at ut iure perspiciatis, iusto in impedit tenetur facere repudiandae voluptas magni similique dolores, tempora eveniet sint corporis aspernatur vero aperiam dolor minima totam adipisci, obcaecati sint laboriosam iure ab qui quaerat error dolorem. Accusamus magnam nihil rem impedit. Accusantium minus consequuntur saepe vel nisi, atque aperiam suscipit laboriosam iure esse officiis, facere cumque quidem ad delectus omnis saepe quis facilis eveniet neque repellat, aut ratione porro vitae qui magni eligendi reiciendis eius praesentium ad, ea aperiam sint dicta quidem.

Autem facere aperiam, optio nobis omnis enim quas dignissimos illum repellendus sint et labore, eum ullam ipsum et doloremque quod at laborum unde laboriosam, incidunt dolorem quas architecto fugit corporis nulla numquam iste? Expedita obcaecati culpa fuga sunt nisi libero minus in at, aperiam deserunt nam voluptatem aspernatur ut id optio ad facilis ratione quis, quo reprehenderit sint? Ad iusto quis et dolorum eum est, ex magni rem deserunt hic placeat dolores et quis deleniti asperiores sit, ex accusantium beatae doloremque natus ducimus harum assumenda error tempore excepturi corrupti, ea reiciendis tempora voluptates facere voluptate perspiciatis dicta modi eos at saepe? Cumque deserunt rerum ullam architecto illo omnis ratione corporis beatae assumenda eum, nostrum quia maxime illo dolores nesciunt sint, et incidunt debitis ipsam sed esse dignissimos libero cumque vero, quas voluptatum facilis asperiores necessitatibus velit?

Consequatur perspiciatis accusamus provident voluptatum earum voluptatibus vel, autem nostrum ad vitae, voluptatum aut et molestias cumque maxime quia, distinctio ipsa iusto asperiores? Minus sit recusandae accusamus labore quibusdam earum eligendi, id vitae earum ut eligendi laborum dicta assumenda, sint cumque laudantium placeat cum id quam eaque, eum numquam fugit. Vitae provident ad consequatur quibusdam ab officia praesentium, tempore consequuntur voluptatem repellat fugit non labore illo provident vel earum dignissimos, dolores atque in consequatur eligendi animi, nobis dignissimos aliquid facilis pariatur.

Ipsa cumque aspernatur nisi incidunt molestiae rem voluptates fuga dignissimos nemo, voluptatibus ad repudiandae cumque aliquam quas, laudantium in consequuntur autem accusantium commodi officia, dolor laudantium animi soluta.

A iure ullam cumque enim vel sequi numquam ipsam, molestiae sed odio ipsum dolorum in distinctio amet asperiores magni eos similique, excepturi nisi voluptatum et cupiditate quae dolor placeat. Quod sed nobis atque corrupti voluptate, sunt provident doloribus at. Voluptate fugiat incidunt ea quidem delectus qui eaque magni cupiditate, temporibus nesciunt dolorum officiis quaerat corporis illum modi autem laborum porro harum. Minima illo quidem totam ex, saepe aliquid temporibus assumenda tenetur dolor quas rem libero, nulla nihil dicta fuga impedit explicabo quisquam eius enim natus.

Officiis repellat soluta voluptatem ipsa, excepturi numquam perferendis repellat quaerat cupiditate eaque quae, quidem adipisci voluptate excepturi vitae dolore sunt pariatur neque ullam magnam quasi, minima unde esse porro voluptates ducimus neque placeat perferendis aspernatur architecto enim, pariatur laborum tempora odio sed ipsam autem soluta. Ut eveniet amet fugit cupiditate doloribus earum quisquam impedit nobis animi facilis, eius nisi esse cumque error quibusdam, deleniti non amet itaque saepe inventore enim fuga iste nam quis, vel tenetur dignissimos magnam unde nam nemo sed similique?

Qui veritatis earum odit hic repellat deleniti, soluta nemo delectus autem tempore dolorum sed aut dolorem, at vel ullam tempora fuga cumque obcaecati inventore laboriosam. Dolores beatae consectetur in a porro officia sit corrupti? Necessitatibus dignissimos nobis possimus ab. Obcaecati aperiam deserunt veniam, saepe reprehenderit facilis ullam mollitia expedita incidunt.

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 5, - 13 - ] - } - }, - { - "pk": 72, - "model": "articles.article", - "fields": { - "body": "

Iusto aliquid quisquam accusantium beatae a amet, officiis repellendus eum necessitatibus qui vel nihil eveniet a omnis sed tempora?

Voluptatem veritatis eos culpa officiis odio minus quis accusamus nesciunt.

Sit architecto quos? Delectus rem expedita facere nam iusto, quo libero adipisci minima saepe fuga? Saepe architecto debitis soluta excepturi delectus quidem corrupti, tenetur beatae eveniet vero cum consequatur numquam vel possimus doloribus, distinctio fuga eos ratione nam quos aliquid, maiores fuga officiis repudiandae fugiat iure molestiae, vero officiis saepe enim et labore? Et in ab ducimus omnis amet possimus sapiente id inventore ut, exercitationem laudantium veniam beatae omnis hic aliquam libero repudiandae quod, aliquid aperiam quas adipisci laudantium necessitatibus culpa.

Amet quae ipsa perspiciatis voluptatem vero impedit itaque, iure amet commodi quae in delectus eius? Similique eos inventore possimus minima quidem dolorem et quis, ratione nisi atque ab quisquam maiores, mollitia vitae animi dolore facilis cupiditate porro velit, iste adipisci possimus sit commodi tempora hic est soluta, officiis esse sit architecto nemo repellat? Eos possimus id mollitia nesciunt nisi, architecto non earum saepe tempora ad fugit eius necessitatibus tempore dolorem hic. Nesciunt ipsa tempore illo excepturi dignissimos voluptates, unde doloribus veritatis quibusdam natus vitae accusantium voluptatibus perspiciatis sit, officia quia eaque aliquam consequuntur?

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 13 - ] - } - }, - { - "pk": 73, - "model": "articles.article", - "fields": { - "body": "

Neque praesentium dicta corrupti quae provident cum.

Vel rerum placeat cumque, nam at placeat sint officia magni optio iste molestias voluptate, voluptatibus error ex officia ullam aut dolorum exercitationem?

Iusto sit adipisci, ipsum in natus ullam quod ut ab. Suscipit soluta beatae tempore nihil ea ipsam molestiae id labore expedita repellendus. Quod non esse dicta debitis consequuntur maxime quam voluptatibus, quisquam harum expedita aspernatur soluta quae cumque natus a, natus maiores possimus, ipsum animi ex, eaque eos officia? Amet in ad sapiente officia repudiandae unde nam voluptates, sit repudiandae sapiente cumque molestiae culpa cum, temporibus molestias commodi nisi quo sint?

Ipsum esse quo et a dolores facere cupiditate non at necessitatibus commodi, quod molestiae atque consequatur libero porro expedita omnis dignissimos ipsum perspiciatis doloribus, quod itaque maxime eveniet adipisci fuga facere nemo rem blanditiis quibusdam perferendis. Consequatur quasi rem quos natus hic fugiat dolores ab eaque accusamus, expedita voluptates odit doloremque impedit tempore repellat maiores perferendis assumenda vel sequi? Rem est repellat autem molestiae blanditiis nesciunt fuga, tempore dolore fuga deleniti at in ratione animi, et reiciendis ut eius quae perferendis aspernatur optio recusandae, saepe numquam doloribus dolor molestias, ipsum laboriosam nisi aspernatur aut eius deleniti esse quo eveniet sint quasi? Voluptates eveniet molestiae consectetur ab praesentium ratione deserunt velit quo porro facere, vel accusamus quasi, expedita accusamus quos vitae molestiae adipisci a necessitatibus odio eveniet nihil, aliquid obcaecati id placeat debitis quisquam deserunt nostrum corrupti pariatur sequi minus.

Repudiandae tempore quasi animi quaerat est eos asperiores debitis inventore sed voluptates, quia ex incidunt quidem, sint voluptatem architecto impedit distinctio, debitis quis distinctio aut, facilis quisquam cumque autem eum sed minus ipsam sint alias corporis sunt?

Tempora vero assumenda voluptatum officiis voluptatem esse omnis quaerat molestiae perspiciatis atque, eveniet excepturi dolore vero, ratione neque quam aut nam molestias, delectus quaerat natus ducimus, explicabo culpa possimus nam porro nemo deserunt repudiandae. Nulla minus ipsa tempora ex recusandae, dolorem dolor itaque tempore dolores voluptatum dignissimos consequatur.

Eius quidem similique cum praesentium doloribus iste, minus voluptate consectetur quidem expedita tenetur repudiandae temporibus unde, facilis ullam iure numquam inventore repellendus aliquam consectetur molestiae aliquid, sed rerum optio corporis iusto eveniet facere nemo dicta et deleniti? Dolorum qui quisquam sequi eum veniam, consequatur quos aliquid similique, aspernatur accusantium incidunt laudantium adipisci, incidunt illum ipsum minus itaque ipsa reprehenderit suscipit ad enim laudantium.

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 13 - ] - } - }, - { - "pk": 74, - "model": "articles.article", - "fields": { - "body": "

Obcaecati veniam iusto ratione vel aut excepturi aliquid reprehenderit ipsa labore earum, totam enim ad suscipit mollitia perspiciatis nulla ut consequuntur esse fugiat. Dolores ab sed vero earum reprehenderit non odit architecto id consectetur, vero dolorem eum consectetur earum quia atque ut placeat tempora corrupti blanditiis, laboriosam fugit facere ut ratione sequi aut fuga mollitia odio? Non veniam hic magnam eveniet error dolor velit obcaecati exercitationem magni assumenda, magnam maxime sequi ducimus quis accusamus ea necessitatibus aliquam quibusdam, voluptatum facilis blanditiis quia quas animi delectus obcaecati amet voluptatibus qui?

Voluptatum vel aliquam praesentium inventore at modi beatae corrupti, saepe totam eligendi omnis incidunt aperiam distinctio nihil?

Beatae ex natus, aliquid praesentium amet soluta minus aperiam a nesciunt?

Commodi ab est recusandae odit corrupti repudiandae saepe nulla natus, tenetur dolorem nam quae ut vitae, facere quis velit sequi consequatur rem atque commodi repudiandae maxime nisi culpa, quisquam non in fugit, nostrum tempore alias ducimus totam nulla doloremque distinctio ut dolores. Eaque ipsam accusantium necessitatibus reiciendis placeat totam, exercitationem vel quia explicabo mollitia in laudantium esse consequatur placeat commodi eos, quis eius necessitatibus ipsa perferendis ipsam cum voluptatem labore accusantium in id, aliquam dolorum laudantium accusantium doloremque ab autem cumque officia aliquid, ipsa harum similique et eius incidunt porro aspernatur ut excepturi provident? Libero aspernatur perferendis sint doloremque sapiente non fugit optio, a odio similique beatae animi iure, sapiente blanditiis harum perspiciatis iure et a.

Nihil nobis debitis ipsam suscipit similique tempore ab illum corrupti, dolor praesentium voluptatem sequi. Est at accusamus perspiciatis vero tenetur incidunt, obcaecati sint esse numquam delectus reprehenderit laboriosam aut vitae, sapiente minus nulla animi delectus, soluta distinctio dolor tempora molestias, voluptatibus facere illo commodi aliquam?

Aperiam sunt quod dolores dolorem assumenda officiis ut neque.

Tempore accusantium quo quod dolor id, quisquam facilis rerum mollitia voluptatem rem, rem dolorum itaque accusamus debitis harum iusto possimus iste maiores doloremque?

Dolores eum id doloremque dignissimos consequuntur voluptatibus.

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 5, - 6, - 13 - ] - } - }, - { - "pk": 75, - "model": "articles.article", - "fields": { - "body": "

Magnam velit iste blanditiis eum rerum dolorem cumque accusantium dolorum tempora, earum laudantium sit totam veniam suscipit esse rem nesciunt nulla eveniet, eaque velit numquam minima dolores necessitatibus harum repudiandae voluptates provident tempora, commodi enim illum suscipit ipsa velit facilis natus aliquid debitis, sint explicabo recusandae voluptatem officiis repellendus nesciunt eveniet eligendi provident veniam. Expedita nam adipisci aspernatur asperiores, consectetur voluptatem fugiat sunt amet, praesentium quidem autem animi quam quasi eius iure quis blanditiis recusandae, omnis aliquam dolor nulla facere eius fuga minus tempore illo placeat eaque, voluptatem eius illo numquam rerum aliquid vero repellat iure nisi libero aperiam?

Atque asperiores saepe deserunt voluptate numquam eligendi a eaque non dolore dolor, earum inventore accusantium repellendus sapiente assumenda esse veniam quasi, officiis quis earum, itaque tempore aperiam odio deserunt sapiente optio delectus placeat ducimus? Neque repudiandae nisi molestiae quam sapiente nulla cumque minus earum aut quisquam, pariatur totam fugiat asperiores nam voluptatibus nesciunt quas soluta nobis aspernatur, minus nisi omnis aspernatur dolorum assumenda, amet inventore minima doloribus explicabo dolorum quibusdam error voluptates beatae?

Natus ex ducimus ipsa excepturi labore perspiciatis nobis, impedit quaerat facere illo ducimus distinctio fuga deleniti enim, quis cum incidunt quae fugit perferendis porro molestiae sit asperiores neque a.

Doloribus asperiores eos enim accusamus quae, tempore doloremque quos veritatis accusamus earum, harum quidem magnam alias ipsa perferendis. Adipisci iure pariatur amet totam eaque velit culpa numquam aperiam, sequi nostrum nisi assumenda minima error dolor dolorum nemo natus et? Iusto dignissimos iste.

Quos repellendus dolores doloribus ut corporis minus est exercitationem, officia eveniet explicabo exercitationem laborum quo distinctio ducimus sed dicta molestiae voluptas, saepe nisi perspiciatis accusantium dignissimos ea, excepturi numquam odio tenetur inventore iusto culpa ducimus dolore totam nostrum, provident quisquam fugit sequi necessitatibus harum itaque neque. Distinctio hic sint quod eum dolor facilis itaque, atque exercitationem praesentium tempora vitae architecto nostrum corrupti quam ducimus, vitae nostrum consequuntur perspiciatis reprehenderit facilis nihil aut repudiandae quia?

Quis voluptatum officia in aut, dignissimos consequuntur suscipit libero earum quas officiis, similique explicabo alias obcaecati iusto quis perferendis. Animi eligendi doloremque cum voluptatibus nesciunt minima repellat officiis cumque praesentium enim, optio illo quisquam quam voluptas ipsa? Dolorem dolore animi sequi earum quidem rerum magni ut nam, itaque magni necessitatibus, quod repellat ad, magni cumque nemo recusandae beatae dolor quaerat, libero laborum eligendi est ut accusantium aut commodi numquam beatae non. Omnis perferendis id excepturi quidem unde officiis voluptates dolore perspiciatis porro?

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 5, - 14 - ] - } - }, - { - "pk": 76, - "model": "articles.article", - "fields": { - "body": "

Neque quisquam ipsam eveniet earum nihil vel molestiae labore cumque, iusto consectetur alias enim quasi sed iste recusandae est maiores quam, laudantium corrupti deserunt debitis odit nesciunt fugit omnis numquam possimus saepe. Accusantium nesciunt libero provident iste reprehenderit possimus rerum ullam blanditiis eius obcaecati, tempore corrupti accusamus, minus dolore repudiandae deserunt dolorem porro laborum doloremque libero ducimus fugiat similique, assumenda veritatis natus ut velit necessitatibus odit?

Ut quo ex blanditiis soluta nihil voluptate consectetur non deserunt quos rerum, placeat ratione odit odio amet.

Vero est rerum molestiae quidem velit nobis, alias praesentium velit eius quae dignissimos rerum.

Non quasi quidem temporibus quaerat nobis ipsa, veritatis vero commodi, in hic aspernatur cum minima assumenda laborum temporibus ex sapiente ducimus, non quam impedit voluptatibus optio dolorem sequi?

Quia aperiam delectus error nisi nihil, eligendi reiciendis vitae quo non quibusdam et atque voluptatem perspiciatis cum ut, praesentium iste eligendi saepe rerum eveniet vitae explicabo? Animi sunt inventore tenetur nostrum doloribus possimus veritatis, rerum doloribus libero eius nesciunt fugiat. Libero magnam voluptate soluta aut quibusdam eaque exercitationem at, ratione error in ex consequatur illo aliquam vel nostrum eius sequi laudantium, molestiae a iusto hic totam ullam quod, fugit fuga corrupti itaque maxime atque minus ipsum eveniet distinctio?

", - "sections": [ - 5 - ], - "sites": [ - 1 - ], - "authors": [ - 13, - 14 - ] - } - }, - { - "pk": 77, - "model": "articles.article", - "fields": { - "body": "

Reprehenderit alias saepe a velit, quod eum itaque, ad cupiditate dolore? Non iste praesentium accusantium ipsum libero temporibus, perferendis voluptate neque eaque delectus, nulla nihil eligendi eius eaque id. Similique quia corporis ipsa consequatur corrupti laboriosam quis doloremque ipsam, explicabo sequi blanditiis delectus dolorum veniam dolore debitis odio nobis necessitatibus eos, consequatur nam velit neque a, in excepturi voluptatem veritatis similique obcaecati corporis laborum aperiam pariatur tempora dolores.

Atque labore quam, nisi possimus libero eius et aliquam labore ipsum animi voluptas, dolorem a reprehenderit et laborum facilis commodi asperiores?

In deserunt mollitia blanditiis odit quibusdam modi quisquam cum repudiandae voluptatum recusandae? Tempore ex repellendus dolores tempora rem accusamus, excepturi ut sapiente minus dignissimos fugiat, consectetur distinctio dolores qui minus laborum non est aliquam? Maxime quos non quisquam nostrum doloribus optio nihil, natus doloribus voluptates libero corporis maxime cumque repellendus quaerat animi?

Accusamus quae eos ipsa?

Animi nobis impedit consectetur veritatis quis possimus ad alias eligendi voluptatem? Harum quae aspernatur eveniet unde illo quibusdam necessitatibus non autem voluptas?

Facilis blanditiis vel itaque excepturi unde ullam optio totam asperiores. Illo consequatur quibusdam reiciendis facilis iure quae repellat accusamus animi, cum rem eius totam perspiciatis beatae ex ipsa porro dolores reiciendis corrupti, dolor architecto quasi molestiae qui soluta vero possimus nihil culpa perspiciatis, debitis voluptates illum ipsa sequi nesciunt labore. Eius nobis distinctio voluptatum unde consequatur quis quibusdam dolores sit, odio voluptatum exercitationem aperiam, eveniet aperiam officia quaerat vero maiores ab eaque? Vel cum voluptates ea sed sapiente, praesentium reiciendis nobis accusantium sit modi culpa vitae quidem quibusdam quasi tempora, possimus neque saepe voluptate libero repellat reprehenderit impedit, ullam quam rem vel aspernatur vitae deleniti tenetur eaque aliquid, deserunt eveniet harum architecto deleniti.

Nulla libero minima molestias, accusamus voluptatum repudiandae ipsa nisi, voluptatibus quis voluptates debitis eaque? Debitis nam repellat harum eos corporis similique dignissimos repudiandae, in architecto minima reiciendis quis perspiciatis iusto dolores sed. Iusto rerum error cupiditate nisi necessitatibus numquam alias ut id, aut dicta eos fugiat laborum quaerat ipsa nisi? Placeat doloremque minima nulla mollitia fugit neque possimus cumque pariatur enim, consequatur perferendis itaque molestiae earum alias quis sint eos provident, error voluptas distinctio cum eum minus.

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 5, - 6, - 11 - ] - } - }, - { - "pk": 78, - "model": "articles.article", - "fields": { - "body": "

Nesciunt nihil eligendi pariatur laborum aperiam, modi praesentium mollitia ipsam quam sequi veritatis et aliquid laudantium saepe provident. Dicta ratione expedita delectus recusandae, quaerat odio iusto optio rem exercitationem ducimus dolores expedita consequuntur dignissimos, laboriosam sint delectus incidunt culpa, exercitationem similique modi illum magni maxime, at error laborum vitae consequatur aliquid magnam dolor voluptatem incidunt expedita molestias? Esse tempore eligendi perferendis nulla magnam assumenda libero debitis fugit, accusamus libero modi, aspernatur ipsam ratione quos vitae fuga autem temporibus, vel accusamus ipsam dicta maxime? Fugiat error deserunt animi quam asperiores magnam est veniam id fuga esse, explicabo nulla illo.

Laborum eius cupiditate vero magni culpa, consectetur saepe rerum voluptate maxime adipisci vero quia distinctio, tenetur eaque quidem fuga velit dolores, enim quo reprehenderit minima, nostrum placeat rem praesentium tempore quidem.

Eaque sint voluptas expedita quos fugit autem facilis, suscipit ipsa provident aliquam impedit laudantium temporibus hic similique doloremque, modi quasi minima praesentium eveniet eaque quos fugiat deserunt, quae commodi deserunt magnam perferendis doloribus, expedita nulla placeat sit magni dicta magnam ad. Voluptatum assumenda reiciendis impedit facere ipsam non, animi ipsum deleniti corporis architecto sit nihil, eum tempore quae necessitatibus nam quam numquam dolorum, iusto ipsam quam commodi voluptatem eaque omnis fugiat expedita doloremque quos similique, ex reprehenderit esse atque assumenda nisi unde at asperiores voluptatum. Unde aut atque quisquam expedita qui cum quasi quo, reprehenderit repellendus hic vel quaerat facilis eum fugiat, dolorum laboriosam cum culpa aliquam minima? Asperiores sunt dolorum nostrum, et laboriosam magni illo architecto odit blanditiis eveniet ratione assumenda, suscipit rem earum labore maiores nesciunt blanditiis possimus perferendis, accusantium aperiam eos nihil molestias repellendus totam laborum officia ipsum quas natus.

Sequi maxime voluptatum ex reiciendis laboriosam quia amet corrupti ad, eveniet magnam placeat temporibus, maxime eius quos. Aspernatur maiores voluptatem.

Praesentium harum illum voluptas excepturi recusandae sint in odit illo labore, aliquid officiis maxime commodi distinctio perspiciatis quos?

Eos sit quasi quae dolores dolorum quas provident? Nulla repudiandae modi, tempora error magnam dolores alias voluptas, repudiandae facere dolorum voluptas reiciendis omnis maxime eaque ab saepe, quibusdam quod recusandae quidem exercitationem molestias tempora ullam illum, quia animi enim repudiandae accusantium molestiae minus? Voluptatibus repellendus minima impedit vel ea tenetur nam quibusdam, dolorem commodi officia vero porro accusamus inventore dignissimos sequi voluptatem, quas qui ducimus iusto eligendi eos error corrupti earum iste, expedita maiores esse, magnam hic deleniti? In aliquam velit.

Sit voluptate velit iste cum doloribus blanditiis expedita totam voluptates placeat ab, porro dolores omnis incidunt error exercitationem possimus mollitia nisi enim, ipsum mollitia dolore, omnis doloribus quos quidem itaque harum voluptas saepe hic cupiditate ipsum amet. Adipisci dignissimos quaerat ullam eaque veritatis consequuntur accusamus, vitae incidunt neque ipsam perferendis ut culpa aut modi, eaque excepturi exercitationem deleniti, illo maiores at architecto animi illum delectus, nulla voluptatum ad cumque alias et iste temporibus reprehenderit ipsum. Omnis aperiam laboriosam illo officia minima suscipit culpa esse, ducimus necessitatibus quibusdam dolorem perspiciatis, veniam consequuntur temporibus maxime, laborum nostrum voluptatibus eum velit? Maxime tempora optio minima praesentium, voluptate nostrum enim molestiae accusantium asperiores velit corrupti illo aspernatur.

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 9 - ] - } - }, - { - "pk": 79, - "model": "articles.article", - "fields": { - "body": "

Facilis quos maiores odio?

Itaque debitis culpa numquam odit doloribus voluptates quisquam repudiandae, eveniet atque ut voluptates porro ratione asperiores optio sit veniam, illum quibusdam iusto, rerum error eaque, accusantium vero eaque quis delectus iste architecto mollitia ea cupiditate quae deserunt. Accusamus odio suscipit beatae maiores molestiae temporibus quia quaerat fugiat corrupti, temporibus nisi iusto facilis eaque neque, ex pariatur modi nihil eveniet atque accusamus rem esse aspernatur recusandae praesentium, tempora commodi minus dolores odit autem. Consectetur in voluptas officiis, labore exercitationem perferendis porro pariatur ipsam maiores earum nihil neque veritatis. Natus laborum dignissimos veritatis distinctio quisquam soluta, voluptate minus laborum neque doloremque autem numquam aperiam, autem odio in fuga nam perferendis assumenda laudantium doloremque, illum totam eligendi eius alias, expedita error accusamus voluptatem ullam tempore sunt dolores iure?

Fuga obcaecati eligendi, iure facilis ullam cupiditate consequatur vero quia, provident amet ea saepe quae nam dicta rem, facere tempora dolores quisquam reprehenderit tempore suscipit cum ex, nobis quod quisquam sed voluptatem obcaecati doloremque quo corporis quae.

Odio ratione officia voluptates molestias id, earum fugiat aliquid explicabo corrupti, quod repudiandae doloremque earum tempora itaque voluptatem rerum porro quia illum, dolorum ex provident fuga corrupti rerum distinctio fugit doloribus possimus architecto nemo, commodi nobis beatae. Voluptates dicta totam quo error sed voluptatum? Neque recusandae id quod maxime ipsum molestias odio eveniet placeat, quas quaerat doloribus ipsum aperiam, laboriosam eligendi eaque sit eius quas sequi libero laborum nobis deleniti ab, est amet itaque esse ipsam quidem eveniet mollitia?

Omnis officia ab dolores repudiandae autem, possimus unde ad reprehenderit provident impedit maxime facere aperiam porro itaque, rerum porro nostrum quo, rem ipsum quam eligendi quos? Quo aliquid voluptatem culpa dolorum a maxime hic? Exercitationem aliquam earum omnis at, temporibus deleniti labore eaque incidunt quos quae assumenda, delectus labore laboriosam qui similique obcaecati voluptatem, porro optio officiis perspiciatis veniam ratione ex ducimus distinctio, commodi soluta tempore laudantium id quos? Corporis obcaecati commodi, animi delectus sequi, explicabo excepturi natus blanditiis et possimus doloribus vel.

Tempore enim sequi officiis ipsa cupiditate illum vel doloremque numquam, sit vero corporis rem facere iste exercitationem aspernatur, ea corporis aperiam sed asperiores maiores doloribus expedita, fuga labore aliquam minima. Ducimus facere tempora repellendus fugiat animi est numquam reiciendis doloremque nemo enim.

", - "sections": [ - 4 - ], - "sites": [ - 1 - ], - "authors": [ - 4 - ] - } - }, - { - "pk": 80, - "model": "articles.article", - "fields": { - "body": "

Ducimus repudiandae officiis veniam, accusantium voluptatibus hic repellendus magnam odio, amet quaerat eos ipsum beatae quas velit rem, ullam fugiat ipsam facilis ea dolores numquam beatae nemo eaque nobis? Et tenetur illum reprehenderit, laboriosam molestiae animi repudiandae obcaecati modi consequatur libero, cumque earum beatae totam dicta sunt natus enim exercitationem id, incidunt cum at culpa ipsam commodi odit dolores explicabo ut fuga reiciendis, vero corrupti aut quod ipsa molestias.

Beatae neque doloremque quis tenetur enim, sit nam dolorem, molestiae eveniet aliquid sed dolor repudiandae voluptate, cupiditate facilis quas, dolores nostrum harum aspernatur culpa delectus tenetur.

At magnam illum libero eius quisquam rerum, nemo tempora ut. Quisquam sapiente ipsa ipsum architecto eaque amet dolore iure odit, eligendi soluta placeat provident suscipit alias repellendus qui consectetur quaerat nisi assumenda?

Voluptate ipsum voluptates rerum aut praesentium a reprehenderit incidunt quia nemo soluta, rem aperiam unde aliquid necessitatibus distinctio sit eum dolorem quia explicabo, accusamus id quaerat placeat, totam dolorem sint nesciunt veniam. Officia necessitatibus tempora porro dolores id obcaecati dicta commodi qui accusamus blanditiis, labore fugiat asperiores delectus magni ea nulla maiores quod, quas fugiat pariatur magnam laudantium earum molestiae veritatis aperiam nihil, dolore maxime reprehenderit quam fugiat nostrum.

Accusantium tempora fugiat consectetur obcaecati. Molestias neque quisquam nisi corporis aperiam labore itaque, et nostrum molestiae aliquam voluptatibus reiciendis praesentium.

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 9, - 10, - 12 - ] - } - }, - { - "pk": 81, - "model": "articles.article", - "fields": { - "body": "

Vero praesentium quo, odio nihil sit corrupti deserunt eos praesentium quaerat?

Praesentium quae dolorum quo minus, enim distinctio at placeat in dolorum facilis debitis doloremque.

Reprehenderit a temporibus et doloribus aliquid inventore, a beatae aliquam, eaque nam nemo reiciendis veritatis porro tempora eos dolorem ut, libero id nulla suscipit sit. Voluptates natus ipsa quam sapiente reprehenderit? Cupiditate dolore optio a doloremque, quibusdam fuga iste alias voluptates distinctio optio sit? Non quo corrupti officia temporibus optio perferendis alias illo, dolores deserunt impedit repellendus nisi iusto ratione porro ipsa est, qui rem voluptates laudantium cupiditate ipsa et corrupti, ullam accusamus voluptatibus dolores facere, aliquid fugit praesentium.

Earum fugiat dignissimos asperiores incidunt praesentium animi neque, doloribus laboriosam molestias sapiente quos facilis dignissimos laudantium cumque, sunt necessitatibus cumque quas ducimus, voluptate sit impedit aliquid, laborum inventore doloribus.

Sint vero autem illum, quidem optio tenetur molestiae accusantium voluptas modi, dolore dolorem velit deleniti iure.

Minus dolores cum quos exercitationem vitae ducimus excepturi accusantium rerum voluptatum, itaque cum animi eos, soluta necessitatibus nisi impedit id possimus eaque. Ipsam voluptates aut beatae iure, itaque eligendi nobis nihil nisi labore magnam quaerat explicabo totam, veniam corporis cum incidunt perferendis fugiat repellendus animi cumque aliquid explicabo eum, eveniet similique nisi enim veritatis quasi vitae laudantium amet, magnam asperiores quos minus. Ducimus corrupti aliquam nesciunt labore laborum beatae ipsum esse necessitatibus earum, nulla sunt odio, cum eum veritatis? Sed fugit quidem, nulla recusandae sapiente eligendi natus corrupti, exercitationem ipsum neque laboriosam vitae minima nisi id molestias?

Aperiam deserunt saepe ad eos, molestiae saepe cum quidem porro voluptate voluptates qui excepturi aperiam deserunt molestias, debitis fugiat cum beatae ut accusamus nesciunt ab consectetur nobis, neque accusamus esse asperiores. Error totam eligendi laboriosam impedit dolores explicabo. Provident ipsum suscipit doloribus, eius corporis et ab distinctio enim beatae, a expedita reprehenderit voluptates vero fugiat natus mollitia officiis maxime, tempore voluptatibus neque deleniti eligendi consequatur fugiat, sunt a vitae officia veniam doloremque.

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 5, - 7 - ] - } - }, - { - "pk": 82, - "model": "articles.article", - "fields": { - "body": "

Eius vero nam sunt ducimus nemo harum error ab, distinctio delectus temporibus asperiores incidunt ipsum dignissimos fuga, odio nemo in aut repudiandae molestiae quia laborum maiores. Architecto repudiandae esse saepe aspernatur vel soluta temporibus repellendus quae iste fugit, facilis neque fugit, esse cum accusamus quae in qui molestiae, facere quis aliquam consequatur sunt a dolorem fugit voluptatem eius, totam nemo error atque in dicta adipisci iusto provident sint asperiores? Ab placeat consequuntur accusantium nulla illo exercitationem laboriosam deleniti perferendis, ipsa officiis est ut praesentium molestias ea ratione voluptatem, quisquam sapiente excepturi soluta consequuntur neque iure esse.

Quod unde nostrum provident quae officia quasi non, et magnam labore eius harum explicabo corrupti iure, vel libero officia aut sapiente, praesentium quod cupiditate ipsam dolore magnam sed accusamus omnis? Fugiat cum quos quis neque voluptatem eveniet, dignissimos ut exercitationem suscipit, eligendi nihil atque illum itaque illo ullam sunt reiciendis fuga ratione magni. Nihil commodi consequatur impedit, perferendis suscipit quod sunt magni, error nemo placeat dolorum odit reiciendis?

Recusandae aut nostrum eius delectus animi odit eum voluptas beatae nulla corrupti, facilis inventore soluta molestiae ex beatae non labore explicabo dicta necessitatibus placeat. Consectetur minus repellendus enim alias consequatur odio sed delectus earum, delectus perferendis alias iure commodi temporibus, molestias cupiditate ipsam. Illum necessitatibus alias maxime nemo optio eos neque magni, animi eius labore eum sint veritatis quisquam nostrum optio iste fugiat.

Aliquid nemo eaque repellat totam error nulla libero dignissimos cum, dicta tempora ducimus incidunt repellat laborum facilis cupiditate nemo maiores, inventore libero quo cum exercitationem adipisci eveniet beatae ex rerum, iste vitae quae expedita quos earum voluptatum laboriosam doloribus? Suscipit sed quo architecto modi repudiandae quidem animi dolorem molestiae, repellendus non voluptates asperiores quis sapiente sint voluptas? Libero error optio laboriosam aliquid laborum aspernatur id, fugiat natus laboriosam repudiandae mollitia ipsum accusamus, suscipit distinctio rerum omnis, sunt numquam cum officia voluptas enim provident soluta autem nesciunt, totam illo vitae eius magnam iste? Fuga ipsa asperiores earum, quisquam asperiores accusamus?

Libero vel amet animi, dolorem quidem debitis vero neque vel laboriosam maiores blanditiis quod porro nulla, ab voluptatem corrupti quisquam excepturi nam et cupiditate nobis laboriosam, ducimus sint saepe ipsum quod dolorem perspiciatis incidunt beatae? Assumenda voluptates fugit quam asperiores sed totam soluta aliquid esse fuga facilis, rerum maxime a ut totam maiores corrupti fugit doloribus deleniti iste quibusdam, harum autem deserunt explicabo ullam corrupti expedita a excepturi ad rem molestiae, debitis fugit ut at aperiam exercitationem iure animi eum eaque architecto sapiente, quae maiores quaerat inventore non exercitationem cupiditate debitis ad fugiat nisi iure? Ipsa exercitationem harum nam accusamus sunt ad quae tempore blanditiis pariatur cupiditate. Consectetur nobis magni maxime, omnis alias cupiditate aliquid accusamus non ab officiis at.

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 11, - 12 - ] - } - }, - { - "pk": 83, - "model": "articles.article", - "fields": { - "body": "

Laboriosam unde minus ducimus dignissimos, hic natus similique at porro et quos aut asperiores officia sint tenetur, nesciunt sed amet nobis excepturi veritatis eveniet, et ea qui dolorem dolore perspiciatis velit sapiente. Aspernatur dolorum alias, saepe necessitatibus sit deserunt praesentium voluptatum obcaecati amet, alias sequi excepturi assumenda, voluptatem accusamus itaque magni laborum neque eos nam eius minima molestias, in voluptatum optio?

Totam iste quaerat, quis ipsum possimus pariatur, illum excepturi nisi mollitia accusantium harum quae maxime sapiente, quibusdam autem aliquam aperiam, saepe a repellendus optio enim placeat molestiae impedit quo dignissimos. Cupiditate vel cumque tenetur consectetur dolorem dolore placeat laboriosam harum vitae ipsam, explicabo libero odio nemo officia. Rem officia quis repellat praesentium laborum quas voluptatibus id voluptas, asperiores ipsum quasi? Enim saepe cupiditate minus tempora aliquam excepturi quam cum, ab praesentium beatae, incidunt asperiores at atque nesciunt commodi, deleniti laudantium saepe libero ratione nesciunt repellendus reiciendis quod ullam sint totam?

Suscipit itaque quae illum natus alias, modi quasi totam illum architecto autem quo hic non reiciendis fugit, minima sunt deserunt odio quos ducimus adipisci, quam perferendis quos sed provident aperiam excepturi, tempora dolores reiciendis beatae quae laboriosam minima.

Quod ullam voluptatibus molestias, a eius quam, voluptatibus possimus aliquam sed soluta facilis dicta aliquid tempore fugiat, commodi totam voluptates sapiente vitae unde fugiat veniam obcaecati at ratione id. Eius vel excepturi ullam quisquam rerum consequuntur veniam, error neque voluptas laborum nulla aliquam necessitatibus, voluptas laborum praesentium est quaerat impedit expedita fugiat? Est cum totam, sit iste minus corrupti odio placeat aperiam dolorem, officia temporibus sint ipsam libero harum architecto exercitationem quod, nulla aspernatur et beatae distinctio dolores amet ipsum inventore, eius quis quaerat mollitia quidem vero eaque pariatur. Nobis totam earum ab quo placeat laudantium cum provident, et saepe architecto corrupti consectetur sunt deserunt incidunt vel cumque.

Culpa veritatis consectetur a reiciendis? Id quaerat accusantium quae deleniti ipsum atque voluptatem officiis esse, temporibus fugiat quibusdam non neque nemo quasi unde, repudiandae architecto doloremque, possimus voluptatibus ad. Quibusdam sed numquam in ipsum natus facere aut, incidunt cumque quos consectetur nam accusantium qui, ab fugiat optio aut sunt, non cum excepturi sint nulla illo nihil nesciunt voluptatum. Doloribus libero minus veritatis saepe expedita aliquam.

Exercitationem eius qui mollitia obcaecati quisquam magnam provident iusto dolorem suscipit, quidem doloribus non labore eligendi nostrum repudiandae fuga, tempore quaerat deleniti dolorum quibusdam sunt magni pariatur distinctio minus est aspernatur, a optio nobis aspernatur necessitatibus vero dolorem magnam inventore quisquam minima doloremque, error eos ipsa non deserunt voluptates pariatur ut distinctio.

Asperiores natus perspiciatis aliquid, esse laboriosam minus non adipisci similique exercitationem recusandae qui sequi eos ad, obcaecati quasi hic recusandae voluptatibus repellat, quae in dolor dolore aspernatur aperiam quaerat ducimus, corrupti quibusdam esse aliquam obcaecati laboriosam similique minus hic deserunt neque suscipit? Ipsum explicabo a molestias saepe itaque ducimus odio, deleniti libero dignissimos mollitia repellat, suscipit dignissimos voluptatibus provident aut sint repellat mollitia commodi aliquid, facilis eveniet incidunt, quod autem aspernatur laborum voluptatibus officiis quae necessitatibus ratione. Obcaecati modi alias debitis perspiciatis vel repellendus rerum sed est nobis, suscipit placeat voluptate delectus, quae possimus eos ipsam reiciendis, vel aspernatur iste eaque qui deleniti. Recusandae deserunt fugit iure placeat optio odio voluptates eveniet ea ad, eligendi necessitatibus possimus sint et, delectus enim ad sint sed amet quas reprehenderit.

", - "sections": [ - 5 - ], - "sites": [ - 1 - ], - "authors": [ - 5, - 10, - 14 - ] - } - }, - { - "pk": 84, - "model": "articles.article", - "fields": { - "body": "

Ab corrupti ipsa corporis enim, maxime esse dolorem alias earum quis, vel tempore optio. Molestiae commodi fugit placeat ea itaque maiores animi illum, commodi porro nesciunt eveniet explicabo quibusdam nostrum a ipsum? Illo incidunt vitae suscipit accusamus tempore et ratione voluptate delectus, ab et provident, deleniti earum sapiente esse, modi doloribus obcaecati maxime, fuga aut molestiae harum dolorum ducimus quae iusto ipsam quo. Nesciunt similique quam voluptatum unde maxime blanditiis incidunt deleniti facere minus consectetur, ducimus minima error inventore corporis velit provident repellat voluptate adipisci, tempora eveniet dolores obcaecati incidunt odit itaque repellat cumque autem, officia repellat sunt eligendi facere dolorum dicta dolor quos voluptate itaque illum, quidem nemo nostrum laboriosam incidunt optio soluta illum magni eveniet.

Possimus odio vel debitis repudiandae eum harum expedita unde? Cumque ipsum esse voluptas doloremque aliquid asperiores, quaerat fuga inventore rerum dolore dolorem quod eos?

Pariatur odio at obcaecati ipsa, ab dolore modi quisquam vero, mollitia distinctio eligendi saepe officia dolores nesciunt quaerat eum harum sit, vitae illum commodi asperiores, quibusdam et impedit dolorem necessitatibus quod. Numquam molestias sed, officiis molestiae nesciunt, placeat impedit sequi dolores obcaecati praesentium ipsa consequatur? Iste autem vitae earum itaque, facilis necessitatibus quibusdam magni ipsum cumque sapiente beatae, iusto repudiandae aspernatur debitis libero odio provident saepe dolorum itaque labore possimus, possimus dolores facilis nihil repellat soluta suscipit repudiandae delectus reiciendis incidunt, eligendi deserunt amet reprehenderit ipsam a omnis sapiente praesentium.

Natus quidem aliquam eaque ut cumque odio suscipit sequi recusandae in, cum sit doloremque mollitia?

Voluptates aspernatur libero cumque, soluta consectetur beatae sunt molestias iusto, est maxime sed atque minus cumque doloremque illo quidem placeat, ipsum beatae blanditiis eveniet consequuntur, repellat sequi quibusdam similique explicabo provident? Consequatur velit cumque exercitationem dolores quasi vero beatae. Ab quas laborum corporis iste doloribus illo vero id repellendus quod.

Tempora veritatis quibusdam consectetur veniam cum, doloribus eos nobis? Soluta dolorem maiores dicta, ab itaque possimus recusandae perferendis commodi, aperiam earum quod ratione sint. Ullam error ipsam sit tempore quae fugiat, odit ea in dolores placeat tempora ipsum id, nobis nisi fugit laudantium quidem sed id delectus nemo, labore deleniti sed et aliquid?

", - "sections": [ - 2 - ], - "sites": [ - 1 - ], - "authors": [ - 11 - ] - } - }, - { - "pk": 85, - "model": "articles.article", - "fields": { - "body": "

Laboriosam incidunt explicabo accusamus? Aperiam esse quisquam sunt? Sequi voluptatibus non perspiciatis saepe eaque quam magni deserunt. Accusamus eos cupiditate aliquid sit tenetur obcaecati?

Corporis neque veniam minus aliquam fuga eaque, alias mollitia vel asperiores perferendis eaque ut repellendus doloremque, ea nesciunt cum dolore repudiandae. Quod id nulla voluptatum vero? Totam ipsam numquam tempore culpa error hic.

Modi sequi nisi sed iste. Nesciunt deleniti neque laborum, fugiat deleniti assumenda? Velit officiis iure facere aliquid saepe earum magnam enim numquam, expedita nam inventore at fugiat aperiam, eius ut voluptatem tempora nisi molestias provident cum obcaecati repellendus, perspiciatis velit accusamus iure? Soluta officia eligendi rerum temporibus ex, repudiandae sequi ducimus at incidunt, iusto saepe nostrum sint sunt molestiae repellendus?

Adipisci laudantium officiis ducimus eius iste enim reprehenderit ratione laborum iure. Unde quo numquam recusandae doloribus quasi ipsa dolores minima, exercitationem molestiae atque adipisci perspiciatis eaque maxime rem quo nesciunt pariatur consequatur. Incidunt voluptatum earum nemo temporibus accusamus asperiores itaque tenetur, sint pariatur dolor maiores, laboriosam tenetur suscipit, earum adipisci provident quasi ducimus, sit ducimus molestiae numquam non quia pariatur totam est cumque optio eius. Repudiandae veniam maiores a aliquam eveniet totam deleniti ullam molestias.

", - "sections": [ - 5 - ], - "sites": [ - 1 - ], - "authors": [ - 7, - 8, - 10 - ] - } - }, - { - "pk": 86, - "model": "articles.article", - "fields": { - "body": "

Id et culpa aspernatur maxime laudantium molestias velit magni, quas in sint quae ex iusto cum quis optio similique quibusdam incidunt, fuga aperiam in voluptate.

Ex error optio reiciendis tempora esse eos illum veritatis, inventore tempore nisi ut veritatis animi, ipsum id repudiandae ullam doloribus hic ex mollitia molestias, voluptatibus possimus illum voluptate corporis sint quaerat quos eligendi nostrum, minus nobis nostrum adipisci itaque illum non? Nulla quas ipsum, hic nulla repudiandae illum veniam adipisci iure, pariatur nostrum corrupti cupiditate, sunt autem nesciunt velit illum vel, inventore voluptate sint repudiandae sit maxime tenetur vero facere vitae. Sunt tempore architecto necessitatibus ex cumque molestiae molestias pariatur impedit, tenetur aspernatur molestiae minima, harum temporibus dolores veritatis sapiente dolor molestiae id sit impedit nulla aspernatur, ullam praesentium optio laudantium repellendus mollitia voluptas dolores porro at amet.

Cum exercitationem ipsum ab officia debitis corrupti iusto nisi repudiandae voluptatem, qui labore voluptatum perferendis minus maxime commodi dolores?

Distinctio hic vitae aspernatur minima excepturi mollitia repellendus iusto, explicabo cumque veniam beatae mollitia aliquid, sint ullam minus facilis eaque earum.

Rerum placeat iusto.

Quis assumenda numquam officia illum a distinctio, corrupti dolore totam aliquam illum porro magni autem odio, ab magni ipsa voluptatum aliquam obcaecati quasi alias, culpa sapiente fuga eum quasi temporibus tempore?

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 2, - 10, - 11 - ] - } - }, - { - "pk": 87, - "model": "articles.article", - "fields": { - "body": "

Id dolorum distinctio voluptates consectetur asperiores porro soluta libero hic harum.

Officia ratione adipisci vero repudiandae eum quod, praesentium corporis non. Pariatur iure deleniti laboriosam eligendi neque eos, facilis consequatur obcaecati maiores eligendi, vitae eos nam aliquid ratione id exercitationem omnis rem, nam atque sed debitis molestias alias ad, voluptatem incidunt autem blanditiis molestias.

Atque aut libero molestias at, quod minima laborum odio. Amet repellat quia quasi sit ex? Est laboriosam eos fugiat exercitationem quo perspiciatis illum cupiditate minima in suscipit, at error libero neque architecto? Deleniti laboriosam animi accusamus natus explicabo minus tempora corrupti dicta, quisquam tempore repellendus eveniet, animi sed nostrum quae repellat quam aut ullam?

Hic culpa sed a illum ex molestiae, illo voluptate harum veritatis itaque consequuntur fugit expedita, non id odio reprehenderit doloribus repudiandae earum illo culpa sunt dolor, et reiciendis soluta vel nihil officia dicta veritatis, totam deserunt ipsum quisquam sed est accusamus architecto voluptatum. Maxime fugiat id est qui unde autem sunt vitae dicta voluptatum, animi quas earum vero cupiditate voluptatem tenetur. Debitis cum error magnam expedita blanditiis a.

Eligendi enim soluta, fugit ex odio ad perferendis exercitationem quis voluptatibus suscipit expedita sit dicta, ea repudiandae molestias deserunt libero doloribus non facere rem pariatur veniam, dolorum sequi excepturi ratione alias saepe omnis ducimus praesentium, voluptas voluptates voluptate ea debitis consectetur obcaecati. Dicta natus perferendis enim impedit maiores ipsa repellendus dolorem officiis, voluptas veritatis repellendus alias perferendis voluptates et assumenda quae distinctio? Eum nam delectus officiis. Eos maxime quibusdam rem minus nisi error iste atque dolorum inventore iusto, est iure delectus nihil aut vitae, perspiciatis laboriosam quidem beatae quisquam suscipit deserunt veritatis consectetur in inventore, tempore ea illo commodi ratione laudantium dicta fugit sunt consequuntur earum.

Tempora illum unde animi fugiat nulla consequuntur est reiciendis ex quam, repellendus omnis quos qui nisi amet delectus. Debitis cum assumenda, deserunt saepe id necessitatibus doloribus reiciendis a cupiditate veniam vel consectetur ad, unde quia cum tenetur quo porro eos dolorum consequatur perspiciatis quidem?

Illum aliquam provident quae temporibus vel ducimus quis ut saepe itaque laudantium, distinctio totam recusandae corporis.

", - "sections": [ - 1 - ], - "sites": [ - 1 - ], - "authors": [ - 10, - 13 - ] - } - }, - { - "pk": 88, - "model": "articles.article", - "fields": { - "body": "

Eveniet id aperiam, neque magni itaque nihil nobis ducimus hic, veniam corrupti molestias quis, hic cumque nihil neque optio beatae in? Cum placeat odio eaque in qui eum adipisci provident, optio consectetur saepe soluta facilis sed dolor officia, consectetur omnis necessitatibus asperiores expedita, officia ea totam esse recusandae aliquam enim.

Eaque ipsum facere corporis nostrum laudantium earum a. Quisquam quas eaque odit id eum.

Dolorem quos voluptatum? Voluptate deleniti accusantium sed asperiores cumque omnis cum dolores recusandae tempora perferendis, vitae veniam ut vero illo blanditiis corrupti, accusamus provident eius, fugit repellat minima minus voluptatem aperiam rem? Minus aut perspiciatis magnam incidunt explicabo laborum eveniet facere, tenetur nemo rem facere quisquam eius unde cumque maxime nisi quibusdam, culpa necessitatibus dolore dolores ducimus rem eveniet voluptatum perspiciatis, fugit fugiat vel ipsa ratione magnam?

Earum veniam fuga quas iusto hic, nesciunt quaerat laudantium rerum perspiciatis nulla praesentium, iste temporibus praesentium facere dolor, voluptatibus quis vero nesciunt ullam id modi, unde maiores molestias quos laboriosam. Cum ut mollitia corrupti voluptas, ad vel necessitatibus, rem tenetur eaque in, esse fugit ducimus assumenda perspiciatis dolor ea ut dignissimos porro nisi soluta, iste quae magnam.

Inventore in soluta aliquid magni, dolore et dignissimos libero officiis omnis itaque provident asperiores, dolores sed enim harum, officia at debitis enim eius ut aperiam. Voluptas laboriosam dolorem consectetur aliquid alias error. Ab dignissimos facilis, corrupti modi doloribus aut aperiam iusto maxime sit? Voluptates ab reprehenderit similique?

Deserunt quia ipsum dolore perferendis alias eum quae sapiente nam voluptas. Cupiditate enim natus expedita ullam possimus cumque obcaecati ipsum, debitis iusto libero non dolores neque perspiciatis officiis harum ratione praesentium adipisci, sint est numquam sed odit explicabo quasi pariatur illo quidem id, at cum voluptatibus, est dolorum maiores non facere consequatur atque illo suscipit?

Voluptatem soluta tempore aliquid non alias repellat reprehenderit eos, ex praesentium animi ea commodi voluptate, assumenda commodi tempora hic ducimus blanditiis sunt voluptatibus.

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 2 - ] - } - }, - { - "pk": 89, - "model": "articles.article", - "fields": { - "body": "

Dolore error ab labore nihil, numquam quaerat hic nostrum commodi delectus voluptatem ipsa, veniam amet vero nemo corrupti tempora voluptatem, delectus in reiciendis recusandae omnis sunt officiis ducimus nam dolores, nobis dolor ab ipsa dolorem soluta distinctio id odit neque non beatae?

Reiciendis natus mollitia maiores labore harum qui saepe possimus dolorum autem eveniet, nobis eveniet voluptas eos doloremque maxime aut temporibus sit id illo alias.

Velit illum quidem? Temporibus atque provident hic fugiat eius quas, suscipit quibusdam quidem inventore sit eaque ea, culpa consequatur vitae minima, quo incidunt corrupti repellat numquam quod alias non deserunt veritatis? Delectus sapiente cum est maiores? Quis blanditiis maiores, inventore adipisci placeat consequuntur iure repellat dolorem nobis perspiciatis voluptate?

Magni eius voluptas sapiente iure doloribus dignissimos hic odio consectetur quibusdam odit, in magni dolorum nesciunt expedita perferendis sint, omnis eum id aspernatur commodi repudiandae eaque magnam numquam, at doloribus provident voluptatem fuga tempore hic natus assumenda praesentium consectetur, distinctio dolorem autem. Incidunt voluptas dolores voluptates, facere inventore odio qui dolore impedit, consequuntur doloremque labore laudantium beatae ut rem vero voluptatum quis quisquam in, perferendis quasi sed eum nulla voluptatum vero mollitia labore doloribus repellendus sunt? Impedit quis doloribus, doloribus repudiandae aliquam placeat commodi eveniet, unde dignissimos tenetur deleniti, quos in id explicabo hic quod doloremque deserunt et illo, ullam asperiores placeat quod?

Esse ad id vitae unde excepturi iure iste placeat, ipsam placeat enim quam possimus atque natus commodi est, ipsa esse accusamus recusandae reiciendis cupiditate laboriosam ratione quidem, saepe quod cumque distinctio? Temporibus officia odit distinctio accusantium repudiandae ab earum commodi debitis molestias repellendus, aspernatur iste vitae harum, quo mollitia nihil similique modi libero possimus ipsam neque, temporibus obcaecati suscipit inventore impedit, saepe atque ad corrupti. Incidunt totam voluptatibus repellendus?

Reiciendis quibusdam dolor aliquid quas possimus, consectetur accusantium repellat officia nesciunt ea. Modi incidunt sapiente odit ipsam, architecto suscipit maiores quia inventore officia quae dolor, soluta pariatur eius magnam exercitationem. Reiciendis autem odio eligendi facilis et quo maxime, distinctio harum ratione, reprehenderit qui ullam harum expedita culpa aspernatur, fugit est accusamus maiores nam, soluta possimus eos ratione totam illum minima alias. Nemo quis consequatur sint ab officiis, praesentium amet enim rem ad.

Perferendis similique quisquam, quidem quae nam, et voluptatibus accusantium labore eveniet earum sint libero fugiat facere asperiores, ducimus eligendi asperiores aut reprehenderit.

", - "sections": [ - 3 - ], - "sites": [ - 1 - ], - "authors": [ - 14 - ] - } - }, - { - "pk": 36, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Student Restraints Day 2: How Texas school districts compare", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Est perspiciatis molestias quod voluptas dolorum, doloribus error atque tempore dignissimos, esse autem molestias ipsam nisi nostrum, neque alias ullam cupiditate molestiae quos at ut officiis impedit sit sapiente, ut officiis iure animi consequuntur quisquam perferendis corrupti nemo? Ipsam iure odio nihil minus odit?", - "access": null, - "pub_status": "P", - "authors": [ - 13 - ], - "pub_date": "2010-07-14 15:57:54", - "slug": "student-restraints-day-2-how-texas-school-district" - } - }, - { - "pk": 58, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Texas Weekly: A National Plan for Affordable Insurance", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Temporibus numquam animi beatae officia saepe illum enim nihil non quisquam ullam? Aliquam dolor repellendus distinctio nemo consequuntur tenetur deleniti, doloribus ipsam reprehenderit, similique omnis autem aspernatur libero expedita ullam dignissimos corrupti? Ipsa ratione totam odio sint sapiente vel necessitatibus voluptatibus molestias, magnam molestias optio deserunt debitis explicabo repellat exercitationem dolor, laboriosam doloremque incidunt voluptates, quas quidem sint suscipit id.", - "access": null, - "pub_status": "P", - "authors": [ - 10, - 13 - ], - "pub_date": "2010-07-24 15:57:54", - "slug": "texas-weekly-a-national-plan-for-affordable-insura" - } - }, - { - "pk": 1, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Perry: More boots on the border", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Perspiciatis debitis dolorem voluptas fugiat adipisci in rerum id consequatur voluptatem? Dolorem qui iure beatae, accusantium natus mollitia modi doloribus assumenda unde atque sint, dolor quos culpa provident, modi voluptate libero non vel? Quam eaque veritatis quibusdam qui sapiente exercitationem.", - "access": null, - "pub_status": "P", - "authors": [ - 12 - ], - "pub_date": "2010-07-27 15:57:53", - "slug": "perry-more-boots-on-the-border" - } - }, - { - "pk": 71, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Behind Closed Doors", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Dicta dolor veritatis id cum omnis atque aliquam molestias dolorem iure sed, hic itaque asperiores nam, perferendis reiciendis quos adipisci tempora culpa tenetur repellat molestiae praesentium molestias distinctio, assumenda est laudantium, ad enim quos sint cupiditate. Repellat excepturi error voluptatum quibusdam at ut iure perspiciatis, iusto in impedit tenetur facere repudiandae voluptas magni similique dolores, tempora eveniet sint corporis aspernatur vero aperiam dolor minima totam adipisci, obcaecati sint laboriosam iure ab qui quaerat error dolorem. Accusamus magnam nihil rem impedit. Accusantium minus consequuntur saepe vel nisi, atque aperiam suscipit laboriosam iure esse officiis, facere cumque quidem ad delectus omnis saepe quis facilis eveniet neque repellat, aut ratione porro vitae qui magni eligendi reiciendis eius praesentium ad, ea aperiam sint dicta quidem.", - "access": null, - "pub_status": "P", - "authors": [ - 5, - 13 - ], - "pub_date": "2010-08-06 15:57:54", - "slug": "behind-closed-doors" - } - }, - { - "pk": 37, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Dropout problem drags Texas down", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Nobis cum illum nulla esse, sunt illo atque minima quod incidunt eos saepe?", - "access": null, - "pub_status": "P", - "authors": [ - 3, - 11 - ], - "pub_date": "2010-08-11 15:57:54", - "slug": "dropout-problem-drags-texas-down" - } - }, - { - "pk": 55, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Sanction Season", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Recusandae tempore ad nostrum minus sequi incidunt autem cumque, odio labore animi, architecto ducimus nam quis harum magni a officiis error. Nobis nemo possimus numquam eligendi autem ducimus minima excepturi, nam ad ipsa eius illo molestiae, blanditiis laborum enim exercitationem eligendi earum veritatis asperiores quidem, quam necessitatibus dolore reprehenderit quae et, debitis odit distinctio adipisci enim culpa assumenda commodi rem voluptatum aspernatur vel?", - "access": null, - "pub_status": "P", - "authors": [ - 3, - 14 - ], - "pub_date": "2010-08-15 15:57:54", - "slug": "sanction-season" - } - }, - { - "pk": 13, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Reluctantly out in front", - "sections": [ - 5 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Porro qui inventore cumque iste quidem, sed asperiores quasi qui dolorum voluptates numquam rerum temporibus illo in animi, quaerat cupiditate accusantium voluptate quas beatae molestias delectus ratione tenetur aut enim, beatae possimus consequuntur iusto minus labore cumque sit delectus at, a vero aut. Sit quas voluptates consectetur dolor minima repellat, repellat minima molestiae minus ipsam iste velit possimus quae consequuntur aliquam, perspiciatis doloribus omnis nulla tenetur consequatur tempora sint.", - "access": null, - "pub_status": "P", - "authors": [ - 4, - 7, - 13 - ], - "pub_date": "2010-08-21 15:57:54", - "slug": "reluctantly-out-in-front" - } - }, - { - "pk": 23, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Texas educators vent at feds over teacher test mess", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Corporis officiis distinctio sint perferendis eveniet dignissimos nisi temporibus ducimus, explicabo eum nisi consequuntur quia possimus excepturi architecto dolorum, harum nihil qui error in.", - "access": null, - "pub_status": "P", - "authors": [ - 5, - 9 - ], - "pub_date": "2010-08-23 15:57:54", - "slug": "texas-educators-vent-at-feds-over-teacher-test-mes" - } - }, - { - "pk": 3, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "The revolution will not be televised", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Ipsum veritatis repellat repellendus dolorum sint officiis officia consequuntur est quaerat expedita, dignissimos temporibus repellat totam recusandae, dolores vero placeat sunt hic fugiat veniam maiores odio culpa.", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 3, - 4 - ], - "pub_date": "2010-08-26 15:57:53", - "slug": "the-revolution-will-not-be-televised" - } - }, - { - "pk": 85, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Texas Weekly: Private, Patient-centered Health Insurance Patient-centered", - "sections": [ - 5 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Laboriosam incidunt explicabo accusamus? Aperiam esse quisquam sunt? Sequi voluptatibus non perspiciatis saepe eaque quam magni deserunt. Accusamus eos cupiditate aliquid sit tenetur obcaecati?", - "access": null, - "pub_status": "P", - "authors": [ - 7, - 8, - 10 - ], - "pub_date": "2010-08-29 15:57:55", - "slug": "texas-weekly-private-patient-centered-health-insur" - } - }, - { - "pk": 42, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "The World According To Don", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Soluta consequuntur cupiditate aperiam officiis deserunt velit facere dolores, laboriosam necessitatibus molestiae excepturi officiis quia dolore quibusdam dolorum, aliquam rerum nam ex cum libero aspernatur debitis soluta, nobis eligendi porro iure impedit iusto omnis facere consequatur quos laborum? Magni quis nulla mollitia earum aut itaque laboriosam atque tempore perspiciatis est, nam quos provident facere sint, eaque doloremque qui ex voluptatum quisquam delectus labore animi maxime ea iste, accusamus quasi exercitationem nihil unde soluta omnis expedita accusantium pariatur alias, nostrum mollitia porro repellat sit excepturi? Officia tempora quisquam, quis error adipisci, nulla rem itaque ullam porro atque eligendi perspiciatis fugiat, eaque error veritatis modi dolorum sequi assumenda fugit repellat harum.", - "access": null, - "pub_status": "P", - "authors": [ - 12, - 13, - 14 - ], - "pub_date": "2010-09-10 15:57:54", - "slug": "the-world-according-to-don" - } - }, - { - "pk": 88, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Hospital War", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Eveniet id aperiam, neque magni itaque nihil nobis ducimus hic, veniam corrupti molestias quis, hic cumque nihil neque optio beatae in? Cum placeat odio eaque in qui eum adipisci provident, optio consectetur saepe soluta facilis sed dolor officia, consectetur omnis necessitatibus asperiores expedita, officia ea totam esse recusandae aliquam enim.", - "access": null, - "pub_status": "P", - "authors": [ - 2 - ], - "pub_date": "2010-09-12 15:57:55", - "slug": "hospital-war" - } - }, - { - "pk": 45, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Should KBH resign? Two views", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Quibusdam deserunt dolores et nesciunt quo suscipit odio voluptates doloribus soluta, reiciendis suscipit vel nihil commodi, iusto accusantium voluptates facilis et laudantium nihil officiis numquam, aliquam dolor architecto natus illo perspiciatis. Voluptatem molestiae distinctio fugiat dolor rerum, voluptatum quod nulla officia laboriosam, perferendis dolorem voluptatem aliquam eos sit consequuntur ad ipsa commodi, totam nulla accusamus repellat, vel quisquam aperiam fugit praesentium perspiciatis voluptates asperiores modi nulla dicta. Doloremque quis cupiditate quia, incidunt ullam amet quaerat consectetur illum? Eum blanditiis atque nobis debitis odit aperiam ratione quibusdam perspiciatis reiciendis fuga, necessitatibus sit laboriosam itaque modi, quo quaerat sequi ea atque ab ipsam eaque aut illum nobis amet.", - "access": null, - "pub_status": "P", - "authors": [ - 4, - 10 - ], - "pub_date": "2010-09-15 15:57:54", - "slug": "should-kbh-resign-two-views" - } - }, - { - "pk": 73, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Hire Power", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Neque praesentium dicta corrupti quae provident cum.", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 13 - ], - "pub_date": "2010-09-17 15:57:54", - "slug": "hire-power" - } - }, - { - "pk": 56, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Texas Weekly: Off with Their Pom-poms", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "At veniam facilis amet ut?", - "access": null, - "pub_status": "P", - "authors": [ - 3, - 12, - 13 - ], - "pub_date": "2010-09-22 15:57:54", - "slug": "texas-weekly-off-with-their-pom-poms" - } - }, - { - "pk": 78, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Broken Border, Part Three: Decrimftroken Border, Part Three: Decriminalize?", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Nesciunt nihil eligendi pariatur laborum aperiam, modi praesentium mollitia ipsam quam sequi veritatis et aliquid laudantium saepe provident. Dicta ratione expedita delectus recusandae, quaerat odio iusto optio rem exercitationem ducimus dolores expedita consequuntur dignissimos, laboriosam sint delectus incidunt culpa, exercitationem similique modi illum magni maxime, at error laborum vitae consequatur aliquid magnam dolor voluptatem incidunt expedita molestias? Esse tempore eligendi perferendis nulla magnam assumenda libero debitis fugit, accusamus libero modi, aspernatur ipsam ratione quos vitae fuga autem temporibus, vel accusamus ipsam dicta maxime? Fugiat error deserunt animi quam asperiores magnam est veniam id fuga esse, explicabo nulla illo.", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 9 - ], - "pub_date": "2010-09-25 15:57:54", - "slug": "broken-border-part-three-decrimftroken-border-part" - } - }, - { - "pk": 57, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "TT for Dummies", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Neque earum quae voluptas maiores dolore, cupiditate illum earum sequi vel architecto fugiat ad, impedit perspiciatis dolores possimus expedita facere temporibus sint cupiditate? Quasi a deserunt fugiat hic ad atque, expedita necessitatibus sed, cupiditate assumenda ducimus, modi distinctio velit veniam amet minus, quae cumque ratione minus atque inventore laudantium nostrum totam. Cupiditate nesciunt reiciendis, nemo mollitia commodi, tempore explicabo corrupti quibusdam facere?", - "access": null, - "pub_status": "P", - "authors": [ - 3 - ], - "pub_date": "2010-09-29 15:57:54", - "slug": "tt-for-dummies" - } - }, - { - "pk": 47, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "The Tipping Point: Texas Textbook Politics Meets the Digital Revolution", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Illum ea aspernatur eius inventore vel delectus molestiae provident, officiis magnam doloribus sint quidem, doloribus veritatis expedita necessitatibus facere exercitationem dolorem ab repellendus voluptate tempore dolores, obcaecati adipisci aliquam, velit sequi exercitationem accusamus quis. Quasi alias cupiditate nostrum earum eligendi vero eaque, beatae laudantium aspernatur maxime sit quis officia. Possimus dolor tempora temporibus iusto optio quos magnam consequatur voluptatum a, asperiores necessitatibus aperiam ratione atque quibusdam nisi culpa, libero enim sed consectetur numquam expedita, beatae quidem illum laudantium at eaque tenetur iusto asperiores molestias. Exercitationem dolor voluptates sint odio accusantium, amet eligendi rem facilis, molestias quasi debitis cum amet, dolor voluptatibus quis ut provident repellendus neque aperiam.", - "access": null, - "pub_status": "P", - "authors": [ - 4 - ], - "pub_date": "2010-09-30 15:57:54", - "slug": "the-tipping-point-texas-textbook-politics-meets-th" - } - }, - { - "pk": 2, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Both bases covered", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Possimus ex omnis voluptate magnam qui autem praesentium accusamus? Eum veritatis corporis beatae soluta at dolorum recusandae consequuntur, illum omnis enim nihil magnam illo, molestias quae accusantium sequi iure beatae doloribus minima, laborum repellendus qui deleniti minus aliquam, voluptates eum ducimus odit expedita cupiditate minus reiciendis delectus obcaecati eaque enim.", - "access": null, - "pub_status": "P", - "authors": [ - 7, - 8, - 12 - ], - "pub_date": "2010-10-06 15:57:53", - "slug": "both-bases-covered" - } - }, - { - "pk": 38, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Faulty figures: The great dropout debate", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Adipisci deserunt quia laudantium, soluta vero necessitatibus iste voluptatem nemo et, ipsa consequatur reiciendis ad ullam labore repellendus dolores asperiores dolore impedit dicta, alias eveniet placeat distinctio sunt hic in.", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 3, - 9 - ], - "pub_date": "2010-10-10 15:57:54", - "slug": "faulty-figures-the-great-dropout-debate" - } - }, - { - "pk": 20, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "On the Ballot: Taxes, Property, and College", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Delectus rem qui nemo neque sunt eum officia esse, enim nostrum beatae fugiat placeat necessitatibus. Sed eaque doloribus distinctio dolorum molestias a fuga pariatur, odio tempore numquam nemo odit, vero iusto temporibus possimus necessitatibus nostrum ex, minima ipsam voluptatum explicabo? Ad officia inventore temporibus cupiditate tempora qui modi quia, voluptatem impedit porro, doloribus dolorum inventore asperiores doloremque officiis praesentium. Necessitatibus expedita quae molestias voluptatum dolorum reprehenderit ab, sequi sint sed ullam neque magni eum saepe amet, placeat eligendi ipsam, eum vitae officiis at nesciunt eligendi natus ratione quibusdam labore?", - "access": null, - "pub_status": "P", - "authors": [ - 3, - 5 - ], - "pub_date": "2010-10-16 15:57:54", - "slug": "on-the-ballot-taxes-property-and-college" - } - }, - { - "pk": 83, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Texas Weekly: A National Plly: Solutions, Not Sound Bites", - "sections": [ - 5 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Laboriosam unde minus ducimus dignissimos, hic natus similique at porro et quos aut asperiores officia sint tenetur, nesciunt sed amet nobis excepturi veritatis eveniet, et ea qui dolorem dolore perspiciatis velit sapiente. Aspernatur dolorum alias, saepe necessitatibus sit deserunt praesentium voluptatum obcaecati amet, alias sequi excepturi assumenda, voluptatem accusamus itaque magni laborum neque eos nam eius minima molestias, in voluptatum optio?", - "access": null, - "pub_status": "P", - "authors": [ - 5, - 10, - 14 - ], - "pub_date": "2010-10-17 15:57:54", - "slug": "texas-weekly-a-national-plly-solutions-not-sound-b" - } - }, - { - "pk": 81, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Stump Interrupted: Rick Perry", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Vero praesentium quo, odio nihil sit corrupti deserunt eos praesentium quaerat?", - "access": null, - "pub_status": "P", - "authors": [ - 5, - 7 - ], - "pub_date": "2010-10-20 15:57:54", - "slug": "stump-interrupted-rick-perry" - } - }, - { - "pk": 66, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "The Public Payroll", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Cum reiciendis dignissimos maxime quasi obcaecati inventore repudiandae tenetur debitis ad vitae, soluta labore obcaecati iure deleniti incidunt consequuntur, voluptate esse reiciendis nisi voluptates, accusamus deleniti iste ratione rem voluptates totam veritatis ab nulla laudantium adipisci, autem maiores quidem?", - "access": null, - "pub_status": "P", - "authors": [ - 6, - 8, - 9 - ], - "pub_date": "2010-10-23 15:57:54", - "slug": "the-public-payroll" - } - }, - { - "pk": 64, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Broken Border, Part Five: Safer?", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Perspiciatis reiciendis vitae dolorem illo porro quisquam, fugit obcaecati ullam aspernatur dolorum? Beatae mollitia distinctio dolore tempore minima ullam voluptatum reprehenderit earum optio. In ullam quasi nesciunt voluptatum, pariatur illo voluptates ullam quis quae beatae consectetur, at ab fugit commodi mollitia velit temporibus quo ex cum, omnis minima voluptas placeat nulla. Incidunt culpa enim.", - "access": null, - "pub_status": "P", - "authors": [ - 6 - ], - "pub_date": "2010-10-28 15:57:54", - "slug": "broken-border-part-five-safer" - } - }, - { - "pk": 65, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Is Texas in the Race?", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Illum placeat sapiente ex inventore sequi? Quaerat voluptatum doloribus tenetur aliquam animi nostrum, culpa veritatis atque cumque asperiores exercitationem error accusantium optio, error veniam sit odio maxime unde eaque? Sapiente nostrum officia eius repudiandae rerum omnis, odio suscipit rem vel laudantium eveniet recusandae cumque voluptates, maiores asperiores officiis saepe quam totam tempora nam deserunt quas laboriosam? Numquam rerum architecto, eos esse porro, ad facere consectetur nisi vel dolore unde nam est inventore repellendus.", - "access": null, - "pub_status": "P", - "authors": [ - 12 - ], - "pub_date": "2010-10-28 15:57:54", - "slug": "is-texas-in-the-race" - } - }, - { - "pk": 29, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "The Chairman Speaks: Why We're Nonprofit", - "sections": [ - 5 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Aspernatur nemo repellendus minima molestiae, exercitationem non doloribus facilis quam eaque, dolorem consectetur dolorum tenetur placeat sequi iusto quas magni, ex ad quas quos fugit maxime repudiandae?", - "access": null, - "pub_status": "P", - "authors": [ - 3, - 4, - 8 - ], - "pub_date": "2010-10-30 15:57:54", - "slug": "the-chairman-speaks-why-were-nonprofit" - } - }, - { - "pk": 49, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "TribWeek: In Case You Missed It", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Rerum ab explicabo. A exercitationem consectetur quaerat sint animi unde, libero amet explicabo id, quidem sint nesciunt aut officiis nisi deleniti recusandae blanditiis tempora vel veniam, earum distinctio perferendis libero eveniet totam, ipsam non magni provident? Est non ipsam accusamus magni quas dolorum nulla fugiat, accusamus totam exercitationem iure quisquam modi, placeat cumque id ipsum necessitatibus, non quasi praesentium labore dolor expedita, quis nam nesciunt?", - "access": null, - "pub_status": "P", - "authors": [ - 8, - 14 - ], - "pub_date": "2010-11-01 15:57:54", - "slug": "tribweek-in-case-you-missed-it" - } - }, - { - "pk": 21, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Education Commissioner Asks Feds to Reconsider Stripping Texas Teacher", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Suscipit possimus omnis, voluptatum repellendus eaque tenetur aut officia deleniti.", - "access": null, - "pub_status": "P", - "authors": [ - 7, - 14 - ], - "pub_date": "2010-11-07 15:57:54", - "slug": "education-commissioner-asks-feds-to-reconsider-str" - } - }, - { - "pk": 18, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Pickett won't charge", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Id libero fugit consequuntur dolorum vitae est, totam dolorum commodi omnis aliquam illum porro necessitatibus cupiditate obcaecati? Dignissimos quis repudiandae modi dolorem fuga adipisci animi? Architecto rem dolor iure omnis eius, quia tenetur voluptate ducimus facere doloribus autem illum deserunt nemo, ea quaerat eligendi dolores tempore earum assumenda voluptatem dolorum? Corporis aut autem, nemo sapiente aliquam ut quas neque, nam veritatis amet fuga similique numquam magnam pariatur, amet quia assumenda officiis eaque sapiente fugit corrupti.", - "access": null, - "pub_status": "P", - "authors": [ - 10 - ], - "pub_date": "2010-11-10 15:57:54", - "slug": "pickett-wont-charge" - } - }, - { - "pk": 72, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Texas Weekly: A Texas-sized Hole in the Safety Net", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Iusto aliquid quisquam accusantium beatae a amet, officiis repellendus eum necessitatibus qui vel nihil eveniet a omnis sed tempora?", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 13 - ], - "pub_date": "2010-11-18 15:57:54", - "slug": "texas-weekly-a-texas-sized-hole-in-the-safety-net" - } - }, - { - "pk": 4, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "What lawless hordes?", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Nobis pariatur architecto at consequuntur?", - "access": null, - "pub_status": "P", - "authors": [ - 7, - 9 - ], - "pub_date": "2010-11-19 15:57:53", - "slug": "what-lawless-hordes" - } - }, - { - "pk": 60, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Off The Books, Part One: High-Price High-Tech", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Velit ex ea quam ullam voluptatibus animi itaque necessitatibus maiores doloribus minima, animi cum inventore dolorum commodi repudiandae cupiditate et modi recusandae, quis corrupti ea ipsum id asperiores architecto aspernatur at ipsa. Facere vitae dolorem doloremque sunt non ipsum atque placeat deleniti praesentium tempore, iste ratione recusandae aliquam ipsa voluptatum, a illum earum voluptatum magni, adipisci in ipsa sit natus nostrum quae quia libero vero cumque ea, provident incidunt vitae possimus ipsum. Pariatur exercitationem ut dolorum laboriosam iusto nemo id obcaecati dolor quis, amet mollitia culpa quasi atque nulla sequi vero cumque quos sapiente corporis, nihil quos impedit officiis doloribus numquam corporis illum inventore fugit?", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 3, - 8 - ], - "pub_date": "2010-11-19 15:57:54", - "slug": "off-the-books-part-one-high-price-high-tech" - } - }, - { - "pk": 22, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Credentials", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Quaerat accusantium minima quod aperiam ex repellat fugit.", - "access": null, - "pub_status": "P", - "authors": [ - 4, - 6, - 10 - ], - "pub_date": "2010-11-26 15:57:54", - "slug": "credentials" - } - }, - { - "pk": 53, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Texas Weekly: Are Republican candidates ignoring Hispanics?", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Eius delectus sit accusantium accusamus eveniet vel voluptate inventore vero ratione, cum est rerum quod unde hic cupiditate veniam minus rem temporibus soluta, repellat molestias velit delectus dolor illo molestiae sequi, molestias tenetur reiciendis corporis facilis? Ipsum neque ex cumque esse nostrum quod, est repudiandae inventore itaque expedita quaerat labore eum sequi fugit, quasi doloremque atque tempora ipsam architecto sit nihil, nobis deleniti corporis iste vero, aspernatur veniam ut repudiandae qui?", - "access": null, - "pub_status": "P", - "authors": [ - 3, - 4, - 5 - ], - "pub_date": "2010-11-30 15:57:54", - "slug": "texas-weekly-are-republican-candidates-ignoring-hi" - } - }, - { - "pk": 44, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "State psychiatrists making top salaries", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Quasi ex esse laborum fuga ipsum, sunt itaque eveniet aliquid vero, rem quod repudiandae harum neque in soluta sunt ad doloremque, nam labore mollitia voluptatibus similique, repudiandae aperiam tempore et esse totam.", - "access": null, - "pub_status": "P", - "authors": [ - 5, - 14 - ], - "pub_date": "2010-12-01 15:57:54", - "slug": "state-psychiatrists-making-top-salaries" - } - }, - { - "pk": 68, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Campaign Cash: To Cap, or Not to Cap?", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Provident voluptate qui consequuntur repellendus perspiciatis fugit, voluptatibus nesciunt incidunt vitae dolor neque commodi pariatur cum natus dicta, sapiente enim obcaecati architecto in voluptatem magni omnis ipsum dolorem, facere ad similique, amet necessitatibus quae ab? Corrupti itaque quia iure consequatur exercitationem consequuntur, ducimus illum nam vero in minus alias neque labore atque, accusantium repellat quam minima consectetur, eligendi sapiente odit consequuntur voluptatibus veritatis? Eos iste nisi architecto sapiente ipsum eius adipisci incidunt accusamus perferendis, veniam autem ipsa maxime libero laudantium neque sint est accusantium, cum aliquid vel labore commodi ipsum doloribus consectetur veniam culpa, eius fuga veniam, expedita aliquam necessitatibus amet rem dolore ab tenetur?", - "access": null, - "pub_status": "P", - "authors": [ - 4 - ], - "pub_date": "2010-12-06 15:57:54", - "slug": "campaign-cash-to-cap-or-not-to-cap" - } - }, - { - "pk": 28, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Disabled students restrained, injured in public schools", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Beatae velit ipsum tempore at aspernatur dolorum quidem, nesciunt voluptatum accusamus illo sed, voluptatem laboriosam vitae, a distinctio molestias sequi. Saepe optio explicabo quasi aperiam veniam repellendus quae consequuntur corrupti quod. Dicta in ratione laborum ducimus iure perferendis nihil quae corporis amet maiores, esse consequuntur ea. At sit quasi distinctio dolores neque modi earum hic nesciunt, at dolore nihil voluptatem beatae reprehenderit quidem architecto, enim laborum possimus non eum quo corrupti, hic in enim dignissimos rerum modi cum cumque, itaque saepe animi earum amet enim dolorum mollitia veniam voluptate explicabo placeat?", - "access": null, - "pub_status": "P", - "authors": [ - 9, - 10, - 12 - ], - "pub_date": "2010-12-12 15:57:54", - "slug": "disabled-students-restrained-injured-in-public-sch" - } - }, - { - "pk": 7, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Third time's the charm?", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Porro nemo iusto debitis eos repellendus cupiditate blanditiis, possimus impedit quisquam ut accusantium neque porro officiis velit, veniam eos excepturi delectus hic dolore soluta dolorum, nihil maxime corporis nulla, obcaecati reprehenderit distinctio corporis rem ipsa.", - "access": null, - "pub_status": "P", - "authors": [ - 2 - ], - "pub_date": "2010-12-15 15:57:54", - "slug": "third-times-the-charm" - } - }, - { - "pk": 87, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Robert's Rules", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Id dolorum distinctio voluptates consectetur asperiores porro soluta libero hic harum.", - "access": null, - "pub_status": "P", - "authors": [ - 10, - 13 - ], - "pub_date": "2010-12-18 15:57:55", - "slug": "roberts-rules" - } - }, - { - "pk": 61, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Texas Weekly: Private, Patient-centered Health Insurance", - "sections": [ - 5 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Nulla neque nobis labore, veniam reiciendis aperiam nam sequi corporis dolore consectetur praesentium unde, a minus quas sapiente repellat veritatis tenetur placeat corrupti dolores, itaque error repudiandae obcaecati nostrum sunt numquam veritatis iusto explicabo vel, corporis est error quo animi autem consectetur a culpa tempora? Molestiae reprehenderit fugiat eos nam inventore placeat cumque accusamus magni accusantium, aperiam rem dolorum alias iusto quia maxime nisi ea, deserunt tenetur ullam, corporis neque id ducimus corrupti quae ipsum voluptatem reiciendis adipisci incidunt tempora, nostrum minus deserunt expedita eaque tenetur dolorem excepturi doloremque quisquam sint?", - "access": null, - "pub_status": "P", - "authors": [ - 6, - 7 - ], - "pub_date": "2010-12-19 15:57:54", - "slug": "texas-weekly-private-patient-centered-health-insur" - } - }, - { - "pk": 62, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Party Hoppers", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Voluptas consequuntur nesciunt exercitationem quia expedita sapiente unde praesentium quibusdam, reprehenderit nesciunt eius totam mollitia quis, reiciendis quae amet, tenetur reprehenderit sed labore nisi ullam repellat corrupti nemo similique ipsum vero. Sunt labore natus fuga obcaecati fugiat officia optio sit explicabo expedita, voluptates molestiae ipsum porro aspernatur?", - "access": null, - "pub_status": "P", - "authors": [ - 7, - 10 - ], - "pub_date": "2010-12-28 15:57:54", - "slug": "party-hoppers" - } - }, - { - "pk": 76, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "KBH to TFRW: A change in plaes ignoring Hispanics?", - "sections": [ - 5 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Neque quisquam ipsam eveniet earum nihil vel molestiae labore cumque, iusto consectetur alias enim quasi sed iste recusandae est maiores quam, laudantium corrupti deserunt debitis odit nesciunt fugit omnis numquam possimus saepe. Accusantium nesciunt libero provident iste reprehenderit possimus rerum ullam blanditiis eius obcaecati, tempore corrupti accusamus, minus dolore repudiandae deserunt dolorem porro laborum doloremque libero ducimus fugiat similique, assumenda veritatis natus ut velit necessitatibus odit?", - "access": null, - "pub_status": "P", - "authors": [ - 13, - 14 - ], - "pub_date": "2010-12-30 15:57:54", - "slug": "kbh-to-tfrw-a-change-in-plaes-ignoring-hispanics" - } - }, - { - "pk": 84, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Mamas, Don't Let Your Babies Grow Up to be Politicians", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Ab corrupti ipsa corporis enim, maxime esse dolorem alias earum quis, vel tempore optio. Molestiae commodi fugit placeat ea itaque maiores animi illum, commodi porro nesciunt eveniet explicabo quibusdam nostrum a ipsum? Illo incidunt vitae suscipit accusamus tempore et ratione voluptate delectus, ab et provident, deleniti earum sapiente esse, modi doloribus obcaecati maxime, fuga aut molestiae harum dolorum ducimus quae iusto ipsam quo. Nesciunt similique quam voluptatum unde maxime blanditiis incidunt deleniti facere minus consectetur, ducimus minima error inventore corporis velit provident repellat voluptate adipisci, tempora eveniet dolores obcaecati incidunt odit itaque repellat cumque autem, officia repellat sunt eligendi facere dolorum dicta dolor quos voluptate itaque illum, quidem nemo nostrum laboriosam incidunt optio soluta illum magni eveniet.", - "access": null, - "pub_status": "P", - "authors": [ - 11 - ], - "pub_date": "2011-01-07 15:57:54", - "slug": "mamas-dont-let-your-babies-grow-up-to-be-politicia" - } - }, - { - "pk": 33, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Election Night Results", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Aliquam modi velit delectus laboriosam porro deserunt debitis, aut omnis beatae quidem quas nostrum commodi, commodi enim distinctio dolor labore quia iure, dolor sunt labore? Sit id eveniet sequi enim nemo obcaecati necessitatibus ipsum.", - "access": null, - "pub_status": "P", - "authors": [ - 13, - 14 - ], - "pub_date": "2011-01-08 15:57:54", - "slug": "election-night-results" - } - }, - { - "pk": 39, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Mixed impressions inside the poll numbers", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Placeat saepe non odit id dicta quibusdam veniam assumenda est, debitis natus expedita? Ea cupiditate ex exercitationem esse facilis minima atque excepturi adipisci, incidunt neque ex, cum veritatis aperiam enim quas dignissimos debitis vitae non quasi corrupti, itaque nesciunt veritatis esse deleniti accusantium recusandae est architecto facere, error dolore praesentium excepturi dicta laboriosam ratione voluptate modi voluptatibus?", - "access": null, - "pub_status": "P", - "authors": [ - 9, - 10 - ], - "pub_date": "2011-01-08 15:57:54", - "slug": "mixed-impressions-inside-the-poll-numbers" - } - }, - { - "pk": 50, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Broken Border, Part One: Justin's Story", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Eveniet laboriosam delectus modi nostrum, ducimus inventore quae placeat eveniet repellendus itaque possimus accusamus ea cupiditate deleniti, consequuntur repellendus quisquam neque dolore at, magni odio nemo sint iste corrupti? Beatae totam voluptatem eligendi sequi a dicta iste ex reprehenderit vitae soluta, ad assumenda minima nobis nesciunt obcaecati, iure voluptatum hic dolorum est corrupti. Quaerat veniam explicabo molestiae corrupti odit distinctio illo unde provident maxime placeat, deserunt atque voluptates quam iure molestias explicabo, quos nam debitis illo quae distinctio voluptate repudiandae quidem possimus doloremque, praesentium consequuntur nam. Soluta earum reprehenderit minima quia debitis nihil natus?", - "access": null, - "pub_status": "P", - "authors": [ - 4, - 11 - ], - "pub_date": "2011-01-14 15:57:54", - "slug": "broken-border-part-one-justins-story" - } - }, - { - "pk": 54, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Broken Border, Part Three: Decriminalize?", - "sections": [ - 5 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Laborum at eius vero fugit eum qui vitae neque, praesentium quidem delectus minima repellat quam, neque tempora consectetur? Quia itaque consectetur consequatur porro et commodi dolorum nihil, excepturi repellat pariatur aliquid libero, blanditiis et nemo aliquid odio magnam porro mollitia, culpa ipsum eveniet mollitia natus quaerat incidunt veniam blanditiis quas at?", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 12 - ], - "pub_date": "2011-01-20 15:57:54", - "slug": "broken-border-part-three-decriminalize" - } - }, - { - "pk": 8, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Goin' to the chapel", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Excepturi aperiam quod. Impedit perferendis quam corporis placeat neque officia, ipsam ipsa corrupti excepturi neque cupiditate, delectus sed error.", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 5 - ], - "pub_date": "2011-01-24 15:57:54", - "slug": "goin-to-the-chapel" - } - }, - { - "pk": 6, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Perry Reversal Irks Business Group", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Praesentium magni consequuntur repellat explicabo molestiae ducimus recusandae sed laudantium dolore excepturi, illum quaerat blanditiis molestiae officia laudantium. Voluptates distinctio autem facere deleniti quod. Ratione blanditiis commodi vero, dolor natus minus, voluptatem dignissimos earum hic aspernatur ullam quisquam consequatur natus optio, fuga suscipit error, error harum dolorum numquam doloribus accusantium ullam totam inventore minima nam?", - "access": null, - "pub_status": "P", - "authors": [ - 4, - 7, - 10 - ], - "pub_date": "2011-01-29 15:57:54", - "slug": "perry-reversal-irks-business-group" - } - }, - { - "pk": 32, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Trouble in the big tent", - "sections": [ - 5 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Id aliquid culpa dolorem, impedit ad natus veniam, doloribus repellendus fugit amet iste. Pariatur exercitationem recusandae vero sit? Saepe consequatur illo sequi, vero error atque nostrum aliquam facere necessitatibus a earum corrupti, dignissimos fuga nobis quis quia velit maiores aspernatur impedit? Aliquam autem fugiat assumenda labore, sed velit veniam voluptatibus deleniti ex sunt debitis libero error, voluptate sed magni voluptatem natus dolores esse reiciendis error.", - "access": null, - "pub_status": "P", - "authors": [ - 2 - ], - "pub_date": "2011-02-06 15:57:54", - "slug": "trouble-in-the-big-tent" - } - }, - { - "pk": 69, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Broken Border, Part Six: The Gaps", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Tempora consequatur quae consequuntur nam quod perferendis accusamus rerum. Cupiditate quasi facilis quaerat blanditiis deleniti dicta, aliquam natus repellendus maxime veritatis accusantium corporis. Non expedita quam quibusdam sunt neque, sapiente dolore id quidem qui, quisquam reprehenderit dolore, atque veniam soluta architecto id pariatur in minima repellendus neque, deleniti voluptatem molestias laborum velit.", - "access": null, - "pub_status": "P", - "authors": [ - 6 - ], - "pub_date": "2011-02-06 15:57:54", - "slug": "broken-border-part-six-the-gaps" - } - }, - { - "pk": 12, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "States struggling to fund Medicaid", - "sections": [ - 5 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Itaque similique molestias, quasi sunt numquam, maxime perferendis veniam ullam cumque ratione nam harum sequi, quos rem repudiandae neque deserunt cupiditate provident. Voluptates repellat voluptate, nam odio ad exercitationem qui sequi aliquam, illo ad ratione molestias accusamus rerum, veritatis dolorem aut distinctio similique iste, voluptatum architecto amet in asperiores eveniet corporis debitis rerum quos deleniti consequatur. Vitae eveniet eos molestias ab totam assumenda, nobis ut facere quos deserunt blanditiis fugit ad libero ipsa temporibus omnis, delectus obcaecati ea placeat ut dicta voluptatem optio pariatur.", - "access": null, - "pub_status": "P", - "authors": [ - 2 - ], - "pub_date": "2011-02-08 15:57:54", - "slug": "states-struggling-to-fund-medicaid" - } - }, - { - "pk": 40, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Who will lead Houston next? Locke and Parker have opinions", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Exercitationem animi deserunt quo, voluptate pariatur illo placeat minus ipsam aspernatur atque ratione reiciendis nam, iste a libero aliquam beatae expedita eveniet hic odio officia velit. Odit quo minus libero pariatur perferendis, aspernatur minus adipisci facilis iusto omnis delectus fugit autem soluta, nesciunt aspernatur magni praesentium nisi beatae quae optio sequi. Ut voluptatibus culpa dolore cumque dolorem officia ipsam, tempora quae atque suscipit deserunt saepe sint laborum doloremque.", - "access": null, - "pub_status": "P", - "authors": [ - 8, - 9, - 10 - ], - "pub_date": "2011-02-09 15:57:54", - "slug": "who-will-lead-houston-next-locke-and-parker-have-o" - } - }, - { - "pk": 80, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Dummies", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Ducimus repudiandae officiis veniam, accusantium voluptatibus hic repellendus magnam odio, amet quaerat eos ipsum beatae quas velit rem, ullam fugiat ipsam facilis ea dolores numquam beatae nemo eaque nobis? Et tenetur illum reprehenderit, laboriosam molestiae animi repudiandae obcaecati modi consequatur libero, cumque earum beatae totam dicta sunt natus enim exercitationem id, incidunt cum at culpa ipsam commodi odit dolores explicabo ut fuga reiciendis, vero corrupti aut quod ipsa molestias.", - "access": null, - "pub_status": "P", - "authors": [ - 9, - 10, - 12 - ], - "pub_date": "2011-02-13 15:57:54", - "slug": "dummies" - } - }, - { - "pk": 41, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Student restraints, Day 3: Jennifer Howson's story", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Dolorem possimus nobis vitae odio eum quaerat, asperiores tempore accusamus saepe explicabo, impedit omnis iste dolore, dolorem laborum perspiciatis quidem odio consectetur nisi blanditiis officiis consequuntur. Explicabo error neque, repudiandae velit qui repellat magnam aliquam non cupiditate.", - "access": null, - "pub_status": "P", - "authors": [ - 7, - 13 - ], - "pub_date": "2011-02-20 15:57:54", - "slug": "student-restraints-day-3-jennifer-howsons-story" - } - }, - { - "pk": 11, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Too busy for a review", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Odit modi nesciunt veniam voluptas officia laborum. Est obcaecati soluta nemo earum repellendus, officiis deserunt dicta dolore facilis sapiente omnis ad neque enim, dicta aperiam mollitia ipsam tempora voluptas doloremque repudiandae ratione, officiis dolorem quod ullam aspernatur beatae doloribus amet laudantium aut voluptatibus, unde fugiat suscipit ab? Assumenda odit laborum impedit nesciunt quasi omnis voluptatem quae optio eum ipsum, modi quaerat reprehenderit eligendi cumque illo quibusdam sed minus neque nulla explicabo, amet quasi maiores?", - "access": null, - "pub_status": "P", - "authors": [ - 3, - 5, - 14 - ], - "pub_date": "2011-02-21 15:57:54", - "slug": "too-busy-for-a-review" - } - }, - { - "pk": 82, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Forensic Science Chairmen Face Off", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Eius vero nam sunt ducimus nemo harum error ab, distinctio delectus temporibus asperiores incidunt ipsum dignissimos fuga, odio nemo in aut repudiandae molestiae quia laborum maiores. Architecto repudiandae esse saepe aspernatur vel soluta temporibus repellendus quae iste fugit, facilis neque fugit, esse cum accusamus quae in qui molestiae, facere quis aliquam consequatur sunt a dolorem fugit voluptatem eius, totam nemo error atque in dicta adipisci iusto provident sint asperiores? Ab placeat consequuntur accusantium nulla illo exercitationem laboriosam deleniti perferendis, ipsa officiis est ut praesentium molestias ea ratione voluptatem, quisquam sapiente excepturi soluta consequuntur neque iure esse.", - "access": null, - "pub_status": "P", - "authors": [ - 11, - 12 - ], - "pub_date": "2011-02-21 15:57:54", - "slug": "forensic-science-chairmen-face-off" - } - }, - { - "pk": 31, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "A Brief History of Fratricide", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Dicta quo hic accusamus ad velit perspiciatis libero voluptate molestias id architecto, laboriosam a impedit dolorum praesentium, explicabo quae quasi eaque praesentium ex vel. Aut omnis aperiam labore esse ratione iusto rerum sequi, veritatis ipsa ab repellat labore exercitationem explicabo cupiditate, ea perspiciatis exercitationem neque sunt est quas eligendi dolor amet quae, eaque similique voluptatibus consequuntur aut dolore ratione, animi corrupti consectetur eveniet maxime totam quam voluptatem eum similique minima id? Mollitia dignissimos repudiandae?", - "access": null, - "pub_status": "P", - "authors": [ - 5, - 9 - ], - "pub_date": "2011-03-02 15:57:54", - "slug": "a-brief-history-of-fratricide" - } - }, - { - "pk": 24, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Exit notices for some, but not all", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Rerum fugit facere perferendis asperiores qui placeat aliquid eaque? Eaque excepturi ipsa ex reprehenderit provident molestias ut maiores cum, facere esse quam. Minima reprehenderit quisquam, assumenda in mollitia corrupti magni veritatis quia quae ullam dicta nostrum, id minima dignissimos aspernatur distinctio, veritatis velit esse eum magnam? Necessitatibus deleniti saepe quos eos minima praesentium, enim eos rem doloremque doloribus blanditiis quas a impedit pariatur consequuntur, quidem quas at excepturi quasi aperiam minima molestiae mollitia rem?", - "access": null, - "pub_status": "P", - "authors": [ - 3, - 8, - 10 - ], - "pub_date": "2011-03-15 15:57:54", - "slug": "exit-notices-for-some-but-not-all" - } - }, - { - "pk": 26, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Welcome to The Texas Tribune", - "sections": [ - 5 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Deserunt natus nulla aliquid, delectus veniam reprehenderit assumenda voluptates dolores, aliquid facilis sunt eligendi molestiae accusamus tempora quam officiis perferendis. Inventore id mollitia aliquam nobis fugiat tempore ullam illo voluptatibus veniam sequi?", - "access": null, - "pub_status": "P", - "authors": [ - 13, - 14 - ], - "pub_date": "2011-03-17 15:57:54", - "slug": "welcome-to-the-texas-tribune" - } - }, - { - "pk": 19, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Teacher Credentials May Be Nullified By Feds", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Asperiores soluta est atque autem alias dicta. Enim laboriosam a dicta exercitationem veniam velit quae similique, tempore amet quasi excepturi, quam architecto suscipit ex laudantium repellendus pariatur, ut beatae voluptatum, quam cumque laborum molestias sint. Blanditiis aspernatur neque nobis voluptatem necessitatibus dolorum repellat consequatur facere suscipit at? Libero laborum saepe veniam, incidunt commodi cupiditate quos, tempore illo quisquam exercitationem harum, magni quaerat numquam eos sapiente ipsum recusandae molestiae rerum consequatur fuga cumque.", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 9, - 12 - ], - "pub_date": "2011-03-30 15:57:54", - "slug": "teacher-credentials-may-be-nullified-by-feds" - } - }, - { - "pk": 52, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Stump Interrupted: Kay Bailey Hutchison", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Dignissimos sapiente minus fugit atque vero. Ullam quidem facilis, saepe blanditiis quibusdam placeat non. Accusamus ab nulla veritatis, assumenda blanditiis necessitatibus voluptatum esse laboriosam adipisci, a neque porro officiis? Eum amet sapiente inventore provident ex sunt eveniet id nihil, vel soluta accusamus eius optio deserunt consequuntur incidunt tenetur, aspernatur inventore doloremque itaque quibusdam iure nisi aperiam unde laudantium fugiat, facilis officia laudantium dolor.", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 5, - 11 - ], - "pub_date": "2011-04-03 15:57:54", - "slug": "stump-interrupted-kay-bailey-hutchison" - } - }, - { - "pk": 9, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "State technology chief resigns", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Accusamus laboriosam omnis at voluptatem sit nostrum ducimus asperiores consequatur quae, earum ullam consectetur? Incidunt saepe earum quo consequuntur possimus magnam, rerum adipisci obcaecati neque incidunt velit autem molestias quod, a fuga ex aperiam molestiae maiores harum nemo exercitationem sapiente cum cumque. Error facilis corrupti natus debitis excepturi perspiciatis, aperiam exercitationem veniam dignissimos debitis voluptatum, enim itaque delectus corporis non.", - "access": null, - "pub_status": "P", - "authors": [ - 5, - 12 - ], - "pub_date": "2011-04-06 15:57:54", - "slug": "state-technology-chief-resigns" - } - }, - { - "pk": 14, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "And the Winner is...", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Eum ullam placeat architecto ratione explicabo obcaecati praesentium quaerat doloribus? Voluptates nostrum voluptatibus nesciunt deleniti id mollitia in qui amet nemo molestiae, saepe nam architecto at possimus magnam ducimus, quo suscipit debitis sequi perspiciatis non soluta quas. Facere sunt voluptates porro enim provident repellendus totam nemo amet.", - "access": null, - "pub_status": "P", - "authors": [ - 4, - 6, - 7 - ], - "pub_date": "2011-04-11 15:57:54", - "slug": "and-the-winner-is" - } - }, - { - "pk": 43, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Instapundit", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Exercitationem cupiditate pariatur magnam distinctio ab corrupti, culpa porro dolore, sed omnis iusto. Impedit nobis voluptatum ex recusandae cum, cupiditate recusandae reprehenderit similique ut rerum dignissimos id explicabo, quod non vel aliquam eaque similique quas quibusdam eius eos, minima repellat odio.", - "access": null, - "pub_status": "P", - "authors": [ - 5 - ], - "pub_date": "2011-04-12 15:57:54", - "slug": "instapundit" - } - }, - { - "pk": 75, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "KBH won't resign to run", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Magnam velit iste blanditiis eum rerum dolorem cumque accusantium dolorum tempora, earum laudantium sit totam veniam suscipit esse rem nesciunt nulla eveniet, eaque velit numquam minima dolores necessitatibus harum repudiandae voluptates provident tempora, commodi enim illum suscipit ipsa velit facilis natus aliquid debitis, sint explicabo recusandae voluptatem officiis repellendus nesciunt eveniet eligendi provident veniam. Expedita nam adipisci aspernatur asperiores, consectetur voluptatem fugiat sunt amet, praesentium quidem autem animi quam quasi eius iure quis blanditiis recusandae, omnis aliquam dolor nulla facere eius fuga minus tempore illo placeat eaque, voluptatem eius illo numquam rerum aliquid vero repellat iure nisi libero aperiam?", - "access": null, - "pub_status": "P", - "authors": [ - 5, - 14 - ], - "pub_date": "2011-04-28 15:57:54", - "slug": "kbh-wont-resign-to-run" - } - }, - { - "pk": 27, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Shuffling the deck", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Voluptates esse eveniet, cupiditate odio consectetur similique quis aperiam quibusdam corrupti modi, corporis natus magni qui corrupti quis dolor necessitatibus rem, in dignissimos consectetur optio architecto placeat. Aliquid officia id veritatis exercitationem nesciunt nostrum. Esse ipsum consequuntur aspernatur, libero autem ab distinctio?", - "access": null, - "pub_status": "P", - "authors": [ - 3, - 4, - 10 - ], - "pub_date": "2011-05-05 15:57:54", - "slug": "shuffling-the-deck" - } - }, - { - "pk": 34, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "TYC: Mentally ill offenders won't be discharged without proper services", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Itaque nesciunt obcaecati rem ad nulla ex, eligendi adipisci nisi fugit placeat facilis quod quia tempore, hic sapiente ut, porro perspiciatis sapiente obcaecati cupiditate minus pariatur laboriosam distinctio in nemo?", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 12, - 13 - ], - "pub_date": "2011-05-09 15:57:54", - "slug": "tyc-mentally-ill-offenders-wont-be-discharged-with" - } - }, - { - "pk": 46, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Hopson's Choice", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Expedita quisquam esse porro perferendis, dolorum pariatur voluptates officia voluptate autem excepturi praesentium fugit, laboriosam facere voluptas reprehenderit.", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 12 - ], - "pub_date": "2011-05-11 15:57:54", - "slug": "hopsons-choice" - } - }, - { - "pk": 25, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Rat Race", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Necessitatibus ducimus neque soluta rem, iste praesentium eum exercitationem illum asperiores illo dignissimos quisquam consequatur? Porro tempora officia eum consequuntur perspiciatis in aliquid sunt autem non quisquam, consectetur deserunt voluptatum esse commodi dolor ad ducimus explicabo labore, iusto quaerat sunt sequi neque, officiis nobis natus autem est nisi, quisquam facere natus culpa quia neque sequi ab sit amet dolor? Tempora similique reprehenderit fugit, deleniti accusamus quam. Totam rem expedita facere enim nulla voluptates minima earum, esse inventore dolores quae aut pariatur id doloribus neque odio reprehenderit officiis, voluptatibus provident cumque suscipit reprehenderit soluta, corrupti repellendus sunt numquam?", - "access": null, - "pub_status": "P", - "authors": [ - 7, - 9 - ], - "pub_date": "2011-05-17 15:57:54", - "slug": "rat-race" - } - }, - { - "pk": 5, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Present but not accounted for", - "sections": [ - 5 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Aliquam molestias nesciunt consequatur consequuntur non soluta quasi cum nisi optio, assumenda quia molestias adipisci quos maxime officiis alias cupiditate. Fugit officiis perspiciatis maiores incidunt molestias quam? Doloribus at id quos eligendi tempore omnis, veniam similique iure debitis itaque asperiores assumenda adipisci quos?", - "access": null, - "pub_status": "P", - "authors": [ - 3, - 13 - ], - "pub_date": "2011-05-18 15:57:54", - "slug": "present-but-not-accounted-for" - } - }, - { - "pk": 67, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Economist: A 'mild' recovery ahead", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Adipisci cum nulla laboriosam placeat. Consequatur iste veritatis totam eos ratione exercitationem inventore dolor voluptatem dicta quos, minima eos veritatis repellat earum commodi, obcaecati odio omnis asperiores, deleniti inventore animi sunt quisquam hic, error voluptatibus reiciendis harum cupiditate corrupti pariatur officia dolor ut accusantium qui?", - "access": null, - "pub_status": "P", - "authors": [ - 2 - ], - "pub_date": "2011-05-18 15:57:54", - "slug": "economist-a-mild-recovery-ahead" - } - }, - { - "pk": 17, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Shapleigh's out and then what?", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Eum cupiditate esse expedita totam repellat accusantium magnam est, voluptate vero soluta, doloremque rerum nulla reiciendis similique ipsum ipsa eius. Quas nam praesentium at. Maxime harum qui, totam corrupti harum culpa cum nulla? Suscipit molestiae itaque, cumque nesciunt soluta laudantium reprehenderit eum molestiae iste tenetur laboriosam omnis?", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 11 - ], - "pub_date": "2011-05-19 15:57:54", - "slug": "shapleighs-out-and-then-what" - } - }, - { - "pk": 51, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Broken Border, Part Two: The Checkpoint Conundrum", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Nobis officiis harum dolore numquam animi eum, tempore dolorem mollitia deleniti eum illo alias quo voluptatum harum, quam corrupti voluptatem delectus facere consequatur aperiam fugiat amet nihil, dicta omnis explicabo possimus laudantium sapiente voluptatum nisi error aspernatur corrupti illo?", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 3, - 13 - ], - "pub_date": "2011-05-25 15:57:54", - "slug": "broken-border-part-two-the-checkpoint-conundrum" - } - }, - { - "pk": 30, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Perry leads KBH by 12", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Cupiditate quod culpa porro laudantium libero similique quidem? Beatae quo fugit nisi soluta a officiis iusto dolorum autem quasi explicabo? Minus porro vero tempora possimus, veniam quas aliquam. Necessitatibus quasi dicta, dolore dolor alias aliquid fugit sint ratione ducimus, quibusdam eum iste officiis saepe ut reiciendis laborum aliquam tenetur.", - "access": null, - "pub_status": "P", - "authors": [ - 13 - ], - "pub_date": "2011-05-27 15:57:54", - "slug": "perry-leads-kbh-by-12" - } - }, - { - "pk": 74, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Fail-safe?", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Obcaecati veniam iusto ratione vel aut excepturi aliquid reprehenderit ipsa labore earum, totam enim ad suscipit mollitia perspiciatis nulla ut consequuntur esse fugiat. Dolores ab sed vero earum reprehenderit non odit architecto id consectetur, vero dolorem eum consectetur earum quia atque ut placeat tempora corrupti blanditiis, laboriosam fugit facere ut ratione sequi aut fuga mollitia odio? Non veniam hic magnam eveniet error dolor velit obcaecati exercitationem magni assumenda, magnam maxime sequi ducimus quis accusamus ea necessitatibus aliquam quibusdam, voluptatum facilis blanditiis quia quas animi delectus obcaecati amet voluptatibus qui?", - "access": null, - "pub_status": "P", - "authors": [ - 5, - 6, - 13 - ], - "pub_date": "2011-05-28 15:57:54", - "slug": "fail-safe" - } - }, - { - "pk": 35, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Poll: What Texans are worried about", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Accusantium dolorem suscipit quod voluptatum, dolore doloribus blanditiis soluta commodi quisquam corrupti facilis a, eaque magni dolore deserunt eos minus nihil possimus corporis accusantium, aspernatur mollitia numquam facilis impedit modi ea. Quisquam necessitatibus tempore quia dolore illum ipsum earum ullam obcaecati, aut laborum doloremque, optio dolorum eaque modi, accusantium laborum pariatur commodi sint amet tempora nesciunt libero? Eos labore voluptatum pariatur molestiae iste, odio harum repellat iusto quaerat at eligendi sint aspernatur laborum eius, dolor reprehenderit a inventore deserunt tenetur aut, voluptatum tenetur optio consectetur quisquam quam deleniti, fuga suscipit voluptas adipisci perferendis nesciunt autem hic aliquid facere laudantium? Velit cum nisi labore ullam earum ducimus voluptates, doloribus animi modi, quisquam dolorum excepturi dolores, mollitia suscipit eaque odio ea illum?", - "access": null, - "pub_status": "P", - "authors": [ - 10, - 14 - ], - "pub_date": "2011-05-30 15:57:54", - "slug": "poll-what-texans-are-worried-about" - } - }, - { - "pk": 10, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Help Wanted", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Ut obcaecati aliquam natus itaque fuga modi blanditiis distinctio illum optio, illum quos fuga eos animi, in est ducimus, voluptates eaque nihil porro quae sit? Quos qui eveniet delectus debitis, nihil molestiae voluptatem explicabo eos nam laborum, deserunt eius dolor vero nostrum, quae atque molestiae. Enim quae rerum. Sapiente tempora dolores beatae eaque minus.", - "access": null, - "pub_status": "P", - "authors": [ - 6, - 9 - ], - "pub_date": "2011-06-08 15:57:54", - "slug": "help-wanted" - } - }, - { - "pk": 77, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Texas Reading Exams Fail the National Test ", - "sections": [ - 2 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Reprehenderit alias saepe a velit, quod eum itaque, ad cupiditate dolore? Non iste praesentium accusantium ipsum libero temporibus, perferendis voluptate neque eaque delectus, nulla nihil eligendi eius eaque id. Similique quia corporis ipsa consequatur corrupti laboriosam quis doloremque ipsam, explicabo sequi blanditiis delectus dolorum veniam dolore debitis odio nobis necessitatibus eos, consequatur nam velit neque a, in excepturi voluptatem veritatis similique obcaecati corporis laborum aperiam pariatur tempora dolores.", - "access": null, - "pub_status": "P", - "authors": [ - 5, - 6, - 11 - ], - "pub_date": "2011-06-11 15:57:54", - "slug": "texas-reading-exams-fail-the-national-test" - } - }, - { - "pk": 59, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Broken Border, Part Four: Who's Watching?", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Veniam est molestias ratione quidem, enim illo architecto at accusantium laudantium accusamus, laboriosam incidunt fugiat adipisci sequi blanditiis non excepturi voluptatum suscipit.", - "access": null, - "pub_status": "P", - "authors": [ - 7 - ], - "pub_date": "2011-06-15 15:57:54", - "slug": "broken-border-part-four-whos-watching" - } - }, - { - "pk": 63, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Off The Books, Part Two: Contractor Conflicts", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Magni saepe debitis architecto optio perferendis ut possimus dignissimos? Eos quis voluptatem dolore velit quos inventore possimus, voluptatum ipsam magni est asperiores incidunt fuga earum amet architecto dolor quibusdam.", - "access": null, - "pub_status": "P", - "authors": [ - 5 - ], - "pub_date": "2011-06-22 15:57:54", - "slug": "off-the-books-part-two-contractor-conflicts" - } - }, - { - "pk": 86, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Health Insurance", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Id et culpa aspernatur maxime laudantium molestias velit magni, quas in sint quae ex iusto cum quis optio similique quibusdam incidunt, fuga aperiam in voluptate.", - "access": null, - "pub_status": "P", - "authors": [ - 2, - 10, - 11 - ], - "pub_date": "2011-06-25 15:57:55", - "slug": "health-insurance" - } - }, - { - "pk": 89, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Debtors' Treadmill, Part Two: Political Payday", - "sections": [ - 3 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Dolore error ab labore nihil, numquam quaerat hic nostrum commodi delectus voluptatem ipsa, veniam amet vero nemo corrupti tempora voluptatem, delectus in reiciendis recusandae omnis sunt officiis ducimus nam dolores, nobis dolor ab ipsa dolorem soluta distinctio id odit neque non beatae?", - "access": null, - "pub_status": "P", - "authors": [ - 14 - ], - "pub_date": "2011-06-26 15:57:55", - "slug": "debtors-treadmill-part-two-political-payday" - } - }, - { - "pk": 15, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Is there a doctor on the line? ", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Placeat modi dicta recusandae eligendi molestiae pariatur eos odit nam ad? Aspernatur quaerat non doloribus, soluta consectetur incidunt, corporis magni tempora aspernatur nulla, officiis eos quidem?", - "access": null, - "pub_status": "P", - "authors": [ - 4 - ], - "pub_date": "2011-06-27 15:57:54", - "slug": "is-there-a-doctor-on-the-line" - } - }, - { - "pk": 16, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Keeping Count", - "sections": [ - 5 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Dicta explicabo similique provident excepturi ab veniam eaque libero? Modi et voluptate laboriosam alias dolore nobis cupiditate nam inventore, doloremque in quisquam inventore quibusdam quasi, amet odit reiciendis, excepturi nesciunt deserunt commodi ex laborum quia rem fugiat alias qui quisquam, officia vel et aspernatur. Unde ratione cum vitae culpa natus, praesentium accusamus voluptate suscipit molestias modi quasi iusto minus velit, sint atque sed inventore omnis ducimus corporis labore eum saepe?", - "access": null, - "pub_status": "P", - "authors": [ - 5, - 10, - 13 - ], - "pub_date": "2011-06-27 15:57:54", - "slug": "keeping-count" - } - }, - { - "pk": 70, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Texas Weekly: Let Texans Take Care of Texans ", - "sections": [ - 1 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Illum nostrum voluptate delectus harum repellendus inventore facilis at aspernatur nulla molestiae, esse maiores assumenda sequi in voluptate neque dolores.", - "access": null, - "pub_status": "P", - "authors": [ - 10 - ], - "pub_date": "2011-06-30 15:57:54", - "slug": "texas-weekly-let-texans-take-care-of-texans" - } - }, - { - "pk": 48, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Case Open", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Odit distinctio rem velit deserunt suscipit et cumque reiciendis eos unde, iste cupiditate inventore exercitationem, ipsam voluptatem quae labore repudiandae perferendis, quos dolor obcaecati doloremque odio asperiores aliquam ab repudiandae officiis nulla dicta. Neque aut facilis natus dolores?", - "access": null, - "pub_status": "P", - "authors": [ - 5, - 8 - ], - "pub_date": "2011-07-04 15:57:54", - "slug": "case-open" - } - }, - { - "pk": 79, - "model": "content.content", - "fields": { - "authors_extra": "", - "title": "Texas Weer", - "sections": [ - 4 - ], - "authors_override": "", - "sites": [ - 1 - ], - "summary": "Facilis quos maiores odio?", - "access": null, - "pub_status": "P", - "authors": [ - 4 - ], - "pub_date": "2011-07-10 15:57:54", - "slug": "texas-weer" - } - }, - { - "pk": 2, - "model": "auth.user", - "fields": { - "username": "mtress", - "first_name": "Matt", - "last_name": "Tress", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2011-07-13 10:57:48", - "groups": [ - 1 - ], - "user_permissions": [], - "password": "sha1$1258f$642a774f47226a8c4d2da104226b1ff9fdcdef0c", - "email": "", - "date_joined": "2011-07-13 10:57:48" - } - }, - { - "pk": 3, - "model": "auth.user", - "fields": { - "username": "ddruff", - "first_name": "Dan", - "last_name": "Druff", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2011-07-13 10:59:00", - "groups": [ - 1 - ], - "user_permissions": [], - "password": "sha1$85f4c$40fecd6a1b2f6c8bc159be7a922cd77ee5ca3273", - "email": "", - "date_joined": "2011-07-13 10:59:00" - } - }, - { - "pk": 4, - "model": "auth.user", - "fields": { - "username": "hwheels", - "first_name": "Hellen", - "last_name": "Wheels", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2011-07-13 10:59:26", - "groups": [ - 1 - ], - "user_permissions": [], - "password": "sha1$575c9$d782c014a9c45960ae709cfe696fc6c936d47b32", - "email": "", - "date_joined": "2011-07-13 10:59:26" - } - }, - { - "pk": 5, - "model": "auth.user", - "fields": { - "username": "agraham", - "first_name": "Anna", - "last_name": "Graham", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2011-07-13 10:59:54", - "groups": [ - 1 - ], - "user_permissions": [], - "password": "sha1$879c6$ee3f182a582e087bb3c5de44affeb59503590a6d", - "email": "", - "date_joined": "2011-07-13 10:59:54" - } - }, - { - "pk": 6, - "model": "auth.user", - "fields": { - "username": "arench", - "first_name": "Allen", - "last_name": "Rench", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2011-07-13 11:00:18", - "groups": [ - 1 - ], - "user_permissions": [], - "password": "sha1$1f4e9$fccff421957507cf030c3460bb3b379f6b1c1ed8", - "email": "", - "date_joined": "2011-07-13 11:00:18" - } - }, - { - "pk": 7, - "model": "auth.user", - "fields": { - "username": "mpresent", - "first_name": "Marcus", - "last_name": "Present", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2011-07-13 11:01:45", - "groups": [ - 1 - ], - "user_permissions": [], - "password": "sha1$b8c11$81bbc23a3317396299117ba2e6f42b435a68201f", - "email": "", - "date_joined": "2011-07-13 11:01:45" - } - }, - { - "pk": 8, - "model": "auth.user", - "fields": { - "username": "alergy", - "first_name": "Al", - "last_name": "Lergy", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2011-07-13 11:02:27", - "groups": [ - 1 - ], - "user_permissions": [], - "password": "sha1$d9aa0$bacdbdfb3188842f8b8e94485ce5f654e8024b41", - "email": "", - "date_joined": "2011-07-13 11:02:27" - } - }, - { - "pk": 9, - "model": "auth.user", - "fields": { - "username": "pstalsis", - "first_name": "Perry", - "last_name": "Stalsis", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2011-07-13 11:02:52", - "groups": [ - 1 - ], - "user_permissions": [], - "password": "sha1$37f6d$7a9ae347a4e650cec94cb577ee85337d33e42adb", - "email": "", - "date_joined": "2011-07-13 11:02:52" - } - }, - { - "pk": 10, - "model": "auth.user", - "fields": { - "username": "btone", - "first_name": "Barry", - "last_name": "Tone", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2011-07-13 11:04:33", - "groups": [ - 1 - ], - "user_permissions": [], - "password": "sha1$2166f$c303c0c318b143206c76892ced9d96cb9cf77375", - "email": "", - "date_joined": "2011-07-13 11:04:33" - } - }, - { - "pk": 11, - "model": "auth.user", - "fields": { - "username": "pogonia", - "first_name": "Pat", - "last_name": "O'Gonia", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2011-07-13 11:05:27", - "groups": [ - 1 - ], - "user_permissions": [], - "password": "sha1$006c6$7b70859d60a23a60cb117a5de06c43a56ca84cc2", - "email": "", - "date_joined": "2011-07-13 11:05:27" - } - }, - { - "pk": 12, - "model": "auth.user", - "fields": { - "username": "jhyde", - "first_name": "Jacqueline", - "last_name": "Hyde", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2011-07-13 11:06:50", - "groups": [ - 1 - ], - "user_permissions": [], - "password": "sha1$147ef$c248d40c79718904d1a5da4ea17528ff8240310c", - "email": "", - "date_joined": "2011-07-13 11:06:50" - } - }, - { - "pk": 13, - "model": "auth.user", - "fields": { - "username": "cnapple", - "first_name": "Cora", - "last_name": "Napple", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2011-07-13 11:12:48", - "groups": [ - 1 - ], - "user_permissions": [], - "password": "sha1$bb1b8$651e767a11116cac3f3d71fd1256a71c983a12f3", - "email": "", - "date_joined": "2011-07-13 11:12:48" - } - }, - { - "pk": 14, - "model": "auth.user", - "fields": { - "username": "mballeen", - "first_name": "May", - "last_name": "Balleen", - "is_active": true, - "is_superuser": false, - "is_staff": false, - "last_login": "2011-07-13 11:13:07", - "groups": [ - 1 - ], - "user_permissions": [], - "password": "sha1$39e0a$c8bf31311bb632faf3c7879ef883b47d77b0aee8", - "email": "", - "date_joined": "2011-07-13 11:13:07" - } - } -] \ No newline at end of file diff --git a/armstrong/cli/templates/tutorial/fixtures/initial_data.json b/armstrong/cli/templates/tutorial/fixtures/initial_data.json deleted file mode 100644 index d927aa8..0000000 --- a/armstrong/cli/templates/tutorial/fixtures/initial_data.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "pk": 1, - "model": "arm_wells.welltype", - "fields": { - "slug": "front_page", - "title": "front_page" - } - }, - { - "pk": 1, - "model": "arm_wells.well", - "fields": { - "active": true, - "pub_date": "2011-07-06 17:28:10", - "expires": null, - "type": 1 - } - }, - { - "pk": 1, - "model": "auth.group", - "fields": { - "name": "Authors", - "permissions": [] - } - } -] diff --git a/armstrong/cli/templates/tutorial/manifest.json b/armstrong/cli/templates/tutorial/manifest.json deleted file mode 100644 index d3357e0..0000000 --- a/armstrong/cli/templates/tutorial/manifest.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "templated": { - "include": [ - "settings\/", - "urls\/" - ] - } -} diff --git a/armstrong/cli/templates/tutorial/requirements/development.txt b/armstrong/cli/templates/tutorial/requirements/development.txt deleted file mode 100644 index 5e7860e..0000000 --- a/armstrong/cli/templates/tutorial/requirements/development.txt +++ /dev/null @@ -1,2 +0,0 @@ --r ./project.txt - diff --git a/armstrong/cli/templates/tutorial/requirements/project.txt b/armstrong/cli/templates/tutorial/requirements/project.txt deleted file mode 100644 index bcea209..0000000 --- a/armstrong/cli/templates/tutorial/requirements/project.txt +++ /dev/null @@ -1,5 +0,0 @@ -armstrong==11.09.0 - -# This is included here because the latest release of django-mptt does not have -# the required code. --e git://github.com/django-mptt/django-mptt.git@0af02a95877041b2fd6d458bd95413dc1666c321#egg=django_mptt-dev diff --git a/armstrong/cli/templates/tutorial/settings/__init__.py b/armstrong/cli/templates/tutorial/settings/__init__.py deleted file mode 100644 index 3ad9513..0000000 --- a/armstrong/cli/templates/tutorial/settings/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from pkgutil import extend_path -__path__ = extend_path(__path__, __name__) diff --git a/armstrong/cli/templates/tutorial/settings/defaults.py b/armstrong/cli/templates/tutorial/settings/defaults.py deleted file mode 100644 index f606cca..0000000 --- a/armstrong/cli/templates/tutorial/settings/defaults.py +++ /dev/null @@ -1,156 +0,0 @@ -# Django settings for {{ project_name }} project. -import os - -from .helpers import project_dir - - -DEBUG = False -TEMPLATE_DEBUG = False - -ADMINS = ( - # ('Your Name', 'your_email@example.com'), -) - -MANAGERS = ADMINS - -# Local time zone for this installation. Choices can be found here: -# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name -# although not all choices may be available on all operating systems. -# On Unix systems, a value of None will cause Django to use the same -# timezone as the operating system. -# If running in a Windows environment this must be set to the same as your -# system time zone. -TIME_ZONE = 'America/Chicago' - -# Language code for this installation. All choices can be found here: -# http://www.i18nguy.com/unicode/language-identifiers.html -LANGUAGE_CODE = 'en-us' - -SITE_ID = 1 - -# If you set this to False, Django will make some optimizations so as not -# to load the internationalization machinery. -USE_I18N = True - -# If you set this to False, Django will not format dates, numbers and -# calendars according to the current locale -USE_L10N = True - -# Absolute filesystem path to the directory that will hold user-uploaded files. -# Example: "/home/media/media.lawrence.com/media/" -MEDIA_ROOT = '' - -# URL that handles the media served from MEDIA_ROOT. Make sure to use a -# trailing slash. -# Examples: "http://media.lawrence.com/media/", "http://example.com/media/" -MEDIA_URL = '' - -# Absolute path to the directory static files should be collected to. -# Don't put anything in this directory yourself; store your static files -# in apps' "static/" subdirectories and in STATICFILES_DIRS. -# Example: "/home/media/media.lawrence.com/static/" -STATIC_ROOT = '' - -# URL prefix for static files. -# Example: "http://media.lawrence.com/static/" -STATIC_URL = '/static/' - -# URL prefix for admin static files -- CSS, JavaScript and images. -# Make sure to use a trailing slash. -# Examples: "http://foo.com/static/admin/", "/static/admin/". -ADMIN_MEDIA_PREFIX = '/static/admin/' - -# Additional locations of static files -STATICFILES_DIRS = ( - # Put strings here, like "/home/html/static" or "C:/www/django/static". - # Always use forward slashes, even on Windows. - # Don't forget to use absolute paths, not relative paths. -) - -# List of finder classes that know how to find static files in -# various locations. -STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', -# 'django.contrib.staticfiles.finders.DefaultStorageFinder', -) - -# Make this unique, and don't share it with anybody. -SECRET_KEY = '{{ secret_key }}' - -# List of callables that know how to import templates from various sources. -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', -# 'django.template.loaders.eggs.Loader', -) - -MIDDLEWARE_CLASSES = ( - 'django.middleware.common.CommonMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', -) - -TEMPLATE_DIRS = ( - # Put strings here, like "/home/html/django_templates" or - # "C:/www/django/templates". - # Always use forward slashes, even on Windows. - # Don't forget to use absolute paths, not relative paths. - project_dir("templates") -) - -INSTALLED_APPS = ( - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.sites', - 'django.contrib.messages', - 'django.contrib.staticfiles', - # Comment the next line to disable the admin: - 'django.contrib.admin', - # Comment out the next line to disable admin documentation: - 'django.contrib.admindocs', - - # Armstrong packages - 'armstrong.core.arm_access', - 'armstrong.core.arm_content', - 'armstrong.core.arm_layout', - 'armstrong.core.arm_sections', - 'armstrong.core.arm_wells', - 'armstrong.apps.articles', - 'armstrong.apps.content', - 'armstrong.apps.related_content', - 'armstrong.hatband', - - # Third-party apps that Armstrong requires - 'reversion', - 'mptt', - 'taggit', -) - -ARMSTRONG_SECTION_ITEM_MODEL = 'armstrong.apps.content.models.Content' - -# A sample logging configuration. The only tangible logging -# performed by this configuration is to send an email to -# the site admins on every HTTP 500 error. -# See http://docs.djangoproject.com/en/dev/topics/logging for -# more details on how to customize your logging configuration. -LOGGING = { - 'version': 1, - 'disable_existing_loggers': False, - 'handlers': { - 'mail_admins': { - 'level': 'ERROR', - 'class': 'django.utils.log.AdminEmailHandler' - } - }, - 'loggers': { - 'django.request': { - 'handlers': ['mail_admins'], - 'level': 'ERROR', - 'propagate': True, - }, - } -} diff --git a/armstrong/cli/templates/tutorial/settings/development.py b/armstrong/cli/templates/tutorial/settings/development.py deleted file mode 100644 index 7d6cb8a..0000000 --- a/armstrong/cli/templates/tutorial/settings/development.py +++ /dev/null @@ -1,28 +0,0 @@ -# Development settings for {{ project_name }} -from settings.defaults import * - -DEBUG = True -TEMPLATE_DEBUG = DEBUG - -# Change this to work with your default development database -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. - 'NAME': '', # Or path to database file if using sqlite3. - 'USER': '', # Not used with sqlite3. - 'PASSWORD': '', # Not used with sqlite3. - 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. - 'PORT': '', # Set to empty string for default. Not used with sqlite3. - } -} - -# URL configuration to use in development mode -ROOT_URLCONF = 'urls.development' - - -# Attempt to load any settings from settings.local_development, but ignore any -# errors complaining about them not being present. -try: - from settings.local_development import * -except ImportError, e: - pass diff --git a/armstrong/cli/templates/tutorial/settings/helpers.py b/armstrong/cli/templates/tutorial/settings/helpers.py deleted file mode 100644 index c220d59..0000000 --- a/armstrong/cli/templates/tutorial/settings/helpers.py +++ /dev/null @@ -1,6 +0,0 @@ -import os - - -def project_dir(*paths): - base = os.path.realpath(os.path.join(os.path.dirname(__file__), '..')) - return os.path.join(base, *paths) diff --git a/armstrong/cli/templates/tutorial/settings/production.py b/armstrong/cli/templates/tutorial/settings/production.py deleted file mode 100644 index 5bb2786..0000000 --- a/armstrong/cli/templates/tutorial/settings/production.py +++ /dev/null @@ -1,27 +0,0 @@ -# Production settings for {{ project_name }} -from settings.defaults import * - -DEBUG = False -TEMPLATE_DEBUG = DEBUG - -# Change this to work with your default production database -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. - 'NAME': '', # Or path to database file if using sqlite3. - 'USER': '', # Not used with sqlite3. - 'PASSWORD': '', # Not used with sqlite3. - 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. - 'PORT': '', # Set to empty string for default. Not used with sqlite3. - } -} - -# URL configuration to use in production mode -ROOT_URLCONF = 'urls.production' - -# Attempt to load any settings from settings.local_production, but ignore any -# errors complaining about them not being present. -try: - from settings.local_production import * -except ImportError, e: - pass diff --git a/armstrong/cli/templates/tutorial/static/README.rst b/armstrong/cli/templates/tutorial/static/README.rst deleted file mode 100644 index 9aa019a..0000000 --- a/armstrong/cli/templates/tutorial/static/README.rst +++ /dev/null @@ -1 +0,0 @@ -This directory contains all of your static media. diff --git a/armstrong/cli/templates/tutorial/templates/404.html b/armstrong/cli/templates/tutorial/templates/404.html deleted file mode 100644 index a24448f..0000000 --- a/armstrong/cli/templates/tutorial/templates/404.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - Your Page Title Here :) - - - - - - - - - - - - - - - - - - - - - - -
-

Sorry. Couldn't Find That Page!

-
- - - - \ No newline at end of file diff --git a/armstrong/cli/templates/tutorial/templates/article.html b/armstrong/cli/templates/tutorial/templates/article.html deleted file mode 100644 index e24d872..0000000 --- a/armstrong/cli/templates/tutorial/templates/article.html +++ /dev/null @@ -1,13 +0,0 @@ -{% extends 'base.html' %} - -{% block header %} -

Welcome to Armstrong!

-{% endblock %} - -{% block content %} -

{{ object.title }}

- - {% autoescape off %} -
{{ object.body }}
- {% endautoescape %} -{% endblock %} diff --git a/armstrong/cli/templates/tutorial/templates/base.html b/armstrong/cli/templates/tutorial/templates/base.html deleted file mode 100644 index c13efe1..0000000 --- a/armstrong/cli/templates/tutorial/templates/base.html +++ /dev/null @@ -1,47 +0,0 @@ -{% comment %} -This is adapted from Paul Irish's HTML5 boilerplate. -{% endcomment %} -{% load section_helpers %} - - - - - - - - - - Your New Armstrong Project - - - - - -
- {% block header %} -

Welcome to Armstrong!

- {% endblock %} -
-
- {% block sidemenu %} - Home - {% section_menu section_view='section_view' %} - {% endblock %} -
-
- {% block content %} - {% endblock %} -
- - - diff --git a/armstrong/cli/templates/tutorial/templates/front_page.html b/armstrong/cli/templates/tutorial/templates/front_page.html deleted file mode 100644 index a01698f..0000000 --- a/armstrong/cli/templates/tutorial/templates/front_page.html +++ /dev/null @@ -1,14 +0,0 @@ -{% extends 'base.html' %} - -{% load layout_helpers %} - -{% block content %} - {% render_iter well.items|slice:":15" %} - {% render_next "big" %} - {% render_next "big" %} - {% render_next "standard" %} - {% render_next "standard" %} - {% render_next "standard" %} - {% render_remainder "half" %} - {% endrender_iter %} -{% endblock %} diff --git a/armstrong/cli/templates/tutorial/templates/index.html b/armstrong/cli/templates/tutorial/templates/index.html deleted file mode 100644 index 152d2f2..0000000 --- a/armstrong/cli/templates/tutorial/templates/index.html +++ /dev/null @@ -1,41 +0,0 @@ -{% comment %} -This is adapted from Paul Irish's HTML5 boilerplate. -{% endcomment %} - - - - - - - - - - Your New Armstrong Project - - - - -
-
-

Welcome to Armstrong!

-
-
-

Everything Worked!

-

- Thanks for checking out Armstrong! This is a static template - that you can edit to fit your needs, or remove entirely if you - want something else. -

-

- Please check out - our GitHub page - for more information on what to do next. -

-
-
-
-
- - - - diff --git a/armstrong/cli/templates/tutorial/templates/layout/articles/article/big.html b/armstrong/cli/templates/tutorial/templates/layout/articles/article/big.html deleted file mode 100644 index f62c0da..0000000 --- a/armstrong/cli/templates/tutorial/templates/layout/articles/article/big.html +++ /dev/null @@ -1,9 +0,0 @@ -
-

{{ object.title }}

- {% autoescape off %} -

- {{ object.summary }} - Show more -

- {% endautoescape %} -
diff --git a/armstrong/cli/templates/tutorial/templates/layout/articles/article/half.html b/armstrong/cli/templates/tutorial/templates/layout/articles/article/half.html deleted file mode 100644 index e7162ca..0000000 --- a/armstrong/cli/templates/tutorial/templates/layout/articles/article/half.html +++ /dev/null @@ -1,9 +0,0 @@ -
-

{{ object.title }}

- {% autoescape off %} -

- {{ object.summary }} - Show more -

- {% endautoescape %} -
diff --git a/armstrong/cli/templates/tutorial/templates/layout/articles/article/standard.html b/armstrong/cli/templates/tutorial/templates/layout/articles/article/standard.html deleted file mode 100644 index 2996c8c..0000000 --- a/armstrong/cli/templates/tutorial/templates/layout/articles/article/standard.html +++ /dev/null @@ -1,9 +0,0 @@ -
-

{{ object.title }}

- {% autoescape off %} -

- {{ object.summary }} - Show more -

- {% endautoescape %} -
diff --git a/armstrong/cli/templates/tutorial/templates/robots.txt b/armstrong/cli/templates/tutorial/templates/robots.txt deleted file mode 100755 index d310d07..0000000 --- a/armstrong/cli/templates/tutorial/templates/robots.txt +++ /dev/null @@ -1,5 +0,0 @@ -# www.robotstxt.org/ -# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449 - -User-agent: * - diff --git a/armstrong/cli/templates/tutorial/templates/section.html b/armstrong/cli/templates/tutorial/templates/section.html deleted file mode 100644 index 03d614e..0000000 --- a/armstrong/cli/templates/tutorial/templates/section.html +++ /dev/null @@ -1,10 +0,0 @@ -{% extends 'base.html' %} - -{% load layout_helpers %} - -{% block content %} -

{{ section.title }}

- {% for object in section.items %} - {% render_model object 'standard' %} - {% endfor %} -{% endblock %} diff --git a/armstrong/cli/templates/tutorial/urls/__init__.py b/armstrong/cli/templates/tutorial/urls/__init__.py deleted file mode 100644 index 3ad9513..0000000 --- a/armstrong/cli/templates/tutorial/urls/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from pkgutil import extend_path -__path__ = extend_path(__path__, __name__) diff --git a/armstrong/cli/templates/tutorial/urls/api.py b/armstrong/cli/templates/tutorial/urls/api.py deleted file mode 100644 index ab0c878..0000000 --- a/armstrong/cli/templates/tutorial/urls/api.py +++ /dev/null @@ -1,13 +0,0 @@ -""" -Contains URL patterns for a basic API using `Tastypie`_. - -.. _tastypie: https://github.com/toastdriven/django-tastypie -""" -from django.conf.urls.defaults import patterns, include, url - -from apis.api import v1_api - - -urlpatterns = patterns('', - url(r'^api/', include(v1_api.urls)), -) \ No newline at end of file diff --git a/armstrong/cli/templates/tutorial/urls/defaults.py b/armstrong/cli/templates/tutorial/urls/defaults.py deleted file mode 100644 index 35603f5..0000000 --- a/armstrong/cli/templates/tutorial/urls/defaults.py +++ /dev/null @@ -1,68 +0,0 @@ -from django.conf.urls.defaults import patterns, include, url -from armstrong.core.arm_sections.views import SimpleSectionView, SectionFeed -#from armstrong.core.arm_wells.views import QuerySetBackedWellView -from armstrong.apps.articles.models import Article -from armstrong.apps.articles.views import ArticleFeed -from django.views.generic.list_detail import object_detail -from django.views.generic import TemplateView -# ADMIN_BASE is the base URL for your Armstrong admin. It is highly -# recommended that you change this to a different URL unless you enforce a -# strict password-strength policy for your users. -ADMIN_BASE = "admin" - - -# Comment the next two lines out to disable the admin: -from armstrong import hatband as admin -admin.autodiscover() - -from .utils import get_url_for_model - -urlpatterns = patterns('', - # Examples: - # url(r'^$', '{{ project_name }}.views.home', name='home'), - # url(r'^{{ project_name }}/', include('{{ project_name }}.foo.urls')), - - # Comment the admin/doc line below to disable admin documentation: - url(r'^%s/doc/' % ADMIN_BASE, include('django.contrib.admindocs.urls')), - - # Comment the next line to disable the admin: - url(r'^%s/' % ADMIN_BASE, include(admin.site.urls)), - - # You can uncomment the following two lines if you want to use the demo data views - # from .demo import urlpatterns as demo_urlpatterns - # url(r'^$', include(demo_urlpatterns)), - - # Load the Armstrong "success" page by default - url(r'^$', TemplateView.as_view(template_name="index.html")), - - # Uncomment out this to change to the the well view - #url(r'^$', - # QuerySetBackedWellView.as_view(well_title='front_page', - # template_name="front_page.html", - # queryset=Article.published.all(), ), - # name='front_page'), - - url(r'^section/(?P[-\w/]+)', - SimpleSectionView.as_view(template_name='section.html'), - name='section_view'), - url(r'^feed/section/(?P[-\w/]+)', - SectionFeed(section_view='section_view'), - name='section_feed'), - - url(r'^feed/all', - ArticleFeed(title='Demo site articles', - link='/', - queryset=Article.objects.all()), - name='all_articles_feed'), - - url(r'^article/(?P[-\w]+)/', object_detail, { - 'queryset':Article.published.all().select_subclasses(), - 'template_name':'article.html', - 'slug_field':'slug', - }, - name='article_detail'), -) - -# Uncomment the following two lines if you want to expose our default API -# from .api import urlpatterns as api_urlpatterns -# urlpatterns += api_urlpatterns diff --git a/armstrong/cli/templates/tutorial/urls/development.py b/armstrong/cli/templates/tutorial/urls/development.py deleted file mode 100644 index 3d98d6e..0000000 --- a/armstrong/cli/templates/tutorial/urls/development.py +++ /dev/null @@ -1,15 +0,0 @@ -""" -Add any additional URLs that should only be available when using the the -settings.development configuration. - -See ``urls.defaults`` for a list of all URLs available across both -configurations. -""" -from .defaults import * - -urlpatterns += patterns('', - - # Examples: - # url(r'^$', '{{ project_name }}.views.debug', name='debug'), - # url(r'^{{ project_name }}/', include('{{ project_name }}.debug.urls')), -) diff --git a/armstrong/cli/templates/tutorial/urls/production.py b/armstrong/cli/templates/tutorial/urls/production.py deleted file mode 100644 index bf1d1ae..0000000 --- a/armstrong/cli/templates/tutorial/urls/production.py +++ /dev/null @@ -1,19 +0,0 @@ -""" -Add any additional URLs that should only be available when using the the -settings.production configuration. - -This is useful for having a production location for debugging utilities where -you do not want them on at their standard path. Note that everything defined -in urls.defaults is available here as well. - -See ``urls.defaults`` for a list of all URLs available across both -configurations. -""" -from .defaults import * - -urlpatterns += patterns('', - - # Examples: - # url(r'^$', 'prod/{{ project_name }}.views.debug', name='debug'), - # url(r'^prod/{{ project_name }}/', include('{{ project_name }}.debug.urls')), -) diff --git a/armstrong/cli/templates/tutorial/urls/utils.py b/armstrong/cli/templates/tutorial/urls/utils.py deleted file mode 100644 index 01fe653..0000000 --- a/armstrong/cli/templates/tutorial/urls/utils.py +++ /dev/null @@ -1,18 +0,0 @@ -from armstrong.core.arm_sections.models import Section -from armstrong.apps.articles.models import Article -from django.core.urlresolvers import reverse - -def get_url_for_model(obj): - """ The get_url_for_model function is necessary because Armstrong has no - preconceptions about what your url schema actually looks like. - get_url_for_model is called whenever a BaseContent subclass has it's - get_absolute_url function calle_url_for_model is called whenever a - BaseContent subclass has it's get_absolute_url function called. - - In the future we will most likely provide base urls for each app that will - allow new Armstrong implementations to not use this mechanism. - """ - if obj.__class__ == Section: - return reverse('section_view', kwargs={'full_slug': obj.full_slug}) - if obj.__class__ == Article: - return reverse('article_detail', kwargs={'slug': obj.slug}) diff --git a/armstrong/cli/templates/tutorial/wsgi.py b/armstrong/cli/templates/tutorial/wsgi.py deleted file mode 100644 index 6ae9fe0..0000000 --- a/armstrong/cli/templates/tutorial/wsgi.py +++ /dev/null @@ -1,13 +0,0 @@ -# Simple wsgi file for {{ project_name }} -import os -import sys - -# Change this to reflect the environment you're in -os.environ['DJANGO_SETTINGS_MODULE'] = 'settings.development' - -# Make sure that this project directory is first in the sys.path, or at least -# as close to first as can be reasonably assured in Python. -sys.path.insert(0, os.path.dirname(__file__)) - -from django.core.handlers.wsgi import WSGIHandler -application = WSGIHandler() From d6848c51c8f3e2ea6cbc76b7ec5c53d71b281b10 Mon Sep 17 00:00:00 2001 From: Travis Swicegood Date: Mon, 30 Apr 2012 16:26:38 -0500 Subject: [PATCH 12/13] add paywall to the list of external dependencies --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 0b55d5c..12e3905 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ }, "install_requires": [ "argparse==1.2.1", + "armstrong.templates.paywall>=1.0.0,<2.0", "armstrong.templates.standard>=1.0.2,<2.0", "armstrong.templates.tutorial>=1.0.0,<2.0" ] From d65aaec7b3a0b0b5ea08f06bd30560ef4ee71317 Mon Sep 17 00:00:00 2001 From: Travis Swicegood Date: Mon, 30 Apr 2012 16:26:53 -0500 Subject: [PATCH 13/13] Remove extracted template --- armstrong/cli/templates/paywall/README.rst | 13 -- armstrong/cli/templates/paywall/__init__.py | 0 .../cli/templates/paywall/database.sqlite3 | Bin 546816 -> 0 bytes armstrong/cli/templates/paywall/manifest.json | 8 - .../paywall/requirements/development.txt | 2 - .../paywall/requirements/project.txt | 5 - .../templates/paywall/settings/__init__.py | 2 - .../templates/paywall/settings/defaults.py | 160 ------------------ .../templates/paywall/settings/development.py | 28 --- .../templates/paywall/settings/production.py | 27 --- .../templates/paywall/templates/article.html | 13 -- .../cli/templates/paywall/templates/base.html | 47 ----- .../paywall/templates/front_page.html | 14 -- .../templates/paywall/templates/index.html | 41 ----- .../layout/articles/article/big.html | 9 - .../layout/articles/article/half.html | 9 - .../layout/articles/article/standard.html | 9 - .../paywall/templates/permission_denied.html | 18 -- .../paywall/templates/registration/login.html | 20 --- .../templates/paywall/templates/section.html | 10 -- .../cli/templates/paywall/urls/__init__.py | 2 - .../cli/templates/paywall/urls/defaults.py | 72 -------- .../cli/templates/paywall/urls/development.py | 15 -- .../cli/templates/paywall/urls/production.py | 19 --- armstrong/cli/templates/paywall/urls/utils.py | 18 -- armstrong/cli/templates/paywall/wsgi.py | 13 -- 26 files changed, 574 deletions(-) delete mode 100644 armstrong/cli/templates/paywall/README.rst delete mode 100644 armstrong/cli/templates/paywall/__init__.py delete mode 100644 armstrong/cli/templates/paywall/database.sqlite3 delete mode 100644 armstrong/cli/templates/paywall/manifest.json delete mode 100644 armstrong/cli/templates/paywall/requirements/development.txt delete mode 100644 armstrong/cli/templates/paywall/requirements/project.txt delete mode 100644 armstrong/cli/templates/paywall/settings/__init__.py delete mode 100644 armstrong/cli/templates/paywall/settings/defaults.py delete mode 100644 armstrong/cli/templates/paywall/settings/development.py delete mode 100644 armstrong/cli/templates/paywall/settings/production.py delete mode 100644 armstrong/cli/templates/paywall/templates/article.html delete mode 100644 armstrong/cli/templates/paywall/templates/base.html delete mode 100644 armstrong/cli/templates/paywall/templates/front_page.html delete mode 100644 armstrong/cli/templates/paywall/templates/index.html delete mode 100644 armstrong/cli/templates/paywall/templates/layout/articles/article/big.html delete mode 100644 armstrong/cli/templates/paywall/templates/layout/articles/article/half.html delete mode 100644 armstrong/cli/templates/paywall/templates/layout/articles/article/standard.html delete mode 100644 armstrong/cli/templates/paywall/templates/permission_denied.html delete mode 100644 armstrong/cli/templates/paywall/templates/registration/login.html delete mode 100644 armstrong/cli/templates/paywall/templates/section.html delete mode 100644 armstrong/cli/templates/paywall/urls/__init__.py delete mode 100644 armstrong/cli/templates/paywall/urls/defaults.py delete mode 100644 armstrong/cli/templates/paywall/urls/development.py delete mode 100644 armstrong/cli/templates/paywall/urls/production.py delete mode 100644 armstrong/cli/templates/paywall/urls/utils.py delete mode 100644 armstrong/cli/templates/paywall/wsgi.py diff --git a/armstrong/cli/templates/paywall/README.rst b/armstrong/cli/templates/paywall/README.rst deleted file mode 100644 index bc5d7cc..0000000 --- a/armstrong/cli/templates/paywall/README.rst +++ /dev/null @@ -1,13 +0,0 @@ -Paywall Demo -============ - -This template shows a working version of paywall code. The paywall is declared -in ``urls/defaults.py``. By default, the ``SubscriptionPaywall`` returns a 304 when -access is denied, but it has been overriden to render the -``permission_denied.html`` template instead. The only view that needs to be -protected is the ``ArticleDetailView``. - -The third article on the front page, 'Help Wanted' is protected. When not -logged in, the ``permission_denied.html`` will be rendered, but when logged in as a -staff member or as the user with the username 'user' and password of 'user' you -will see the normal ``article.html`` template. diff --git a/armstrong/cli/templates/paywall/__init__.py b/armstrong/cli/templates/paywall/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/armstrong/cli/templates/paywall/database.sqlite3 b/armstrong/cli/templates/paywall/database.sqlite3 deleted file mode 100644 index 881330e7f11b7aab114238d93f1d39071756d2c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546816 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

qS-gj+a2ND9cuiAO=$du=?+ahjQ@^n{5v!| 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 KJviY!$m?GWpp3@= diff --git a/armstrong/cli/templates/paywall/manifest.json b/armstrong/cli/templates/paywall/manifest.json deleted file mode 100644 index d3357e0..0000000 --- a/armstrong/cli/templates/paywall/manifest.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "templated": { - "include": [ - "settings\/", - "urls\/" - ] - } -} diff --git a/armstrong/cli/templates/paywall/requirements/development.txt b/armstrong/cli/templates/paywall/requirements/development.txt deleted file mode 100644 index 5e7860e..0000000 --- a/armstrong/cli/templates/paywall/requirements/development.txt +++ /dev/null @@ -1,2 +0,0 @@ --r ./project.txt - diff --git a/armstrong/cli/templates/paywall/requirements/project.txt b/armstrong/cli/templates/paywall/requirements/project.txt deleted file mode 100644 index bcea209..0000000 --- a/armstrong/cli/templates/paywall/requirements/project.txt +++ /dev/null @@ -1,5 +0,0 @@ -armstrong==11.09.0 - -# This is included here because the latest release of django-mptt does not have -# the required code. --e git://github.com/django-mptt/django-mptt.git@0af02a95877041b2fd6d458bd95413dc1666c321#egg=django_mptt-dev diff --git a/armstrong/cli/templates/paywall/settings/__init__.py b/armstrong/cli/templates/paywall/settings/__init__.py deleted file mode 100644 index 3ad9513..0000000 --- a/armstrong/cli/templates/paywall/settings/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from pkgutil import extend_path -__path__ = extend_path(__path__, __name__) diff --git a/armstrong/cli/templates/paywall/settings/defaults.py b/armstrong/cli/templates/paywall/settings/defaults.py deleted file mode 100644 index 44ae68a..0000000 --- a/armstrong/cli/templates/paywall/settings/defaults.py +++ /dev/null @@ -1,160 +0,0 @@ -# Django settings for {{ project_name }} project. -import os - - -def project_dir(*paths): - base = os.path.realpath(os.path.join(os.path.dirname(__file__), '..')) - return os.path.join(base, *paths) - - -DEBUG = False -TEMPLATE_DEBUG = False - -ADMINS = ( - # ('Your Name', 'your_email@example.com'), -) - -MANAGERS = ADMINS - -# Local time zone for this installation. Choices can be found here: -# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name -# although not all choices may be available on all operating systems. -# On Unix systems, a value of None will cause Django to use the same -# timezone as the operating system. -# If running in a Windows environment this must be set to the same as your -# system time zone. -TIME_ZONE = 'America/Chicago' - -# Language code for this installation. All choices can be found here: -# http://www.i18nguy.com/unicode/language-identifiers.html -LANGUAGE_CODE = 'en-us' - -SITE_ID = 1 - -# If you set this to False, Django will make some optimizations so as not -# to load the internationalization machinery. -USE_I18N = True - -# If you set this to False, Django will not format dates, numbers and -# calendars according to the current locale -USE_L10N = True - -# Absolute filesystem path to the directory that will hold user-uploaded files. -# Example: "/home/media/media.lawrence.com/media/" -MEDIA_ROOT = '' - -# URL that handles the media served from MEDIA_ROOT. Make sure to use a -# trailing slash. -# Examples: "http://media.lawrence.com/media/", "http://example.com/media/" -MEDIA_URL = '' - -# Absolute path to the directory static files should be collected to. -# Don't put anything in this directory yourself; store your static files -# in apps' "static/" subdirectories and in STATICFILES_DIRS. -# Example: "/home/media/media.lawrence.com/static/" -STATIC_ROOT = '' - -# URL prefix for static files. -# Example: "http://media.lawrence.com/static/" -STATIC_URL = '/static/' - -# URL prefix for admin static files -- CSS, JavaScript and images. -# Make sure to use a trailing slash. -# Examples: "http://foo.com/static/admin/", "/static/admin/". -ADMIN_MEDIA_PREFIX = '/static/admin/' - -# Additional locations of static files -STATICFILES_DIRS = ( - # Put strings here, like "/home/html/static" or "C:/www/django/static". - # Always use forward slashes, even on Windows. - # Don't forget to use absolute paths, not relative paths. -) - -# List of finder classes that know how to find static files in -# various locations. -STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', -# 'django.contrib.staticfiles.finders.DefaultStorageFinder', -) - -# Make this unique, and don't share it with anybody. -SECRET_KEY = '{{ secret_key }}' - -INTERNAL_IPS = ('127.0.0.1',) -# List of callables that know how to import templates from various sources. -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', -# 'django.template.loaders.eggs.Loader', -) - -MIDDLEWARE_CLASSES = ( - 'django.middleware.common.CommonMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', -) - -TEMPLATE_DIRS = ( - # Put strings here, like "/home/html/django_templates" or - # "C:/www/django/templates". - # Always use forward slashes, even on Windows. - # Don't forget to use absolute paths, not relative paths. - project_dir("templates") -) - -INSTALLED_APPS = ( - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.sites', - 'django.contrib.messages', - 'django.contrib.staticfiles', - # Comment the next line to disable the admin: - 'django.contrib.admin', - # Comment out the next line to disable admin documentation: - 'django.contrib.admindocs', - - # Armstrong packages - 'armstrong.core.arm_access', - 'armstrong.core.arm_content', - 'armstrong.core.arm_layout', - 'armstrong.core.arm_sections', - 'armstrong.core.arm_wells', - 'armstrong.apps.articles', - 'armstrong.apps.content', - 'armstrong.apps.related_content', - 'armstrong.hatband', - - # Third-party apps that Armstrong requires - 'reversion', - 'mptt', - 'taggit', -) - -ARMSTRONG_SECTION_ITEM_MODEL = 'armstrong.apps.content.models.Content' - -# A sample logging configuration. The only tangible logging -# performed by this configuration is to send an email to -# the site admins on every HTTP 500 error. -# See http://docs.djangoproject.com/en/dev/topics/logging for -# more details on how to customize your logging configuration. -LOGGING = { - 'version': 1, - 'disable_existing_loggers': False, - 'handlers': { - 'mail_admins': { - 'level': 'ERROR', - 'class': 'django.utils.log.AdminEmailHandler' - } - }, - 'loggers': { - 'django.request': { - 'handlers': ['mail_admins'], - 'level': 'ERROR', - 'propagate': True, - }, - } -} diff --git a/armstrong/cli/templates/paywall/settings/development.py b/armstrong/cli/templates/paywall/settings/development.py deleted file mode 100644 index f8f71ee..0000000 --- a/armstrong/cli/templates/paywall/settings/development.py +++ /dev/null @@ -1,28 +0,0 @@ -# Development settings for {{ project_name }} -from settings.defaults import * - -DEBUG = True -TEMPLATE_DEBUG = DEBUG - -# Change this to work with your default development database -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. - 'NAME': './database.sqlite3', # Or path to database file if using sqlite3. - 'USER': '', # Not used with sqlite3. - 'PASSWORD': '', # Not used with sqlite3. - 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. - 'PORT': '', # Set to empty string for default. Not used with sqlite3. - } -} - -# URL configuration to use in development mode -ROOT_URLCONF = 'urls.development' - - -# Attempt to load any settings from settings.local_development, but ignore any -# errors complaining about them not being present. -try: - from settings.local_development import * -except ImportError, e: - pass diff --git a/armstrong/cli/templates/paywall/settings/production.py b/armstrong/cli/templates/paywall/settings/production.py deleted file mode 100644 index 5bb2786..0000000 --- a/armstrong/cli/templates/paywall/settings/production.py +++ /dev/null @@ -1,27 +0,0 @@ -# Production settings for {{ project_name }} -from settings.defaults import * - -DEBUG = False -TEMPLATE_DEBUG = DEBUG - -# Change this to work with your default production database -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. - 'NAME': '', # Or path to database file if using sqlite3. - 'USER': '', # Not used with sqlite3. - 'PASSWORD': '', # Not used with sqlite3. - 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. - 'PORT': '', # Set to empty string for default. Not used with sqlite3. - } -} - -# URL configuration to use in production mode -ROOT_URLCONF = 'urls.production' - -# Attempt to load any settings from settings.local_production, but ignore any -# errors complaining about them not being present. -try: - from settings.local_production import * -except ImportError, e: - pass diff --git a/armstrong/cli/templates/paywall/templates/article.html b/armstrong/cli/templates/paywall/templates/article.html deleted file mode 100644 index e24d872..0000000 --- a/armstrong/cli/templates/paywall/templates/article.html +++ /dev/null @@ -1,13 +0,0 @@ -{% extends 'base.html' %} - -{% block header %} -

Welcome to Armstrong!

-{% endblock %} - -{% block content %} -

{{ object.title }}

- - {% autoescape off %} -
{{ object.body }}
- {% endautoescape %} -{% endblock %} diff --git a/armstrong/cli/templates/paywall/templates/base.html b/armstrong/cli/templates/paywall/templates/base.html deleted file mode 100644 index c13efe1..0000000 --- a/armstrong/cli/templates/paywall/templates/base.html +++ /dev/null @@ -1,47 +0,0 @@ -{% comment %} -This is adapted from Paul Irish's HTML5 boilerplate. -{% endcomment %} -{% load section_helpers %} - - - - - - - - - - Your New Armstrong Project - - - - - -
- {% block header %} -

Welcome to Armstrong!

- {% endblock %} -
-
- {% block sidemenu %} - Home - {% section_menu section_view='section_view' %} - {% endblock %} -
-
- {% block content %} - {% endblock %} -
- - - diff --git a/armstrong/cli/templates/paywall/templates/front_page.html b/armstrong/cli/templates/paywall/templates/front_page.html deleted file mode 100644 index a01698f..0000000 --- a/armstrong/cli/templates/paywall/templates/front_page.html +++ /dev/null @@ -1,14 +0,0 @@ -{% extends 'base.html' %} - -{% load layout_helpers %} - -{% block content %} - {% render_iter well.items|slice:":15" %} - {% render_next "big" %} - {% render_next "big" %} - {% render_next "standard" %} - {% render_next "standard" %} - {% render_next "standard" %} - {% render_remainder "half" %} - {% endrender_iter %} -{% endblock %} diff --git a/armstrong/cli/templates/paywall/templates/index.html b/armstrong/cli/templates/paywall/templates/index.html deleted file mode 100644 index e745167..0000000 --- a/armstrong/cli/templates/paywall/templates/index.html +++ /dev/null @@ -1,41 +0,0 @@ -{% comment %} -This is adapted from Paul Irish's HTML5 boilerplate. -{% endcomment %} - - - - - - - - - - Your New Armstrong Project - - - - -
-
-

Welcome to Armstrong!

-
-
-

Everything Worked!

-

- Thanks for checking out Armstrong! This is a static template - that you can edit to fit your needs, or remove entirely if you - want something else. -

-

- Please check out - our repository - for more information on what to do next. -

-
-
-
-
- - - - diff --git a/armstrong/cli/templates/paywall/templates/layout/articles/article/big.html b/armstrong/cli/templates/paywall/templates/layout/articles/article/big.html deleted file mode 100644 index fa270a3..0000000 --- a/armstrong/cli/templates/paywall/templates/layout/articles/article/big.html +++ /dev/null @@ -1,9 +0,0 @@ -
-

{{ object.title }}{% if object.access.is_protected %} ($){% endif %}

- {% autoescape off %} -

- {{ object.summary }} - Show more -

- {% endautoescape %} -
diff --git a/armstrong/cli/templates/paywall/templates/layout/articles/article/half.html b/armstrong/cli/templates/paywall/templates/layout/articles/article/half.html deleted file mode 100644 index baff773..0000000 --- a/armstrong/cli/templates/paywall/templates/layout/articles/article/half.html +++ /dev/null @@ -1,9 +0,0 @@ -
-

{{ object.title }}{% if object.access.is_protected %} ($){% endif %}

- {% autoescape off %} -

- {{ object.summary }} - Show more -

- {% endautoescape %} -
diff --git a/armstrong/cli/templates/paywall/templates/layout/articles/article/standard.html b/armstrong/cli/templates/paywall/templates/layout/articles/article/standard.html deleted file mode 100644 index e9dd5c4..0000000 --- a/armstrong/cli/templates/paywall/templates/layout/articles/article/standard.html +++ /dev/null @@ -1,9 +0,0 @@ -
-

{{ object.title }}{% if object.access.is_protected %} ($){% endif %}

- {% autoescape off %} -

- {{ object.summary }} - Show more -

- {% endautoescape %} -
diff --git a/armstrong/cli/templates/paywall/templates/permission_denied.html b/armstrong/cli/templates/paywall/templates/permission_denied.html deleted file mode 100644 index 25c2db6..0000000 --- a/armstrong/cli/templates/paywall/templates/permission_denied.html +++ /dev/null @@ -1,18 +0,0 @@ -{% extends 'base.html' %} - -{% block header %} -

Welcome to Armstrong!

-{% endblock %} - -{% block content %} -

{{ object.title }}

- - {% autoescape off %} -
{{ object.summary }} ...
-
The rest of this article is for subscribers - only. To access it, - - login with username: 'user' and password: 'user'
- {% endautoescape %} -{% endblock %} - diff --git a/armstrong/cli/templates/paywall/templates/registration/login.html b/armstrong/cli/templates/paywall/templates/registration/login.html deleted file mode 100644 index 1a37057..0000000 --- a/armstrong/cli/templates/paywall/templates/registration/login.html +++ /dev/null @@ -1,20 +0,0 @@ -{% extends "base.html" %} - -{% block content %} - -{% if form.errors %} -

Your username and password didn't match. Please try again.

-{% endif %} - -
-{% csrf_token %} -
-{{ form.as_table }} -
- - - - - -{% endblock %} - diff --git a/armstrong/cli/templates/paywall/templates/section.html b/armstrong/cli/templates/paywall/templates/section.html deleted file mode 100644 index 03d614e..0000000 --- a/armstrong/cli/templates/paywall/templates/section.html +++ /dev/null @@ -1,10 +0,0 @@ -{% extends 'base.html' %} - -{% load layout_helpers %} - -{% block content %} -

{{ section.title }}

- {% for object in section.items %} - {% render_model object 'standard' %} - {% endfor %} -{% endblock %} diff --git a/armstrong/cli/templates/paywall/urls/__init__.py b/armstrong/cli/templates/paywall/urls/__init__.py deleted file mode 100644 index 3ad9513..0000000 --- a/armstrong/cli/templates/paywall/urls/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from pkgutil import extend_path -__path__ = extend_path(__path__, __name__) diff --git a/armstrong/cli/templates/paywall/urls/defaults.py b/armstrong/cli/templates/paywall/urls/defaults.py deleted file mode 100644 index f2a688e..0000000 --- a/armstrong/cli/templates/paywall/urls/defaults.py +++ /dev/null @@ -1,72 +0,0 @@ -from django.conf.urls.defaults import patterns, include, url -from armstrong.core.arm_wells.views import QuerySetBackedWellView -from armstrong.core.arm_sections.views import SimpleSectionView, SectionFeed -from armstrong.core.arm_access.paywalls.subscription import SubscriptionPaywall -from armstrong.core.arm_access.paywalls import render_on_deny -from armstrong.apps.articles.models import Article -from armstrong.apps.articles.views import ArticleFeed -from django.views.generic.detail import DetailView -from django.views.generic import TemplateView -# ADMIN_BASE is the base URL for your Armstrong admin. It is highly -# recommended that you change this to a different URL unless you enforce a -# strict password-strength policy for your users. -ADMIN_BASE = "admin" - - -# Comment the next two lines out to disable the admin: -from armstrong import hatband as admin -admin.autodiscover() - -paywall = SubscriptionPaywall(permission_denied=render_on_deny('permission_denied.html')) - -from .utils import get_url_for_model - -urlpatterns = patterns('', - # Examples: - # url(r'^$', 'baz.views.home', name='home'), - # url(r'^baz/', include('baz.foo.urls')), - - # Comment the admin/doc line below to disable admin documentation: - url(r'^%s/doc/' % ADMIN_BASE, include('django.contrib.admindocs.urls')), - - # Comment the next line to disable the admin: - url(r'^%s/' % ADMIN_BASE, include(admin.site.urls)), - - url(r'^$', - QuerySetBackedWellView.as_view(well_title='front_page', - template_name="front_page.html", - queryset=Article.published.all(), - ), - name='front_page'), - - url(r'^section/(?P[-\w/]+)', - SimpleSectionView.as_view(template_name='section.html'), - name='section_view'), - url(r'^feed/section/(?P[-\w/]+)', - SectionFeed(section_view='section_view'), - name='section_feed'), - - url(r'^feed/all', - ArticleFeed(title='Demo site articles', - link='/', - queryset=Article.objects.all()), - name='all_articles_feed'), - - url(r'^article/(?P[-\w]+)/', - paywall.protect(DetailView.as_view( - queryset=Article.published.all(), - template_name='article.html', - slug_field='slug', - ), - template_object_name='object'), - name='article_detail'), - - url(r'^accounts/login/$', 'django.contrib.auth.views.login', name='login'), -) - -from django.contrib.staticfiles.urls import staticfiles_urlpatterns -urlpatterns += staticfiles_urlpatterns() - -# Uncomment the following two lines if you want to expose our default API -# from .api import urlpatterns as api_urlpatterns -# urlpatterns += api_urlpatterns diff --git a/armstrong/cli/templates/paywall/urls/development.py b/armstrong/cli/templates/paywall/urls/development.py deleted file mode 100644 index a80f489..0000000 --- a/armstrong/cli/templates/paywall/urls/development.py +++ /dev/null @@ -1,15 +0,0 @@ -""" -Add any additional URLs that should only be available when using the the -settings.development configuration. - -See ``urls.defaults`` for a list of all URLs available across both -configurations. -""" -from .defaults import * - -urlpatterns += patterns('', - - # Examples: - # url(r'^$', 'baz.views.debug', name='debug'), - # url(r'^baz/', include('baz.debug.urls')), -) diff --git a/armstrong/cli/templates/paywall/urls/production.py b/armstrong/cli/templates/paywall/urls/production.py deleted file mode 100644 index 397e644..0000000 --- a/armstrong/cli/templates/paywall/urls/production.py +++ /dev/null @@ -1,19 +0,0 @@ -""" -Add any additional URLs that should only be available when using the the -settings.production configuration. - -This is useful for having a production location for debugging utilities where -you do not want them on at their standard path. Note that everything defined -in urls.defaults is available here as well. - -See ``urls.defaults`` for a list of all URLs available across both -configurations. -""" -from .defaults import * - -urlpatterns += patterns('', - - # Examples: - # url(r'^$', 'prod/baz.views.debug', name='debug'), - # url(r'^prod/baz/', include('baz.debug.urls')), -) diff --git a/armstrong/cli/templates/paywall/urls/utils.py b/armstrong/cli/templates/paywall/urls/utils.py deleted file mode 100644 index 01fe653..0000000 --- a/armstrong/cli/templates/paywall/urls/utils.py +++ /dev/null @@ -1,18 +0,0 @@ -from armstrong.core.arm_sections.models import Section -from armstrong.apps.articles.models import Article -from django.core.urlresolvers import reverse - -def get_url_for_model(obj): - """ The get_url_for_model function is necessary because Armstrong has no - preconceptions about what your url schema actually looks like. - get_url_for_model is called whenever a BaseContent subclass has it's - get_absolute_url function calle_url_for_model is called whenever a - BaseContent subclass has it's get_absolute_url function called. - - In the future we will most likely provide base urls for each app that will - allow new Armstrong implementations to not use this mechanism. - """ - if obj.__class__ == Section: - return reverse('section_view', kwargs={'full_slug': obj.full_slug}) - if obj.__class__ == Article: - return reverse('article_detail', kwargs={'slug': obj.slug}) diff --git a/armstrong/cli/templates/paywall/wsgi.py b/armstrong/cli/templates/paywall/wsgi.py deleted file mode 100644 index 6ae9fe0..0000000 --- a/armstrong/cli/templates/paywall/wsgi.py +++ /dev/null @@ -1,13 +0,0 @@ -# Simple wsgi file for {{ project_name }} -import os -import sys - -# Change this to reflect the environment you're in -os.environ['DJANGO_SETTINGS_MODULE'] = 'settings.development' - -# Make sure that this project directory is first in the sys.path, or at least -# as close to first as can be reasonably assured in Python. -sys.path.insert(0, os.path.dirname(__file__)) - -from django.core.handlers.wsgi import WSGIHandler -application = WSGIHandler()