text:
//
//  Part of the [RapidGame](https://github.com/natweiss/rapidgame) project.
//  See the `LICENSE` file for the license governing this code.
//  Developed by Nathanael Weiss.
//
//  To-do:
//   - Mention how to use a manual download of cocos2d-js.
//   - Fix Mac project name search and replace so names with spaces work.
//   - Fix Mac temp dir if changed to relative to project
//   - Why did `sudo npm unlink rapidgame -g; sudo npm link .` fix "Error: Cannot find module 'path-extra'"?
//

var http = require("http"),
	path = require("path-extra"),
	fs = require("fs"),
	util = require("util"),
	cmd = require("commander"),
	replace = require("replace"),
	download = require("download"),
	glob = require("glob"),
	wrench = require("wrench"),
	child_process = require("child_process"),
	packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "package.json"))),
	cmdName = packageJson.name,
	version = packageJson.version,
	cocos2djsUrlMac = "http://cdn.cocos2d-x.org/cocos2d-js-v3.6.zip", // also, http://www.cocos2d-x.org/filedown/cocos2d-js-v3.6.zip
	cocos2djsUrlWin = "http://cdn.cocos2d-x.org/cocos2d-js-v3.6.zip",
	cocos2djsUrl = (process.platform === "darwin" ? cocos2djsUrlMac : cocos2djsUrlWin),
	cocos2dDirGlob = "*ocos2d-js*",
	category,
	engines = [],
	templates = [],
	builds = [],
	orientations = ["landscape", "portrait"],
	platforms = ["headers", "ios", "mac", "android", "windows", "linux"],
	copyCount = 0,
	msBuildPath,
	defaults = {
		engine: "cocos2dx",
		template: "TwoScene",
		package: "org.mycompany.mygame",
		dest: process.cwd(),
		prefix: __dirname,
		orientation: orientations[0]
	};

//
// list directories (path.join is called on all arguments)
//
var listDirectories = function() {
	var i, src, dirs;
	for (i = 0; i < arguments.length; i += 1) {
		src = (src ? path.join(src, arguments[i]) : arguments[i]);
	}
	dirs = glob.sync(src);
	for (i = 0; i < dirs.length; i++) {
		dirs[i] = path.basename(dirs[i]);
	}
	return dirs;
};

//
// get engines and templates
//
engines = listDirectories(__dirname, "templates", "*");
templates = listDirectories(__dirname, "templates", "cocos2dx", "*");

//
// Main run method.
//
var run = function(args) {
	var i, commands = [], commandFound = false;
	checkUpdate();
	args = args || process.argv;
	cmd
		.version(version)
		.option("-t, --template <name>", "template (" + templates.join(", ") + ") [" + defaults.template + "]", defaults.template)
		.option("-p, --prefix <name>", "library directory [" + defaults.prefix + "]", defaults.prefix)
		.option("-f, --folder <path>", "output folder [" + defaults.dest + "]", defaults.dest)
		.option("-o, --orientation <orientation>", "orientation (" + orientations.join(", ") + ") [" + defaults.orientation + "]", defaults.orientation)
		.option("--nostrip", "do not strip the prebuilt libraries", false)
		.option("--minimal", "prebuild only debug libraries and use minimal architectures", false)
		.option("-v, --verbose", "be verbose", false);

	cmd
		.command("create <engine> <project-name> <package-name>")
		.description("     Create a new cross-platform game project [engines: " + engines.join(", ") + "]")
		.action(createProject);
	commands.push("create");

	cmd
		.command("prebuild [platform]")
		.description("                            Prebuild cocos2d-x static libraries [platforms: " + platforms.join(", ") + "]")
		.action(prebuild);
	commands.push("prebuild");

	cmd
		.command("init <directory>")
		.description("                            Create a symlink in the given directory to the libraries")
		.action(init);
	commands.push("init");

	cmd.on("--help", usageExamples);

	cmd
		.parse(args)
		.name = cmdName;

	if (!cmd.args.length) {
		usage();
	} else {
		// Check if command exists
		for (i = 0; i < commands.length; i += 1) {
			if (args[2] === commands[i]) {
				commandFound = true;
				break;
			}
		}
		if (!commandFound) {
			console.log("Command '" + args[2] + "' not found");
			usage();
		}
	}
};

//
// Initialize the given directory.
//
var init = function(directory) {
	var src, dest;

	if (!checkPrefix()) {
		usage();
		return 1;
	}
	if (!dirExists(directory)) {
		console.log("Output directory must exist: " + directory);
		return 1;
	}

	// Create lib symlink
	// Windows: If you get Error: EPERM: operation not permitted: 'folder name\lib' it probably means you need to Run As Administrator
	src = path.join(cmd.prefix, version);
	dest = path.join(directory, "lib");
	console.log("Symlinking" + (cmd.verbose ? ": " + dest + " -> " + src : " lib folder"));
	try {
		fs.symlinkSync(src, dest);
	} catch(e) {
		logErr("Error creating symlink: " + e);
	}
};

//
// Create project.
//
var createProject = function(engine, name, package) {
	var dir = path.join(cmd.folder, name),
		src,
		dest,
		fileCount,
		i,
		onFinished,
		files,
		isCocos2d = false,
		packageSrc = "com.wizardfu." + cmd.template.toLowerCase();
	cmd.engine = engine.toString().toLowerCase();

	category = "createProject";

	if (!checkPrefix()) {
		usage();
		return 1;
	}

	// Check engine and name
	if (!cmd.engine || !name || !package) {
		console.log("Engine, project name and package name are required, for example: " + cmdName + " cocos2dx \"Heck Yeah\" com.mycompany.heckyeah");
		usage();
		return 1;
	}

	// Check if dirs exist
	if (dirExists(dir) || fileExists(dir)) {
		console.log("Output directory already exists: " + dir);
		return 1;
	}

	// Check engine
	if (engines.indexOf(cmd.engine) < 0) {
		console.log("Engine '" + cmd.engine + "' not found");
		console.log("Available engines are: " + engines.join(", "));
		usage();
		return 1;
	}

	// Check template
	src = path.join(__dirname, "templates", cmd.engine, cmd.template);
	if (!dirExists(src)) {
		console.log("Missing template directory: " + src);
		files = listDirectories(__dirname, "templates", cmd.engine, "*");
		if (files.length > 0) {
			console.log("Available templates for " + cmd.engine + " are: " + files.join(", ") + ".");
		}
		usage();
		return 1;
	}

	// Start
	report("start", cmd.engine + "/" + cmd.template);
	console.log("Rapidly creating a game");
	console.log("Engine: " + cmd.engine.charAt(0).toUpperCase() + cmd.engine.slice(1));
	console.log("Template: " + cmd.template + (cmd.verbose ? " " + packageSrc : ""));
	isCocos2d = (cmd.engine.indexOf("cocos") >= 0);

	// Copy all template files to destination
	dest = dir;
	console.log("Copying project files" + (cmd.verbose ? " from " + src + " to " + dest : ""));
	fileCount = copyRecursive(src, dest, true);
	if (cmd.verbose) {
		console.log("Successfully copied " + fileCount + " files");
	}

	// Replace project name
	console.log("Setting project name: " + name);
	replace({
		regex: cmd.template,
		replacement: name,
		paths: [dest],
		include: "*.js,*.plist,*.cpp,*.md,*.lua,*.html,*.json,*.xml,*.xib,*.pbxproj,*.xcscheme,*.xcworkspacedata,*.xccheckout,*.sh,*.cmd,*.py,*.rc,*.sln,*.txt,.classpath,.project,.cproject,makefile,manifest,*.vcxproj,*.user,*.filters,.name",
		recursive: true,
		silent: !cmd.verbose
	});

	// Replace package name
	console.log("Setting package name: " + package);
	replace({
		regex: packageSrc,
		replacement: package,
		paths: [dest],
		include: "*.js,*.plist,*.xml,makefile,manifest,*.settings,*.lua,.project,.identifier",
		recursive: true,
		silent: !cmd.verbose
	});

	// Rename files & dirs
	from = path.join(dest, "**", cmd.template + ".*");
	if (cmd.verbose) {
		console.log("Renaming all " + from + " files");
	}
	files = glob.sync(from);
	for (i = 0; i < files.length; i++) {
		from = files[i];
		to = path.join(path.dirname(from), path.basename(from).replace(cmd.template, name));
		if (cmd.verbose) {
			console.log("Moving " + from + " to " + to);
		}
		try {
			fs.renameSync(from, to);
		} catch(e) {
			logErr("Error moving file " + e);
		}
	}

	// Symlink
	if (isCocos2d) {
		init(dir);
	}

	// Npm install
	i = null;
	dest = path.join(dir, "server");
	onFinished = function(){
		// Show readme
		console.log("Done");
		try {
			var text = fs.readFileSync(path.join(dir, "README.md")).toString();
			console.log("");
			console.log(text);
			console.log("");
		} catch(e) {
		}
		report("done");

		// Auto prebuild
		if (isCocos2d && !dirExists(path.join(cmd.prefix, version))) {
			console.log("");
			console.log("Static libraries must be prebuilt");
			prebuild();
		}
	};
	if (dirExists(dest) && !dirExists(path.join(dest, "node_modules"))) {
		console.log("Installing node modules");
		try {
			child_process.exec("npm install", {cwd: dest, env: process.env}, function(a, b, c){
				execCallback(a, b, c);
				onFinished();
			});
		} catch(e) {
			logErr("Error installing node modules: " + e);
		}
	} else {
		onFinished();
	}
};

//
// run the prebuild command
//
var prebuild = function(platform, config, arch) {
	category = "prebuild";
	platform = (platform || "");
	platform = platform.toString().toLowerCase();
	config = config || "";
	arch = arch || "";
	if (platforms.indexOf(platform) < 0) {
		platform = "";
	}

	if (!checkPrefix()) {
		usage();
		return 1;
	}

	console.log("Happily prebuilding " + platform);
	cmd.buildLog = path.join(cmd.prefix, "build.log");
	try {
		fs.writeFileSync(cmd.buildLog, "");
		console.log("Writing build log to: " + cmd.buildLog);
	} catch(e) {
		cmd.buildLog = "";
	}

	report("start");
	copySrcFiles(function() {
		downloadCocos(function() {
			setupPrebuild(platform, function() {
				runPrebuild(platform, config, arch, function() {
					report("done");
				});
			});
		});
	});
};

//
// copy src directory to prefix
//
var copySrcFiles = function(callback) {
	var src, dest;

	// Synchronously copy src directory to dest
	src = path.join(__dirname, "src");
	dest = path.join(cmd.prefix, "src");
	if (src !== dest) {
		console.log("Copying " + src + " to " + dest);
		copyRecursive(src, dest, true);
	}

	callback();
};

//
// download cocos2d js source
//
var downloadCocos = function(callback) {
	var dir = path.join(cmd.prefix, "src"),
		src,
		dest = path.join(dir, "cocos2d-js"),
		downloaded = path.join(cmd.prefix, "src", "downloaded.txt"),
		doDownload = !dirExists(dest),
		ver;

	// check downloaded version
	try{
		ver = fs.readFileSync(downloaded).toString().trim();
	} catch(e) {
	}
	if (ver !== cocos2djsUrl) {
		if (typeof ver !== "undefined") {
			console.log("Current Cocos2D JS URL: " + cocos2djsUrl);
			console.log("Downloaded Cocos2D JS URL: " + ver);
			console.log("Re-downloading");
		}
		doDownload = true;
		try {
			wrench.rmdirSyncRecursive(dest, true);
		} catch(e) {
			if (cmd.verbose) {
				console.log(e);
			}
			// try again
			try {wrench.rmdirSyncRecursive(dest, true);} catch(e) {}
		}
	}

	// no need to download
	if (!doDownload) {
		callback();
		return;
	}

	// warn about git existing
	src = path.join(cmd.prefix, ".git");
	if (dirExists(src)) {
		console.log("WARNING: Directory " + src + " may prevent cocos2d-js from being patched with git apply");
	}

	// copy latest patch
	copyGlobbed(path.join(__dirname, "src"), dir, "*.patch");

	// download
	downloadUrl(cocos2djsUrl, dir, function(success) {
		if (!success) {
			return;
		}

		var globPath = path.join(dir, cocos2dDirGlob),
			files = glob.sync(globPath);
		if (!files || files.length !== 1) {
			logErr("Couldn't glob " + globPath);
			return;
		}

		// Rename extract dir
		try {
			console.log("Moving " + files[0] + " to " + dest);
			fs.renameSync(files[0], dest);

			// Save downloaded version
			fs.writeFileSync(downloaded, cocos2djsUrl);

			// Apply latest patch
			// (see comments at the end of this file for how to create the patch)
			src = path.join(dir, "cocos2d.patch");
			console.log("Applying patch file: " + src);
			exec("git apply --whitespace=nowarn " + src, {cwd: dest, env: process.env}, function(err){
				// Delete patch
				//if (!err) {
				//	fs.unlinkSync(src);
				//}

				callback();
			});
		} catch(e) {
			logErr("Couldn't move " + files[0] + " to " + dest)
		}
	});
};

