text: var crypto = require('crypto');
  function PushBehavior(__SLAG_PROPERTIES) {
  	__SLAG_PROPERTIES = __SLAG_PROPERTIES || {};
  	var __SLAG_DEVICE = JSON.parse(process.env.SLAG_DEVICE);
  	var __SLAG_CHECKS = [], __SLAG_NAMES = [
  			'bubbleParent',
  			'apiName',
  			'active',
  			'angle',
  			'items',
  			'magnitude',
  			'pushDirection',
  			'pushMode',
  			'id'
  		];
  	if (__SLAG_NAMES.length > 0 && process.env.SLAG_STRICT === 'true') {
  		for (var __SLAG_NAME in __SLAG_PROPERTIES) {
  			if (__SLAG_NAMES.indexOf(__SLAG_NAME) === -1) {
  				throw new Error('Use user custom property ' + __SLAG_NAME);
  			}
  		}
  	} else if (__SLAG_NAMES.length === 0 && __SLAG_PROPERTIES.length > 0 && process.env.SLAG_STRICT === 'true') {
  		throw new Error('Use user custom properties. ' + __SLAG_PROPERTIES.join(', '));
  	}
  	var md5 = crypto.createHash('md5');
  	md5.update(crypto.randomBytes(32), 'binary');
  	this.__SLAG_ID = md5.digest('hex');
  	this.__SLAG_PARENT;
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		this.bubbleParent = undefined;
  	} else {
  		this.bubbleParent = __SLAG_PROPERTIES.bubbleParent || true;
  	}
  	if (__SLAG_PROPERTIES.apiName) {
  		throw new Error('Ti.UI.iOS.PushBehavior.apiName is read only property');
  	}
  	this.apiName = 'Ti.UI.iOS.PushBehavior';
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		this.active = undefined;
  	} else {
  		this.active = __SLAG_PROPERTIES.active || true;
  	}
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		this.angle = undefined;
  	} else {
  		this.angle = __SLAG_PROPERTIES.angle || 0;
  	}
  	if (__SLAG_PROPERTIES.items) {
  		throw new Error('Ti.UI.iOS.PushBehavior.items is read only property');
  	}
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		this.items = undefined;
  	} else {
  		this.items = [];
  	}
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		this.magnitude = undefined;
  	} else {
  		this.magnitude = __SLAG_PROPERTIES.magnitude || 0;
  	}
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		this.pushDirection = undefined;
  	} else {
  		this.pushDirection = __SLAG_PROPERTIES.pushDirection || {
  			x: 0,
  			y: 0
  		};
  	}
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		this.pushMode = undefined;
  	} else {
  		this.pushMode = __SLAG_PROPERTIES.pushMode || 0;
  	}
  	this.id = __SLAG_PROPERTIES.id || '';
  	return this;
  }
  PushBehavior.prototype.addEventListener = function () {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  };
  PushBehavior.prototype.removeEventListener = function () {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  };
  PushBehavior.prototype.applyProperties = function (__SLAG_PROPERTIES) {
  	for (var __SLAG_NAME in __SLAG_PROPERTIES) {
  		this[__SLAG_NAME] = __SLAG_PROPERTIES[__SLAG_NAME];
  	}
  };
  PushBehavior.prototype.fireEvent = function () {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  };
  PushBehavior.prototype.addItem = function () {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  };
  PushBehavior.prototype.removeItem = function () {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  };
  PushBehavior.prototype.getBubbleParent = function () {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	return this.bubbleParent;
  };
  PushBehavior.prototype.setBubbleParent = function (__SLAG__PROPERTY) {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	this.bubbleParent = __SLAG__PROPERTY;
  };
  PushBehavior.prototype.getApiName = function () {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	return this.apiName;
  };
  PushBehavior.prototype.getActive = function () {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	return this.active;
  };
  PushBehavior.prototype.setActive = function (__SLAG__PROPERTY) {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	this.active = __SLAG__PROPERTY;
  };
  PushBehavior.prototype.getAngle = function () {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	return this.angle;
  };
  PushBehavior.prototype.setAngle = function (__SLAG__PROPERTY) {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	this.angle = __SLAG__PROPERTY;
  };
  PushBehavior.prototype.getItems = function () {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	return this.items;
  };
  PushBehavior.prototype.getMagnitude = function () {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	return this.magnitude;
  };
  PushBehavior.prototype.setMagnitude = function (__SLAG__PROPERTY) {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	this.magnitude = __SLAG__PROPERTY;
  };
  PushBehavior.prototype.getPushDirection = function () {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	return this.pushDirection;
  };
  PushBehavior.prototype.setPushDirection = function (__SLAG__PROPERTY) {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	this.pushDirection = __SLAG__PROPERTY;
  };
  PushBehavior.prototype.getPushMode = function () {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	return this.pushMode;
  };
  PushBehavior.prototype.setPushMode = function (__SLAG__PROPERTY) {
  	if (['ios'].indexOf(process.env.SLAG_PLATFORM) === -1) {
  		throw new Error('This method is not support specified platform');
  	}
  	this.pushMode = __SLAG__PROPERTY;
  };
  module.exports = function (properties) {
  	return new PushBehavior(properties);
  };