text:
from __future__ import unicode_literals

from django.db import migrations, models

class Migration(migrations.Migration):

    dependencies = [
        ('profiles', '0012_userprofilessettings_terms_and_conditions'),
    ]

    operations = [
        migrations.AddField(
            model_name='userprofile',
            name='education_level',
            field=models.CharField(blank=True, max_length=128, null=True),
        ),
        migrations.AddField(
            model_name='userprofile',
            name='gender',
            field=models.CharField(blank=True, max_length=128, null=True),
        ),
        migrations.AddField(
            model_name='userprofile',
            name='location',
            field=models.CharField(blank=True, max_length=128, null=True),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='activate_display_name',
            field=models.BooleanField(default=True, verbose_name='Activate Display Name'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='activate_dob',
            field=models.BooleanField(default=True, verbose_name='Activate Date Of Birth'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='activate_education_level',
            field=models.BooleanField(default=False, verbose_name='Activate Education Level'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='activate_education_level_required',
            field=models.BooleanField(default=False, verbose_name='Education Level Required'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='activate_gender',
            field=models.BooleanField(default=False, verbose_name='Activate Gender'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='activate_location',
            field=models.BooleanField(default=False, verbose_name='Activate Location'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='capture_display_name_on_reg',
            field=models.BooleanField(default=False, help_text='If Display Name is activated, and Capture On Registration is not activated, The display name field will be captured on done page.', verbose_name='Capture On Registration'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='capture_dob_on_reg',
            field=models.BooleanField(default=False, help_text='If Date Of Birth is activated, and Capture On Registration is not activated, The Date Of Birth field will be captured on done page.', verbose_name='Capture On Registration'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='capture_education_level_on_reg',
            field=models.BooleanField(default=False, help_text='If Education Level is activated, and Capture On Registration is not activated, The Education Level field will be captured on done page.', verbose_name='Capture On Registration'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='capture_gender_on_reg',
            field=models.BooleanField(default=False, help_text='If Gender is activated, and Capture On Registration is not activated, The Gender field will be captured on done page.', verbose_name='Capture On Registration'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='capture_location_on_reg',
            field=models.BooleanField(default=False, help_text='If Location is activated, and Capture On Registration is not activated, The Location field will be captured on done page.', verbose_name='Capture On Registration'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='display_name_required',
            field=models.BooleanField(default=False, verbose_name='Display Name Required'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='dob_required',
            field=models.BooleanField(default=False, verbose_name='Date Of Birth Required'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='gender_required',
            field=models.BooleanField(default=False, verbose_name='Gender Required'),
        ),
        migrations.AddField(
            model_name='userprofilessettings',
            name='location_required',
            field=models.BooleanField(default=False, verbose_name='Location Required'),
        ),
    ]


text:
Plot area script (output variable plot_area)

							<textarea rows="28" cols="" name="plot-area" id="plot-area-script" class="form-control" style="height:100%"></textarea>

							<button type="button" name="save-btn" class="btn btn-default width100">Save</button>

redpajama_set_name: RedPajamaGithub


text:
using System.Reflection;

[assembly: AssemblyTitle( "PocketCampus.Common" )]
[assembly: AssemblyCopyright( "Copyright © PocketCampus.Org 2014-15" )]
[assembly: AssemblyCulture( "" )]

[assembly: AssemblyVersion( "2.5.1.*" )]


text:
Write a program to check whether a given number is an ugly number.

Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 6, 8 are ugly while 14 is not ugly since it includes another prime factor 7.

Note that 1 is typically treated as an ugly number.

##### 很简单,配置一下循环

```python
class Solution(object):
    def isUgly(self, num):
        """
        :type num: int
        :rtype: bool
        """
        if num <= 0:
            return False

        for i in [2,3,5]:
            while num % i == 0:
                num = num / i

        return num == 1
```

```python3
class Solution:
    def isUgly(self, n: int) -> bool:
        if n >= 1:
            for i in [2, 3, 5]:
                while n % i == 0:
                    n //= i
        return n == 1
```


text:
@implementation RXMasonryTestObject

- (void)mainTest
{
    RXMasonryObject *rxMasonryObject = [RXMasonryObject new];
    NSLog(@"%zd", rxMasonryObject.b);
}

@end


text:
using org.xmlvm;
namespace java.lang {
public class Integer_2valueOfCache: global::java.lang.Object {

static Integer_2valueOfCache() {
    @static();
}

public static global::org.xmlvm._nArrayAdapter<global::System.Object> _fCACHE;

new public static void @static(){
//XMLVM_BEGIN_WRAPPER[java.lang.Integer$valueOfCache: void <clinit>()]
    global::org.xmlvm._nElement _r0;
    global::System.Object _r0_o = null;
    global::org.xmlvm._nElement _r1;
    global::System.Object _r1_o = null;
    global::org.xmlvm._nElement _r2;
    global::System.Object _r3_o = null;
    _r0.i = 256;
    _r0_o = new global::org.xmlvm._nArrayAdapter<global::System.Object>(new global::System.Object[_r0.i]);
    global::java.lang.Integer_2valueOfCache._fCACHE = (global::org.xmlvm._nArrayAdapter<global::System.Object>) _r0_o;
    _r0.i = -128;
    label8:;
    _r1.i = 127;
    if (_r0.i <= _r1.i) goto label13;
    return;
    label13:;
    _r1_o = global::java.lang.Integer_2valueOfCache._fCACHE;
    _r2.i = _r0.i + 128;
    _r3_o = new global::java.lang.Integer();
    ((global::java.lang.Integer) _r3_o).@this((int) _r0.i);
    ((global::org.xmlvm._nArrayAdapter<global::System.Object>) _r1_o)[_r2.i] = _r3_o;
    _r0.i = _r0.i + 1;
    goto label8;
//XMLVM_END_WRAPPER[java.lang.Integer$valueOfCache: void <clinit>()]
}

new public void @this(){
//XMLVM_BEGIN_WRAPPER[java.lang.Integer$valueOfCache: void <init>()]
    global::System.Object _r0_o = null;
    _r0_o = this;
    ((global::java.lang.Object) _r0_o).@this();
    return;
//XMLVM_END_WRAPPER[java.lang.Integer$valueOfCache: void <init>()]
}

//XMLVM_BEGIN_WRAPPER[java.lang.Integer$valueOfCache]
//XMLVM_END_WRAPPER[java.lang.Integer$valueOfCache]

} // end of class: Integer_2valueOfCache

} // end of namespace: java.lang


text:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.skt.onem2m_service.ui.LoginActivity">

    <!-- Login progress -->
    <ProgressBar
        android:id="@+id/login_progress"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:visibility="gone" />

    <ScrollView
        android:id="@+id/login_form"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:id="@+id/email_login_form"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/change_server_info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:textSize="12dp"
                android:text="@string/change_server_info" />

            <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <AutoCompleteTextView
                    android:id="@+id/id"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/prompt_id"
                    android:privateImeOptions="defaultInputmode=english;"
                    android:maxLines="1"
                    android:singleLine="true" />

            </android.support.design.widget.TextInputLayout>

            <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <EditText
                    android:id="@+id/password"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/prompt_password"
                    android:imeActionId="@+id/login"
                    android:imeActionLabel="@string/action_sign_in"
                    android:imeOptions="actionUnspecified"
                    android:inputType="textPassword"
                    android:maxLines="1"
                    android:singleLine="true" />

            </android.support.design.widget.TextInputLayout>

            <Button
                android:id="@+id/sign_in_button"
                style="?android:textAppearanceSmall"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                android:text="@string/action_sign_in"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/join_thingplug"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="30dp"
                android:layout_marginStart="10dp"
                android:layout_gravity="center_vertical"
                android:textSize="15dp"
                android:text="@string/thingplug_regist_url" />
        </LinearLayout>
    </ScrollView>
</LinearLayout>


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace Tor
{
    /// <summary>
    /// An enumerator containing the different reasons for a <c>ORStatus.Closed</c> or <c>ORStatus.Failed</c> state.
    /// </summary>
    public enum ORReason
    {
        /// <summary>
        /// The reason was not provided or could not be determined.
        /// </summary>
        [Description(null)]
        None,

        /// <summary>
        /// The OR connection has shut down cleanly.
        /// </summary>
        [Description("DONE")]
        Done,

        /// <summary>
        /// The OR connection received an <c>ECONNREFUSED</c> when connecting to the target OR.
        /// </summary>
        [Description("CONNECTREFUSED")]
        ConnectRefused,

        /// <summary>
        /// The OR connection connected to the OR, but the identity was not what was expected.
        /// </summary>
        [Description("IDENTITY")]
        Identity,

        /// <summary>
        /// The OR connection received an <c>ECONNRESET</c> or similar IO error from OR.
        /// </summary>
        [Description("CONNECTRESET")]
        ConnectReset,

        /// <summary>
        /// The OR connection received an <c>ETIMEOUT</c> or similar IO eerror from the OR, or the connection
        /// has been terminated for being open for too long.
        /// </summary>
        [Description("TIMEOUT")]
        Timeout,

        /// <summary>
        /// The OR connection received an <c>ENOTCONN</c>, <c>ENETUNREACH</c>, <c>ENETDOWN</c>, <c>EHOSTUNREACH</c> or
        /// similar error while connecting to the OR.
        /// </summary>
        [Description("NOROUTE")]
        NoRoute,

        /// <summary>
        /// The OR connection received a different IO error.
        /// </summary>
        [Description("IOERROR")]
        IOError,

        /// <summary>
        /// The OR connection does not have enough system resources to connect to the OR.
        /// </summary>
        [Description("RESOURCELIMIT")]
        ResourceLimit,

        /// <summary>
        /// No pluggable transport was available.
        /// </summary>
        [Description("PT_MISSING")]
        PTMissing,

        /// <summary>
        /// The OR connection closed for some other reason.
        /// </summary>
        [Description("MISC")]
        Misc
    }
}


text:
module Fog
  module Storage
    class AWS
      class Real

        # Get headers for an object from S3
        #
        # @param bucket_name [String] Name of bucket to read from
        # @param object_name [String] Name of object to read
        # @param options [Hash]:
        # @option options [String] If-Match Returns object only if its etag matches this value, otherwise returns 412 (Precondition Failed).
        # @option options [Time]   If-Modified-Since Returns object only if it has been modified since this time, otherwise returns 304 (Not Modified).
        # @option options [String] If-None-Match Returns object only if its etag differs from this value, otherwise returns 304 (Not Modified)
        # @option options [Time]   If-Unmodified-Since Returns object only if it has not been modified since this time, otherwise returns 412 (Precodition Failed).
        # @option options [String] Range Range of object to download
        # @option options [String] versionId specify a particular version to retrieve
        #
        # @return [Excon::Response] response:
        #   * body [String] Contents of object
        #   * headers [Hash]:
        #     * Content-Length [String] - Size of object contents
        #     * Content-Type [String] - MIME type of object
        #     * ETag [String] - Etag of object
        #     * Last-Modified - [String] Last modified timestamp for object
        #
        # @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectHEAD.html
        #
        def head_object(bucket_name, object_name, options={})
          unless bucket_name
            raise ArgumentError.new('bucket_name is required')
          end
          unless object_name
            raise ArgumentError.new('object_name is required')
          end
          if version_id = options.delete('versionId')
            query = {'versionId' => version_id}
          end
          headers = {}
          headers['If-Modified-Since'] = Fog::Time.at(options['If-Modified-Since'].to_i).to_date_header if options['If-Modified-Since']
          headers['If-Unmodified-Since'] = Fog::Time.at(options['If-Unmodified-Since'].to_i).to_date_header if options['If-Modified-Since']
          headers.merge!(options)
          request({
            :expects    => 200,
            :headers    => headers,
            :bucket_name => bucket_name,
            :object_name => object_name,
            :idempotent => true,
            :method     => 'HEAD',
            :query      => query
          })
        end

      end

      class Mock # :nodoc:all

        def head_object(bucket_name, object_name, options = {})
          response = get_object(bucket_name, object_name, options)
          response.body = nil
          response
        end

      end
    end
  end
end


text:
layout: blocks/long_description
---

### [2]Visual content model
The image shows the content strategy at the top, outlining the purpose of your content and how it meets user needs. Below that is the content model, which describes how your content is structured for your website. Below that are 5 different content types examples, describing different types of content. Attached to each of those are the components and attributes which make up each type.


text:
using System;
using System.Text;
using System.Security.Permissions;
using System.Runtime.Serialization;
using OpenADK.Library;
using OpenADK.Library.Global;
using OpenADK.Library.us.Common;

namespace OpenADK.Library.us.Instr{

/// <summary>A TargetObject</summary>
/// <remarks>
///
/// <para>Author: Generated by adkgen</para>
/// <para>Version: 2.6</para>
/// <para>Since: 2.6</para>
/// </remarks>
[Serializable]
public class TargetObject : SifKeyedElement
{
	/// <summary>
	/// Creates an instance of a TargetObject
	/// </summary>
	public TargetObject() : base ( InstrDTD.TARGETOBJECT ){}

	/// <summary>
	/// Constructor that accepts values for all mandatory fields
	/// </summary>
	///<param name="objectType">The Target Object name referenced.</param>
	///<param name="value">Gets or sets the content value of the &lt;TargetObject&gt; element</param>
	///
	public TargetObject( ObjectTypeTarget objectType, string value ) : base( InstrDTD.TARGETOBJECT )
	{
		this.SetObjectType( objectType );
		this.Value = value;
	}

	/// <summary>
	/// Constructor used by the .Net Serialization formatter
	/// </summary>
	[SecurityPermission( SecurityAction.Demand, SerializationFormatter=true )]
	protected TargetObject( SerializationInfo info, StreamingContext context ) : base( info, context ) {}
	/// <summary>
	/// Gets the metadata fields that make up the key of this object
	/// </summary>
	/// <value>
	/// an array of metadata fields that make up the object's key
	/// </value>
	public override IElementDef[] KeyFields {
		get { return new IElementDef[] { InstrDTD.TARGETOBJECT_OBJECTTYPE }; }
	}

	/// <summary>
	/// Gets or sets the value of the <c><TargetObject></c> element.
	/// </summary>
	/// <value> The <c>Value</c> of the content of this object.</value>
	/// <remarks>
	/// <para>The SIF specification defines the meaning of this of the content as: "Gets or sets the content value of the &lt;TargetObject&gt; element"</para>
	/// <para>Version: 2.6</para>
	/// <para>Since: 2.6</para>
	/// </remarks>
	public string Value
	{
		get
		{
			return (string) GetSifSimpleFieldValue( InstrDTD.TARGETOBJECT ) ;
		}
		set
		{
			SetFieldValue( InstrDTD.TARGETOBJECT, new SifString( value ), value );
		}
	}

	/// <summary>
	/// Gets or sets the value of the <c>ObjectType</c> attribute.
	/// </summary>
	/// <value> The <c>ObjectType</c> attribute of this object.</value>
	/// <remarks>
	/// <para>The SIF specification defines the meaning of this attribute as: "The Target Object name referenced."</para>
	/// <para>Version: 2.6</para>
	/// <para>Since: 2.6</para>
	/// </remarks>
	public string ObjectType
	{
		get
		{
			return GetFieldValue( InstrDTD.TARGETOBJECT_OBJECTTYPE );
		}
		set
		{
			SetField( InstrDTD.TARGETOBJECT_OBJECTTYPE, value );
		}
	}

	/// <summary>
	/// Sets the value of the <c>ObjectType</c> attribute.
	/// </summary>
	/// <param name="val">A ObjectTypeTarget object</param>
	/// <remarks>
	/// <para>The SIF specification defines the meaning of this attribute as: "The Target Object name referenced."</para>
	/// <para>Version: 2.6</para>
	/// <para>Since: 2.6</para>
	/// </remarks>
	public void SetObjectType( ObjectTypeTarget val )
	{
		SetField( InstrDTD.TARGETOBJECT_OBJECTTYPE, val );
	}

}}


text:
namespace net {

// A ReportingCache::PersistentReportingStore implementation that stashes the
// received commands in order in a vector, to be checked by tests. Simulates
// loading pre-existing stored endpoints and endpoint groups, which can be
// provided using SetPrestoredClients().
//
// TODO(sburnett): Replace this with a fake store to reduce awkwardness.
class MockPersistentReportingStore
    : public ReportingCache::PersistentReportingStore {
 public:
  struct Command {
    enum class Type {
      LOAD_REPORTING_CLIENTS,
      ADD_REPORTING_ENDPOINT,
      ADD_REPORTING_ENDPOINT_GROUP,
      UPDATE_REPORTING_ENDPOINT_GROUP_ACCESS_TIME,
      UPDATE_REPORTING_ENDPOINT_DETAILS,
      UPDATE_REPORTING_ENDPOINT_GROUP_DETAILS,
      DELETE_REPORTING_ENDPOINT,
      DELETE_REPORTING_ENDPOINT_GROUP,
      FLUSH
    };

    // Constructor for LOAD_REPORTING_CLIENTS commands.
    Command(Type type, ReportingClientsLoadedCallback loaded_callback);
    // Constructors for endpoint commands. |type| must be one of
    // ADD_REPORTING_ENDPOINT, UPDATE_REPORTING_ENDPOINT_DETAILS, or
    // DELETE_REPORTING_ENDPOINT
    Command(Type type, const ReportingEndpoint& endpoint);
    Command(Type type,
            const ReportingEndpointGroupKey& group_key,
            const GURL& endpoint_url);
    // Constructors for endpoint group commands. |type| must be one of
    // ADD_REPORTING_ENDPOINT_GROUP,
    // UPDATE_REPORTING_ENDPOINT_GROUP_ACCESS_TIME,
    // UPDATE_REPORTING_ENDPOINT_GROUP_DETAILS, or
    // DELETE_REPORTING_ENDPOINT_GROUP
    Command(Type type, const CachedReportingEndpointGroup& group);
    Command(Type type, const ReportingEndpointGroupKey& group_key);
    // |type| must be LOAD_REPORTING_CLIENTS or FLUSH.
    explicit Command(Type type);

    Command(const Command& other);
    Command(Command&& other);

    ~Command();

    // Type of command.
    Type type;

    // Identifies the group to which the command pertains. (Applies to endpoint
    // and endpoint group commands.)
    ReportingEndpointGroupKey group_key = ReportingEndpointGroupKey();

    // Identifies the endpoint to which the command pertains. (Applies to
    // endpoint commands only.)
    GURL url;

    // The supplied callback to be run when loading is complete. (Only applies
    // for load commands.)
    ReportingClientsLoadedCallback loaded_callback;
  };

  using CommandList = std::vector<Command>;

  MockPersistentReportingStore();
  ~MockPersistentReportingStore() override;

  // PersistentReportingStore implementation:
  void LoadReportingClients(
      ReportingClientsLoadedCallback loaded_callback) override;
  void AddReportingEndpoint(const ReportingEndpoint& endpoint) override;
  void AddReportingEndpointGroup(
      const CachedReportingEndpointGroup& group) override;
  void UpdateReportingEndpointGroupAccessTime(
      const CachedReportingEndpointGroup& group) override;
  void UpdateReportingEndpointDetails(
      const ReportingEndpoint& endpoint) override;
  void UpdateReportingEndpointGroupDetails(
      const CachedReportingEndpointGroup& group) override;
  void DeleteReportingEndpoint(const ReportingEndpoint& endpoint) override;
  void DeleteReportingEndpointGroup(
      const CachedReportingEndpointGroup& group) override;
  void Flush() override;

  // Simulates pre-existing clients that were stored previously. Should only be
  // called once, at the beginning of the test before any other method calls.
  void SetPrestoredClients(std::vector<ReportingEndpoint> endpoints,
                           std::vector<CachedReportingEndpointGroup> groups);

  // Simulate finishing loading clients by executing the loaded_callback of the
  // first LOAD_REPORTING_CLIENTS command (which should also be the only
  // LOAD_REPORTING_CLIENTS command). If |load_success| is false, the vectors of
  // endpoints and groups passed to the callback will be empty. If
  // |load_success| is true, the prestored clients will be passed to the
  // callback.
  void FinishLoading(bool load_success);

  // Verify that |command_list_| matches |expected_commands|.
  // TODO(sburnett): Replace this with a set of gmock matchers.
  bool VerifyCommands(const CommandList& expected_commands) const;

  // Count the number of commands with type |t|.
  int CountCommands(Command::Type t);

  CommandList GetAllCommands() const;

  // Gets the number of stored endpoints/groups, simulating the actual number
  // that would be written on disk if this were a real store.
  int StoredEndpointsCount() const { return endpoint_count_; }
  int StoredEndpointGroupsCount() const { return endpoint_group_count_; }

 private:
  // List of commands that we have received so far.
  CommandList command_list_;

  // Simulated pre-existing stored clients.
  std::vector<ReportingEndpoint> prestored_endpoints_;
  std::vector<CachedReportingEndpointGroup> prestored_endpoint_groups_;

  // Set when LoadReportingClients() is called.
  bool load_started_;

  // Simulates the total number of endpoints/groups that would be stored in the
  // store. Updated when pre-stored policies are added, and when Flush() is
  // called.
  int endpoint_count_;
  int endpoint_group_count_;

  // Simulates the delta to be added to to the counts the next time Flush() is
  // called. Reset to 0 when Flush() is called.
  int queued_endpoint_count_delta_;
  int queued_endpoint_group_count_delta_;

  DISALLOW_COPY_AND_ASSIGN(MockPersistentReportingStore);
};

bool operator==(const MockPersistentReportingStore::Command& lhs,
                const MockPersistentReportingStore::Command& rhs);
bool operator!=(const MockPersistentReportingStore::Command& lhs,
                const MockPersistentReportingStore::Command& rhs);
std::ostream& operator<<(std::ostream& out,
                         const MockPersistentReportingStore::Command& cmd);

}  // namespace net

#endif  // NET_REPORTING_MOCK_PERSISTENT_REPORTING_STORE_H_


text:
The ember-modal-dialog addon provides components to implement modal dialogs throughout an Ember application using a simple, consistent pattern.

Unlike other modal libraries for Ember, ember-modal-dialog uses our [ember-wormhole](//github.com/yapplabs/ember-wormhole) addon to render a modal as a top-level DOM element for layout purposes while retaining its logical position in the Ember view hierarchy. This difference introduces a certain elegance and, dare we say, joy, into the experience of using modals in your app. (For more info on this,
see the "Wormhole" section below!)

## Live Demo

View a live demo here: [http://yapplabs.github.io/ember-modal-dialog/](http://yapplabs.github.io/ember-modal-dialog/)

## Test Examples

Test examples are located in `tests/dummy/app/templates/application.hbs` and can be run locally by following the instructions in the "Installation" and "Running" sections below.

## Including In An Ember Application

Here is the simplest way to get started with ember-modal-dialog:

```sh
ember install ember-modal-dialog
ember install ember-cli-sass
```

In Ember CLI versions < 0.2.3, the install command should be:

```sh
ember install:addon ember-modal-dialog
ember install:addon ember-cli-sass
```

**app.scss**
```scss
@import "ember-modal-dialog/ember-modal-structure";
@import "ember-modal-dialog/ember-modal-appearance";
```

**application.hbs**
```htmlbars
{{#modal-dialog}}
  Oh hai there!
{{/modal-dialog}}
```

## Controller-bound Usage

Here is a more useful example of how to conditionally display a modal based on a user interaction.

**Template**

```htmlbars
<button {{action "toggleModal"}}>Toggle Modal</button>

{{#if isShowingModal}}
  {{#modal-dialog close="toggleModal"
                  alignment="center"
                  translucentOverlay=true}}
    Oh hai there!
  {{/modal-dialog}}
{{/if}}
```

**Controller**

```javascript
import Ember from 'ember';

export default Ember.Controller.extend({
  isShowingModal: false,
  actions: {
    toggleModal: function(){
      this.toggleProperty('isShowingModal');
    }
  }
});
```

## Routable Usage

To have a modal open for a specific route, just drop the `{{modal-dialog}}` into that route's template. Don't forget to have an `{{outlet}}` on the parent route.

## Configurable Properties

The following properties of the modal-dialog component are configurable:

Property              | Purpose
--------------------- | -------------
`hasOverlay`          | `true|false` (default: `true`)
`translucentOverlay`  | `true|false` (default: `false`)
`overlay-class`       | CSS class name(s) to append to overlay divs. Set this from template.`)
`overlayClassNames`   | CSS class names to append to overlay divs. This is a concatenated property, so it does **not** replace the default overlay class (default: `'ember-modal-overlay'`. If you subclass this component, you may define this in your subclass.)
`container-class`     | CSS class name(s) to append to container divs. Set this from template.`)
`containerClassNames` | CSS class names to append to container divs. This is a concatenated property, so it does **not** replace the default container class (default: `'ember-modal-dialog'`. If you subclass this component, you may define this in your subclass.)
`alignment`           | `top|right|left|bottom|center|none` (for use with `alignmentTarget`)
`alignmentTarget`     | Element selector, element, or Ember View reference for modal position (for use with `alignment`)
`close`               | The action handler for the dialog's `close` action. This action triggers when the user clicks the modal overlay.
`attachment`          | A string of the form 'vert-attachment horiz-attachment' (see "Positioning" section below)
`targetAttachment`    | A string of the form 'vert-attachment horiz-attachment' (see "Positioning" section below)
`renderInPlace`       | A boolean, when true renders the modal without positioning or DOM position manipulation, useful for including a modal in a style guide

If using ember-tether, the following additional properties of the modal-dialog component are configurable. Please see [Hubspot Tether](http://github.hubspot.com/tether/) for usage documentation.

- `tetherClassPrefix`
- `offset`
- `targetOffset`

## Positioning With or Without ~~Bono~~ Ember Tether

This component **optionally** uses our [ember-tether](//github.com/yapplabs/ember-tether) addon to position modal dialogs near another element or view on the page.

If you include ember-tether as a dependency in your Ember app, ember-modal-dialog will use it. If you do not include the ember-tether dependency, ember-modal-dialog will fallback to its default positioning behavior.

Pros and cons of each approach are detailed below.

### Positioning With Ember Tether

ember-tether provides the ability for attached modals to remain tethered to their targets when users scroll or resize the window.

#### Caveats

Event delegation originating from content inside ember-tether blocks will only work for Ember apps that use Ember's default root element of the `body` tag. This is because the Hubspot Tether library appends its positioned elements to the body tag.

If you are not overriding the default root element, then don't worry and carry on. ember-tether will work just fine for you.

#### How To Position Modal Dialogs Using Ember Tether

- Install ember-tether as a dependency of **your ember app**.

    `ember install ember-tether`

- Specify the following properties on a `modal-dialog` component:

    - `alignmentTarget`
    - `attachment`
    - `targetAttachment`

Note that `attachment` and `targetAttachment` expect a string of the form 'vert-attachment horiz-attachment':

- vert-attachment can be any of 'top', 'middle', 'bottom'
- horiz-attachment can be any of 'left', 'center', 'right'

Extreme detail can be found on the [Hubspot Tether](http://github.hubspot.com/tether/) site.

### Positioning Without Ember Tether

If you do not carry a dependency on Hubspot Tether, ember-modal-dialog will fallback to its own positioning logic. Just specify the `alignment` and `alignmentTarget` properties as you see fit.

Note that this positioning logic is not nearly as sophisticated as the positioning logic in Ember Tether. That's why we made Ember Tether.

## Wormholes

Display of a modal dialog is typically triggered by a user interaction. While the content in the dialog is related to the content in the user interaction, the underyling display mechanism for the dialogs can be shared across the entire application.

The `add-modals-container` initializer appends a container element to the `application.rootElement`. It injects a reference to this container element id as a property of the `modal-dialog` service, which is then used in the `modal-dialog` component. The property is injected into a service instead of directly into the `modal-dialog` component to make it easier to extend the component and make custom modals.

This component uses the ember-wormhole component to render a dialog by appending a morph to a dedicated element in the DOM. This decouples the DOM location of a modal from the DOM location of whatever triggered its display... hence wormholes!

## Configuring the Modal Root Element Id

This default id of the modal root element is `modal-overlays` and can be overridden in environment application options as follows:

```javascript
module.exports = function(environment) {
  var ENV = {
    ...
    APP: {
      emberModalDialog: {
        modalRootElementId: 'custom-modal-root-element'
      }
    }
  };
  ...

  return ENV;
};

```

## Configuring Styles

Modal dialogs are rendered as child nodes of a modals container div with a default id of `modal-overlays`.

Each modal dialog consists of an overlay div with class `ember-modal-overlay` followed by the a dialog div with class `ember-modal-dialog`.

The resultant portion of the DOM looks like this:

```html
<div id="modal-overlays">
  <div class="ember-modal-overlay"></div>
  <div class="ember-modal-dialog">
  ... MODAL DIALOG CONTENT HTML HERE ...
  </div>
</div>
```

The addon packages default styles for modal structure and appearance. To use these styles, install ember-cli-sass and import the relevant SCSS file(s) in `app.scss`.

```sh
> ember install ember-cli-sass
```

Or, in Ember CLI versions < 0.2.3:

```sh
ember install:addon ember-cli-sass
```

**app.scss**
```scss
@import "ember-modal-dialog/ember-modal-structure";
@import "ember-modal-dialog/ember-modal-appearance";
```

## Keyboard shortcuts

A quick-and-dirty way to implement keyboard shortcuts (e.g. to dismiss your modals with `escape`) is to subclass the dialog and attach keyboard events:

```js
// app/components/modal-dialog.js
import ModalDialog from 'ember-modal-dialog/components/modal-dialog';

export default ModalDialog.extend({
  setup: function() {
    Ember.$('body').on('keyup.modal-dialog', (e) => {
      if (e.keyCode === 27) {
        this.sendAction('close');
      }
    });
  }.on('didInsertElement'),

  teardown: function() {
    Ember.$('body').off('keyup.modal-dialog');
  }.on('willDestroyElement'),
});
```

This can work, but some apps require a more sophisticated approach. One approach, inspired by Cocoa, takes advantage of the [ember-key-responder](https://github.com/yapplabs/ember-key-responder) library. Here's an example:

```javascript
// app/components/modal-dialog.js
import ModalDialog from 'ember-modal-dialog/components/modal-dialog';

export default ModalDialog.extend({
  acceptsKeyResponder: true,
  becomeKeyResponderWhenInserted: function(){
    this.becomeKeyResponder();
  }.on('didInsertElement'),

  resignKeyResponderWhenDestroyed: function(){
    this.resignKeyResponder();
  }.on('willDestroyElement'),

  cancel: function() {
    this.sendAction('close');
  }
});
```

View [the library](https://github.com/yapplabs/ember-key-responder) for more information.

## iOS

In order for taps on the overlay to be functional on iOS, a `cursor: pointer` style is added to the `div` when on iOS. If you need to change this behavior, subclass modal-dialog and override `makeOverlayClickableOnIOS`.

## Custom Modals

If you have various different styles of modal dialog in your app, it can be useful to subclass the dialog as a new component:

```js
// app/components/full-screen-modal.js

import ModalDialog from 'ember-modal-dialog/components/modal-dialog';

export default ModalDialog.extend({
  containerClassNames: "full-screen-modal",
  hasOverlay: false,
  alignment: "none"
});
```

This can then be used like so:

```htmlbars
{{#full-screen-modal}}
  Custom modal contents
{{/full-screen-modal}}
```

## Dependencies

* Requires Ember CLI >= 0.2.0
* Requires Ember >= 1.10.0

## Installation

* `ember install ember-modal-dialog`

Or, in Ember CLI versions < 0.2.3:

```sh
ember install:addon ember-modal-dialog
```

## Running

* `ember server`
* Visit your app at http://localhost:4200.

## Running Tests

* `ember try:testall`
* `ember test`
* `ember test --server`

## Unit Tests

When running unit tests on components that use ember-modal-dialog it is necessary to create and register the container for ember-modal-dialog to wormhole itself into.  See this [example](tests/unit/components/component-that-uses-modal-dialog-test.js) for how to set this up in a unit test.

## Building

* `ember build`

For more information on using ember-cli, visit [http://www.ember-cli.com/](http://www.ember-cli.com/).

## Generating the Changelog

This project uses [https://github.com/skywinder/github-changelog-generator](https://github.com/skywinder/github-changelog-generator) to generate its changelog.

## Credits

Contributions from @stefanpenner, @krisselden, @chrislopresto, @lukemelia, @raycohen and
others. [Yapp Labs](http://yapplabs.com) is an Ember.js consultancy based in NYC.


text:
<!doctype html>

  <meta charset="UTF-8">
  <title>提示信息</title>

  <link href="\bootstrap\css/bootstrap-combined.min.css" rel="stylesheet">
  <link href="\bootstrap\css/layoutit.css" rel="stylesheet">

    <link rel="shortcut icon" href="\bootstrap\img/favicon.png">

     @if(session('info'))

             <button type="button" class="close" data-dismiss="alert">×</button>

                提示!

  {{ session('info')}}

     @endif


text:
@interface ViewController ()
@property (weak, nonatomic) IBOutlet GridBackgroundView *gbView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.gbView.lineColor = [UIColor redColor];
    self.gbView.edgeLine = GBEdgeLineMake(YES, YES, YES, YES);
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end


text:
<bill session="110" type="h" number="3979" updated="2009-01-09T01:10:24-05:00">
	<status><introduced date="1193284800" datetime="2007-10-25"/></status>

	<introduced date="1193284800" datetime="2007-10-25"/>
	<titles>
		<title type="short" as="introduced">Assessment Accuracy and Improvement Act</title>
		<title type="official" as="introduced">To increase assessment accuracy to better measure student achievement and provide States with greater flexibility on assessment design.</title>
	</titles>
	<sponsor id="400318"/>
	<cosponsors>
		<cosponsor id="412229" joined="2008-07-24"/>
		<cosponsor id="400199" joined="2008-06-09"/>
		<cosponsor id="400257" joined="2007-10-31"/>
		<cosponsor id="400184" joined="2008-04-02"/>
		<cosponsor id="400437" joined="2007-10-25"/>
		<cosponsor id="400311" joined="2007-12-12"/>
		<cosponsor id="400070" joined="2008-06-09"/>
		<cosponsor id="400013" joined="2008-07-24"/>
		<cosponsor id="400185" joined="2007-12-19"/>
		<cosponsor id="400119" joined="2007-12-12"/>
		<cosponsor id="400033" joined="2008-01-28"/>
		<cosponsor id="400011" joined="2007-11-05"/>
	</cosponsors>
	<actions>
		<action date="1193284800" datetime="2007-10-25"><text>Sponsor introductory remarks on measure. (CR E2252)</text></action>
		<action date="1193284800" datetime="2007-10-25"><text>Referred to the House Committee on Education and Labor.</text></action>
		<action date="1195016400" datetime="2007-11-14"><text>Referred to the Subcommittee on Early Childhood, Elementary, and Secondary Education.</text></action>
	</actions>
	<committees>

	</committees>
	<relatedbills>

	</relatedbills>
	<subjects>

	</subjects>
	<amendments>

	</amendments>

	10/25/2007--Introduced.
Assessment Accuracy and Improvement Act - Amends the Elementary and Secondary Education Act of 1965 to allow states to require the use of adaptive assessments of student progress toward state academic performance standards that accurately assess student achievement above and below grade level while also measuring grade-level performance. Defines an "adaptive assessment" as one that changes in difficulty in accordance with a student's performance, but reports its outcome on a scale common to all students.

</bill>


text:
<?php

declare(strict_types=1);

namespace ampf\doctrine;

use Doctrine\ORM\EntityManager;

interface EntityManagerFactory
{
    public function get(): ?EntityManager;
}


text:
@interface PodsDummy_Pods_CCCUIKit : NSObject
@end
@implementation PodsDummy_Pods_CCCUIKit
@end


text:
General

 Home

Dashboard

 Forms

Predict an accident Form

 Tables

Accident Count Table

Weather Table

Gender Table

Age Table

Carsh Type Table

Map Table

                   Smart City Accident Analysis and Prediction

Predict an Accident Prone Area

                    <form class="form-horizontal form-label-left" onSubmit= "return check()">

                        Intersection

                          <select class="form-control" ng-model = "thrs.first">
                            <option>Choose option</option>
                            <option >Four-Way</option>
                            <option>T</option>
                          </select>

                        Light Condition

                          <select class="form-control" ng-model = "thrs.second">
                            <option>Choose option</option>
                            <option>DAY</option>
                            <option>DARK NO LT</option>
                            <option>DARK W/LT</option>
                            <option>DUSK/DAWN</option>
                          </select>

                        Weather

                          <select class="form-control" ng-model = "thrs.third">
                            <option>Choose option</option>
                            <option>Rain</option>
                            <option>Clear</option>
                            <option>Fog</option>
                            <option>Cloudy</option>
                          </select>

                        Road Condition

                          <select class="form-control" ng-model = "thrs.fourth">
                            <option>Choose option</option>
                            <option>Dry</option>
                            <option>Wet</option>
                          </select>

                        Crash Type

                          <select class="form-control" ng-model = "thrs.fifth">
                            <option>Choose option</option>
                            <option>REAR</option>
                            <option>SIDESWIPE</option>
                            <option>BROAD</option>
                            <option>OTHER</option>
                          </select>

                        Gender

                          <select class="form-control" ng-model = "thrs.sixth">
                            <option>Choose option</option>
                            <option>M</option>
                            <option>F</option>
                          </select>

                        Violation Type

                          <select class="form-control" ng-model = "thrs.seventh">
                            <option>Choose option</option>
                            <option>Speeding</option>
                            <option>Run Red Light</option>
                          </select>

                        Date

                          <input type="date" data-date-inline-picker="false" data-date-open-on-focus="true" ng-model = "thrs.eighth"/>

                        Vehicle Type

                          <select class="form-control" ng-model = "thrs.ninth">
                            <option>Choose option</option>
                            <option>Car</option>
                            <option>Bike</option>
                            <option>Van</option>
                            <option>PU/Panel Truck</option>
                          </select>

                        Algorithm

                          <select class="form-control" ng-model = "thrs.tenth" onChange="delivery(this)" id="algo">
                            <option>Choose option</option>
                            <option>Linear</option>
                            <option>Stepwise Linear</option>
                            <option>Principle Component</option>
                            <option>Partial Least Sqaure</option>
                            <option>Gradient Boost Machine</option>
                          </select>

                          <button type="submit" class="btn btn-success" ng-click="sendVal()">Predict</button>
                          Cancel

                    </form>

 Predicted Accident LocationLatitude :{{lat}}Longitude :{{longitude}}

Accuracy Graph Algorithm wise

          {{lin}}

          {{step}}

          {{prin}}

          {{par}}

          {{gbm}}


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NightlifeEntertainment
{
    public class Opera : Venue
    {
        public Opera(string name, string location, int numberOfSeats)
            : base(name, location, numberOfSeats, new List<PerformanceType> { PerformanceType.Opera, PerformanceType.Theatre })
        {

        }
    }
}


text:
package org.killbill.billing.util.cache;

import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;

import javax.cache.Cache;
import javax.cache.CacheManager;
import javax.inject.Inject;
import javax.inject.Provider;

import org.killbill.billing.util.cache.Cachable.CacheType;
import org.killbill.billing.util.config.definition.CacheConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.common.base.Preconditions;

// Build the abstraction layer between JCache and Kill Bill
public class CacheControllerDispatcherProvider implements Provider<CacheControllerDispatcher> {

    private static final Logger logger = LoggerFactory.getLogger(CacheControllerDispatcherProvider.class);

    private final CacheManager cacheManager;
    private final Set<BaseCacheLoader> cacheLoaders;
    private final CacheConfig cacheConfig;

    @Inject
    public CacheControllerDispatcherProvider(final CacheManager cacheManager,
                                             final Set<BaseCacheLoader> cacheLoaders,
                                             final CacheConfig cacheConfig) {
        this.cacheManager = cacheManager;
        this.cacheLoaders = cacheLoaders;
        this.cacheConfig = cacheConfig;
    }

    @SuppressWarnings({"rawtypes", "unchecked"})
    @Override
    public CacheControllerDispatcher get() {
        final Map<CacheType, CacheController<Object, Object>> cacheControllers = new LinkedHashMap<CacheType, CacheController<Object, Object>>();
        for (final BaseCacheLoader cacheLoader : cacheLoaders) {
            final CacheType cacheType = cacheLoader.getCacheType();

            final CacheController<Object, Object> cacheController;
            if (cacheConfig.getDisabledCaches() != null && cacheConfig.getDisabledCaches().contains(cacheType.getCacheName())) {
                logger.info("Disabling cache for cacheName='{}'", cacheLoader.getCacheType().getCacheName());
                cacheController = new NoOpCacheController(cacheLoader);
            } else {
                final Cache cache = cacheManager.getCache(cacheType.getCacheName(), cacheType.getKeyType(), cacheType.getValueType());
                if (cache == null) {
                    logger.warn("Cache for cacheName='{}' not configured", cacheLoader.getCacheType().getCacheName());
                    continue;
                }
                Preconditions.checkState(!cache.isClosed(), "Cache '%s' should not be closed", cacheType.getCacheName());

                cacheController = new KillBillCacheController<Object, Object>(cache, cacheLoader);
            }

            cacheControllers.put(cacheType, cacheController);
        }

        return new CacheControllerDispatcher(cacheControllers);
    }
}


text:
<!DOCTYPE html>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" >
    <meta name="author" content="Jon">
    <meta name="renderer" content="webkit">
    <meta name="copyright" content="Jon">
    <meta name="keywords" content="Hexo | Jon">
    <meta name="description" content="">
    <meta name="Cache-Control" content="no-cache">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <title>tags · Jon の blog</title>

    <link rel="preload" href= /css/style.css?v=20180501 as="style" onload="this.onload=null;this.rel='stylesheet'" />
    <link rel="stylesheet" href= /css/mobile.css?v=20180501 media="(max-width: 980px)">

    <link rel="icon" href= "/assets/favicon.ico" />
    <link rel="preload" href="https://cdn.jsdelivr.net/npm/webfontloader@1.6.28/webfontloader.min.js" as="script" />
    <link rel="preload" href="https://cdn.jsdelivr.net/npm/jquery@3.3.1/dist/jquery.min.js" as="script" />
    <link rel="preload" href="/scripts/main.js" as="script" />
    <link rel="preload" as="font" href="/font/Oswald-Regular.ttf" crossorigin>
    <link rel="preload" as="font" href="https://at.alicdn.com/t/font_327081_1dta1rlogw17zaor.woff" crossorigin>



    Jon's blog

原文作者: Jon

原文链接: http://yoursite.com/tags/index.html

发表日期: May 7th 2018, 9:47:37

版权声明: 本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

        Powered by Hexotheme Archer

        PV:



Archive

Tag

Cate

 Total : 1

 Invalid date

            Invalid date直观理解 -(尾)递归函数

        Other



    缺失模块。

    1、请确保node版本大于6.2

    2、在博客根目录(注意不是archer根目录)执行以下命令:

    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

jsonContent:
  meta: false
  pages: false
  posts:
    title: true
    date: true
    path: true
    text: false
    raw: false
    content: false
    slug: false
    updated: false
    comments: false
    link: false
    permalink: false
    excerpt: false
    categories: true
    tags: true

        Other




text:
package com.microsoft.azure.management.hdinsight.v2018_06_01_preview;

import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * The version capability.
 */
public class VersionsCapability {
    /**
     * The list of version capabilities.
     */
    @JsonProperty(value = "available")
    private List<VersionSpec> available;

    /**
     * Get the list of version capabilities.
     *
     * @return the available value
     */
    public List<VersionSpec> available() {
        return this.available;
    }

    /**
     * Set the list of version capabilities.
     *
     * @param available the available value to set
     * @return the VersionsCapability object itself.
     */
    public VersionsCapability withAvailable(List<VersionSpec> available) {
        this.available = available;
        return this;
    }

}


text:
package com.test.template.interfaces;

import javax.annotation.Nonnull;

/**
 * <p/>
 * Created by Micha "Micha did it!" Pringle on December 12, 2014.
 */
public interface A3TwoNonnull
{
	@Nonnull
	public String getITwoNN1();

	@Nonnull
	public String getITwoNN2();
}


text: Doctrine_Collection_Batch is a Doctrine_Collection with batch fetching strategy.


text: This is Fragment 02


text:
<?php

/**
 * Run in a custom namespace, so the class can be replaced
 */
namespace Gridly;

/**
 * Class Gridly for Hook loadDataContainer
 * @author Data
 *
 */
class GridlyDca extends \BackendModule
{
    /**
     * Current object instance
     * @var object
     */
    protected static $instance = null;

    /**
     * Constructor
     */
    public function __construct()
    {
        $this->import('BackendUser', 'User');
        parent::__construct();
    }

    protected function compile()
    {

    }

    /**
     * Return the current object instance (Singleton)
     * @return GridlyDca
     */
    public static function getInstance()
    {
        if (self::$instance === null)
        {
            self::$instance = new GridlyDca();
        }

        return self::$instance;
    }

    /**
     * Hook loadDataContainer
     * @param string $strName    dca
     */
    public function loadDataContainerGridly($strName)
    {
        if ($strName == 'tl_layout')
        {
            //add the new css files
            array_push($GLOBALS['TL_DCA']['tl_layout']['fields']['framework']['options'], 'gridly.css');
        }
        if ($strName == 'tl_page')
        {
            //Alias Name anzeigen in Seitenstruktur, just4fun
            $GLOBALS['TL_DCA']['tl_page']['list']['label']['fields'] = array('title','alias');
            $GLOBALS['TL_DCA']['tl_page']['list']['label']['format'] = '%s [%s]';
        }
    }

}


text:
all: gccisms.o

include $(MK_GENERIC)