//
// prebuild setup (copies headers, java files, etc.)
//
var setupPrebuild = function(platform, callback) {
	var ver, dir, src, dest, i, files,
		frameworks = path.join(cmd.prefix, "src", "cocos2d-js", "frameworks");

	if (platform && platform !== "headers") {
		callback();
		return;
	}

	console.log("Copying header files...");

	// reset cocos2d dir
	ver = path.join(cmd.prefix, version);
	dest = path.join(ver, "cocos2d");
	files = ["html", path.join("x", "include"), path.join("x", "java"), path.join("x", "script")];
	try {
		for (i = 0; i < files.length; i += 1) {
			src = path.join(dest, files[i]);
			if (cmd.verbose) {
				console.log("rm -r " + src);
			}
			wrench.rmdirSyncRecursive(src, true);
			if (cmd.verbose) {
				console.log("mkdir " + src);
			}
			wrench.mkdirSyncRecursive(src);
		}
	} catch(e) {
		console.log("Error cleaning destination: " + dest);
		if (cmd.verbose) {
			console.log(e);
		}
	}

	// copy cocos2d-html5
	dest = path.join(ver, "cocos2d", "html");
	src = path.join(frameworks, "cocos2d-html5");
	copyRecursive(src, dest, false, true);

	// copy headers
	dir = dest = path.join(ver, "cocos2d", "x", "include");
	src = path.join(frameworks, "js-bindings", "cocos2d-x");
	// # except if dir is cocos2d-x/plugin (or don't copy plugin/jsbindings and reference the one in include/plugin/jsbindings)
	copyGlobbed(src, dest, '*.h');
	copyGlobbed(src, dest, '*.hpp');
	copyGlobbed(src, dest, '*.msg');
	copyGlobbed(src, dest, '*.inl');

	dest = path.join(dir, "bindings");
	src = path.join(frameworks, "js-bindings", "bindings");
	copyGlobbed(src, dest, '*.h');
	copyGlobbed(src, dest, '*.hpp');

	dest = path.join(dir, "external");
	src = path.join(frameworks, "js-bindings", "external");
	copyGlobbed(src, dest, '*.h');
	copyGlobbed(src, dest, '*.msg');

// begin pro
	dest = path.join(dir, "soomla");
	src = path.join(cmd.prefix, "src", "cocos2dx-store");
	copyGlobbed(src, dest, '*.h');

	dest = path.join(dir, "external");
	src = path.join(cmd.prefix, "src", "external");
	copyGlobbed(src, dest, '*.h');

	dest = path.join(dir, "bindings");
	src = path.join(frameworks, "js-bindings", "cocos2d-x", "plugin", "jsbindings");
	copyGlobbed(src, dest, '*.h');
	copyGlobbed(src, dest, '*.hpp');

	dest = path.join(dir, "facebook");
	src = path.join(cmd.prefix, "src", "facebook");
	copyGlobbed(src, dest, 'jsb*.h');

	dest = path.join(dir, "app");
	src = path.join(cmd.prefix, "src", "app");
	copyGlobbed(src, dest, 'jsb*.h');
// end pro

	// remove unneeded
	files = ["docs", "build", "tests", "samples", "templates", "tools",
		path.join("plugin", "samples"), path.join("plugin", "plugins"), path.join("extensions", "proj.win32")];
	for (i = 0; i < files.length; i += 1) {
		wrench.rmdirSyncRecursive(path.join(dir, files[i]), true);
	}

	// jsb
	dest = path.join(ver, "cocos2d", "x", "script");
	src = path.join(frameworks, "js-bindings", "bindings", "script");
	copyGlobbed(src, dest, '*.js');
	src = path.join(frameworks, "js-bindings", "bindings", "auto", "api");
	copyGlobbed(src, dest, '*.js');
// begin pro
	//src = path.join(cmd.prefix, "src", "cocos2dx-store");
	//copyGlobbed(src, dest, '*.js');
	src = path.join(cmd.prefix, "src", "mobfox", "proj.ios", "MRAID.bundle");
	copyGlobbed(src, dest, '*.js');
	src = path.join(frameworks, "js-bindings", "cocos2d-x", "plugin", "jsbindings", "script");
	copyGlobbed(src, dest, '*.js');
// end pro

	// java
	dir = path.join(ver, "cocos2d", "x", "java");
	dest = path.join(dir, "cocos2d-x");
	src = path.join(frameworks, "js-bindings", "cocos2d-x", "cocos", "platform", "android", "java");
	copyRecursive(src, dest);
	// .mk and .a
	dest = path.join(dir, "mk");
	src = path.join(cmd.prefix, "src");
	copyGlobbed(src, dest, "*.mk");
	copyGlobbed(src, dest, "*.a", "android");
	src = path.join(frameworks, "js-bindings");
	copyGlobbed(src, dest, "*.mk");
	copyGlobbed(src, dest, "*.a", "android");
	// # bonus: call android/strip on mk/*.a
	files = ["proj.android", "cocos2d-js"];
	for (i = 0; i < files.length; i += 1) {
		wrench.rmdirSyncRecursive(path.join(dest, files[i]), true);
	}
	files = glob.sync(path.join(dir, "*", "bin"));
	for (i = 0; i < files.length; i += 1) {
		wrench.rmdirSyncRecursive(files[i], true);
	}
	files = glob.sync(path.join(dir, "*", "gen"));
	for (i = 0; i < files.length; i += 1) {
		wrench.rmdirSyncRecursive(files[i], true);
	}
// begin pro
	dest = path.join(dir, "cocos2dx-store");
	src = path.join(cmd.prefix, "src", "cocos2dx-store", "android");
	copyRecursive(src, dest, true, true);
	dest = path.join(dest, "project.properties");
	sed("../../cocos2d-js/frameworks/js-bindings/cocos2d-x/cocos/2d/platform/android", "../cocos2d-x", dest);
	sed("../submodules/android-store/SoomlaAndroidStore", "../android-store", dest);
	sed("target=android-8", "target=android-10", dest);

	dest = path.join(dir, "android-store");
	src = path.join(cmd.prefix, "src", "cocos2dx-store", "submodules", "android-store", "SoomlaAndroidStore");
	copyRecursive(src, dest, true, true);
	//src = path.join(cmd.prefix, "src", "cocos2dx-store", "submodules", "android-store", "submodules", "android-store-google-play");
	//if (dirExists(src)) {
	//	copyRecursive(src, dest, false, true);
	//}

	dest = path.join(dir, "facebook-sdk");
	src = path.join(cmd.prefix, "src", "facebook", "proj.android", "facebook-android-sdk");
	copyRecursive(src, dest, true, true);
	sed("target=android-8", "target=android-10", path.join(dest, "project.properties"));

	dest = path.join(dir, "flurry");
	src = path.join(frameworks, "js-bindings", "cocos2d-x", "plugin", "plugins", "flurry", "proj.android");
	copyRecursive(src, dest, true, true);
	wrench.rmdirSyncRecursive(path.join(dest, "sdk"));
	try{fs.unlinkSync(path.join(dest, "src", "org", "cocos2dx", "plugin", "AdsFlurry.java"));} catch(e){}
	sed("../../../protocols/proj.android", "../plugin-protocols", path.join(dest, "project.properties"));
	sed("target=android-7", "target=android-10", path.join(dest, "project.properties"));

	dest = path.join(dir, "plugin-protocols");
	src = path.join(frameworks, "js-bindings", "cocos2d-x", "plugin", "protocols", "proj.android");
	copyRecursive(src, dest, true, true);
	sed("target=android-7", "target=android-10", path.join(dest, "project.properties"));

	dest = path.join(dest, "libs");
	src = path.join(cmd.prefix, "src", "flurry", "proj.android", "libs");
	wrench.mkdirSyncRecursive(dest);
	copyRecursive(src, dest, false, true);

	dest = path.join(dir, "tools", "android");
	src = path.join(frameworks, "js-bindings", "cocos2d-x", "plugin", "tools", "android");
	wrench.mkdirSyncRecursive(dest);
	copyRecursive(src, dest, false, true);
// end pro

// begin pro
	// frameworks
	dir = path.join(ver, "frameworks");
	dest = path.join(dir, "FacebookSDK.framework");
	src = path.join(cmd.prefix, "src", "facebook", "proj.ios", "FacebookSDK.framework");
	wrench.mkdirSyncRecursive(dest);
	copyRecursive(src, dest, false, true);
// end pro

	// find ${dir} | xargs xattr -c >> ${logFile} 2>&1

	// symlink latest -> version
	dest = path.join(cmd.prefix, "latest");
	try {fs.unlinkSync(dest);} catch(e){}
	try {fs.symlinkSync(version, dest/*, "dir"*/);} catch(e){}

	callback();
};

//
// run the prebuild command
//
var runPrebuild = function(platform, config, arch, callback) {
	config = "";
	arch = "";
	if (platform === "headers") {
		callback();
	} else if (process.platform === "darwin") {
		if (platform === "ios") {
			prebuildMac("iOS", config, arch, function(){
				callback();
			});
		} else if (platform === "mac") {
			prebuildMac("Mac", config, arch, function(){
				callback();
			});
		} else if (platform === "android") {
			prebuildAndroid(config, arch, function(){
				callback();
			});
		} else {
			prebuildMac("Mac", config, arch, function(){
				prebuildMac("iOS", config, arch, function(){
					prebuildAndroid(config, arch, function(){
						callback();
					});
				});
			});
		}
	} else if (process.platform === "win32") {
		if (platform === "android") {
			prebuildAndroid(config, arch, function(){
				callback();
			});
		}
		else if (platform === "windows") {
			prebuildWin(config, arch, function(){
				callback();
			});
		}
		else {
			prebuildWin(config, arch, function(){
				prebuildAndroid(config, arch, function(){
					callback();
				});
			});
		}
	} else {
		console.log("No prebuild command written for " + process.platform + " yet");
	}
};

//
// prebuild mac
//
var prebuildMac = function(platform, config, arch, callback) {
	var i, j, k,
		sdks = (platform === "Mac" ? ["macosx"] : ["iphoneos", "iphonesimulator"]),
		configs = (config ? [config] : (cmd.minimal ? ["Debug"] : ["Debug", "Release"])),
		projs = ["cocos2dx-prebuilt"];
// begin pro
//	projs.push("cocos2dx-plugins");
// end pro

	// create builds array
	builds = [];
	for (i = 0; i < configs.length; i += 1) {
		for (j = 0; j < sdks.length; j += 1) {
			for (k = 0; k < projs.length; k += 1) {
				builds.push([configs[i], sdks[j], projs[k]]);
			}
		}
	}
	nextBuild(platform, callback);
};

//
// prebuild android
//
var prebuildAndroid = function(config, arch, callback) {
	var i, j,
		configs = (config ? [config] : (cmd.minimal ? ["Debug"] : ["Debug", "Release"])),
		archs = (cmd.minimal ? ["armeabi"] : ["armeabi", "armeabi-v7a", "x86"]);

	// create builds array
	builds = [];
	for (i = 0; i < configs.length; i += 1) {
		for (j = 0; j < archs.length; j += 1) {
			builds.push([configs[i], archs[j]]);
		}
	}
	nextBuild("Android", callback);
};

