text:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ChangeListManager">
    <list default="true" id="f2ea85b3-f35b-4f30-9e91-ceb81a7a9f33" name="Default" comment="">
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/components/newPlace/newPlace.css" afterPath="$PROJECT_DIR$/src/app/components/newPlace/newPlace.css" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/components/newPlace/newPlace.html" afterPath="$PROJECT_DIR$/src/app/components/newPlace/newPlace.html" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/components/newPlace/newPlace.ts" afterPath="$PROJECT_DIR$/src/app/components/newPlace/newPlace.ts" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/components/place/place.ts" afterPath="$PROJECT_DIR$/src/app/components/place/place.ts" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/services/place/placeService.ts" afterPath="$PROJECT_DIR$/src/app/services/place/placeService.ts" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/components/allPlaces/places.ts" afterPath="$PROJECT_DIR$/src/app/components/allPlaces/places.ts" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/seed-app.html" afterPath="$PROJECT_DIR$/src/app/seed-app.html" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/app/seed-app.ts" afterPath="$PROJECT_DIR$/src/app/seed-app.ts" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
    </list>
    <ignored path="Ukraine.iws" />
    <ignored path=".idea/workspace.xml" />
    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
    <option name="TRACKING_ENABLED" value="true" />
    <option name="SHOW_DIALOG" value="false" />
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
    <option name="LAST_RESOLUTION" value="IGNORE" />
  </component>
  <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
  <component name="CreatePatchCommitExecutor">
    <option name="PATCH_PATH" value="" />
  </component>
  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
  <component name="FavoritesManager">
    <favorites_list name="Ukraine" />
  </component>
  <component name="FileEditorManager">
    <leaf>
      <file leaf-file-name="seed-app.ts" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/src/app/seed-app.ts">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="24" column="1" selection-start-line="24" selection-start-column="1" selection-end-line="24" selection-end-column="1" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="places.ts" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/src/app/components/allPlaces/places.ts">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="34" column="24" selection-start-line="34" selection-start-column="24" selection-end-line="34" selection-end-column="24" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="newPlace.ts" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/src/app/components/newPlace/newPlace.ts">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="22" column="26" selection-start-line="22" selection-start-column="26" selection-end-line="22" selection-end-column="26" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="fullPlace.ts" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/src/app/components/fullPlace/fullPlace.ts">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="22" column="40" selection-start-line="22" selection-start-column="40" selection-end-line="22" selection-end-column="40" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="place.ts" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/src/app/components/place/place.ts">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="6" column="25" selection-start-line="6" selection-start-column="25" selection-end-line="6" selection-end-column="25" />
              <folding>
                <element signature="n#!!doc;n#Place#0" expanded="false" />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="placeService.ts" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/src/app/services/place/placeService.ts">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="4" column="0" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="webpack.config.js" pinned="false" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/webpack.config.js">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="typings.json" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/typings.json">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="-0.0">
              <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="http.ts" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/node_modules/angular2/ts/src/http/http.ts">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="120" column="20" selection-start-line="120" selection-start-column="20" selection-end-line="120" selection-end-column="20" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="index.html" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/src/index.html">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.9259259">
              <caret line="5" column="19" selection-start-line="5" selection-start-column="19" selection-end-line="5" selection-end-column="19" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
    </leaf>
  </component>
  <component name="FileTemplateManagerImpl">
    <option name="RECENT_TEMPLATES">
      <list>
        <option value="CSS File" />
        <option value="Html5" />
        <option value="TypeScript File" />
      </list>
    </option>
  </component>
  <component name="Git.Settings">
    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
  </component>
  <component name="IdeDocumentHistory">
    <option name="CHANGED_PATHS">
      <list>
        <option value="$PROJECT_DIR$/src/app/components/home/home.ts" />
        <option value="$PROJECT_DIR$/src/app/components/home/home.html" />
        <option value="$PROJECT_DIR$/src/app/components/places/places.css" />
        <option value="$PROJECT_DIR$/src/app/components/new/new.html" />
        <option value="$PROJECT_DIR$/src/app/components/places/places.html" />
        <option value="$PROJECT_DIR$/src/app/components/places/places.ts" />
        <option value="$PROJECT_DIR$/src/app/components/new/new.ts" />
        <option value="$PROJECT_DIR$/src/app/components/allPlaces/allPlaces.ts" />
        <option value="$PROJECT_DIR$/src/app/components/place/place.html" />
        <option value="$PROJECT_DIR$/src/app/components/placeDetail/placeDetail.html" />
        <option value="$PROJECT_DIR$/src/index.html" />
        <option value="$PROJECT_DIR$/src/app/components/placeDetail/placeDetail.css" />
        <option value="$PROJECT_DIR$/src/app/components/placeDetail/placeDetail.ts" />
        <option value="$PROJECT_DIR$/src/app/components/fullPlace/fullPlace.html" />
        <option value="$PROJECT_DIR$/src/app/components/fullPlace/fullPlace.css" />
        <option value="$PROJECT_DIR$/src/app/components/fullPlace/fullPlace.ts" />
        <option value="$PROJECT_DIR$/src/app/components/allPlaces/allPlaces.html" />
        <option value="$PROJECT_DIR$/src/app/components/NewPlace/NewPlace.css" />
        <option value="$PROJECT_DIR$/src/app/components/NewPlace/NewPlace.html" />
        <option value="$PROJECT_DIR$/src/app/components/NewPlace/newPlace.html" />
        <option value="$PROJECT_DIR$/src/app/components/NewPlace/newPlace.ts" />
        <option value="$PROJECT_DIR$/.gitignore" />
        <option value="$PROJECT_DIR$/src/app/components/newPlace/newPlace.css" />
        <option value="$PROJECT_DIR$/src/app/components/newPlace/newPlace.html" />
        <option value="$PROJECT_DIR$/src/app/seed-app.ts" />
        <option value="$PROJECT_DIR$/src/app/seed-app.html" />
        <option value="$PROJECT_DIR$/src/app/components/newPlace/newPlace.ts" />
        <option value="$PROJECT_DIR$/src/app/components/allPlaces/places.ts" />
        <option value="$PROJECT_DIR$/src/app/components/place/place.ts" />
        <option value="$PROJECT_DIR$/src/app/services/place/placeService.ts" />
      </list>
    </option>
  </component>
  <component name="JsBuildToolGruntFileManager" detection-done="true" />
  <component name="JsGulpfileManager">
    <detection-done>true</detection-done>
  </component>
  <component name="NamedScopeManager">
    <order />
  </component>
  <component name="ProjectFrameBounds">
    <option name="width" value="1364" />
    <option name="height" value="736" />
  </component>
  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
    <OptionsSetting value="true" id="Add" />
    <OptionsSetting value="true" id="Remove" />
    <OptionsSetting value="true" id="Checkout" />
    <OptionsSetting value="true" id="Update" />
    <OptionsSetting value="true" id="Status" />
    <OptionsSetting value="true" id="Edit" />
    <ConfirmationsSetting value="0" id="Add" />
    <ConfirmationsSetting value="0" id="Remove" />
  </component>
  <component name="ProjectView">
    <navigator currentView="ProjectPane" proportions="" version="1">
      <flattenPackages />
      <showMembers />
      <showModules />
      <showLibraryContents />
      <hideEmptyPackages />
      <abbreviatePackageNames />
      <autoscrollToSource />
      <autoscrollFromSource />
      <sortByType />
    </navigator>
    <panes>
      <pane id="ProjectPane">
        <subPane>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="app" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="app" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="services" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="place" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="app" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="components" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="app" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="components" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="place" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="app" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="components" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="newPlace" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="app" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="components" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="fullPlace" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Ukraine" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="app" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="components" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="allPlaces" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
        </subPane>
      </pane>
      <pane id="Scratches" />
      <pane id="Scope" />
    </panes>
  </component>
  <component name="PropertiesComponent">
    <property name="WebServerToolWindowFactoryState" value="false" />
    <property name="HbShouldOpenHtmlAsHb" value="" />
    <property name="settings.editor.selected.configurable" value="settings.nodejs" />
    <property name="JavaScriptLanguageLevel" value="ES6" />
    <property name="JavaScriptPreferStrict" value="false" />
    <property name="JavaScriptWeakerCompletionTypeGuess" value="true" />
    <property name="settings.editor.splitter.proportion" value="0.2" />
    <property name="editor.config.accepted" value="true" />
    <property name="DefaultHtmlFileTemplate" value="Html5" />
    <property name="list.type.of.created.stylesheet" value="CSS" />
    <property name="typescript-compiler-editor-notification" value="false" />
    <property name="FullScreen" value="false" />
  </component>
  <component name="RunManager">
    <configuration default="true" type="DartCommandLineRunConfigurationType" factoryName="Dart Command Line Application">
      <method />
    </configuration>
    <configuration default="true" type="DartUnitRunConfigurationType" factoryName="DartUnit">
      <method />
    </configuration>
    <configuration default="true" type="JavaScriptTestRunnerKarma" factoryName="Karma" config-file="">
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
      <method />
    </configuration>
    <configuration default="true" type="JsTestDriver-test-runner" factoryName="JsTestDriver">
      <setting name="configLocationType" value="CONFIG_FILE" />
      <setting name="settingsFile" value="" />
      <setting name="serverType" value="INTERNAL" />
      <setting name="preferredDebugBrowser" value="Chrome" />
      <method />
    </configuration>
    <configuration default="true" type="NodeJSConfigurationType" factoryName="Node.js" working-dir="">
      <method />
    </configuration>
    <configuration default="true" type="cucumber.js" factoryName="Cucumber.js">
      <option name="cucumberJsArguments" value="" />
      <option name="executablePath" />
      <option name="filePath" />
      <method />
    </configuration>
    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
      <node-options />
      <gulpfile />
      <tasks />
      <arguments />
      <pass-parent-envs>true</pass-parent-envs>
      <envs />
      <method />
    </configuration>
  </component>
  <component name="ShelveChangesManager" show_recycled="false" />
  <component name="SvnConfiguration">
    <configuration />
  </component>
  <component name="TaskManager">
    <task active="true" id="Default" summary="Default task">
      <changelist id="f2ea85b3-f35b-4f30-9e91-ceb81a7a9f33" name="Default" comment="" />
      <created>1461145741087</created>
      <option name="number" value="Default" />
      <updated>1461145741087</updated>
    </task>
    <servers />
  </component>
  <component name="TodoView">
    <todo-panel id="selected-file">
      <is-autoscroll-to-source value="true" />
    </todo-panel>
    <todo-panel id="all">
      <are-packages-shown value="true" />
      <is-autoscroll-to-source value="true" />
    </todo-panel>
  </component>
  <component name="ToolWindowManager">
    <frame x="0" y="0" width="1364" height="736" extended-state="4" />
    <editor active="true" />
    <layout>
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24644195" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3293919" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="true" content_ui="tabs" />
      <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3293919" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3293919" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.34067798" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3293919" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
    </layout>
  </component>
  <component name="Vcs.Log.UiProperties">
    <option name="RECENTLY_FILTERED_USER_GROUPS">
      <collection />
    </option>
    <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
      <collection />
    </option>
  </component>
  <component name="VcsContentAnnotationSettings">
    <option name="myLimit" value="2678400000" />
  </component>
  <component name="XDebuggerManager">
    <breakpoint-manager>
      <option name="time" value="1" />
    </breakpoint-manager>
    <watches-manager />
  </component>
  <component name="editorHistoryManager">
    <entry file="file://$PROJECT_DIR$/src/app/services/place/placeService.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="28" column="2" selection-start-line="28" selection-start-column="2" selection-end-line="28" selection-end-column="2" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/seed-app.html">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/seed-app.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="21" column="1" selection-start-line="21" selection-start-column="1" selection-end-line="21" selection-end-column="1" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="10" column="14" selection-start-line="10" selection-start-column="14" selection-end-line="10" selection-end-column="14" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/package.json">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="22" column="33" selection-start-line="22" selection-start-column="33" selection-end-line="22" selection-end-column="33" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/allPlaces/places.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="20" column="21" selection-start-line="20" selection-start-column="21" selection-end-line="20" selection-end-column="21" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/placeDetail/placeDetail.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="7" column="12" selection-start-line="7" selection-start-column="12" selection-end-line="7" selection-end-column="12" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/placeDetail/placeDetail.css">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/placeDetail/placeDetail.html">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="4" selection-start-line="0" selection-start-column="4" selection-end-line="0" selection-end-column="4" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/allPlaces/allPlaces.html">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="4" column="32" selection-start-line="4" selection-start-column="32" selection-end-line="4" selection-end-column="32" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/seed-app.html">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/seed-app.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="4" column="39" selection-start-line="4" selection-start-column="39" selection-end-line="4" selection-end-column="39" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="10" column="14" selection-start-line="10" selection-start-column="14" selection-end-line="10" selection-end-column="14" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/package.json">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/allPlaces/places.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="20" column="21" selection-start-line="20" selection-start-column="21" selection-end-line="20" selection-end-column="21" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/placeDetail/placeDetail.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="16" column="0" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/placeDetail/placeDetail.html">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/place/place.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
          <folding>
            <element signature="n#!!doc;n#Place#0" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/allPlaces/allPlaces.html">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="4" column="32" selection-start-line="4" selection-start-column="32" selection-end-line="4" selection-end-column="32" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/index.html">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="5" column="19" selection-start-line="5" selection-start-column="19" selection-end-line="5" selection-end-column="19" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/polyfills.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/typings.d.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/vendor.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/typings/browser.d.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/.editorconfig">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/typings/main.d.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/package.json">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="22" column="33" selection-start-line="22" selection-start-column="33" selection-end-line="22" selection-end-column="33" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/about/about.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/about/about.css">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/.gitignore">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-2.7692308">
          <caret line="4" column="5" selection-start-line="4" selection-start-column="5" selection-end-line="4" selection-end-column="5" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/fullPlace/fullPlace.css">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="4" column="14" selection-start-line="4" selection-start-column="14" selection-end-line="4" selection-end-column="14" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/placeDetail/placeDetail.html">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-0.0">
          <caret line="0" column="4" selection-start-line="0" selection-start-column="4" selection-end-line="0" selection-end-column="4" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/placeDetail/placeDetail.css">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/placeDetail/placeDetail.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="7" column="12" selection-start-line="7" selection-start-column="12" selection-end-line="7" selection-end-column="12" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/newPlace/newPlace.css">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/fullPlace/fullPlace.html">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-4.6666665">
          <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/newPlace/newPlace.html">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-1.3333334">
          <caret line="2" column="35" selection-start-line="2" selection-start-column="35" selection-end-line="2" selection-end-column="35" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="10" column="14" selection-start-line="10" selection-start-column="14" selection-end-line="10" selection-end-column="14" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/seed-app.html">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-9.333333">
          <caret line="14" column="13" selection-start-line="14" selection-start-column="13" selection-end-line="14" selection-end-column="13" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/allPlaces/allPlaces.html">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-1.3333334">
          <caret line="2" column="30" selection-start-line="2" selection-start-column="30" selection-end-line="2" selection-end-column="30" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/index.html">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.9259259">
          <caret line="5" column="19" selection-start-line="5" selection-start-column="19" selection-end-line="5" selection-end-column="19" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/seed-app.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="24" column="1" selection-start-line="24" selection-start-column="1" selection-end-line="24" selection-end-column="1" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/node_modules/rxjs/Observable.d.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/node_modules/angular2/ts/src/http/http.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="120" column="20" selection-start-line="120" selection-start-column="20" selection-end-line="120" selection-end-column="20" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/place/place.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="6" column="25" selection-start-line="6" selection-start-column="25" selection-end-line="6" selection-end-column="25" />
          <folding>
            <element signature="n#!!doc;n#Place#0" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/newPlace/newPlace.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="22" column="26" selection-start-line="22" selection-start-column="26" selection-end-line="22" selection-end-column="26" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/allPlaces/places.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="34" column="24" selection-start-line="34" selection-start-column="24" selection-end-line="34" selection-end-column="24" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/components/fullPlace/fullPlace.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="22" column="40" selection-start-line="22" selection-start-column="40" selection-end-line="22" selection-end-column="40" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/app/services/place/placeService.ts">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="4" column="0" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/typings.json">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/webpack.config.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
  </component>
</project>


text:
"""
Copyright 2015 SmartBear Software

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

    Ref: https://github.com/swagger-api/swagger-codegen
"""

from pprint import pformat
from six import iteritems

class SoftwareInfo(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self):
        """
        SoftwareInfo - a model defined in Swagger

        :param dict swaggerTypes: The key is attribute name
                                  and the value is attribute type.
        :param dict attributeMap: The key is attribute name
                                  and the value is json key in definition.
        """
        self.swagger_types = {
            'component': 'str',
            'label': 'str',
            'sw_rev': 'str'
        }

        self.attribute_map = {
            'component': 'component',
            'label': 'label',
            'sw_rev': 'swRev'
        }

        self._component = None
        self._label = None
        self._sw_rev = None

    @property
    def component(self):
        """
        Gets the component of this SoftwareInfo.
        String identifier of the component

        :return: The component of this SoftwareInfo.
        :rtype: str
        """
        return self._component

    @component.setter
    def component(self, component):
        """
        Sets the component of this SoftwareInfo.
        String identifier of the component

        :param component: The component of this SoftwareInfo.
        :type: str
        """
        self._component = component

    @property
    def label(self):
        """
        Gets the label of this SoftwareInfo.
        Version label of the component. The label may contain additional information about  the component, but the format is not specified.

        :return: The label of this SoftwareInfo.
        :rtype: str
        """
        return self._label

    @label.setter
    def label(self, label):
        """
        Sets the label of this SoftwareInfo.
        Version label of the component. The label may contain additional information about  the component, but the format is not specified.

        :param label: The label of this SoftwareInfo.
        :type: str
        """
        self._label = label

    @property
    def sw_rev(self):
        """
        Gets the sw_rev of this SoftwareInfo.
        Software version of the component

        :return: The sw_rev of this SoftwareInfo.
        :rtype: str
        """
        return self._sw_rev

    @sw_rev.setter
    def sw_rev(self, sw_rev):
        """
        Sets the sw_rev of this SoftwareInfo.
        Software version of the component

        :param sw_rev: The sw_rev of this SoftwareInfo.
        :type: str
        """
        self._sw_rev = sw_rev

    def to_dict(self):
        """
        Returns the model properties as a dict
        """
        result = {}

        for attr, _ in iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            else:
                result[attr] = value

        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return pformat(self.to_dict())

    def __repr__(self):
        """
        For `print` and `pprint`
        """
        return self.to_str()

    def __eq__(self, other):
        """
        Returns true if both objects are equal
        """
        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """
        Returns true if both objects are not equal
        """
        return not self == other