//
// prebuild windows
//
var prebuildWin = function(config, arch, callback) {
	var i, j, command, targets, args, projs,
		jsbindings = path.join(cmd.prefix, "src", "cocos2d-js", "frameworks", "js-bindings"),
		configs = (config ? [config] : (cmd.minimal ? ["Debug"] : ["Debug", "Release"]));

	// set VCTargetsPath
	// (overcome error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found.)
	process.env["VCTargetsPath"] = getVCTargetsPath();

	// get bindings projects
	projs = glob.sync(path.join(jsbindings, "bindings", "proj.win32", "*.vcxproj")) || [];

	getMSBuildPath(function(_msBuildPath) {
		msBuildPath = _msBuildPath;

		// create builds
		builds = [];
		for (i = 0; i < configs.length; i += 1) {
			command = path.join(msBuildPath, "MSBuild.exe");
			targets = ["libcocos2d", "libBox2D", "libSpine"];
			args = [
				path.join(jsbindings, "cocos2d-x", "build", "cocos2d-win32.vc2012.sln"),
				"/nologo",
				"/maxcpucount:4",
				//"/t:" + targets.join(";"),
				//"/p:VisualStudioVersion=12.0",
				//"/p:PlatformTarget=x86",
				//"/verbosity:diag",
				//"/clp:ErrorsOnly",
				//"/p:nowarn=4005",
				//'/p:WarningLevel=0',
				"/p:configuration=" + configs[i]
			];

			// main solution
			builds.push([configs[i], command, args]);

			// bindings
			for (j = 0; j < projs.length; j+=1) {
				args = [
					projs[j],
					"/nologo",
		            "/maxcpucount:4",
		        	"/p:configuration=" + configs[i]
				];
				builds.push([configs[i], command, args, (j == projs.length - 1) ? linkWin : false]);
			}
		}

		// start
		nextBuild("Windows", callback);
	});
};

//
// launch the next build
//
var nextBuild = function(platform, callback){
	if (builds.length) {
		startBuild(platform, callback, builds.shift());
	} else {
		callback();
	}
};

//
// start a given build
//
var startBuild = function(platform, callback, settings) {
	var dir, command, args, config, sdk, proj, arch, targets, archSettings = [], xcodeSettings = [];
	if (platform === "iOS" || platform === "Mac") {
		config = settings[0];
		sdk = settings[1];
		proj = settings[2];
		command = "xcodebuild";
		dir = path.join(cmd.prefix, "src", "proj.ios_mac");
		xcodeSettings = ["GCC_SYMBOLS_PRIVATE_EXTERN=NO"];
		if (!cmd.nostrip) {
			xcodeSettings.push("DEPLOYMENT_POSTPROCESSING=YES");
			xcodeSettings.push("STRIP_INSTALLED_PRODUCT=YES");
			xcodeSettings.push("STRIP_STYLE=non-global");
		}
		if (cmd.minimal) {
			archSettings = (sdk === "iphoneos" ? ["-arch", "armv7"] : ["-arch", "i386"]);
		}
		args = [
			"-project", path.join(dir, proj + ".xcodeproj"),
			"-scheme", platform,
			"-configuration", config,
			"-sdk", sdk
		];
		args = args.concat(archSettings);
		args = args.concat(xcodeSettings);
	} else if (platform === "Android") {
		dir = path.join(cmd.prefix, "src", "proj.android");
		command = path.join(dir, "build.sh");
		config = settings[0];
		arch = settings[1];
		args = [
			arch,
			config
		];
	} else if (platform === "Windows") {
		dir = cmd.prefix;
		command = settings[1];
		args = settings[2];
		settings[1] = "";
		settings[2] = path.basename(args[0]);
	}

	console.log("Building " + platform + " " + settings[0] +
		(settings[1] ? " " + settings[1] : "") +
		(settings[2] ? " " + settings[2] : "") + "...");
	spawn(command, args, {cwd: dir, env: process.env}, function(err){
		var onFinished = function(){
			console.log("Succeeded.");
			nextBuild(platform, callback);
		};
		if (!err){
			if (typeof settings[3] === "function") {
				settings[3](settings[0], onFinished);
			} else {
				onFinished();
			}
		} else {
			if (!cmd.verbose) {
				console.log("Build failed. Please run with --verbose or check the build log: " + cmd.buildLog);
			}
		}
	});
};

//
// link windows
//
var linkWin = function(config, callback) {
	var i, src,
		jsbindings = path.join(cmd.prefix, "src", "cocos2d-js", "frameworks", "js-bindings"),
		runtimeDir = path.join(cmd.prefix, "src", "cocos2d-js", "templates", "js-template-runtime", "runtime", "win32"),
		libDirs = [
			//path.join(jsbindings, "cocos2d-x", "build", config + ".win32"),
			path.join(jsbindings, "cocos2d-x", "cocos", "2d", config + ".win32"), // libcocos2d.dll, glew32.dll, libcurl.dll, etc.
			path.join(jsbindings, "bindings", "proj.win32", config + ".win32"), // libjsbindings.lib, sqlite3.dll, etc.
			path.join(jsbindings, "cocos2d-x", "cocos", "editor-support", "spine", "proj.win32", config + ".win32"), // libSpine.lib
			path.join(jsbindings, "cocos2d-x", "external", "Box2D", "proj.win32", config + ".win32"), // libbox2d.lib
			path.join(jsbindings, "external", "spidermonkey", "prebuilt", "win32"), // mosjs-33.dll / .lib
			path.join(jsbindings, "cocos2d-x", "external", "websockets", "prebuilt", "win32") // websockets.dll / .lib
		],
		options = {
			cwd: cmd.prefix,
			env: process.env
		},
		dest = path.join(cmd.prefix, version, "cocos2d", "x", "lib", config + "-win32", "x86"),
		command = '"' + getVCBinDir() + 'lib.exe" ' +
			'/NOLOGO ' +
			'/IGNORE:4006 ' +
			//'/OPT:REF ' +
			//'/OPT:ICF ' +
			'"/OUT:' + path.join(dest, "libcocos2dx-prebuilt.lib") + '"';

	// copy dlls and finish creating command
	copyGlobbed(runtimeDir, dest, "*.dll"); // first these because we want to overwrite libcocos2d.dll
	wrench.mkdirSyncRecursive(dest);
	for (i = 0; i < libDirs.length; i += 1) {
		copyGlobbed(libDirs[i], dest, "*.dll");
		//copyGlobbed(libDirs[i], dest, "*.pdb");
		command += " " + path.join(libDirs[i], "*.lib");
	}

	// execute
	exec(command, options, function(err){
		if (!err) {
			callback();
		} else {
			console.log(err);
		}
	});
};

//
// get the ms build tools path
//
var getMSBuildPath = function(callback) {
	var Winreg = require("winreg"),
		root = '\\Software\\Microsoft\\MSBuild\\ToolsVersions',
		regKey = new Winreg({key: root});
	regKey.keys(function (err, items) {
		var i, key, highest = 0, buildPath = '', count = 0;
		if (err) {
			console.log(err);
			return;
		}

		// find path to MSBuildToolsPath
		for (i = 0; i < items.length; i += 1) {
			key = path.basename(items[i].key);
			regKey = new Winreg({key: root + '\\' + key});
			(function(key){
				regKey.get("MSBuildToolsPath", function(err, item) {
					count += 1;
					if (err) {
						console.log(err);
					} else if (typeof item === "object" && typeof item.value === "string" && item.value.length) {
						if (cmd.verbose) {
							console.log("Potential MSBuildToolsPath: " + item.value);
						}
						console.log("Checking version = " + parseFloat(key) + " against highest " + highest);
						if (parseFloat(key) > highest) {
							buildPath = item.value;
							highest = parseFloat(key);
						}
					}
					if (count === items.length) {
						if (buildPath.length) {
							console.log("Final MSBuildToolsPath: " + buildPath);
							callback(buildPath);
						} else {
							console.log("Unable to find MSBuild path");
						}
					}
				});
			})(key);
		}
	});
};

//
// get the VCTargetsPath
// (todo: mine this from the registry \\Software\\Microsoft\\MSBuild\\ToolsVersions\\X\\VCTargetsPath)
//
var getVCTargetsPath = function() {
	var i,
		ret,
		bases = [
			"\\MSBuild\\Microsoft.Cpp\\v4.0\\V120\\",
			"\\MSBuild\\Microsoft.Cpp\\v4.0\\V110\\",
			"\\MSBuild\\Microsoft.Cpp\\v4.0\\"
		],
		names = [
			"\\Program Files (x86)",
			"C:\\Program Files (x86)",
			"\\Program Files",
			"C:\\Program Files"
		];
	for (j = 0; j < bases.length; j += 1) {
		for (i = 0; i < names.length; i += 1) {
			ret = names[i] + bases[j];
			if (dirExists(ret)) {
				if (cmd.verbose) {
					console.log("VCTargetsPath: " + ret);
				}
				return ret;
			}
		}
	}
};

//
// get the vc bin dir
// todo: mine this from the registry
// mimic python's find_vcvarsall
// http://stackoverflow.com/questions/6551724/how-do-i-point-easy-install-to-vcvarsall-bat
// or:
// http://cmake.3232098.n2.nabble.com/How-to-find-vcvarsall-bat-e-g-at-quot-C-Program-Files-x86-Microsoft-Visual-Studio-12-0-VC-quot-CMAKE-td7587359.html
//
var getVCBinDir = function() {
	var i,
		base = "\\Microsoft Visual Studio 12.0\\VC\\bin\\",
		names = [
			"\\Program Files (x86)" + base,
			"C:\\Program Files (x86)" + base,
			"\\Program Files" + base,
			"C:\\Program Files" + base
		];
	for (i = 0; i < names.length; i += 1) {
		if (dirExists(names[i])) {
			if (cmd.verbose) {
				console.log("VCBinDir: " + names[i]);
			}
			return names[i];
		}
	}
	return "";
};

//
// check that prefix directory is writeable
//
var checkPrefix = function() {
	// Test prefix dir
	if (!isWriteableDir(cmd.prefix)) {
		if (cmd.prefix !== defaults.prefix) {
			logErr("Cannot write files to prefix directory: " + cmd.prefix);
			return false;
		}

		// Try users's home dir if they didn't override the prefix setting
		var newPrefix = path.join(path.homedir(), "Library", "Developer", "RapidGame");
		wrench.mkdirSyncRecursive(newPrefix);
		if (!isWriteableDir(newPrefix)) {
			logErr("Cannot write files to alternate prefix directory: " + newPrefix);
			return false;
		}
		cmd.prefix = newPrefix;
	}
	if (cmd.verbose) {
		console.log("Can successfully write files to prefix directory: " + cmd.prefix);
	}
	return true;
};

//
// Copy files recursively with a special exclude filter.
//
var copyRecursive = function(src, dest, filter, overwrite) {
	if (cmd.verbose) {
		console.log("Recursively copying " + path.relative(cmd.prefix, src) +
			" to " + path.relative(cmd.prefix, dest));
	}

	// copy using wrench
	overwrite = overwrite || false;
	var options = {
			forceDelete: overwrite, // false Whether to overwrite existing directory or not
			excludeHiddenUnix: false, // Whether to copy hidden Unix files or not (preceding .)
			preserveFiles: !overwrite, // true If we're overwriting something and the file already exists, keep the existing
			preserveTimestamps: true, // Preserve the mtime and atime when copying files
			inflateSymlinks: false // Whether to follow symlinks or not when copying files
		};
	if (filter === true) {
		options.exclude = excludeFilter;
	}
	copyCount = 0;
	wrench.copyDirSyncRecursive(src, dest, options);
	return copyCount;
};

//
// copy files using glob
//
var copyGlobbed = function(src, dest, pattern, grep) {
	var i, file, files;
	pattern = path.join("**", pattern);
	if (cmd.verbose) {
		console.log("Recursively copying " + path.relative(cmd.prefix, path.join(src, pattern)) +
			" to " + path.relative(cmd.prefix, dest));
	}

	files = glob.sync(path.join(src, pattern));
	for (i = 0; i < files.length; i += 1) {
		if (grep && files[i].indexOf(grep) < 0) {
			continue;
		}
		file = path.join(dest, path.relative(src, files[i]));
		//console.log(/*path.relative(cmd.prefix, files[i]) + " -> " + */path.relative(cmd.prefix, file));
		wrench.mkdirSyncRecursive(path.dirname(file));
		try{
			fs.writeFileSync(file, fs.readFileSync(files[i]));
		} catch(e) {
			console.log(e);
		}
	}
	return files.length;
};

//
// filters files for exclusion
//
var excludeFilter = function(filename, dir){
	// Shall this file/dir be excluded?
	var i, ignore, doExclude = false;
	if (dir.indexOf("proj.android") >= 0) {
		if (filename === "obj" || filename === "gen" || filename === "assets" || filename === "bin") {
			doExclude = true;
		} else if (dir.indexOf("libs") >= 0) {
			if (filename === "armeabi" || filename === "armeabi-v7a" || filename === "x86" || filename === "mips") {
				doExclude = true;
			}
		}
	} else if (dir.indexOf(".xcodeproj") >= 0) {
		if (filename === "project.xcworkspace" || filename === "xcuserdata") {
			doExclude = true;
		}
	} else if (filename === "lib") {
		try {
			i = fs.lstatSync(path.join(dir, filename));
			if (i.isSymbolicLink()) {
				doExclude = true;
			}
		} catch(e) {
			console.log(e);
		}
	} else if (dir.indexOf(path.join("build", "build")) >= 0) {
		doExclude = true;
	} else if (cmd.engine === "titanium" && filename === "build") {
		doExclude = true;
	} else if (cmd.engine === "unity" && (filename === "Library" || filename === "Temp" || filename.indexOf(".sln") >= 0 || filename.indexOf(".unityproj") >= 0 || filename.indexOf(".userprefs") >= 0)) {
		doExclude = true;
	} else if (filename.substr(0,2) === "._") {
		doExclude = true;
	} else {
		ignore = [
			".DS_Store",
			//"node_modules",
			//"wsocket.c", "wsocket.h",
			//"usocket.c", "usocket.h",
			//"unix.c", "unix.h",
			//"serial.c",
		];
		for (i = 0; i < ignore.length; i += 1) {
			if (filename === ignore[i]) {
				doExclude = true;
				break;
			}
		}
	}

	// Report and return
	if (doExclude && cmd.verbose) {
		console.log("Ignoring filename '" + filename + "' in " + dir);
	}
	if (!doExclude) {
		copyCount += 1;
	}
	return doExclude;
};

//
// download and extract a url to the given destination
//
var downloadUrl = function(url, dest, cb) {
	var done = false,
		total = 1,
		cur = 0,
		emitter = download(url, dest, {extract: true});

	// Get total length
	emitter.on("response", function(response) {
		total = parseInt(response.headers["content-length"], 10)
	});

	// Update percentage
	if (process.platform == "win32") {
		console.log("Downloading " + url + "...");
	} else {
		emitter.on("data", function(chunk) {
			if (!done) {
				cur += chunk.length;
				done = (cur >= total);
				util.print("Downloading " + url + " "
					+ (100.0 * cur / total).toFixed(2) + "%..."
					+ (done ? "\n" : "\r"));
			}
		});
	}

	// Error
	emitter.on("error", function(status) {
		logErr("Download error " + status);
		cb(false);
	});

	// Done
	emitter.on("close", function() {
		console.log("Download + extract finished");
		cb(true);
	});
};

//
// auto bug reporting and insights
//
var report = (function() {
	var ua = require("universal-analytics"),
		visitor;

	// Get visitor
	var getVisitor = function() {
		var uuid,
			filename = path.join(cmd.prefix, ".id");

		// Read UUID
		try {
			uuid = fs.readFileSync(filename).toString();
		} catch(e) {
		}
		if (uuid && uuid.indexOf("false") >= 0) {
			console.log("Opted out of automatic bug reporting");
			return null;
		}

		// Generate UUID
		if (!uuid || uuid.length < 32 || uuid.indexOf("-") < 0) {
			console.log("");
			console.log("  This tool automatically reports bugs & anonymous usage statistics.");
			console.log("  You may opt-out of this feature by setting contents of the file '" + filename + "' to 'false'.");
			console.log("");
			uuid = require("node-uuid").v4();
			try {
				fs.writeFileSync(filename, uuid);
			} catch(e) {
			}
		}
		//console.log("UUID: " + uuid);
		return ua("UA-597335-12", uuid);
	};

	return function(action, label, value, path) {
		if (typeof visitor === "undefined") {
			visitor = getVisitor();
		}
		if (visitor === null) {
			return;
		}

		category = category || "unknownCategory";
		action = action || "unknownAction";
		label = label || "";
		value = value || 0;
		path = path || (category + "/" + action);
		label.trim();

		//console.log("Report " + path + (label ? ": " + label : ""));
		visitor.event(category, action, label, value, {p: path}, function (err) {
		});
	}
}());

//
// check for upgrade
//
var checkUpdate = function() {
	var req = http.get("http://registry.npmjs.org/rapidgame");
	req.on("response", function(response) {
		var oldVersion = packageJson.version.toString(),
			newVersion = "";
		response.on("data", function(chunk) {
			newVersion += chunk;
		});
		response.on("end", function() {
			try {
				newVersion = JSON.parse(newVersion);
				if (typeof newVersion === "object"
				&& typeof newVersion["dist-tags"] === "object") {
					newVersion = newVersion["dist-tags"]["latest"].toString().trim();
					var n1 = oldVersion.substring(oldVersion.lastIndexOf(".")+1),
						n2 = newVersion.substring(newVersion.lastIndexOf(".")+1);
					if (newVersion !== oldVersion && n1 < n2) {
						console.log("\nAn update is available.");
						console.log("\t" + oldVersion + " -> " + newVersion);
						console.log("Upgrade instructions:");
						if (cmdName.indexOf("pro") >= 0) {
							console.log("\tcd " + __dirname + " && npm update");
						} else {
							console.log("\tsudo npm update " + cmdName + " -g");
						}
						console.log(" ");
					}
				}
			} catch(e) {
			}
		});
	});
	req.on("error", function(){});
}

//
// show usage instructions
//
var usage = function() {
	cmd.help();
	usageExamples();
};
var usageExamples = function() {
	console.log("  Examples:");
	console.log("");
	console.log("    $ " + cmdName + " create unity \"Zombie Matrix\" com.mycompany.zombiematrix");
	console.log("    $ " + cmdName + " create cocos2dx \"Heck Yeah\" com.mycompany.heckyeah");
	console.log("    $ " + cmdName + " prebuild");
	console.log("");
};

//
// append to the build log
//
var logBuild = function(str) {
	if (cmd.buildLog) {
		try {
			fs.appendFileSync(cmd.buildLog, str);
		} catch(e) {
		}
	}
};

//
// execute a command
//
var exec = function(command, options, callback) {
	if (cmd.verbose) {
		console.log(command);
		console.log("Current dir: " + options.cwd);
	}
	try {
		child_process.exec(command, options, function(err, stdout, stderr){
			execCallback(err, stdout, stderr);
			callback(err, stdout, stderr);
		});
	} catch(e) {
		console.log(e);
	}
};

//
// child_process.exec callback
//
var execCallback = function(error, stdout, stderr) {
	if (error !== null) {
		logErr("exec error: " + error);
	}
	if (cmd.verbose || error) {
		console.log(stdout);
		console.log(stderr);
	}
	logBuild(stdout);
	logBuild(stderr);
};

//
// execute a streaming command
//
var spawn = function(command, args, options, callback) {
	if (cmd.verbose) {
		console.log(command + ' ' + args.join(' '));
		console.log("Current dir: " + options.cwd);
	}
	try {
		// spawn the process
		var child, exitCode = 0;
		if (args && args.length) {
			child = child_process.spawn(command, args, options);
		} else {
			child = child_process.spawn(command, options);
		}

		// watch its output
		child.stdout.on("data", function(chunk) {
			if (cmd.verbose) {
				util.print(chunk.toString());
			}
			logBuild(chunk.toString());
		});
		child.stderr.on("data", function(chunk) {
			if (cmd.verbose) {
				util.print(chunk.toString());
			}
			logBuild(chunk.toString());
		});
		child.on("error", function(e) {
			logErr("Spawn error " + e);
			callback(e);
		});

		// close
		child.on("exit", function(code, signal) {
			exitCode = code;
			//if (code != 0 & cmd.verbose) {
			//	console.log("Code: " + code);
			//	console.log("Signal: " + signal);
			//}
		});
		child.on("close", function(code) {
			if (exitCode) {
				callback(exitCode);
			} else {
				callback();
			}
		});
	} catch(e) {
		logErr("Spawn error " + e);
		callback(e);
	}
};

//
// replace occurrences a string with another in a specific file
//
var sed = function(search, replace, dest) {
	if (cmd.verbose) {
		console.log("Replacing all '" + search + "' with '" + replace + "' in: " + dest);
	}
	try{
		var text = fs.readFileSync(dest).toString(),
			pos = 0;
		do {
			pos = text.indexOf(search);
			if (pos >= 0) {
				text = text.substr(0,pos) +
					replace +
					text.substr(pos + search.length);
			}
		} while(pos >= 0);
		fs.writeFileSync(dest, text);
	} catch(e) {
		console.log(e);
	}
}

//
// log an error
//
var logErr = function(str) {
	console.log(str);
	report("error", str);
};

//
// Test if a directory exists
//
var dirExists = function(path) {
	var stat;
	try {
		stat = fs.statSync(path);
	} catch(e) {
	}
	return (stat && stat.isDirectory());
};

//
// Test if a file exists
//
var fileExists = function(path) {
	var stat;
	try {
		stat = fs.statSync(path);
	} catch(e) {
	}
	return (stat && stat.isFile());
};

//
// tests if a directory is writeable
//
var isWriteableDir = function(dir) {
	try {
		dir = path.join(dir, ".testfile");
		fs.writeFileSync(dir, "test");
		fs.unlinkSync(dir);
		return true;
	} catch(e) {
	}
	return false;
};

module.exports = {
	run: run,
	version: version
};

/*

To make a Cocos2d patch:

	cd /tmp
	cp -r ~/path/to/cocos2d-js-latest .
	cd cocos2d-js-latest
	find . -name .gitignore -delete
	git init .
	git add *
	git commit -a
	cp -r ~/path/to/cocos2d-js-patched/* .
	git diff > patch
	git diff --staged --binary >> patch

	# (it may be possible without git add; try git help diff)

To apply:

	cd cocos2d-js-somewhere
	git apply --whitespace=nowarn patch

*/

redpajama_set_name: RedPajamaGithub


text:
<?php

namespace FrancisDesjardins\WebService\Rest\Test\Maps\Security;

use FrancisDesjardins\WebService\Rest\AbstractRest;

class NotAllowed extends AbstractRest
{

}