redpajama_set_name: RedPajamaGithub


text:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };

/* eslint-disable */

var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) {
  return typeof obj === "undefined" ? "undefined" : _typeof2(obj);
} : function (obj) {
  return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof2(obj);
};

var hasOwnProperty = Object.prototype.hasOwnProperty;

/**
 * inlined Object.is polyfill to avoid requiring consumers ship their own
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
 */
function is(x, y) {
  // SameValue algorithm
  if (x === y) {
    // Steps 1-5, 7-10
    // Steps 6.b-6.e: +0 != -0
    return x !== 0 || 1 / x === 1 / y;
  } else {
    // Step 6.a: NaN == NaN
    return x !== x && y !== y;
  }
}

/**
 * Performs equality by iterating through keys on an object and returning false
 * when any key has values which are not strictly equal between the arguments.
 * Returns true when the values of all keys are strictly equal.
 */
function shallowEqual(objA, objB) {
  if (is(objA, objB)) {
    return true;
  }

  if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {
    return false;
  }

  var keysA = Object.keys(objA);
  var keysB = Object.keys(objB);

  if (keysA.length !== keysB.length) {
    return false;
  }

  // Test for A's keys different from B.
  for (var i = 0; i < keysA.length; i++) {
    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
      return false;
    }
  }

  return true;
}

exports.default = shallowEqual;