By land and by sea, America's Arctic is under attack.
Image Landsat / Copernicus. Data SIO, NOAA, U.S. Navy, NGA, GEBCO. Image IBCAO. Google Earth.
Earthjustice is fighting on multiple fronts to protect America's Arctic, one of our last truly wild landscapes.
The tundra, icy seas, and craggy mountains on the north coast of Alaska are unlike anywhere else on Earth. These are places with no roads, no infrastructure, and no noise from machinery or civilization. They are federal lands and waters, held in trust by all Americans.
The Arctic lands and waters targeted for oil and gas drilling remain wild today because people took a stand to protect them. Yet under the Trump administration, special interests have gotten a free pass to push their dirty energy agenda.
The Trump administration has targeted substantial protections, gained through decades of advocacy, to pave the way for industrial exploitation in the region's most sensitive lands and waters.
Earthjustice and our allies are challenging expanded oil and gas drilling across America's Arctic. And we're making progress.
On Mar. 29, 2019, America won a huge victory: the vast majority of the Arctic Ocean saw protections from drilling restored following a court decision in a lawsuit brought by Earthjustice on behalf of our clients.
In the Western Arctic, the Trump administration has sought to roll back hard-won safeguards for sensitive territories, and auctioned off millions of acres to industry.
In the Arctic National Wildlife Refuge the Republican-controlled Congress overturned decades of protection in 2017 by opening the biologically rich coastal plain to oil and gas drilling, setting the stage for legal and legislative battles.
A bowhead whale (Balaena mysticetus) and calf surface in the Arctic Ocean.
Caribou in the Western Arctic near Teshekpuk Lake.
In the Arctic National Wildlife Refuge the Republican-controlled Congress in 2017 overturned decades of protection by opening the biologically rich coastal plain to oil and gas drilling, setting the stage for legal and legislative battles.
Each summer, the Arctic Refuge shelters migratory birds from all 50 states and six continents.
We are challenging the Bureau of Land Management's approval of new lease sales and exploratory drilling in National Petroleum Reserve-Alaska in the Western Arctic.
We are working with a broad coalition of allies to defend the Arctic National Wildlife Refuge from the irreversible harm that would come from oil and gas drilling.
We took President Trump to court for unlawfully seeking to undo the permanent Arctic Ocean drilling ban created under the Obama administration. And we won.1 A federal judge struck down Trump's order, restoring permanent protections from drilling to 98% of the Arctic Ocean. The judge ruled Trump exceeded his constitutional authority and violated federal law — demonstrating that our country remains a nation of laws, in which the judiciary stands ready to ensure that no one can act above the law.
And by the U.S. government's own telling, the chances of a major oil spill are dangerously high3 and the ability to clean it up extremely low4 if offshore development goes ahead.
There's no place on Earth like the Arctic. Iconic species like polar bears and walruses can't find another home farther south—and there's no farther north to go.
Far more than full-time northern residents rely on the Arctic for survival. Migratory birds from all 50 states and six continents nest in the Arctic National Wildlife Refuge and parts of the Western Arctic.
If we destroy the lands where they raise their young, the whole world will feel the loss. Learn why these regions under threat are so precious and what tools we have to fight back.
The Latest: Native Village, conservation groups challenge winter oil and gas drilling in the Western Arctic.
The Western Arctic Reserve is the largest tract of undisturbed public land in the United States, home to migratory birds, brown bears, caribou, threatened polar bears, walruses, endangered beluga whales, and more. The Alaska Native communities that live in the region have sustained themselves for thousands of years with wild foods harvested from the Western Arctic Reserve's lands and waters.
Top left: Snow goose (Chen caerulescens). Clockwise from top right: In the Western Arctic, eastern yellow wagtail (Motacilla tschutschensis), Arctic loon (Gavia arctica), Arctic tern (Sterna paradisaea).
Earthjustice has gone to court several times in the last decades6 to defend the Western Arctic, an Indiana-size tract of federally owned land.
Administratively known as the "National Petroleum Reserve-Alaska," much of the Western Arctic is wild and undisturbed, in contrast with the industrialized oil fields of Prudhoe Bay to the east.
Yet Trump's Department of Interior has opened the door to significant expansion of industrial activity in and around the Teshekpuk Lake Special Area, and is steadily moving forward with a rewrite9 of the Obama-era management plan.
In addition to providing some of the most important migratory bird habitat in the world, the wild area is home to the Teshekpuk Caribou Herd. For generations Iñupiat people have tracked and hunted these caribou, and Indigenous subsistence hunting is vital to the culture and economy of the nearby Native Village of Nuiqsut.
Earthjustice is representing the Native Village of Nuiqsut tribal government and five conservation groups in a challenge to BLM's approval of ConocoPhillips' winter exploratory drilling program.
Lease sales have exposed more of the Western Arctic to drilling than ever before. More than 10 million acres of the Western Arctic were offered for oil and gas leasing in December 2017,10 an area nearly equivalent to the size of Massachusetts and New Hampshire, combined. The 2018 lease sale included another 2.85 million acres.
One oil company, ConocoPhillips, holds most of the leases in the Western Arctic, and it has plans to explore and develop ever further westward and closer to the irreplaceable Teshekpuk Lake area.
With the many looming threats to the Arctic, it's here in the Western Arctic that the oil industry is already making investments and proposing to drill in sensitive areas now.
But there's reason for hope: We've persuaded courts to keep this land wild before, and now we are back in court fighting to preserve the Western Arctic.
Black Brant geese (Branta bernicla nigricans) congregate to molt their flight feathers in the Teshekpuk Lake Special Area.
On behalf of Natural Resources Defense Council, Greenpeace, Center for Biological Diversity and Friends of the Earth, Earthjustice filed suit on Feb. 2, 2018,11 in the U.S. District Court in Anchorage challenging federal lease sales12 that pave the way for expanded oil and gas drilling in the National Petroleum Reserve-Alaska.
Among other flaws, the Bureau of Land Management completely ignored the effects of greenhouse gas emissions that will accumulate if Reserve fossil fuels are extracted and burned, even though the National Environmental Policy Act13 requires the agency to analyze these foreseeable climate impacts and their serious implications for future generations.
We are now appealing the district court's procedural dismissal of our challenge. The decision was made on procedural grounds in December 2018, without reaching reaching the merits of our arguments.
You can help defend the Western Arctic.
The Latest: Public overwhelmingly opposes drilling in the Arctic Refuge.
Generations of American leaders have protected the Arctic National Wildlife Refuge from development. The unspoiled 19 million acres of tundra, rivers and mountains shelter migratory birds from all 50 states and six continents each summer. Grizzlies, wolverines, musk ox, and tens of thousands of caribou also call the Refuge home. To the Gwich'in people of northeast Alaska, this is sacred ground.
With a 360° film experience, we bring you to the Arctic Refuge. As the video plays, use your mouse to click-and-drag on the video to pan around 360°. Best viewed in full screen. Please turn on sound to hear the narration. For the most immersive viewing experience, use a VR headset.
For a 360° mobile film experience, open the video in the Youtube app by tapping on the text title of the video above. Then, set the video to full screen. As you move your phone, the video will move 360°. Please turn on sound to hear the narration. For the most immersive viewing experience, use a VR headset.
In December 2017, Trump signed the Tax Cuts and Jobs Act, a bill that used backdoor budgetary tactics to open the Refuge's coastal plain to oil and gas drilling.14 The measure requires the Interior Department to hold an oil and gas lease sale in the coastal plain within four years, and the administration is already moving forward.
In February of 2019, lawmakers introduced the bipartisan Arctic Cultural and Coastal Plain Protection Act in the 116th Congress. This bill would restore critical protections prohibiting oil and gas development on the coastal plain of the Arctic National Wildlife Refuge, effectively undoing the measure from the 2017 tax bill.
At a Senate Energy and Natural Resources Committee hearing in November of 2017, Gwich'in tribal member Sam Alexander described15 how drilling in the Refuge would destroy his people's way of life.
American tree sparrows (Spizelloides arborea) in the Arctic Refuge.
And it won't just be the wilderness and wildlife of the Refuge that will suffer if drilling proceeds there.
The emissions from oil and gas development would exacerbate global warming and raise global sea levels, increasing the climate threat to low-lying coastal cities around the world.
Political leaders have repeatedly determined that drilling in the Refuge is a terrible idea.
President Dwight Eisenhower set aside the territory as a federally protected area in 1960, for the purpose of preserving unique wildlife, wilderness and recreational values.20 President Bill Clinton vetoed a 1995 budget bill21 that would have opened the Arctic Refuge for oil and gas leasing.
Earthjustice is working with a broad coalition of partners to oppose this latest reckless attempt to hand over the publicly owned wilderness of the Arctic Refuge to the oil and gas industry.
Trump has signed a law opening the Refuge to oil leasing, but before anything can happen on the ground, the Trump administration will have to comply with many federal laws designed to protect the values of the Refuge. We will take action to enforce those laws.
The fight to keep oil drilling out of the Refuge is just beginning, and we will be there every step of the way.
The Latest: On Mar. 29, the U.S. District Court in Alaska struck down President Trump's order to undo drilling protections for the Arctic, restoring protections to 98% of the Arctic Ocean from drilling. The lawsuit, brought in 2017 by Earthjustice on behalf of our clients, challenged the administration's executive order that attempted to undo permanent protections for the Arctic and Atlantic.
There is currently no offshore oil and gas development in the American Arctic Ocean, thanks in part to vigilant advocacy. The region's two seas, the Beaufort and the Chukchi, are home to seals, walruses and bowhead whales. Polar bears live on the seas' drifting ice. Trump sought to erase the protections already in place for these vibrant but sensitive waters.
In several critical cases, we won injunctions that stopped drilling and forced reconsideration of the federal government's plan to turn the Arctic Ocean into an oil field.
We've had a preview of how disastrous Arctic Ocean drilling could be.
The drillship Kulluk is towed out of Alaska on March 26, 2013, after the towing line to the icebreaking anchor-handling tug Aiviq parted in heavy weather, and the unit ran aground on Sitkalidak Island.
Building on our successful legal efforts, we undertook a campaign with our partners at the close of the Obama administration to put in place permanent protections for the Arctic Ocean.
On Mar. 29, 2019, the court ruled against the Trump administration, restoring permanent protections from drilling to 98% of the Arctic Ocean, in addition to uniquely important deepwater canyons in the Atlantic Ocean.
The opinion demonstrates that this country remains a nation of laws, in which the judiciary stands ready to ensure that no one can act above the law.
In light of the reinstatement of these protections, this year's court ruling will force the Trump administration to reconsider its aggressive national five-year leasing program for the outer continental shelf.
Meanwhile, the Trump administration is also trying to weaken offshore drilling safety rules36 enacted in response to the Deepwater Horizon oil disaster.
Coast Guard Admiral Paul Zukunft, who led the federal response after the Deepwater Horizon spill, told a Washington symposium in July of 2017 that there is no hope of cleaning up a similar spill in the Arctic.
"And in fact, in the best of days, during Deepwater Horizon, we maybe recovered 15% of that oil … We had a fleet of over 6,000 ships out there doing recovery operations—and we had the infrastructure to support all of that.
A bowhead whale (Balaena mysticetus) surfaces in the Arctic Ocean.
The public has already spoken out against what the Trump administration is proposing, and opposition is steadily growing as the new offshore leasing proposal moves forward.38 During the development of the Obama-era plan President Trump is now trying to replace, 1.4 million people submitted comments that called for no new offshore drilling.
The Arctic has warmed more than twice as rapidly as the rest of the United States over the past 60 years, leading to impacts such as thawing permafrost and vanishing sea ice—and the trend is only expected to continue.
To reverse course and avoid the worst impacts of climate change, the world must aggressively reduce greenhouse gas emissions, but the Trump administration is moving us in the opposite direction. Rather than permanently alter unique wilderness landscapes and jeopardize biologically rich Arctic Ocean waters with the risk of a catastrophic oil spill, the wisest course for America's Arctic and the rest of the globe is to keep it in the ground.
Learn more about indigenous-led movements and environmentalists' ongoing efforts to protect the Arctic through The Last Oil, a symposium hosted by the University of New Mexico in February 2018.
LCV v. Trump, U.S. District Court for the District of Alaska, Case No. 3:17-cv-00101-SLG, 2019.
2019–2024 National Outer Continental Shelf Oil and Gas Leasing: Draft Proposed Program. Bureau of Ocean Energy Management, January 2018.
McGlade C, Ekins P. "The geographical distribution of fossil fuels unused when limiting global warming to 2°C." Nature, 2015 Jan 8;517(7533):187-90. doi: 10.1038/nature14016.
Langlois, Krista. "Drilling the Arctic comes with a 75 percent chance of a large oil spill." High Country News, Dec. 10, 2014.
U.S. Coast Guard Commandant Adm. Paul Zukunft, speaking at the 7th Symposium on the Impacts of an Ice-Diminishing Arctic on Naval and Maritime Operations on Jul. 18, 2017.
Mr. Samuel Alexander, Tribal Member, Gwichyaa Zhee Gwich'in Tribal Government, speaking before the Full Committee Hearing to Receive Testimony on the Potential for Oil and Gas Exploration in the 1002 Area at the 366 Dirksen Senate Office Building on Nov. 2, 2017. Audio excerpt begins at 1:08:38.
Read legal documents and news releases on the lawsuits.
"Federal Court Decision Protects Alaskan Lake, Wetlands From Oil Drilling." Earthjustice, Sept. 25, 2006.
"Secretary Salazar Finalizes Plan for Additional Development, Wildlife Protections in 23 Million Acre National Petroleum Reserve-Alaska." U.S. Department of the Interior, Feb. 21, 2013.
"Interior Order on Oil and Gas Drilling Puts Arctic Public Lands at Risk." Earthjustice, Jun. 1, 2017.
"Call for Nominations and Comments for the National Petroleum Reserve in Alaska Oil and Gas Lease Sale." Federal Register, 82 FR 36827, Aug. 7, 2017.
"Conservation groups challenge illegal Western Arctic lease sales in court." Earthjustice, Feb. 2, 2018.
Sabrina Shankman, "Trump's Arctic Oil, Gas Lease Sale Violated Environmental Rules, Lawsuits Claim." Inside Climate News, February 2018.
"What You Should Know About the National Environmental Policy Act." Earthjustice.
Summary of the National Environmental Policy Act, 42 U.S.C. §4321 et seq. (1969). U.S. Enviromental Protection Agency.
Trip Van Noppen, "Selling this Cherished Arctic Landscape to the Highest Bidder is a Grievous Mistake." The Guardian, Dec. 5 2017.
Mr. Samuel Alexander, Tribal Member, Gwichyaa Zhee Gwich'in Tribal Government, speaking before the Full Committee Hearing to Receive Testimony on the Potential for Oil and Gas Exploration in the 1002 Area at the 366 Dirksen Senate Office Building on Nov. 2, 2017.
Princeton University. "A more potent greenhouse gas than carbon dioxide, methane emissions will leap as Earth warms." ScienceDaily. ScienceDaily, 27 March 2014.
"Arctic Oil Drilling Plans Raise Environmental Health Concerns." Environmental Health Perspectives, National Institute of Environmental Health Sciences, Mar. 1, 2011.
"Health Risks in US States from Oil and Gas Air Pollution." Clean Air Task Force, Feb. 2017.
"As Long Promised, President Vetoes The G.O.P. Budget." The New York Times, Dec. 7, 1995.
"GOP Scraps ANWR Drilling, But Budget Battle Persists." NPR, Nov. 10, 2005.
"Government Gives Go Ahead to Shell to Top Drill in Arctic." Earthjustice, Aug. 30, 2012.
Birdseye, Kari. "Shell's 'Happy' Mood Smashed By Ice." Earthjustice, Sept. 14, 2012.
Funk, McKenzie. "The Wreck of the Kulluk." The New York Times, Dec. 30, 2014.
"Shell Ends Risky Oil Drilling in the Arctic's Chukchi Sea." Earthjustice, Sept. 28, 2015.
"Earthjustice Statement on Shell, ConocoPhillips Abandoning Leases for Oil Drilling in Arctic Ocean." Earthjustice, May 10, 2016.
43 USC Chapter 29, Subchapter III: Outer Continental Shelf Lands. Bureau of Ocean Energy Management.
Presidential Memorandum -- Withdrawal of Certain Portions of the United States Arctic Outer Continental Shelf from Mineral Leasing. Dec. 20, 2016.
Kevin Lamarque, "Obama Bans New Oil and Gas Drilling Off Alaska." Reuters, Dec. 20 2016.
"FACT SHEET: President Obama Protects 125 Million Acres of the Arctic Ocean." U.S. Department of the Interior, 2016.
Final Supplemental Environmental Impact Statement for Oil and Gas Lease Sale 193. Bureau of Ocean Energy Management, Feb. 12, 2015.
"Analysis Confirms Major Risks from Oil Drilling in the Remote and Fragile Arctic Ocean." Earthjustice, Feb. 12, 2015.
Executive Order 13795: Implementing An America-First Offshore Energy Strategy. Office of the Federal Register, National Archives and Records Administration, Apr. 28, 2017.
Brady Dennis, "Environmental Groups Sue Trump Administration over Offshore Drilling." Washington Post, May 3 2017.
"Lawsuit Challenges Trump Reversal of Arctic and Atlantic Drilling Ban." Earthjustice, May 3, 2017.
"Court Allows Conservation and Alaska Native Groups to Challenge Trump's Reversal of Arctic and Atlantic Drilling Ban." Earthjustice, March 20, 2018.
See legal documents related to the lawsuit.
"Trump Administration's New Leasing Plan Would Expand Offshore Drilling Everywhere." Earthjustice, Jan. 4, 2018.
"Secretary Zinke Announces Plan For Unleashing America's Offshore Oil and Gas Potential." U.S. Department of the Interior, Jan. 4, 2018.
Ledyard King, "Trump Administration Proposes Massive Increase in Offshore Drilling." USA Today, Jan. 4 2018.
Eric Lipton, "Trump Rollbacks Target Offshore Rules 'Written With Human Blood.'" The New York Times, Mar. 10, 2018.
7th Symposium on the Impacts of an Ice-Diminishing Arctic on Naval and Maritime Operations, Jul. 18, 2017.
Video of Anchorage rally organized by Defend the Sacred Alaska, Feb. 21, 2018.


text:
export interface Item {
	/**
	 * Unique identification of the item
	 */
	id: string;

	/**
	 * Display name of the item
	 */
	name: string;

	image?: string;

	/**
	 * False if the item can't be removed
	 */
	fixed?: boolean;
}


Our tree stakes come pre-treated packed on pallets for easy distribution to you.
We offer a range of sizes which should cover all your staking requirements ensuring maximum support and the best start for any saplings. All stakes are fully treated to ensure lasting strength and longevity in the outdoors.
The tree stakes are also suitable to be used where a full size fence post would be out of place or just too big to be easily handled. Such as to provide a simple framework for a wind shield or just need to provide light general support for directional signing or warnings.
We can take orders of any particulars sizes to make up a full order. For rates and delivery schedules contact us on 0845 123 5292.


text:
Leaving The Scene of an Accident in New York
New York Traffic Ticket Lawyers | Feifer & Greenberg » Traffic Ticket Blog » NY Traffic Tickets » Leaving The Scene of an Accident in New York
Any time there is a motor vehicle accident in New York state where there is injury to property, domestic animals, or a person, the driver is required to stop and show their license and registration to the owner of the damaged property. In most cases where serious property damage or injury occurs, the driver is required to file a police report with the nearest police station or through a 911 dispatcher.
Failing to abide by these New York state laws could result in a traffic violation. These violations carry with them possible points on your license as well as fines. The more serious violations will likely qualify as a misdemeanor crime, with jail time and heftier fees attached. If someone was seriously injured or killed, then a driver who flees the scene could even face felony charges.
The penalty for leaving the scene of an accident in NY should, therefore, motivate anyone to perform their due diligence and notify any affected parties as well as local police, as necessary.
If you are facing charges for fleeing an accident scene and believe that your case somehow has extenuating circumstances, you can work with an NY traffic ticket attorney to possibly reduce your charges or have them dropped entirely. The stiff penalties you may face may be motivation enough to exercise your right to legal representation and defense against your hit-and-run charges.
The Penalty for Leaving the Scene of an Accident Involving Property Damage
New York State's vehicle and traffic law (VTL) Article 22 lays out several sections that dictate what a driver should do in the event that they are involved in an accident that causes damage to property or injury to a person or domestic animal.
Section 600 explains that a driver that causes damage to property must stop their vehicle immediately and attempt to provide contact and insurance information to the affected property owner or owners. This information includes:
Insurance carrier name
Residential street address
If the driver who caused the accident cannot locate the property owner — such as if they hit a parked car — the driver must instead contact the nearest police department in order to file a report. The driver may also find it in their best interest to leave contact information on the person's vehicle or near the property so that there is no question about the incident left hanging.
The penalty for failing to provide information or file a report as needed after causing property damage:
The act counts as a traffic violation, not technically a crime
Maximum penalties include up to:
A $250 fine
15 days in jail
Certain acts that cause major property damage or qualify as certain types of gross neglect may potentially carry stiffer penalties
The Penalty for Leaving the Scene of an Accident in NY After Hitting a Domesticated Animal
New York State VTL §601 requires that drivers stop in the event that they strike and cause injury to certain animals. The animals this law applies to can generally be considered to be domesticated pets or farm animals. VTL only specifically names four types of animals that this law may apply to: cats, dogs, horses, and "cattle-like" animals. That latter category includes actual cows and cattle, and it may potentially also include sheep, goats, and other livestock — although these species are not named.
The penalty for failing to provide information or file a report as needed:
Certain acts that cause significant monetary damage to animals or qualify as certain types of gross neglect or animal cruelty may potentially carry stiffer penalties
It's interesting to note here the distinction made between animals which seem to have some value to humans and all other animals. Dogs and cats have the emotional value, horses and cattle the financial value.
The Penalty for Leaving an Accident Scene in NY After Causing Injury to a Human Person
As one might imagine, fleeing the scene of an accident after injuring a person carries steeper penalties compared to hurting an animal or damaging property.
NY VTL §602 mandates that you report all accidents that lead to the injury of a person to the nearest police station. Failing to do so could result in a class A misdemeanor criminal charge. Being convicted of this crime places it on your permanent criminal record.
The penalty for fleeing the scene of an accident that causes injury can include:
Up to 1 year in jail
A $500 – $1000 fine
These penalties presume that your accident only causes minor injuries. If you have caused major injuries, as described in Section 10 of New York's Penal Law code, then your actions could result in a class E felony charge. This charge would lead to a maximum of:
A fine between $1,000 – $5,000
Leaving the scene of an accident after causing the death of an individual can result in a class D felony charge. This crime can lead to:
A felony conviction would also likely severely restrict your rights as an individual. You may be made ineligible for voting, serving on a jury, or obtaining certain civil service jobs. You will also be barred from owning a firearm or serving in the military.
How an NY Traffic Ticket Attorney Can Potentially Help if You Face a Penalty for Fleeing an Accident
The laws mentioned above — along with their penalties — largely serve as a guideline for prosecutors and judges. In some cases, a prosecutor may be willing to offer a plea bargain to individuals willing to cop to certain criminal charges willingly. Such an agreement could result in reduced charges and less severe consequences.
Other times, an individual may be able to successfully defend against the charges. Possible defenses include arguing that the defendant feared for their safety, they were unaware of the damage, or that the prosecution lacks sufficient evidence to pursue the charges.
In other words, facing charges for a hit-and-run doesn't have to mean an automatic conviction. You can work with an experienced NY traffic ticket attorney to explore all of your available options.
If you want to receive a free case evaluation for your possible charges, you can contact us online or call today to schedule a free case evaluation.

redpajama_set_name: RedPajamaCommonCrawl


Dyke Industries is based out of Little Rock, Arkansas with locations throughout the southeast. We have been serving the building industry since 1866.
We serve the Southeast US as a wholesale distributor of a multitude of millwork and related products. Dyke has always been a forerunner in the millwork industry because of the belief in service. Dyke strives to deliver a quality product at a reasonable price in a timely manner.
We stock a full line of steel and fiberglass doors with a large selection of commodity and decorative inserts. Our stock wood doors are made of either fir or alder and include a variety of panel and glass choices.
We stock a large variety of interior moulded doors in hollow and solid core, along with several pine designs with and without glass. We have many more sizes and styles available.
Our shop built windows can have wood or pvc sash with wood or pvc exterior stops and trim while all of our sills are non-rot pvc.
Licensed to label fire-rated units, we can provide doors, frames, and hardware for light commercial applications.
You will find all you need with our wide range of vendors and products. We specialize in doors, windows, columns and much more.
We're sorry, our Online Catalog is temporarily unavailable during computer system transition.
We operate out of a 140,000 square foot building that we purchased in 2003, renovated and moved into in 2004.