text:
Write a program that will use the [FOIL method](http://www.algebrahelp.com/lessons/simplifying/foilmethod/pg2.htm) to solve multiplying binomials.  Your program will accept a binomial algebraic formula as input and you will parse the data, use the FOIL method to reduce the formula, and print out the solution.  You decide how you want to represent exponents (could use caret, or just write out the value after the variable).

Sample Run:

    Enter Binomials:  (2x + 6)(7x + 3)
    Result:  14x^2 + 48x + 18
    Enter Binomials: (2x2 + 3x)(5x2 + 9x)
    Result:  10x4 + 33x3 + 27x2

Bonus:  Support trinomials


text:
import falcor from 'falcor';
import HttpDataSource from 'falcor-http-datasource';
import { Promise } from 'lib/promise';

// Wrap the given function with Promise.resolve
function wrapWithPromise(fn) {
  return function withPromise(...args) {
    return Promise.resolve(fn.apply(this, args));
  };
}

// Do queries via HTTP to /model.json with a 60s timeout to allow devs time to step through code
const model = new falcor.Model({
  source: new HttpDataSource('/model.json', { timeout: 60000 })
}).batch();

// Wrap model async methods so they return Promises
model.call = wrapWithPromise(model.call);
model.get = wrapWithPromise(model.get);
model.set = wrapWithPromise(model.set);

// Export singleton instance of the Falcor Model
export { model };

/**
 * Helper function like lodash's values function but users Falcor.keys to enumerate the object's
 * properties (thus omitting stuff like the __path property);
 */
export function falcorValues(obj) {
  return falcor.keys(obj).map(k => obj[k]);
};


text:
<?php
class Kwc_Blog_Category_Directory_Component extends Kwc_Directories_Category_Directory_Component
{
    public static function getSettings()
    {
        $ret = parent::getSettings();
        $ret['generators']['detail']['component'] = 'Kwc_Blog_Category_Detail_Component';
        $ret['categoryToItemModelName'] = 'Kwc_Blog_Category_Directory_BlogPostsToCategoriesModel';
        return $ret;
    }
}


text:
extern NSString *const KFLinkAttributeName;

typedef NS_ENUM(NSUInteger, KFLinkGestureRecognizerResult) {
    KFLinkGestureRecognizerResultUnknown,
    KFLinkGestureRecognizerResultTap,
    KFLinkGestureRecognizerResultLongPress,
    KFLinkGestureRecognizerResultFailed,
};

@class KFLinkGestureRecognizer;
@interface KFLabel : UITextView

@property (nonatomic, copy) NSDictionary<NSString *, id> *linkTextTouchAttributes;

@property (nonatomic, assign) CFTimeInterval minimumPressDuration;

@property (nonatomic, assign) CGFloat allowableMovement;
// 点击高亮扩大的范围 默认:{-5, -5, -5, -5}
@property (nonatomic) UIEdgeInsets tapAreaInsets;

@property (nonatomic, readonly) KFLinkGestureRecognizer *linkGestureRecognizer;

@property (nonatomic, assign) CGFloat linkCornerRadius;

@property (nonatomic,copy) void (^linkLongPressBlock)(KFLabel *label, id value);
@property (nonatomic,copy) void (^linkTapBlock)(KFLabel *label, id value);

@property (nonatomic,copy) void (^commonTapBlock)(KFLabel *label);
@property (nonatomic,copy) void (^commonLongPressBlock)(KFLabel *label);

- (void)enumerateViewRectsForRanges:(NSArray *)ranges usingBlock:(void (^)(CGRect rect, NSRange range, BOOL *stop))block;

- (BOOL)enumerateLinkRangesContainingLocation:(CGPoint)location usingBlock:(void (^)(NSRange range))block;

@end

@interface KFLinkGestureRecognizer : UIGestureRecognizer

@property (nonatomic) CFTimeInterval minimumPressDuration;

@property (nonatomic) CGFloat allowableMovement;

@property (nonatomic, readonly) KFLinkGestureRecognizerResult result;

@end

@interface KFTextAttachment : NSTextAttachment

@end


text:
#ifndef _ST_STDIO_H
#define _ST_STDIO_H

#include "st_formatter.h"

namespace _ST_PRIVATE
{
    class stdio_format_writer : public ST::format_writer
    {
    public:
        stdio_format_writer(const char *format_str, FILE *stream)
            : ST::format_writer(format_str), m_stream(stream) { }

        stdio_format_writer &append(const char *data, size_t size) override
        {
            (void)fwrite(data, sizeof(char), size, m_stream);
            return *this;
        }

        stdio_format_writer &append_char(char ch, size_t count = 1) override
        {
            while (count) {
                fputc(ch, m_stream);
                --count;
            }
            return *this;
        }

    private:
        FILE *m_stream;
    };
}

namespace ST
{
    template <typename... args_T>
    void printf(const char *fmt_str, args_T &&...args)
    {
        _ST_PRIVATE::stdio_format_writer data(fmt_str, stdout);
        apply_format(data, std::forward<args_T>(args)...);
    }

    template <typename... args_T>
    void printf(FILE *out_file, const char *fmt_str,
                args_T &&...args)
    {
        _ST_PRIVATE::stdio_format_writer data(fmt_str, out_file);
        apply_format(data, std::forward<args_T>(args)...);
    }
}

#endif // _ST_STDIO_H


text:
"use strict";
var __extends = (this && this.__extends) || (function () {
    var extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
Object.defineProperty(exports, "__esModule", { value: true });
var sift_1 = require("sift");
var base_1 = require("./base");
var core_1 = require("@tandem/mesh/core");
var mongoid = require("mongoid-js");
var MemoryDataStore = (function (_super) {
    __extends(MemoryDataStore, _super);
    function MemoryDataStore() {
        var _this = _super.call(this) || this;
        _this._data = {};
        return _this;
    }
    MemoryDataStore.prototype.dsFind = function (_a) {
        var type = _a.type, collectionName = _a.collectionName, query = _a.query, multi = _a.multi;
        var found = this.getCollection(collectionName).filter(sift_1.default(query));
        return core_1.DuplexStream.fromArray(found.length ? multi ? found : [found[0]] : []);
    };
    MemoryDataStore.prototype.dsInsert = function (_a) {
        var type = _a.type, collectionName = _a.collectionName, data = _a.data;
        var ret = JSON.parse(JSON.stringify(data));
        if (!ret._id)
            ret._id = mongoid();
        ret = Array.isArray(ret) ? ret : [ret];
        (_b = this.getCollection(collectionName)).push.apply(_b, ret);
        return core_1.DuplexStream.fromArray(ret);
        var _b;
    };
    MemoryDataStore.prototype.dsRemove = function (_a) {
        var type = _a.type, collectionName = _a.collectionName, query = _a.query;
        var collection = this.getCollection(collectionName);
        var filter = sift_1.default(query);
        var ret = [];
        for (var i = collection.length; i--;) {
            var item = collection[i];
            if (filter(item)) {
                ret.push(item);
                collection.splice(i, 1);
            }
        }
        return core_1.DuplexStream.fromArray(ret);
    };
    MemoryDataStore.prototype.dsUpdate = function (_a) {
        var type = _a.type, collectionName = _a.collectionName, query = _a.query, data = _a.data;
        var collection = this.getCollection(collectionName);
        var filter = sift_1.default(query);
        var ret = [];
        for (var i = collection.length; i--;) {
            var item = collection[i];
            if (filter(item)) {
                Object.assign(item, JSON.parse(JSON.stringify(data)));
                ret.push(item);
            }
        }
        return core_1.DuplexStream.fromArray(ret);
    };
    MemoryDataStore.prototype.getCollection = function (collectionName) {
        return this._data[collectionName] || (this._data[collectionName] = []);
    };
    return MemoryDataStore;
}(base_1.BaseDataStore));
exports.MemoryDataStore = MemoryDataStore;
//# sourceMappingURL=memory.js.map


text:
package com.codepoetics.protonpack;

import org.junit.Test;

import java.util.stream.Collectors;
import java.util.stream.Stream;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasSize;

public class TakeWhileTest {

    @Test public void
    take_while_takes_items_while_condition_is_met() {
        Stream<Integer> infiniteInts = Stream.iterate(0, i -> i + 1);
        Stream<Integer> finiteInts = StreamUtils.takeWhile(infiniteInts, i -> i < 10);

        assertThat(finiteInts.collect(Collectors.toList()), hasSize(10));
    }

    @Test public void
    take_until_takes_items_until_condition_is_met() {
        Stream<Integer> infiniteInts = Stream.iterate(0, i -> i + 1);
        Stream<Integer> finiteInts = StreamUtils.takeUntil(infiniteInts, i -> i > 10);

        assertThat(finiteInts.collect(Collectors.toList()), hasSize(11));
    }
}


text:
export as namespace google;

export const accounts: accounts;

export interface accounts {
    id: {
        initialize: (idConfiguration: IdConfiguration) => void;
        disableAutoSelect: () => void;
        storeCredential: (credential?: string, callback?: () => void) => void;
        cancel: () => void;
        onGoogleLibraryLoad: () => void;
        prompt: (momentListener?: (promptMomentNotification: PromptMomentNotification) => void) => void;
        renderButton: (parent: HTMLElement, options: GsiButtonConfiguration, clickHandler?: () => void) => void;
    };
}

export interface GsiButtonConfiguration {
    type?: 'standard' | 'icon';
    theme?: 'outline' | 'filled_blue' | 'filled_black';
    size?: 'large' | 'medium' | 'small';
    text?: 'signin_with' | 'signup_with' | 'continue_with' | 'signup_with';
    shape?: 'rectangular' | 'pill' | 'circle' | 'square';
    logo_alignment?: 'left' | 'center';
    width?: number;
    locale?: string;
  }

export interface CredentialResponse {
    credential: string;
    select_by: string;
    client_id: string;
}

export interface IdConfiguration {
    client_id?: string | undefined;
    auto_select?: boolean | undefined;
    callback?: ((credentialResponse: CredentialResponse) => void) | undefined;
    native_callback?: (() => void) | undefined;
    cancel_on_tap_outside?: boolean | undefined;
    prompt_parent_id?: string | undefined;
    nonce?: string | undefined;
    context?: string | undefined;
    state_cookie_domain?: string | undefined;
}

export interface PromptMomentNotification {
    isDisplayMoment: () => boolean;
    isDisplayed: () => boolean;
    isNotDisplayed: () => boolean;
    getNotDisplayedReason: () =>
        | 'browser_not_supported'
        | 'invalid_client'
        | 'missing_client_id'
        | 'opt_out_or_no_session'
        | 'secure_http_required'
        | 'suppressed_by_user'
        | 'unregistered_origin'
        | 'unknown_reason';
    isSkippedMoment: () => boolean;
    getSkippedReason: () => 'auto_cancel' | 'user_cancel' | 'tap_outside' | 'issuing_failed';
    isDismissedMoment: () => boolean;
    getDismissedReason: () => 'credential_returned' | 'cancel_called' | 'flow_restarted';
    getMomentType: () => 'display' | 'skipped' | 'dismissed';
}


text:
TREZOR_GIT_URL=git://github.com/trezor/python-trezor.git
KEEPKEY_GIT_URL=git://github.com/keepkey/python-keepkey.git
BTCHIP_GIT_URL=git://github.com/LedgerHQ/btchip-python.git

BRANCH=master

# These settings probably don't need any change
export WINEPREFIX=/opt/wine64

PYHOME=c:/python27
PYTHON="wine $PYHOME/python.exe "

# Let's begin!
cd `dirname $0`
set -e

cd tmp

# downoad mingw-get-setup.exe
#wget http://downloads.sourceforge.net/project/mingw/Installer/mingw-get-setup.exe
#wine mingw-get-setup.exe

#echo "add c:\MinGW\bin to PATH using regedit"
#regedit
#exit

#wine mingw-get install gcc
#wine mingw-get install mingw-utils
#wine mingw-get install mingw32-libz

#create cfg file
#printf "[build]\ncompiler=mingw32\n" > /opt/me/wine64/drive_c/Python27/Lib/distutils/distutils.cfg

# Install Cython
#wine "$PYHOME\\Scripts\\easy_install.exe" cython
wine "$PYHOME\\Scripts\\pip.exe" install cython

# not working
##wine "$PYHOME\\Scripts\\easy_install.exe" hidapi
wine "$PYHOME\\Scripts\\pip.exe" install hidapi

#git clone https://github.com/trezor/cython-hidapi.git

#replace: from distutils.core import setup, Extenstion

#cd cython-hidapi
#git submodule init
#git submodule update
#$PYTHON setup.py install
#cd ..

# trezor
if ! [ -d "trezor-0.7.4" ]; then
    wget "https://pypi.python.org/packages/16/f1/e30d601857ab48f80ab73d15cda957528b5fa3b90bd8168f1e5a1fdd5b1d/trezor-0.7.4.tar.gz"
    tar -xvzf trezor-0.7.4.tar.gz
fi
cd trezor-0.7.4
$PYTHON setup.py install
cd ..

#keepkey
if [ -d "keepkey-git" ]; then
    cd keepkey-git
    git checkout master
    git pull
    cd ..
else
    git clone -b $BRANCH $KEEPKEY_GIT_URL keepkey-git
fi
cd keepkey-git
# checkout 2 commits before v0.7.3, because it fails to build
# git checkout v0.7.3
git checkout 7abe0f0c9026907e9a8db1d231e084df2c175817
$PYTHON setup.py install
cd ..

#btchip
if [ -d "btchip-git" ]; then
    cd btchip-git
    git checkout master
    git pull
    cd ..
else
    git clone -b $BRANCH $BTCHIP_GIT_URL btchip-git
fi
cd btchip-git
$PYTHON setup.py install
cd ..


text:
using NUnit.Framework;
using Assert = Lucene.Net.TestFramework.Assert;

namespace Lucene.Net.Search
{

    using AtomicReaderContext = Lucene.Net.Index.AtomicReaderContext;
    using Directory = Lucene.Net.Store.Directory;
    using Document = Documents.Document;
    using IndexReader = Lucene.Net.Index.IndexReader;
    using LuceneTestCase = Lucene.Net.Util.LuceneTestCase;
    using RandomIndexWriter = Lucene.Net.Index.RandomIndexWriter;

    [TestFixture]
    public class TestEarlyTermination : LuceneTestCase
    {
        private Directory dir;
        private RandomIndexWriter writer;

        [SetUp]
        public override void SetUp()
        {
            base.SetUp();
            dir = NewDirectory();
            writer = new RandomIndexWriter(
#if FEATURE_INSTANCE_TESTDATA_INITIALIZATION
                this,
#endif
                Random, dir);
            int numDocs = AtLeast(100);
            for (int i = 0; i < numDocs; i++)
            {
                writer.AddDocument(new Document());
                if (Rarely())
                {
                    writer.Commit();
                }
            }
        }

        [TearDown]
        public override void TearDown()
        {
            base.TearDown();
            writer.Dispose();
            dir.Dispose();
        }

        [Test]
        public virtual void TestEarlyTermination_Mem()
        {
            int iters = AtLeast(5);
            IndexReader reader = writer.GetReader();

            for (int i = 0; i < iters; ++i)
            {
                IndexSearcher searcher = NewSearcher(reader);
                ICollector collector = new CollectorAnonymousInnerClassHelper(this);

                searcher.Search(new MatchAllDocsQuery(), collector);
            }
            reader.Dispose();
        }

        private class CollectorAnonymousInnerClassHelper : ICollector
        {
            private readonly TestEarlyTermination outerInstance;

            public CollectorAnonymousInnerClassHelper(TestEarlyTermination outerInstance)
            {
                this.outerInstance = outerInstance;
                outOfOrder = Random.NextBoolean();
                collectionTerminated = true;
            }

            internal readonly bool outOfOrder;
            internal bool collectionTerminated;

            public virtual void SetScorer(Scorer scorer)
            {
            }

            public virtual void Collect(int doc)
            {
                Assert.IsFalse(collectionTerminated);
                if (Rarely())
                {
                    collectionTerminated = true;
                    throw new CollectionTerminatedException();
                }
            }

            public virtual void SetNextReader(AtomicReaderContext context)
            {
                if (Random.NextBoolean())
                {
                    collectionTerminated = true;
                    throw new CollectionTerminatedException();
                }
                else
                {
                    collectionTerminated = false;
                }
            }

            public virtual bool AcceptsDocsOutOfOrder => outOfOrder;
        }
    }
}


text:
<?php

declare(strict_types=1);

namespace Billogram\Model\Item;

use Billogram\Model\CreatableFromArray;

/**
 * @author Ibrahim Hizeoui <ibrahimhizeoui@gmail.com>
 */
abstract class BaseItem implements CreatableFromArray
{
    /**
     * @var string
     */
    protected $itemNo;

    /**
     * @var string
     */
    protected $title;

    /**
     * @var string
     */
    protected $description;

    /**
     * @var string
     */
    protected $price;

    /**
     * @var float
     */
    protected $vat;

    /**
     * @var string
     */
    protected $unit;

    /**
     * @var Bookkeeping
     */
    protected $bookkeeping;

    /**
     * @var \DateTime
     */
    protected $createdAt;

    /**
     * @var \DateTime
     */
    protected $updatedAt;

    /**
     * @return string
     */
    public function getItemNo()
    {
        return $this->itemNo;
    }

    /**
     * @param string $itemNo
     *
     * @return self
     */
    public function withItemNo(string $itemNo)
    {
        $new = clone $this;
        $new->itemNo = $itemNo;

        return $new;
    }

    /**
     * @return string
     */
    public function getTitle(): string
    {
        return $this->title;
    }

    /**
     * @param string $title
     *
     * @return self
     */
    public function withTitle(string $title)
    {
        $new = clone $this;
        $new->title = $title;

        return $new;
    }

    /**
     * @return string
     */
    public function getDescription(): string
    {
        return $this->description;
    }

    /**
     * @param string $description
     *
     * @return self
     */
    public function withDescription(string $description)
    {
        $new = clone $this;
        $new->description = $description;

        return $new;
    }

    /**
     * @return string
     */
    public function getPrice(): string
    {
        return $this->price;
    }

    /**
     * @param float $price
     *
     * @return self
     */
    public function withPrice(float $price)
    {
        $new = clone $this;
        $new->price = $price;

        return $new;
    }

    /**
     * @return float
     */
    public function getVat(): float
    {
        return $this->vat;
    }

    /**
     * @param float $vat
     *
     * @return self
     */
    public function withVat(float $vat)
    {
        $new = clone $this;
        $new->vat = $vat;

        return $new;
    }

    /**
     * @return string
     */
    public function getUnit(): string
    {
        return $this->unit;
    }

    /**
     * @param string $unit
     *
     * @return self
     */
    public function withUnit(string $unit)
    {
        $new = clone $this;
        $new->unit = $unit;

        return $new;
    }

    /**
     * @return Bookkeeping
     */
    public function getBookkeeping(): Bookkeeping
    {
        return $this->bookkeeping;
    }

    /**
     * @param Bookkeeping $bookkeeping
     *
     * @return self
     */
    public function withBookkeeping(Bookkeeping $bookkeeping)
    {
        $new = clone $this;
        $new->bookkeeping = $bookkeeping;

        return $new;
    }

    /**
     * @return \DateTime
     */
    public function getCreatedAt(): \DateTime
    {
        return $this->createdAt;
    }

    /**
     * @return \DateTime
     */
    public function getUpdatedAt(): \DateTime
    {
        return $this->updatedAt;
    }

    /**
     * @param \DateTime $createdAt
     */
    public function setCreatedAt(\DateTime $createdAt)
    {
        $this->createdAt = $createdAt;
    }

    /**
     * @param \DateTime $updatedAt
     */
    public function setUpdatedAt(\DateTime $updatedAt)
    {
        $this->updatedAt = $updatedAt;
    }

    /**
     * Create an API response object from the HTTP response from the API server.
     *
     * @return array
     */
    public function toArray()
    {
        $data = [];
        if (null !== $this->title) {
            $data['title'] = $this->title;
        }
        if (null !== $this->itemNo) {
            $data['item_no'] = $this->itemNo;
        }
        if (null !== $this->description) {
            $data['description'] = $this->description;
        }
        if (null !== $this->price) {
            $data['price'] = $this->price;
        }
        if (null !== $this->vat) {
            $data['vat'] = $this->vat;
        }
        if (null !== $this->unit) {
            $data['unit'] = $this->unit;
        }
        if (null !== $this->bookkeeping) {
            $data['bookkeeping'] = $this->bookkeeping->toArray();
        }

        return $data;
    }
}


text:
VERSION = "1.0.0"

import sys
import random
import helptext
if sys.version_info[0] < 3:
    import Tkinter as Tk
    import ttk
else:
    import tkinter as Tk
    from tkinter import ttk

class Resizable():
    def __init__(self, canvas):
        self.canvas = canvas
        self.canvas_width_orig = canvas.width
        self.canvas_height_orig = canvas.height

    def redraw(self, x0, y0, x1, y1, **kwargs):
        self.ratio_width = self.canvas.width / float(self.canvas_width_orig)
        self.ratio_height = self.canvas.height / float(self.canvas_height_orig)
        a = x0 * self.ratio_width
        b = y0 * self.ratio_height
        c = x1 * self.ratio_width
        d = y1 * self.ratio_height
        self.canvas.coords(self.object, a, b, c, d, **kwargs)

    def itemconfig(self, **kwargs):
        self.canvas.itemconfig(self.object, **kwargs)

class ResizablePlotPoint(Resizable):
    def __init__(self, canvas, x0, y0, mag, **kwargs):
        Resizable.__init__(self, canvas)
        self.x0 = x0
        self.y0 = y0
        self.mag = mag
        self.size = 3
        self.object = canvas.create_oval(
            x0 - self.size,
            y0 - self.size,
            x0 + self.size,
            y0 + self.size,
            **kwargs)

    def redraw(self, **kwargs):
        self.ratio_width = self.canvas.width / float(self.canvas_width_orig)
        self.ratio_height = self.canvas.height / float(self.canvas_height_orig)
        a = self.x0 * self.ratio_width
        b = self.y0 * self.ratio_height
        self.canvas.coords(
            self.object,
            a - self.size,
            b - self.size,
            a + self.size,
            b + self.size,
            **kwargs)

class ResizableRectangle(Resizable):
    def __init__(self, canvas, x0, y0, x1, y1, **kwargs):
        Resizable.__init__(self, canvas)
        self.object = canvas.create_rectangle(x0, y0, x1, y1, **kwargs)

class ResizableLine(Resizable):
    def __init__(self, canvas, x0, y0, x1, y1, **kwargs):
        Resizable.__init__(self, canvas)
        self.object = canvas.create_line(x0, y0, x1, y1, **kwargs)

class ResizableOval(Resizable):
    def __init__(self, canvas, x0, y0, x1, y1, **kwargs):
        Resizable.__init__(self, canvas)
        self.object = canvas.create_oval(x0, y0, x1, y1, **kwargs)

class ResizableText(Resizable):
    def __init__(self, canvas, x0, y0, **kwargs):
        Resizable.__init__(self, canvas)
        self.object = canvas.create_text(x0, y0, **kwargs)

    def redraw(self, x0, y0, **kwargs):
        self.ratio_width = self.canvas.width / float(self.canvas_width_orig)
        self.ratio_height = self.canvas.height / float(self.canvas_height_orig)
        a = x0 * self.ratio_width
        b = y0 * self.ratio_height
        self.canvas.coords(self.object, a, b, **kwargs)

class ResizableCanvas(Tk.Canvas):
    def __init__(self, parent, **kwargs):
        Tk.Canvas.__init__(self, parent, **kwargs)
        self.bind("<Configure>", self.on_resize)
        self.height = self.winfo_reqheight()
        self.width = self.winfo_reqwidth()

    def on_resize(self, event):
        # determine the ratio of old width/height to new width/height
        wscale = float(event.width) / self.width
        hscale = float(event.height) / self.height
        self.width = event.width
        self.height = event.height
        # resize the canvas
        self.config(width=self.width, height=self.height)
        # rescale all the objects tagged with the "all" tag
        self.scale("all", 0, 0, wscale, hscale)

class ScoreBar:
    def __init__(self, canvas, left, top, right, bottom, scale):
        self.canvas = canvas
        self.left = left
        self.top = top
        self.right = right
        self.bottom = bottom
        self.scale = scale

        self.score = 0.0
        self.threshold = 0.0
        self.average = 0.0
        self.points = 0.0

        self.scorebar = ResizableRectangle(
            canvas, 0, 0, 0, 0, fill="red", outline="")
        self.avgbar = ResizableRectangle(
            canvas, 0, 0, 0, 0, fill="dark gray", outline="")
        self.thresholdline = ResizableLine(canvas, 0, 0, 0, 0)

        ResizableRectangle(canvas, left, top, right, bottom)

    def update(self, enabled=True):
        self.points += 1
        if self.points == 1:
            self.average = self.score
        else:
            self.average = self.average * \
                (self.points - 1) / float(self.points) + self.score / float(self.points)

        score = self.score
        threshold = self.threshold
        average = self.average
        if average < 0:
            average = 0
        elif average > self.scale:
            average = self.scale
        if score < 0:
            score = 0
        elif score > self.scale:
            score = self.scale
        if threshold < 0:
            threshold = 0
        elif threshold > self.scale:
            threshold = self.scale

        mid = self.left + (self.right - self.left) * score / self.scale
        avg = self.left + (self.right - self.left) * average / self.scale
        if enabled:
            thresh = self.left + (self.right - self.left) * threshold / self.scale
        else:
            thresh = self.left

        if enabled:
            if mid >= thresh:
                color = "green"
            else:
                color = "red"
        else:
            color = "gray"

        self.scorebar.itemconfig(fill=color)
        self.scorebar.redraw(self.left, self.top, mid, self.bottom)
        self.avgbar.redraw(self.left, self.bottom, avg,
                            self.bottom + (self.bottom - self.top) * 0.25)
        self.thresholdline.redraw(
            thresh, self.top, thresh, self.bottom)

class Plot:

    def __init__(self, canvas, left, top, size):
        self.canvas = canvas
        self.canvas_width_orig = canvas.width
        self.canvas_height_orig = canvas.height
        self.left = left
        self.top = top
        self.size = size
        self.points = []

        ResizableRectangle(
            self.canvas,
            self.left,
            self.top,
            self.left +
            self.size,
            self.top +
            self.size)
        ResizableLine(
            self.canvas,
            self.left,
            self.top + self.size / 2,
            self.left + self.size,
            self.top + self.size / 2)
        ResizableLine(
            self.canvas,
            self.left + self.size / 2,
            self.top,
            self.left + self.size / 2,
            self.top + self.size)

        # Make circles at 35,20,10,5 (thresholds for straightness)
        x0 = self.left + self.size / 2
        y0 = self.top + self.size / 2
        self.x0 = x0
        self.y0 = y0
        r = 0.5
        self.threshold_circle = ResizableOval(
            self.canvas, x0 - r, y0 - r, x0 + r, y0 + r)

    def plot(self, x, y, **kwargs):
        # Plots point in plot area. Limits are -1 to 1
        if x > 1:
            x = 1.
        if y > 1:
            y = 1.
        if x < -1:
            x = -1.
        if y < -1:
            y = -1.
        mag = (x**2 + y**2)**0.5
        x = (x * self.size / 2 + self.x0) * self.canvas.width / (float(self.canvas_width_orig))
        y = (y * self.size / 2 + self.y0) * self.canvas.height / (float(self.canvas_height_orig))
        self.points.append(
            ResizablePlotPoint(
                self.canvas, x, y, mag, **kwargs))

    def update(self, threshold):
        self.threshold = threshold
        r = threshold * self.size / 2
        self.threshold_circle.redraw(
            self.x0 - r, self.y0 - r, self.x0 + r, self.y0 + r)
        for i in xrange(0, len(self.points)):
            point = self.points[i]
            if i == (len(self.points) - 1):
                if point.mag > self.threshold:
                    color = "red"
                else:
                    color = "green"
            else:
                color = "dark gray"
            point.itemconfig(fill=color)
            point.redraw()

class ScoreBars:

    def __init__(self, frame, dcb):

        self.dcb = dcb
        self.frame = frame

        self.canvas = ResizableCanvas(
            self.frame,
            width=810,
            height=400,
            highlightthickness=0)
        self.canvas.pack(fill=Tk.BOTH, expand=Tk.YES)

        left = 300
        right = 550
        self.bars = []
        self.scores = []
        self.labels = (
            'Finish',
            'Finesse',
            'Straightness',
            'Tip Steer',
            'Follow Through',
            'Jab',
            'Backstroke Pause',
            'Shot Interval')
        self.scale = (3.0, 10.0, 10.0, 10.0, 10.0, 10.0, 1.0, 60.0)
        self.score_format = (
            "%0.2fs",
            "%0.1f",
            "%0.1f",
            "%0.1f",
            "%0.1f",
            "%0.1f",
            "%0.2fs",
            "%0.1fs")
        self.outof = ('/3s', '/10', '/10', '/10', '/10', '/10', '/1s', '/60s')
        for i in xrange(0, 8):
            top = i * 400 / 8. + 10
            bottom = (i + 1) * 400 / 8. - 10
            self.bars.append(
                ScoreBar(
                    self.canvas,
                    left,
                    top,
                    right,
                    bottom,
                    self.scale[i]))
            ResizableRectangle(self.canvas, 10, top, left - 10, bottom)
            ResizableRectangle(self.canvas, left - 10, top, left - 100, bottom)
            ResizableText(self.canvas, 100, top + (bottom - top)
                          * 0.5, text=self.labels[i], font=("Purisa", 14))
            ResizableText(self.canvas, 575, top + (bottom - top)
                          * 0.5, text=self.outof[i], font=("Purisa", 14))
            self.scores.append(ResizableText(
                self.canvas, left - 55, top + (bottom - top) * 0.5, text="0", font=("Purisa", 18)))

        # Plot area
        self.plot = Plot(self.canvas, 600, 100, 200)
        ResizableText(
            self.canvas,
            700,
            75,
            text="Straightness",
            font=(
                "Purisa",
                14))

    def _update_scores(self):
        for i in xrange(0, 8):
            text = self.score_format[i] % self.bars[i].score
            self.scores[i].itemconfig(text=text)

    def test(self):

        for bar in self.bars:
            bar.average = bar.scale * random.random()
            bar.score = bar.scale * random.random()
            bar.threshold = bar.scale * random.random()
            bar.update(True)
        self._update_scores()
        x = random.normalvariate(0, 0.5)
        y = random.normalvariate(0, 0.5)
        self.plot.plot(x, y)
        self.plot.update(random.random())

    def update(self):
        dcb = self.dcb

        self.bars[0].score = dcb.score_freeze
        self.bars[0].threshold = dcb.threshold_freeze
        self.bars[0].update(dcb.setting_freeze)

        self.bars[1].score = dcb.score_power
        self.bars[1].threshold = dcb.threshold_power
        self.bars[1].update(dcb.setting_power)

        self.bars[2].score = dcb.score_straightness
        self.bars[2].threshold = dcb.threshold_straightness
        self.bars[2].update(dcb.setting_straightness)

        self.bars[3].score = dcb.score_steering
        self.bars[3].threshold = dcb.threshold_steering
        self.bars[3].update(dcb.setting_steering)

        self.bars[4].score = dcb.score_followthru
        self.bars[4].threshold = dcb.threshold_followthru
        self.bars[4].update(dcb.setting_followthru)

        self.bars[5].score = dcb.score_jab
        self.bars[5].threshold = dcb.threshold_jab
        self.bars[5].update(dcb.setting_jab)

        self.bars[6].score = dcb.score_bspause
        self.bars[6].threshold = dcb.threshold_bspause
        self.bars[6].update(dcb.setting_bspause)

        self.bars[7].score = dcb.score_shotpause
        self.bars[7].threshold = dcb.threshold_shotpause
        self.bars[7].update(dcb.setting_shotpause)

        self._update_scores()

        x = dcb.impactx / 50.
        y = dcb.impacty / 50.
        thresh = (50 - 5 * dcb.threshold_straightness) / 50.
        self.plot.plot(x, y)
        self.plot.update(thresh)

class OptionList_Command_MacAddr:

    def __init__(self, parent):
        self.parent = parent

    def set(self, value):  # run when option list is changed
        print "Selected MAC Address " + value
        self.parent.macaddrs.set(value)
        self.parent.macaddr = value
        self.parent.dcb.macaddr_filter = value

class GUI:

    def __init__(self, master, dcb):

        # All variables from DigiCue Blue are exposed through class variables
        # in dcb

        self.dcb = dcb
        self.packet_count = dcb.packet_count
        self.master = master
        master.after(500, self.timer)  # register timer
        master.title("DigiCue Blue BLED112 GUI - Version %s" % VERSION)

        self.tabs = ttk.Notebook(master)
        self.tab1 = Tk.Frame(self.tabs, padx=10, pady=10)
        self.tab3 = Tk.Frame(self.tabs, padx=10, pady=10)
        self.tab5 = Tk.Frame(self.tabs, padx=10, pady=10)
        self.tabs.add(self.tab1, text='Shots')
        self.tabs.add(self.tab3, text='Configure')
        self.tabs.add(self.tab5, text='Help')
        self.tabs.pack(fill=Tk.BOTH, expand=Tk.YES)

        # Help tab
        message = helptext.help
        frame = Tk.Frame(self.tab5)
        text = Tk.Text(frame, height=30, width=100, wrap=Tk.WORD)
        text.insert(Tk.END, message)
        scroll = Tk.Scrollbar(frame)
        text.configure(yscrollcommand=scroll.set)
        text.pack(side=Tk.LEFT)
        scroll.pack(side=Tk.RIGHT, fill=Tk.Y)
        frame.pack(side=Tk.TOP)
        text.config(state=Tk.DISABLED)

        # Mac addr select
        frame = Tk.Frame(self.tab3)
        frame.pack(fill=Tk.X)
        self.macaddr = None
        self.macaddrs_list = []
        self.macaddr_commands = []
        lbl = Tk.Label(frame, text="DigiCue Blue MAC Address", width=25)
        lbl.pack(side=Tk.LEFT)
        self.macaddrs = Tk.StringVar(frame)
        self.macaddrs.set("<Auto Detect>")
        self.macaddrs_combo = Tk.OptionMenu(
            frame, self.macaddrs, "<Auto Detect>")
        self.macaddrs_combo.pack(side=Tk.LEFT)

        # Configuration selection
        frame = Tk.Frame(self.tab3)
        frame.pack(fill=Tk.X)
        label = Tk.Label(frame, text="Configure")
        label.pack(side=Tk.LEFT)

        self.options_configig = {}
        fbox = Tk.Frame(self.tab3, relief=Tk.GROOVE, bd=2)
        fbox.pack(fill=Tk.X)
        for label, modes in dcb.config_options:
            frame = Tk.Frame(fbox)
            frame.pack(fill=Tk.X)
            lbl = Tk.Label(frame, text=label, width=25)
            lbl.pack(side=Tk.LEFT)
            v = Tk.StringVar()
            b = Tk.Radiobutton(
                frame,
                text="Off",
                variable=v,
                value=-1,
                indicatoron=0,
                width=10,
                command=self.check_setting_config)
            b.pack(side=Tk.LEFT)
            for text, mode in modes:
                if text <> "Off":
                    b = Tk.Radiobutton(
                        frame,
                        text=text,
                        variable=v,
                        value=mode,
                        indicatoron=0,
                        width=10,
                        command=self.check_setting_config)
                    b.pack(side=Tk.LEFT)
            self.options_configig[label] = v
        frame = Tk.Frame(fbox, pady=10)
        frame.pack(fill=Tk.X)
        lbl = Tk.Label(frame, text="", width=25)
        lbl.pack(side=Tk.LEFT)
        self.sync_label = Tk.StringVar(frame)
        self.sync_label.set("Press button on DigiCue Blue once to detect")
        lbl = Tk.Label(frame, textvariable=self.sync_label)
        lbl.pack(side=Tk.LEFT)

        # Shots tab
        self.scorebars = ScoreBars(self.tab1, dcb)

    def refresh_setting_config(self):
        self.options_configig["Shot Interval"].set(
            self.dcb.threshset_shotpause if self.dcb.setting_shotpause else -1)
        self.options_configig["Backstroke Pause"].set(
            self.dcb.threshset_bspause if self.dcb.setting_bspause else -1)
        self.options_configig["Jab"].set(
            self.dcb.threshset_jab if self.dcb.setting_jab else -1)
        self.options_configig["Follow Through"].set(
            self.dcb.threshset_followthru if self.dcb.setting_followthru else -1)
        self.options_configig["Tip Steer"].set(
            self.dcb.threshset_steering if self.dcb.setting_steering else -1)
        self.options_configig["Straightness"].set(
            self.dcb.threshset_straightness if self.dcb.setting_straightness else -1)
        self.options_configig["Finesse"].set(
            self.dcb.threshset_power if self.dcb.setting_power else -1)
        self.options_configig["Finish"].set(
            self.dcb.threshset_freeze if self.dcb.setting_freeze else -1)
        self.options_configig["Vibrate On Pass"].set(
            self.dcb.setting_vop if self.dcb.setting_vop else -1)
        self.options_configig["Disable All Vibrations"].set(
            self.dcb.setting_dvibe if self.dcb.setting_dvibe else -1)
        self.check_setting_config()

    def check_setting_config(self):

        configuration = {}
        for key in self.options_configig:
            configuration[key] = self.options_configig[key].get()
        self.dcb.set_config(configuration)

        if not self.check_setting_config_test():
            self.sync_label.set("Press button on DigiCue Blue twice to sync")
        else:
            self.sync_label.set("Configuration matches DigiCue Blue")

    def check_setting_config_test(self):

        a = 0

        def val(x): return -2 if len(x) == 0 else x

        tmp = int(val(self.options_configig["Shot Interval"].get()))
        if self.dcb.setting_shotpause:
            a += int(tmp == self.dcb.threshset_shotpause)
        else:
            a += int(tmp == -1)

        tmp = int(val(self.options_configig["Backstroke Pause"].get()))
        if self.dcb.setting_bspause:
            a += int(tmp == self.dcb.threshset_bspause)
        else:
            a += int(tmp == -1)

        tmp = int(val(self.options_configig["Jab"].get()))
        if self.dcb.setting_jab:
            a += int(tmp == self.dcb.threshset_jab)
        else:
            a += int(tmp == -1)

        tmp = int(val(self.options_configig["Follow Through"].get()))
        if self.dcb.setting_followthru:
            a += int(tmp == self.dcb.threshset_followthru)
        else:
            a += int(tmp == -1)

        tmp = int(val(self.options_configig["Tip Steer"].get()))
        if self.dcb.setting_steering:
            a += int(tmp == self.dcb.threshset_steering)
        else:
            a += int(tmp == -1)

        tmp = int(val(self.options_configig["Straightness"].get()))
        if self.dcb.setting_straightness:
            a += int(tmp == self.dcb.threshset_straightness)
        else:
            a += int(tmp == -1)

        tmp = int(val(self.options_configig["Finesse"].get()))
        if self.dcb.setting_power:
            a += int(tmp == self.dcb.threshset_power)
        else:
            a += int(tmp == -1)

        tmp = int(val(self.options_configig["Finish"].get()))
        if self.dcb.setting_freeze:
            a += int(tmp == self.dcb.threshset_freeze)
        else:
            a += int(tmp == -1)

        tmp = int(val(self.options_configig["Vibrate On Pass"].get()))
        if self.dcb.setting_vop:
            a += int(tmp == self.dcb.setting_vop)
        else:
            a += int(tmp == -1)

        tmp = int(val(self.options_configig["Disable All Vibrations"].get()))
        if self.dcb.setting_dvibe:
            a += int(tmp == self.dcb.setting_dvibe)
        else:
            a += int(tmp == -1)

        return a == 10

    def refresh_macaddrs(self):
        self.macaddrs.set('')
        self.macaddrs_combo['menu'].delete(0, 'end')
        self.macaddr_commands = []
        for choice in self.macaddrs_list:
            optioncmd = OptionList_Command_MacAddr(self)
            self.macaddr_commands.append(optioncmd)
            command = Tk._setit(optioncmd, choice)
            self.macaddrs_combo['menu'].add_command(
                label=choice, command=command)

    def timer(self):
        if self.dcb.macaddr not in self.macaddrs_list:
            if self.dcb.macaddr <> None:
                # Only add DigiCue Blue devices / correct manuf. ID
                self.macaddrs_list.append(self.dcb.macaddr)
                if self.macaddr is None:
                    self.macaddr = self.dcb.macaddr
                    self.dcb.macaddr_filter = self.macaddr
                self.refresh_macaddrs()
                self.macaddrs.set(self.macaddr)

        if self.packet_count <> self.dcb.packet_count:
            self.packet_count = self.dcb.packet_count

            # Update configuration
            self.refresh_setting_config()

            # Update graphics here
            if self.dcb.data_type == 0:  # Version packet
                pass
            elif self.dcb.data_type == 1:  # update gui if data packet
                self.scorebars.update()

        self.master.after(500, self.timer)