text:
Have the Kentucky Goblins Returned?
By frank statler
The Kelly-Hopkinsville sighting (AKA: Kelly Green Men case or Hop-town Chicken heads) is a report of an extraterrestrial landing and possible attack of tiny beings that happened near Kelly and Hopkinsville on the Tennessee /Kentucky border. The year was 1955 and it happened in Christian county, Kentucky. Some people think that it was just the imagination of the people who saw it. However, even more people consider it one of the most powerful cases of UFO visitation ever.
On the night sticky of August 21, 1955, seven children and five adults came, in an uproar, to the Hopkinsville police department. They all claimed that they had been attacked and threatened by small alien creatures at their rural farm. They also claimed to the police that they had been fighting the creatures for several hours. Two young men, named Elmer Sutton and Billy Ray Taylor claimed they had been shooting at about "twelve to fifteen" short dark creatures. The family that lived in the residence consisted of Glennie Lankford, her children, Lonnie, Charlton, and Mary.
Two older sons from a previous marriage, Elmer Sutton, John Charley Sutton, and their wives, Alene and Vera, Alene's Brother O.P Baker, and Billy Taylor and his wife June. The Taylors and Elmer and Vera were all carnival workers that just happened to be visiting the farm that night. Concerned about serious trouble and all the shooting, the local Sherriff and his Deputies, four city police, five state troopers, and four soldiers from Ft. Campbell headed out to the farm located in the burg of Kelly in Christian County Kentucky. However, the only things found were some evidence of gunfire and holes in the screen where the bullets had gone through. Neighbors told law enforcement the next day that the two families had left about three o'clock in the morning when they claimed the creatures had come back to terrorize them.
Nationwide News:
This story made the national news but, in time, the story got larger and larger and more bizarre. The first news articles written did not mention "Little green men" and, in fact, the victims of this attack had never claimed that. Some people claimed sizes anywhere from 2 to 4 feet. Also it was claimed features such as horns, antenna, glowing eyes and long legs were seen.
What were the Hopkinsville Hobgoblins?
Some people that have researched the story claim that the only thing seen by the families were Great Horned Owls. They assert that Owls are nocturnal, fly silently, have big yellow eyes and they also defend their nests very protectively. Skeptics also suggest that there could have possibly been a meteor shower on the night in question and that that is the explanation for the bright streaks of light.
Criticisms:
A noted U.F.O researcher claims to have checked into the report of police and Army investigators and found that there is no proof of any investigation being done by either group. One of the neighbors reportedly said that an Air Force Officer showed up the next day. However, the fact is there is no Air Force base near the area. There is in fact an Army Base,Ft.Campbell, that is located near the event and that is who showed up to investigate the claims.
Have the goblins returned?
The following is from an email sent to ghost hunters Inc.
Dear Sir, I have been living in a rural home on the border of Kentucky and Tennessee for around six months. My family and I have been assaulted nightly by what I believe to be creatures from another world. These creatures have the size of a small child. They have no facial features except two large oily eyes and a thin lipless mouth. They frighten my children by peeping in their windows and chirping to one another. They have tried to enter my home on numerous occasions. Last month they took my dog. The police will not do anything. They say the problem is with wild animals and not beings from outer space. I believe that these creatures are coming from an abandoned mine on my property. Can you help me?
Have the goblins returned? That's anyone's guess. Did they ever exist? The folks that reported the strange encounters seemed to believe these creatures were real. I'll just ask you to do some of your own further research and make up your own mind about these strange encounters.
Frank M. Statler
Women 'had sex with aliens and gave birth to hybrid babies' – and so might YOU
Are Aliens Hiding Under The Sea?
Hillary Clinton: 'I will reveal the truth about UFOs when I am President'
Yahoo reports: NASA Rover Spots Claw Of 'Living Alien' On Mars
'Alien structures' on Mars being 'covered up by Nasa' in new photos UFO experts claim
If You're Not A Believer In Aliens, This News Footage Might Make You Think Again
Woman 'photobombed by alien' during selfie on passenger jet on business trip
Is it FINALLY proof: 'Abducted' woman draws star map of exact constellation of alien home
Aliens Take Billy Meier Back to Meet Jesus
Donald Trump 'tailed by UFO' in chopper during Presidential election campaign
Tags: alien attacks, aliens, goblins, Hopkinsville Hobgoblins, Kentucky Goblins, paranormal
Categorised in: Aliens
This post was written by frank statler


Clicking on the following links will take you to third party websites containing information we have found useful in our boating experience and are provided as a courtesy only. This information is neither all encompassing nor represented as the authoritative source on boating safety. Boaters are encouraged to check with their local, state and federal authorities for regulations in your area. RentMySlip.com provides no warranties as to the accuracy of information contained on these sites.


Sat., Aug. 25, 2018, 9:54 p.m.
Washington state cherry growers say they stand to lose an estimated $86 million this season due to retaliatory tariffs in the U.S. trade war with China.
The damage was calculated by the Northwest Horticultural Council after speaking with growers and exporters around the state. The estimate is made up of sales lost to China due to tariffs and a reduction in grower returns, said Mark Powers, president of the council.
The council focused on lost sales in China because it was the largest importer of Northwest-grown cherries last year. The Asian nation placed a 50 percent tariff on cherries as a result of tariffs President Donald Trump's administration placed on Chinese exports to the U.S.
Overall, Washington state risks losing $650 million in agricultural exports as a result of retaliatory tariffs, according to the Washington Department of Agriculture. An estimated $480 million of that is from China alone.
Washington has about 2,500 cherry growers, who produce more sweet cherries than any other state in the nation.
Cherry growers are especially hurt by the tariffs because the 2018 growing season ended recently and cherries can't be stored for long periods of time without perishing. This means growers and distributors are forced to sell their product as quickly as possible, even if the seller will lose money.
In response, members of Washington's congressional delegation sent a letter to the Department of Agriculture on Friday asking it to extend access to tariff relief to Washington's cherry growers.
The letter is signed by U.S. Sens. Maria Cantwell and Patty Murray, both Democrats, and 8th District Rep. Dave Reichert and 4th District Rep. Dan Newhouse, both Republicans.
If tariff relief is granted, cherry growers will be able to take advantage of $12 billion in financial aid the USDA has made available to agricultural producers nationwide affected by the tariffs.
Published: Aug. 25, 2018, 9:54 p.m.


text:
SHECHEM
Named for the son of Hamor the Hivite; A city also known as Sychar, Sichem, and now Nablus
Easton's Bible Dictionary | Smith's Bible Dictionary | International Standard Bible Encyclopedia | Thompson Chain Reference
SHECHEM in scriptures [BibleGateway Search]
Genesis 12:6 | Genesis 33:18-19 | Genesis 34 (Shechem and Diana) | Genesis 35:4 | Genesis 37:13-14 | Numbers 26:31 | Joshua 24:1 ff
SHECHEM [Easton's Bible Dictionary]
Shoulder.
# The son of Hamor the Hivite (Genesis 33:19; 34).
# A descendant of Manasseh (Numbers 26:31; Joshua 17:2).
# A city in Samaria (Genesis 33:18), called also Sichem (12:6), Sychem (Acts 7:16). It stood in the narrow sheltered valley between Ebal on the north and Gerizim on the south, these mountains at their base being only some 500 yards apart. Here Abraham pitched his tent and built his first altar in the Promised Land, and received the first divine promise (Genesis 12:6,7). Here also Jacob "bought a parcel of a field at the hands of the children of Hamor" after his return from Mesopotamia, and settled with his household, which he purged from idolatry by burying the teraphim of his followers under an oak tree, which was afterwards called "the oak of the sorcerer" (Genesis 33:19; 35:4; Judges 9:37). (See MEONENIM.) Here too, after a while, he dug a well, which bears his name to this day (John 4:5,39-42). To Shechem Joshua gathered all Israel "before God," and delivered to them his second parting address (Joshua 24:1-15). He "made a covenant with the people that day" at the very place where, on first entering the land, they had responded to the law from Ebal and Gerizim (Joshua 24:25), the terms of which were recorded "in the book of the law of God", i.e., in the roll of the law of Moses; and in memory of this solemn transaction a great stone was set up "under an oak" (Compare Genesis 28:18; 31:44-48; Exodus 24:4; Joshua 4:3,8,9), possibly the old "oak of Moreh," as a silent witness of the transaction to all coming time.
Shechem became one of the cities of refuge, the central city of refuge for Western Palestine (Joshua 20:7), and here the bones of Joseph were buried (24:32). Rehoboam was appointed king in Shechem (1 Kings 12:1,19), but Jeroboam afterwards took up his residence here. This city is mentioned in connection with our Lord's conversation with the woman of Samaria (John 4:5); and thus, remaining as it does to the present day, it is one of the oldest cities of the world. It is the modern Nablus, a contraction for Neapolis, the name given to it by Vespasian. It lies about a mile and a half up the valley on its southern slope, and on the north of Gerizim, which rises about 1,100 feet above it, and is about 34 miles north of Jerusalem. It contains about 10,000 inhabitants, of whom about 160 are Samaritans and 100 Jews, the rest being Christians and Mohammedans.
The site of Shechem is said to be of unrivalled beauty. Stanley says it is "the most beautiful, perhaps the only very beautiful, spot in Central Palestine."
Gaza, near Shechem, only mentioned 1 Chronicles 7:28, has entirely disappeared. It was destroyed at the time of the Conquest, and its place was taken by Shechem. (See SYCHAR .)
SHECHEM [Smith's Bible Dictionary]
(back or shoulder).
1. An important city in central Palestine, in the valley between mounts Ebal and Gerizim, 34 miles north of Jerusalem and 7 miles southeast of Samaria. Its present name, Nablus, is a corruption of Neapolis, which succeeded the more ancient Shechem, and received its new name from Vespasian. On coins still extant it is called Flavia Neapolis.
The situation of the town is one of surpassing beauty. It lies in a sheltered valley, protected by Gerizim on the south and Ebal on the north. The feet of these mountains, where they rise from the town, are not more than five hundred yards apart. The bottom of the valley is about 1800 feet above the level of the sea, and the top of Gerizim 800 feet higher still. The sit of the present city, which was also that of the Hebrew city, occurs exactly on the water-summit; and streams issuing from the numerous springs there flow down the opposite slopes of the valley, spreading verdure and fertility in every direction. Travellers vie with each other in the language which they employ to describe the scene that here bursts so suddenly upon them on arriving in spring or early summer at this paradise of the holy land. "The whole valley," says Dr. Robinson, "was filled with gardens of vegetables and orchards of all kinds of fruits, watered by fountains which burst forth in various parts and flow westward in refreshing streams. It came upon us suddenly like a scene of fairy enchantment. We saw nothing to compare with it in all Palestine." The allusions to Shechem in the Bible are numerous, and show how important the place was in Jewish history.
Abraham, on his first migration to the land of promise, pitched his tent and built an altar under the oak (or terebinth) of Moreh at Shechem. "The Canaanite was then in the land;" and it is evident that the region, if not the city, was already in possession of the aboriginal race. See (Genesis 12:6)
At the time of Jacob's arrival here, after his sojourn in Mesopotamia, (Genesis 33:18; 34) Shechem was a Hivite city, of which Hamor, the father of Shechem, was the headman. It was at this time that the patriarch purchased from that chieftain "the parcel of the field" which he subsequently bequeathed, as a special patrimony, to his son Joseph. (Genesis 33:19; Joshua 24:32; John 4:5) The field lay undoubtedly on the rich plain of the Mukhna , and its value was the greater on account of the well which Jacob had dug there, so as not to be dependent on his neighbors for a supply of water.
In the distribution of the land after its conquest by the Hebrews, Shechem fell to the lot of Ephraim, (Joshua 20:7) but was assigned to the Levites, and became a city of refuge. (Joshua 21:20,21) It acquired new importance as the scene of the renewed promulgation of the law, when its blessings were heard from Gerizim and its curses from Ebal, and the people bowed their heads and acknowledged Jehovah as their king and ruler. ( 27:11; Joshua 24:23-25) It was here Joshua assembled the people, shortly before his death, and delivered to them his last counsels. (Joshua 24:1,25)
After the death of Gideon, Abimelech, his bastard son, induced the Shechemites to revolt from the Hebrew commonwealth and elect him as king. (Judges 9:1) ... In revenge for his expulsion after a reign of three years, Abimelech destroyed the city, and as an emblem of the fate to which he would consign it, sowed the ground with salt. (Judges 9:34-45) It was soon restored, however, for we are told in (1 Kings 12:1) ... that all Israel assembled at Shechem, and Rehoboam, Solomon's successor, went thither to be inaugurated as king. here, at this same place, the ten tribes renounced the house of David, and transferred their allegiance to Jeroboam, (1 Kings 12:16) under whom Shechem became for a time the capital of his kingdom. From the time of the origin of the Samaritans, the history of Shechem blends itself with that of this people and of their sacred mount, Gerizim. [SAMARIA]
Shechem reappears in the New Testament. It is the SYCHAR of (John 4:5) near which the Saviour conversed with the Samaritan woman at Jacob's well. The population of Nablus consists of about 5000, among whom are 500 Greek Christians, 150 Samaritans, and a few Jews. The enmity between the Samaritans and jews is as inveterate still as it was in the days of Christ. The Mohammedans, of course, make up the bulk of the population. The well of Jacob and the tomb of Joseph are still shown in the neighborhood of the town. The well of Jacob lies about a mile and a half east of the city, close to the lower road, and just beyond the wretched hamlet of Balata . The Christians sometimes call it Bir es-Samariyeh -- "the well of the Samaritan woman." The well is deep -- 75 feet when last measured -- and there was probably a considerable accumulation of rubbish at the bottom. Sometimes it contains a few feet of water, but at others it is quite dry. It is entirely excavated in the solid rock, perfectly round, 9 feet in diameter, with the sides hewn smooth and regular. Of all the special localities of our Lord's life, this is almost the only one absolutely undisputed. The tomb of Joseph lies about a quarter of a mile north of the well, exactly in the centre of the opening of the valley. It is a small between Gerizim and Ebal. It is a small, square enclosure of high whitewashed walls, surrounding a tomb of the ordinary kind, but with the peculiarity that it is placed diagonally to the walls, instead of parallel as usual. A rough pillar used as an altar and black with the traces of fire is at the head and another at the foot of the tome. In the walls are two slabs with Hebrew inscriptions, and the interior is almost covered with the names of pilgrims in Hebrew Arabic and Samaritan. Beyond this there is nothing to remark in the structure itself. The local tradition of the tomb, like that of the well is as old as the beginning of the fourth century.
2. The son of Hamor, the chieftain of the Hivite settlement of Shechem at the time of Jacob's arrival. (Genesis 33:19; 34:2-26; Joshua 24:32; Judges 9:28)
3. A man of Manasseh, of the clan of Gilead. (Numbers 26:31)
4. A Gileadite, son of Shemida, the younger brother of the foregoing. (1 Chronicles 7:19)
SHECHEM [International Standard Bible Encyclopedia]
she'-kem (shekhem, "shoulder"; Suchem, he Sikima, ta Sikima, etc.; the King James Version gives "Sichem" in Genesis 12:6; and "Sychem" in Acts 7:16):
1. Historical:
This place is first mentioned in connection with Abraham's journey from Haran. At the oak of Moreh in the vicinity he reared his first altar to the Lord in Palestine (Genesis 12:6 f). It was doubtless by this oak that Jacob, on his return from Paddan-aram, buried "the strange (the American Standard Revised Version "foreign") gods" (Genesis 35:4). Hither he had come after his meeting with Esau (Genesis 33:18). Eusebius, in Onomasticon, here identifies Shechem with Shalem; but see SHALEM . To the East of the city Jacob pitched his tent in a "parcel of ground" which he had bought from Hamor, Shechem's father (Genesis 33:19). Here also he raised an altar and called it El-Elohe-Israel, "God, the God of Israel" (Genesis 33:20). Then follows the story of Dinah's defilement by Shechem, son of the city's chief; and of the treacherous and terrible vengeance exacted by Simeon and Levi (Genesis 34). To the rich pasture land near Shechem Joseph came to seek his brethren (Genesis 37:12 ff). It is mentioned as lying to the West of Michmethath (el-Makhneh) on the boundary of Manasseh (Joshua 17:7). It was in the territory of Ephraim; it was made a city of refuge, and assigned to the Kohathite Levites (Joshua 20:7; 21:21). Near the city the Law was promulgated (Deuteronomy 27:11; Joshua 8:33). When his end was approaching Joshua gathered the tribes of Israel here and addressed to them his final words of counsel and exhortation (chapter 24). Under the oak in the neighboring sanctuary he set up the stone of witness (24:26). The war of conquest being done, Joseph's bones were buried in the parcel of ground which Jacob had bought, and which fell to the lot of Joseph's descendants (24:33). Abimelech, whose mother was a native of the city, persuaded the men of Shechem to make him king (Judges 9:1-6), evidently seeking a certain consecration from association with "the oak of the pillar that was in Shechem." Jotham's parable was spoken from the cliff of Gerizim overhanging the town (Judges 9:7 ff). After a reign of three years Abimelech was rejected by the people. He captured the city, razed it to the foundations, and sowed it with salt. It was then the seat of Canaanite idolatry, the temple of Baal-berith being here (Judges 9:4,46). In the time of the kings we find that the city was once more a gathering-place of the nation. It was evidently the center, especially for the northern tribes; and hither Rehoboam came in the hope of getting his succession to the throne confirmed (1 Kings 12:1; 2 Chronicles 10:1). At the disruption Jeroboam fortified the city and made it his residence (2 Chronicles 10:19; Ant, VIII, viii, 2 Chronicles 4). The capital of the Northern Kingdom was moved, however, first to Tirzah and then to Samaria, and Shechem declined in political importance. Indeed it is not named again in the history of the monarchy. Apparently there were Israelites in it after the captivity, some of whom on their way to the house of the Lord at Jerusalem met a tragic fate at the hands of Ishmael ben Nethaniah (Jeremiah 41:5 ff). It became the central city of the Samaritans, whose shrine was built on Mt. Gerizim (Sirach 50:26; Ant, XI, viii, 6; XII, i, 1; XIII, iii, 4). Shechem was captured by John Hyrcanus in 132 BC (Ant., XIII, ix, 1; BJ, I, ii, 6). It appears in the New Testament only in the speech of Stephen (Acts 7:16, King James Version "Sychem"). Some (e.g. Smith, DB, under the word) would identify it with Sychar of John 4:5; but see SYCHAR . Under the Romans it became Flavia Neapolis. In later times it was the seat of a bishopric; the names of five occupants of the see are known.
2. Location and Physical Features:
There is no doubt as to the situation of ancient Shechem. It lay in the pass which cuts through Mts. Ephraim, Ebal and Gerizim, guarding it on the North and South respectively. Along this line runs the great road which from time immemorial has formed the easiest and the quickest means of communication between the East of the Jordan and the sea. It must have been a place of strength from antiquity. The name seems to occur in Travels of a Mohar (Max Muller, Asien u. Europa, 394), "Mountain of Sahama" probably referring to Ebal or Gerizim. The ancient city may have lain somewhat farther East than the modern Nablus, in which the Roman name Neapolis survives. The situation is one of great beauty. The city lies close to the foot of Gerizim. The terraced slopes of the mountain rise steeply on the South. Across the valley, musical with the sound of running water, the great bulk of Ebal rises on the North, its sides, shaggy with prickly pear, sliding down into grain fields and orchards. The copious springs which supply abundance of water rise at the base of Gerizim. The fruitful and well-wooded valley winds westward among the hills. It is traversed by the carriage road leading to Jaffa and the sea. Eastward the valley opens upon the plain of Makhneh. To the East of the city, in a recess at the base of Gerizim, is the sanctuary known as Rijal el-`Amud, literally, "men of the column" or "pillar," where some would locate the ancient "oak of Moreh" or "of the pillar." Others would find it in a little village farther East with a fine spring, called BalaTa, a name which may be connected with balluT, "oak." Still farther to the East and near the base of Ebal is the traditional tomb of Joseph, a little white-domed building beside a luxuriant orchard. On the slope of the mountain beyond is the village of `Askar; see SYCHAR . To the South of the vale is the traditional Well of Jacob; see JACOB'S WELL . To the Southwest of the city is a small mosque on the spot where Jacob is said to have mourned over the blood-stained coat of Joseph. In the neighboring minaret is a stone whereon the Ten Commandments are engraved in Samaritan characters. The main center of interest in the town is the synagogue of the Samaritans, with their ancient manuscript of the Pentateuch.
3. Modern Shechem:
The modern town contains about 20,000 inhabitants, the great body of them being Moslems. There are some 700 or 800 Christians, chiefly belonging to the Greek Orthodox church. The Samaritans do not total more than 200. The place is still the market for a wide district, both East and West of Jordan. A considerable trade is done in cotton and wool. Soap is manufactured in large quantities, oil for this purpose being plentifully supplied by the olive groves. Tanning and the manufacture of leather goods are also carried on. In old times the slopes of Ebal were covered with vineyards; but these formed a source of temptation to the "faithful." They were therefore removed by authority, and their place taken by the prickly pears mentioned above.
W. Ewing
SHECHEM [Thompson Chain Reference]
* (Sichem, or Sychem)
* General References to
o Genesis 12:6
o Genesis 33:18
o Joshua 24:32
* City of
o Joshua 20:7
o 1 Kings 12:1
o John 4:5
Cross Reference Bible | Bible Dictionary | Today's Bible Commentary


This web site was created in spring 2018 to showcase some of my more recent work and present my new artist's blog.
There is now a good stock of greetings cards, mounted and framed giclée prints, artist's canvas prints, and gifts featuring my artwok in my Folksy shop where you can buy direct from me. (I make, mount, frame or stretch all the prints myself.) Folksy is the British equivalent of Etsy, but with a clearer focus on high quality work sold direct by craftspeople and artists.
Just click on the Folksy badge on the right to go direct to my shop.
Click in the grey box to the right or left of the image to move backwards and forwards through a selection of my landscape and wildlife paintings.
My blog posts are usually too long to feature on the home page, so please use the main menu or the navigation on the right-hand side to go to the blog and read about the process of creating some of my paintings and drawings. You can also follow my artist's blog by email.


Packaging Details : According to EU standard , We do packing in corrugated boxes with wooden pallet packing.
We offer policed vitrified tiles size 600mm and 800x800mm.
Design : We can take orders according to photo or drawing from you.
Packing : Outer in strong fumigant wooden crate, inner in plastic or foam.


text:
THE BLACK DAHLIA MURDER – "Receipt" – Music Video
The Black Dahlia Murder music video "Receipt is here!!! Check it out. Directed by Robert Graves. Produced by Marco De Molina for Veva Entertainment Co.
SALVADOR SANTANA – "I Don't Want It to End" – Music Video
New music video for Salvador Santana's "I Don't Want It to End". Directed by Robert Graves. Produced by Marco De Molina for VEVA Entertainment Company.
DEVIL CITY ANGELS – "Boneyard" – Music Video
New music video for Devil City Angels "Boneyard". Directed by Robert Graves. Produced by Marco De Molina
Horchata The Choppa, Kiddy Nite – "Windsor Town" – Music Video
FOZZY – "Do You Wanna Start A War" – Music Video Behind The Scenes
Here is a 'Behind The Scenes' look at the making of Fozzy's "Do You Wanna Start A War" music video.
JAKE DREYER – Gear Gods – 'Rigged' Gear Review
Check out Jake Dreyer's Gear Review in this Gear Gods 'Rigged' video. Shot and produced by A Shadow Beyond and Light Black Productions. Filmed at Media Kitchen Studios.
18649 days ago
On Set Photos


text:
Occupy Milwaukee rekindled with arrests
Updated: 11:29 AM CDT Jun 7, 2012
Milwaukee police arrest 4 people during 'Occupy' rally in Downtown Milwaukee.
Gov. Scott Walker's victory has rekindled the Occupy Milwaukee movement. Wednesday night protestors clashed with police.Milwaukee police report four arrests for disorderly conduct after protesters took to the streets of downtown Milwaukee.By all accounts, it began as a peaceful protest at the city's Pere Marquette Park. Union representatives and community groups rallied for economic equally.But at some point, the rally became a march into the streets where protestors met with police.Jacob Flom of Milwaukee was part of the group in the streets. He said the group ignored orders to return to the sidewalk."People marched in the street; despite the orders, people marched all the way to Zeidler Park," Flom said.Flom said in the chaos he was hit by a police baton.Milwaukee police had a large presence.According to Milwaukee Police Chief Ed Flynn, the group of peaceful protesters at the park was not the group attempting to take over Water Street and the Kilbourn Avenue bridge."As the meeting progressed the conventional demonstrators left and people who organized later organized labor didn't want to be part of these knuckleheads," Flynn said.
MILWAUKEE —
Gov. Scott Walker's victory has rekindled the Occupy Milwaukee movement.
Wednesday night protestors clashed with police.
Milwaukee police report four arrests for disorderly conduct after protesters took to the streets of downtown Milwaukee.
By all accounts, it began as a peaceful protest at the city's Pere Marquette Park. Union representatives and community groups rallied for economic equally.
But at some point, the rally became a march into the streets where protestors met with police.
Jacob Flom of Milwaukee was part of the group in the streets. He said the group ignored orders to return to the sidewalk.
"People marched in the street; despite the orders, people marched all the way to Zeidler Park," Flom said.
Flom said in the chaos he was hit by a police baton.
Milwaukee police had a large presence.
According to Milwaukee Police Chief Ed Flynn, the group of peaceful protesters at the park was not the group attempting to take over Water Street and the Kilbourn Avenue bridge.
"As the meeting progressed the conventional demonstrators left and people who organized later organized labor didn't want to be part of these knuckleheads," Flynn said.