text:
<?php

App::uses('L10n', 'I18n');

/**
 * L10nTest class
 *
 * @package       Cake.Test.Case.I18n
 */
class L10nTest extends CakeTestCase {

/**
 * setUp method
 *
 * @return void
 */
	public function setUp() {
		parent::setUp();
		Configure::delete('Config.language');
	}

/**
 * testGet method
 *
 * @return void
 */
	public function testGet() {
		$localize = new L10n();

		// Catalog Entry
		$lang = $localize->get('en');

		$this->assertEquals('en', $lang);
		$this->assertEquals('English', $localize->language);
		$this->assertEquals(array('eng'), $localize->languagePath);
		$this->assertEquals('eng', $localize->locale);

		// Map Entry
		$localize->get('eng');

		$this->assertEquals('English', $localize->language);
		$this->assertEquals(array('eng'), $localize->languagePath);
		$this->assertEquals('eng', $localize->locale);

		// Catalog Entry
		$localize->get('en-ca');

		$this->assertEquals('English (Canadian)', $localize->language);
		$this->assertEquals(array('en_ca', 'eng'), $localize->languagePath);
		$this->assertEquals('en_ca', $localize->locale);

		// Default Entry
		$localize->default = 'en-us';
		$lang = $localize->get('use_default');

		$this->assertEquals('en-us', $lang);
		$this->assertEquals('English (United States)', $localize->language);
		$this->assertEquals(array('en_us', 'eng'), $localize->languagePath);
		$this->assertEquals('en_us', $localize->locale);

		$localize->get('es');
		$localize->get('');
		$this->assertEquals('en-us', $localize->lang);
	}

/**
 * testGetAutoLanguage method
 *
 * @return void
 */
	public function testGetAutoLanguage() {
		$serverBackup = $_SERVER;
		$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'inexistent,en-ca';

		$localize = new L10n();
		$lang = $localize->get();

		$this->assertEquals('en-ca', $lang);
		$this->assertEquals('English (Canadian)', $localize->language);
		$this->assertEquals(array('en_ca', 'eng'), $localize->languagePath);
		$this->assertEquals('en_ca', $localize->locale);

		$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'es_mx';
		$lang = $localize->get();

		$this->assertEquals('es-mx', $lang);
		$this->assertEquals('Spanish (Mexican)', $localize->language);
		$this->assertEquals(array('es_mx', 'spa'), $localize->languagePath);
		$this->assertEquals('es_mx', $localize->locale);

		$localize = new L10n();
		$localize->default = 'en-us';
		$lang = $localize->get();
		$this->assertEquals(array('es_mx', 'spa', 'eng'), $localize->languagePath);

		$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'en_xy,en_ca';
		$localize->get();

		$this->assertEquals('English', $localize->language);
		$this->assertEquals(array('eng'), $localize->languagePath);
		$this->assertEquals('eng', $localize->locale);

		$_SERVER = $serverBackup;
	}

/**
 * testGet method with deprecated constant DEFAULT_LANGUAGE
 *
 * @return void
 */
	public function testGetWithDeprecatedConstant() {
		$this->skipIf(defined('DEFAULT_LANGUAGE'), 'Cannot re-define already defined constant.');

		define('DEFAULT_LANGUAGE', 'en-us');
		$localize = new L10n();

		$lang = $localize->get('use_default');

		$this->assertEquals('en-us', $lang);
		$this->assertEquals('English (United States)', $localize->language);
		$this->assertEquals(array('en_us', 'eng'), $localize->languagePath);
		$this->assertEquals('en_us', $localize->locale);

		$localize = new L10n();

		$lang = $localize->get();

		$this->assertEquals('en-us', $lang);
		$this->assertEquals('English (United States)', $localize->language);
		$this->assertEquals(array('en_us', 'eng'), $localize->languagePath);
		$this->assertEquals('en_us', $localize->locale);
	}

/**
 * testMap method
 *
 * @return void
 */
	public function testMap() {
		$localize = new L10n();

		$result = $localize->map(array('afr', 'af'));
		$expected = array('afr' => 'af', 'af' => 'afr');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('sqi', 'sq'));
		$expected = array('sqi' => 'sq', 'sq' => 'sqi');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('alb', 'sq'));
		$expected = array('alb' => 'sq', 'sq' => 'sqi');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('ara', 'ar'));
		$expected = array('ara' => 'ar', 'ar' => 'ara');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('hye', 'hy'));
		$expected = array('hye' => 'hy', 'hy' => 'hye');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('eus', 'eu'));
		$expected = array('eus' => 'eu', 'eu' => 'eus');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('baq', 'eu'));
		$expected = array('baq' => 'eu', 'eu' => 'eus');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('bos', 'bs'));
		$expected = array('bos' => 'bs', 'bs' => 'bos');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('bul', 'bg'));
		$expected = array('bul' => 'bg', 'bg' => 'bul');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('bel', 'be'));
		$expected = array('bel' => 'be', 'be' => 'bel');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('cat', 'ca'));
		$expected = array('cat' => 'ca', 'ca' => 'cat');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('chi', 'zh'));
		$expected = array('chi' => 'zh', 'zh' => 'zho');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('zho', 'zh'));
		$expected = array('zho' => 'zh', 'zh' => 'zho');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('hrv', 'hr'));
		$expected = array('hrv' => 'hr', 'hr' => 'hrv');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('ces', 'cs'));
		$expected = array('ces' => 'cs', 'cs' => 'ces');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('cze', 'cs'));
		$expected = array('cze' => 'cs', 'cs' => 'ces');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('dan', 'da'));
		$expected = array('dan' => 'da', 'da' => 'dan');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('dut', 'nl'));
		$expected = array('dut' => 'nl', 'nl' => 'nld');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('nld', 'nl'));
		$expected = array('nld' => 'nl', 'nl' => 'nld');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('nld'));
		$expected = array('nld' => 'nl');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('dut'));
		$expected = array('dut' => 'nl');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('eng', 'en'));
		$expected = array('eng' => 'en', 'en' => 'eng');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('est', 'et'));
		$expected = array('est' => 'et', 'et' => 'est');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('fao', 'fo'));
		$expected = array('fao' => 'fo', 'fo' => 'fao');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('fas', 'fa'));
		$expected = array('fas' => 'fa', 'fa' => 'fas');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('per', 'fa'));
		$expected = array('per' => 'fa', 'fa' => 'fas');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('fin', 'fi'));
		$expected = array('fin' => 'fi', 'fi' => 'fin');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('fra', 'fr'));
		$expected = array('fra' => 'fr', 'fr' => 'fra');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('fre', 'fr'));
		$expected = array('fre' => 'fr', 'fr' => 'fra');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('gla', 'gd'));
		$expected = array('gla' => 'gd', 'gd' => 'gla');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('glg', 'gl'));
		$expected = array('glg' => 'gl', 'gl' => 'glg');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('deu', 'de'));
		$expected = array('deu' => 'de', 'de' => 'deu');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('ger', 'de'));
		$expected = array('ger' => 'de', 'de' => 'deu');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('ell', 'el'));
		$expected = array('ell' => 'el', 'el' => 'gre');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('gre', 'el'));
		$expected = array('gre' => 'el', 'el' => 'gre');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('heb', 'he'));
		$expected = array('heb' => 'he', 'he' => 'heb');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('hin', 'hi'));
		$expected = array('hin' => 'hi', 'hi' => 'hin');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('hun', 'hu'));
		$expected = array('hun' => 'hu', 'hu' => 'hun');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('ice', 'is'));
		$expected = array('ice' => 'is', 'is' => 'isl');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('isl', 'is'));
		$expected = array('isl' => 'is', 'is' => 'isl');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('ind', 'id'));
		$expected = array('ind' => 'id', 'id' => 'ind');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('gle', 'ga'));
		$expected = array('gle' => 'ga', 'ga' => 'gle');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('ita', 'it'));
		$expected = array('ita' => 'it', 'it' => 'ita');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('jpn', 'ja'));
		$expected = array('jpn' => 'ja', 'ja' => 'jpn');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('kaz', 'kk'));
		$expected = array('kaz' => 'kk', 'kk' => 'kaz');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('kor', 'ko'));
		$expected = array('kor' => 'ko', 'ko' => 'kor');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('lav', 'lv'));
		$expected = array('lav' => 'lv', 'lv' => 'lav');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('lit', 'lt'));
		$expected = array('lit' => 'lt', 'lt' => 'lit');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('mac', 'mk'));
		$expected = array('mac' => 'mk', 'mk' => 'mkd');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('mkd', 'mk'));
		$expected = array('mkd' => 'mk', 'mk' => 'mkd');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('may', 'ms'));
		$expected = array('may' => 'ms', 'ms' => 'msa');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('msa', 'ms'));
		$expected = array('msa' => 'ms', 'ms' => 'msa');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('mlt', 'mt'));
		$expected = array('mlt' => 'mt', 'mt' => 'mlt');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('nor', 'no'));
		$expected = array('nor' => 'no', 'no' => 'nor');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('nob', 'nb'));
		$expected = array('nob' => 'nb', 'nb' => 'nob');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('nno', 'nn'));
		$expected = array('nno' => 'nn', 'nn' => 'nno');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('pol', 'pl'));
		$expected = array('pol' => 'pl', 'pl' => 'pol');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('por', 'pt'));
		$expected = array('por' => 'pt', 'pt' => 'por');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('roh', 'rm'));
		$expected = array('roh' => 'rm', 'rm' => 'roh');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('ron', 'ro'));
		$expected = array('ron' => 'ro', 'ro' => 'ron');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('rum', 'ro'));
		$expected = array('rum' => 'ro', 'ro' => 'ron');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('rus', 'ru'));
		$expected = array('rus' => 'ru', 'ru' => 'rus');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('sme', 'se'));
		$expected = array('sme' => 'se', 'se' => 'sme');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('srp', 'sr'));
		$expected = array('srp' => 'sr', 'sr' => 'srp');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('slk', 'sk'));
		$expected = array('slk' => 'sk', 'sk' => 'slk');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('slo', 'sk'));
		$expected = array('slo' => 'sk', 'sk' => 'slk');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('slv', 'sl'));
		$expected = array('slv' => 'sl', 'sl' => 'slv');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('wen', 'sb'));
		$expected = array('wen' => 'sb', 'sb' => 'wen');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('spa', 'es'));
		$expected = array('spa' => 'es', 'es' => 'spa');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('swe', 'sv'));
		$expected = array('swe' => 'sv', 'sv' => 'swe');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('tha', 'th'));
		$expected = array('tha' => 'th', 'th' => 'tha');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('tso', 'ts'));
		$expected = array('tso' => 'ts', 'ts' => 'tso');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('tsn', 'tn'));
		$expected = array('tsn' => 'tn', 'tn' => 'tsn');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('tur', 'tr'));
		$expected = array('tur' => 'tr', 'tr' => 'tur');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('ukr', 'uk'));
		$expected = array('ukr' => 'uk', 'uk' => 'ukr');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('urd', 'ur'));
		$expected = array('urd' => 'ur', 'ur' => 'urd');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('ven', 've'));
		$expected = array('ven' => 've', 've' => 'ven');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('vie', 'vi'));
		$expected = array('vie' => 'vi', 'vi' => 'vie');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('xho', 'xh'));
		$expected = array('xho' => 'xh', 'xh' => 'xho');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('cy', 'cym'));
		$expected = array('cym' => 'cy', 'cy' => 'cym');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('yid', 'yi'));
		$expected = array('yid' => 'yi', 'yi' => 'yid');
		$this->assertEquals($expected, $result);

		$result = $localize->map(array('zul', 'zu'));
		$expected = array('zul' => 'zu', 'zu' => 'zul');
		$this->assertEquals($expected, $result);
	}

/**
 * testCatalog method
 *
 * @return void
 */
	public function testCatalog() {
		$localize = new L10n();

		$result = $localize->catalog(array('af'));
		$expected = array(
			'af' => array('language' => 'Afrikaans', 'locale' => 'afr', 'localeFallback' => 'afr', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('ar', 'ar-ae', 'ar-bh', 'ar-dz', 'ar-eg', 'ar-iq', 'ar-jo', 'ar-kw', 'ar-lb', 'ar-ly', 'ar-ma',
			'ar-om', 'ar-qa', 'ar-sa', 'ar-sy', 'ar-tn', 'ar-ye'));
		$expected = array(
			'ar' => array('language' => 'Arabic', 'locale' => 'ara', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-ae' => array('language' => 'Arabic (U.A.E.)', 'locale' => 'ar_ae', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-bh' => array('language' => 'Arabic (Bahrain)', 'locale' => 'ar_bh', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-dz' => array('language' => 'Arabic (Algeria)', 'locale' => 'ar_dz', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-eg' => array('language' => 'Arabic (Egypt)', 'locale' => 'ar_eg', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-iq' => array('language' => 'Arabic (Iraq)', 'locale' => 'ar_iq', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-jo' => array('language' => 'Arabic (Jordan)', 'locale' => 'ar_jo', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-kw' => array('language' => 'Arabic (Kuwait)', 'locale' => 'ar_kw', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-lb' => array('language' => 'Arabic (Lebanon)', 'locale' => 'ar_lb', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-ly' => array('language' => 'Arabic (Libya)', 'locale' => 'ar_ly', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-ma' => array('language' => 'Arabic (Morocco)', 'locale' => 'ar_ma', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-om' => array('language' => 'Arabic (Oman)', 'locale' => 'ar_om', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-qa' => array('language' => 'Arabic (Qatar)', 'locale' => 'ar_qa', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-sa' => array('language' => 'Arabic (Saudi Arabia)', 'locale' => 'ar_sa', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-sy' => array('language' => 'Arabic (Syria)', 'locale' => 'ar_sy', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-tn' => array('language' => 'Arabic (Tunisia)', 'locale' => 'ar_tn', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'ar-ye' => array('language' => 'Arabic (Yemen)', 'locale' => 'ar_ye', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('be'));
		$expected = array(
			'be' => array('language' => 'Byelorussian', 'locale' => 'bel', 'localeFallback' => 'bel', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('bg'));
		$expected = array(
			'bg' => array('language' => 'Bulgarian', 'locale' => 'bul', 'localeFallback' => 'bul', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('bs'));
		$expected = array(
			'bs' => array('language' => 'Bosnian', 'locale' => 'bos', 'localeFallback' => 'bos', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('ca'));
		$expected = array(
			'ca' => array('language' => 'Catalan', 'locale' => 'cat', 'localeFallback' => 'cat', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('cs'));
		$expected = array(
			'cs' => array('language' => 'Czech', 'locale' => 'ces', 'localeFallback' => 'ces', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('da'));
		$expected = array(
			'da' => array('language' => 'Danish', 'locale' => 'dan', 'localeFallback' => 'dan', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('de', 'de-at', 'de-ch', 'de-de', 'de-li', 'de-lu'));
		$expected = array(
			'de' => array('language' => 'German (Standard)', 'locale' => 'deu', 'localeFallback' => 'deu', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'de-at' => array('language' => 'German (Austria)', 'locale' => 'de_at', 'localeFallback' => 'deu', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'de-ch' => array('language' => 'German (Swiss)', 'locale' => 'de_ch', 'localeFallback' => 'deu', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'de-de' => array('language' => 'German (Germany)', 'locale' => 'de_de', 'localeFallback' => 'deu', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'de-li' => array('language' => 'German (Liechtenstein)', 'locale' => 'de_li', 'localeFallback' => 'deu', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'de-lu' => array('language' => 'German (Luxembourg)', 'locale' => 'de_lu', 'localeFallback' => 'deu', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('el'));
		$expected = array(
			'el' => array('language' => 'Greek', 'locale' => 'ell', 'localeFallback' => 'ell', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('en', 'en-au', 'en-bz', 'en-ca', 'en-gb', 'en-ie', 'en-jm', 'en-nz', 'en-tt', 'en-us', 'en-za'));
		$expected = array(
			'en' => array('language' => 'English', 'locale' => 'eng', 'localeFallback' => 'eng', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'en-au' => array('language' => 'English (Australian)', 'locale' => 'en_au', 'localeFallback' => 'eng', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'en-bz' => array('language' => 'English (Belize)', 'locale' => 'en_bz', 'localeFallback' => 'eng', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'en-ca' => array('language' => 'English (Canadian)', 'locale' => 'en_ca', 'localeFallback' => 'eng', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'en-gb' => array('language' => 'English (British)', 'locale' => 'en_gb', 'localeFallback' => 'eng', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'en-ie' => array('language' => 'English (Ireland)', 'locale' => 'en_ie', 'localeFallback' => 'eng', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'en-jm' => array('language' => 'English (Jamaica)', 'locale' => 'en_jm', 'localeFallback' => 'eng', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'en-nz' => array('language' => 'English (New Zealand)', 'locale' => 'en_nz', 'localeFallback' => 'eng', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'en-tt' => array('language' => 'English (Trinidad)', 'locale' => 'en_tt', 'localeFallback' => 'eng', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'en-us' => array('language' => 'English (United States)', 'locale' => 'en_us', 'localeFallback' => 'eng', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'en-za' => array('language' => 'English (South Africa)', 'locale' => 'en_za', 'localeFallback' => 'eng', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('es', 'es-ar', 'es-bo', 'es-cl', 'es-co', 'es-cr', 'es-do', 'es-ec', 'es-es', 'es-gt', 'es-hn',
			'es-mx', 'es-ni', 'es-pa', 'es-pe', 'es-pr', 'es-py', 'es-sv', 'es-uy', 'es-ve'));
		$expected = array(
			'es' => array('language' => 'Spanish (Spain - Traditional)', 'locale' => 'spa', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-ar' => array('language' => 'Spanish (Argentina)', 'locale' => 'es_ar', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-bo' => array('language' => 'Spanish (Bolivia)', 'locale' => 'es_bo', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-cl' => array('language' => 'Spanish (Chile)', 'locale' => 'es_cl', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-co' => array('language' => 'Spanish (Colombia)', 'locale' => 'es_co', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-cr' => array('language' => 'Spanish (Costa Rica)', 'locale' => 'es_cr', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-do' => array('language' => 'Spanish (Dominican Republic)', 'locale' => 'es_do', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-ec' => array('language' => 'Spanish (Ecuador)', 'locale' => 'es_ec', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-es' => array('language' => 'Spanish (Spain)', 'locale' => 'es_es', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-gt' => array('language' => 'Spanish (Guatemala)', 'locale' => 'es_gt', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-hn' => array('language' => 'Spanish (Honduras)', 'locale' => 'es_hn', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-mx' => array('language' => 'Spanish (Mexican)', 'locale' => 'es_mx', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-ni' => array('language' => 'Spanish (Nicaragua)', 'locale' => 'es_ni', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-pa' => array('language' => 'Spanish (Panama)', 'locale' => 'es_pa', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-pe' => array('language' => 'Spanish (Peru)', 'locale' => 'es_pe', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-pr' => array('language' => 'Spanish (Puerto Rico)', 'locale' => 'es_pr', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-py' => array('language' => 'Spanish (Paraguay)', 'locale' => 'es_py', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-sv' => array('language' => 'Spanish (El Salvador)', 'locale' => 'es_sv', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-uy' => array('language' => 'Spanish (Uruguay)', 'locale' => 'es_uy', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-ve' => array('language' => 'Spanish (Venezuela)', 'locale' => 'es_ve', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('et'));
		$expected = array(
			'et' => array('language' => 'Estonian', 'locale' => 'est', 'localeFallback' => 'est', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('eu'));
		$expected = array(
			'eu' => array('language' => 'Basque', 'locale' => 'eus', 'localeFallback' => 'eus', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('fa'));
		$expected = array(
			'fa' => array('language' => 'Farsi', 'locale' => 'fas', 'localeFallback' => 'fas', 'charset' => 'utf-8', 'direction' => 'rtl')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('fi'));
		$expected = array(
			'fi' => array('language' => 'Finnish', 'locale' => 'fin', 'localeFallback' => 'fin', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('fo'));
		$expected = array(
			'fo' => array('language' => 'Faeroese', 'locale' => 'fao', 'localeFallback' => 'fao', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('fr', 'fr-be', 'fr-ca', 'fr-ch', 'fr-fr', 'fr-lu'));
		$expected = array(
			'fr' => array('language' => 'French (Standard)', 'locale' => 'fra', 'localeFallback' => 'fra', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'fr-be' => array('language' => 'French (Belgium)', 'locale' => 'fr_be', 'localeFallback' => 'fra', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'fr-ca' => array('language' => 'French (Canadian)', 'locale' => 'fr_ca', 'localeFallback' => 'fra', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'fr-ch' => array('language' => 'French (Swiss)', 'locale' => 'fr_ch', 'localeFallback' => 'fra', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'fr-fr' => array('language' => 'French (France)', 'locale' => 'fr_fr', 'localeFallback' => 'fra', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'fr-lu' => array('language' => 'French (Luxembourg)', 'locale' => 'fr_lu', 'localeFallback' => 'fra', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('ga'));
		$expected = array(
			'ga' => array('language' => 'Irish', 'locale' => 'gle', 'localeFallback' => 'gle', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('gd', 'gd-ie'));
		$expected = array(
			'gd' => array('language' => 'Gaelic (Scots)', 'locale' => 'gla', 'localeFallback' => 'gla', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'gd-ie' => array('language' => 'Gaelic (Irish)', 'locale' => 'gd_ie', 'localeFallback' => 'gla', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('gl'));
		$expected = array(
			'gl' => array('language' => 'Galician', 'locale' => 'glg', 'localeFallback' => 'glg', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('he'));
		$expected = array(
			'he' => array('language' => 'Hebrew', 'locale' => 'heb', 'localeFallback' => 'heb', 'charset' => 'utf-8', 'direction' => 'rtl')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('hi'));
		$expected = array(
			'hi' => array('language' => 'Hindi', 'locale' => 'hin', 'localeFallback' => 'hin', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('hr'));
		$expected = array(
			'hr' => array('language' => 'Croatian', 'locale' => 'hrv', 'localeFallback' => 'hrv', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('hu'));
		$expected = array(
			'hu' => array('language' => 'Hungarian', 'locale' => 'hun', 'localeFallback' => 'hun', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('hy'));
		$expected = array(
			'hy' => array('language' => 'Armenian - Armenia', 'locale' => 'hye', 'localeFallback' => 'hye', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('id'));
		$expected = array(
			'id' => array('language' => 'Indonesian', 'locale' => 'ind', 'localeFallback' => 'ind', 'charset' => 'utf-8', 'direction' => 'ltr'),
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('is'));
		$expected = array(
			'is' => array('language' => 'Icelandic', 'locale' => 'isl', 'localeFallback' => 'isl', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('it', 'it-ch'));
		$expected = array(
			'it' => array('language' => 'Italian', 'locale' => 'ita', 'localeFallback' => 'ita', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'it-ch' => array('language' => 'Italian (Swiss) ', 'locale' => 'it_ch', 'localeFallback' => 'ita', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('ja'));
		$expected = array(
			'ja' => array('language' => 'Japanese', 'locale' => 'jpn', 'localeFallback' => 'jpn', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('kk'));
		$expected = array(
			'kk' => array('language' => 'Kazakh', 'locale' => 'kaz', 'localeFallback' => 'kaz', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('ko', 'ko-kp', 'ko-kr'));
		$expected = array(
			'ko' => array('language' => 'Korean', 'locale' => 'kor', 'localeFallback' => 'kor', 'charset' => 'kr', 'direction' => 'ltr'),
			'ko-kp' => array('language' => 'Korea (North)', 'locale' => 'ko_kp', 'localeFallback' => 'kor', 'charset' => 'kr', 'direction' => 'ltr'),
			'ko-kr' => array('language' => 'Korea (South)', 'locale' => 'ko_kr', 'localeFallback' => 'kor', 'charset' => 'kr', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('koi8-r', 'ru', 'ru-mo'));
		$expected = array(
			'koi8-r' => array('language' => 'Russian', 'locale' => 'koi8_r', 'localeFallback' => 'rus', 'charset' => 'koi8-r', 'direction' => 'ltr'),
			'ru' => array('language' => 'Russian', 'locale' => 'rus', 'localeFallback' => 'rus', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'ru-mo' => array('language' => 'Russian (Moldavia)', 'locale' => 'ru_mo', 'localeFallback' => 'rus', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('lt'));
		$expected = array(
			'lt' => array('language' => 'Lithuanian', 'locale' => 'lit', 'localeFallback' => 'lit', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('lv'));
		$expected = array(
			'lv' => array('language' => 'Latvian', 'locale' => 'lav', 'localeFallback' => 'lav', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('mk', 'mk-mk'));
		$expected = array(
			'mk' => array('language' => 'FYRO Macedonian', 'locale' => 'mkd', 'localeFallback' => 'mkd', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'mk-mk' => array('language' => 'Macedonian', 'locale' => 'mk_mk', 'localeFallback' => 'mkd', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('ms'));
		$expected = array(
			'ms' => array('language' => 'Malaysian', 'locale' => 'msa', 'localeFallback' => 'msa', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('mt'));
		$expected = array(
			'mt' => array('language' => 'Maltese', 'locale' => 'mlt', 'localeFallback' => 'mlt', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('nl', 'nl-be'));
		$expected = array(
			'nl' => array('language' => 'Dutch (Standard)', 'locale' => 'nld', 'localeFallback' => 'nld', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'nl-be' => array('language' => 'Dutch (Belgium)', 'locale' => 'nl_be', 'localeFallback' => 'nld', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog('nl');
		$expected = array('language' => 'Dutch (Standard)', 'locale' => 'nld', 'localeFallback' => 'nld', 'charset' => 'utf-8', 'direction' => 'ltr');
		$this->assertEquals($expected, $result);

		$result = $localize->catalog('nld');
		$expected = array('language' => 'Dutch (Standard)', 'locale' => 'nld', 'localeFallback' => 'nld', 'charset' => 'utf-8', 'direction' => 'ltr');
		$this->assertEquals($expected, $result);

		$result = $localize->catalog('dut');
		$expected = array('language' => 'Dutch (Standard)', 'locale' => 'nld', 'localeFallback' => 'nld', 'charset' => 'utf-8', 'direction' => 'ltr');
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('nb'));
		$expected = array(
			'nb' => array('language' => 'Norwegian Bokmal', 'locale' => 'nob', 'localeFallback' => 'nor', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('nn', 'no'));
		$expected = array(
			'nn' => array('language' => 'Norwegian Nynorsk', 'locale' => 'nno', 'localeFallback' => 'nor', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'no' => array('language' => 'Norwegian', 'locale' => 'nor', 'localeFallback' => 'nor', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('pl'));
		$expected = array(
			'pl' => array('language' => 'Polish', 'locale' => 'pol', 'localeFallback' => 'pol', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('pt', 'pt-br'));
		$expected = array(
			'pt' => array('language' => 'Portuguese (Portugal)', 'locale' => 'por', 'localeFallback' => 'por', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'pt-br' => array('language' => 'Portuguese (Brazil)', 'locale' => 'pt_br', 'localeFallback' => 'por', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('rm'));
		$expected = array(
			'rm' => array('language' => 'Rhaeto-Romanic', 'locale' => 'roh', 'localeFallback' => 'roh', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('ro', 'ro-mo'));
		$expected = array(
			'ro' => array('language' => 'Romanian', 'locale' => 'ron', 'localeFallback' => 'ron', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'ro-mo' => array('language' => 'Romanian (Moldavia)', 'locale' => 'ro_mo', 'localeFallback' => 'ron', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('sb'));
		$expected = array(
			'sb' => array('language' => 'Sorbian', 'locale' => 'wen', 'localeFallback' => 'wen', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('sk'));
		$expected = array(
			'sk' => array('language' => 'Slovak', 'locale' => 'slk', 'localeFallback' => 'slk', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('sl'));
		$expected = array(
			'sl' => array('language' => 'Slovenian', 'locale' => 'slv', 'localeFallback' => 'slv', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('sq'));
		$expected = array(
			'sq' => array('language' => 'Albanian', 'locale' => 'sqi', 'localeFallback' => 'sqi', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('sr'));
		$expected = array(
			'sr' => array('language' => 'Serbian', 'locale' => 'srp', 'localeFallback' => 'srp', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('sv', 'sv-fi'));
		$expected = array(
			'sv' => array('language' => 'Swedish', 'locale' => 'swe', 'localeFallback' => 'swe', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'sv-fi' => array('language' => 'Swedish (Finland)', 'locale' => 'sv_fi', 'localeFallback' => 'swe', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('se'));
		$expected = array(
			'se' => array('language' => 'Sami', 'locale' => 'sme', 'localeFallback' => 'sme', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('th'));
		$expected = array(
			'th' => array('language' => 'Thai', 'locale' => 'tha', 'localeFallback' => 'tha', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('tn'));
		$expected = array(
			'tn' => array('language' => 'Tswana', 'locale' => 'tsn', 'localeFallback' => 'tsn', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('tr'));
		$expected = array(
			'tr' => array('language' => 'Turkish', 'locale' => 'tur', 'localeFallback' => 'tur', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('ts'));
		$expected = array(
			'ts' => array('language' => 'Tsonga', 'locale' => 'tso', 'localeFallback' => 'tso', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('uk'));
		$expected = array(
			'uk' => array('language' => 'Ukrainian', 'locale' => 'ukr', 'localeFallback' => 'ukr', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('ur'));
		$expected = array(
			'ur' => array('language' => 'Urdu', 'locale' => 'urd', 'localeFallback' => 'urd', 'charset' => 'utf-8', 'direction' => 'rtl')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('ve'));
		$expected = array(
			've' => array('language' => 'Venda', 'locale' => 'ven', 'localeFallback' => 'ven', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('vi'));
		$expected = array(
			'vi' => array('language' => 'Vietnamese', 'locale' => 'vie', 'localeFallback' => 'vie', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('cy'));
		$expected = array(
			'cy' => array('language' => 'Welsh', 'locale' => 'cym', 'localeFallback' => 'cym', 'charset' => 'utf-8',
			'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('xh'));
		$expected = array(
			'xh' => array('language' => 'Xhosa', 'locale' => 'xho', 'localeFallback' => 'xho', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('yi'));
		$expected = array(
			'yi' => array('language' => 'Yiddish', 'locale' => 'yid', 'localeFallback' => 'yid', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('zh', 'zh-cn', 'zh-hk', 'zh-sg', 'zh-tw'));
		$expected = array(
			'zh' => array('language' => 'Chinese', 'locale' => 'zho', 'localeFallback' => 'zho', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'zh-cn' => array('language' => 'Chinese (PRC)', 'locale' => 'zh_cn', 'localeFallback' => 'zho', 'charset' => 'GB2312', 'direction' => 'ltr'),
			'zh-hk' => array('language' => 'Chinese (Hong Kong)', 'locale' => 'zh_hk', 'localeFallback' => 'zho', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'zh-sg' => array('language' => 'Chinese (Singapore)', 'locale' => 'zh_sg', 'localeFallback' => 'zho', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'zh-tw' => array('language' => 'Chinese (Taiwan)', 'locale' => 'zh_tw', 'localeFallback' => 'zho', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('zu'));
		$expected = array(
			'zu' => array('language' => 'Zulu', 'locale' => 'zul', 'localeFallback' => 'zul', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('en-nz', 'es-do', 'ar-lb', 'zh-hk', 'pt-br'));
		$expected = array(
			'en-nz' => array('language' => 'English (New Zealand)', 'locale' => 'en_nz', 'localeFallback' => 'eng', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'es-do' => array('language' => 'Spanish (Dominican Republic)', 'locale' => 'es_do', 'localeFallback' => 'spa', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'ar-lb' => array('language' => 'Arabic (Lebanon)', 'locale' => 'ar_lb', 'localeFallback' => 'ara', 'charset' => 'utf-8', 'direction' => 'rtl'),
			'zh-hk' => array('language' => 'Chinese (Hong Kong)', 'locale' => 'zh_hk', 'localeFallback' => 'zho', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'pt-br' => array('language' => 'Portuguese (Brazil)', 'locale' => 'pt_br', 'localeFallback' => 'por', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);

		$result = $localize->catalog(array('eng', 'deu', 'zho', 'rum', 'zul', 'yid'));
		$expected = array(
			'eng' => array('language' => 'English', 'locale' => 'eng', 'localeFallback' => 'eng', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'deu' => array('language' => 'German (Standard)', 'locale' => 'deu', 'localeFallback' => 'deu', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'zho' => array('language' => 'Chinese', 'locale' => 'zho', 'localeFallback' => 'zho', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'rum' => array('language' => 'Romanian', 'locale' => 'ron', 'localeFallback' => 'ron', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'zul' => array('language' => 'Zulu', 'locale' => 'zul', 'localeFallback' => 'zul', 'charset' => 'utf-8', 'direction' => 'ltr'),
			'yid' => array('language' => 'Yiddish', 'locale' => 'yid', 'localeFallback' => 'yid', 'charset' => 'utf-8', 'direction' => 'ltr')
		);
		$this->assertEquals($expected, $result);
	}
}

redpajama_set_name: RedPajamaGithub


text:
.. InSilicoSeq documentation master file, created by
   sphinx-quickstart on Tue May 30 11:45:01 2017.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

InSilicoSeq
============

InSilicoSeq is a sequencing simulator producing realistic Illumina reads.
Primarily intended for simulating metagenomic samples, it can also be used to produce sequencing data from a single genome.

InSilicoSeq is written in python, and use kernel density estimators to model the read quality of real sequencing data.

InSilicoSeq supports substitution, insertion, deletion errors, and models gc bias and insert size distribution.

Details
-------

* **Authors:** Hadrien Gourlé, Juliette Hayer, Oskar E. Karlsson and Erik Bongcam-Rudloff
* **Contact:** `hadrien.gourle@slu.se <hadrien.gourle@slu.se>`_
* **GitHub:** `HadrienG/InSilicoSeq <https://github.com/HadrienG/InSilicoSeq>`_
* **License:** MIT
* **Article:** `10.1093/bioinformatics/bty630 <https://academic.oup.com/bioinformatics/article/35/3/521/5055123>`_

Contents
--------

.. toctree::
   :maxdepth: 2
   :glob:

   iss/install
   iss/generate
   iss/model
   iss/iss

Indices and tables
------------------

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

.. |date| date::
.. |time| date:: %H:%M

*This documentation was generated on* |date| *at* |time|.


text:
Report of the Disney Rarities Event
This year's Disney event at the Newport Beach festival did not feature Roy E. Disney as it did last year, which sadly resulted in many empty seats. However, it did see the return of Don Hahn (Producer, Beauty and the Beast, The Lion King, Hunchback) and Dave Bossert (Director & Producer, Special Projects) introducing the wonderful program of films that are rarely seen on the big screen. Shown in 35mm were:
Prod. CS-4 "Hell's Bells" (1929) >>
Prod. US-3 "Flowers and Trees" (1932),
Prod. 2608 "The New Spirit" (1942),
Prod. 2732 "The Winged Scourge" (1943),
Prod. 2611 "Food Will Win the War" (1942),
Prod. 2643 "Out of the Frying Pan into Firing Line" (1942),
Prod. 5975-013 "Fun with Mr. Future" (1982),
Prod. 2527 "Vincent" (1982),
Glago's Guest (2008) and
a trailer for "UP", to be released May 29th 2009.
The consensus was that the films were great, with at the top of the list the Fun with Mr. Future short that previously only had been shown for a week in Westwood for Academy consideration. It features the Audio-Animatronic® head of Mr. Lincoln (but without skin!) as the show's host, and great animated sequences showing how the future would look, this possibly originally planned as a film to be shown in an EPCOT cue line. Somewhat ironic that it was directed by Darrell Van Citters and animated by Mike Gabriel - who both went in vain to Monday's Milt Kahl tribute event at the Academy in Beverly Hills!
Except for the new Glago's Guest, which to me falls in the same category as Pixar's One Man Band as a film to showcase techniques, all the other films are available on DVD, on the Treasures series or as bonus on the Nightmare Blu-Ray, but it was nice seeing them in their original format. The "special treat" at the end was a big let-down, though, as there is very little special in a regular trailer for a film that opens a month from now, as beautiful and spectacular as it may be (and it is - I very much look forward to seeing the entire film!).
<< Don Hahn and Dave Bossert
at the event in Newport Beach
Be that as it may, the event, which took an hour and a half, was very nice. Furthermore I also enjoyed seeing the Powers CinePhone variable density soundtrack next to (the first part of) Hell's Bells....
Report of the Milt Kahl Tribute
Having just returned from the Samuel Goldwyn Theater in Beverly Hills where the tribute event Milt Kahl: "The Animation Michelangelo" took place, I would like to show the program for those less fortunate who were not able to attend. First the cover: since it was in negative, next to it is an inverted version.
The program was a wonderful mix of panel discussion, film clips of Milt's work, clips of interviews with Milt including of the master while drawing, a five minute video message from Richard Williams and my favorite section: nearly an hour of Andreas Deja showing a very large stack of (copies of) drawings and discussing their virtues. Especially the (never before seen) drawings that Milt did for other animators to help them with drawing problems or start them out with a scene were amazing, and showed the level of simplicity that Milt had reached through many years of observation and hard work. Andreas Deja's exuberant enthusiasm was a large part of what made this wonderful 3¼ hour event an evening to remember!
In the lobby during the reception before the show, and afterwards as well, there was the opportunity to study some of the the many original works of art created by Milt, on loan from the Animation Research Library, my favorite being the model sheet of the squirrel from Sleeping Beauty, from which I have a Disney photostat - this was the original pencil version! As with so much of Milt's art, it looks deceptively simple. I guess one could say that Milt drew as Fred Astaire danced: after a lot of hard work, it looks effortless and beautiful - graceful, simple and timeless.
The audience in this sold-out event was a veritable who-is-who of animation, with not only many Disney alumni, but folks from across all studios paying homage to Milt Kahl, the Animation Michelangelo.
[For those of you studying animation, remember to check out the many Action Analysis Classes, animator drafts and other documents you can find on this blog! Find out how they timed the short films at Disney, and download my free animation timing metronome!]
Prod. CM20 - Mickey Cuts Up
Mickey Cuts Up was directed by Burt Gillett and released 11/30/1931.
It is found on Disney Treasures DVD: Mickey Mouse in Black & White Volume 1 disc 1. You may still find it here on YouTube. Have a look, if you need a clearer understanding of the following documents!
Gillett left some documents pertaining Mickey Cuts Up behind, and
I would like here to show a few of these that I recently lucked into.
It is interesting to speculate in which order these were written - they seem to all be in Gillett's own handwriting and would probably date to late August or early September 1931.
First we have two pages, numbered 1 & 2, with ideas linked to names, Otto and Webb, which to me seems to mean that the ideas were originally thought out by either Otto Englander or Webb Smith. There are interesting ideas that did not make the film - they are crossed out: "mower bumps up and down on hedge - trick cuts."
Some were not crossed out and made it in the film: "Cuts down tree - disclose owl on 2nd cut" and "mower biting rear end - zigzag tail."
(In the film, this tail is missing on one of the cels, and since it is repeated once, it blinks on two frames).
I find these pages especially intriguing!
Then a page with story ideas that all appear in the film. "Cut tree - return - cut branches tree - leaving owl [then added later:] HOOT."
This seems to be an attempt at a continuity for the chase.
<< Click to enlarge!
A list of possible scenes for the first part of the film, not quite like how they turned out in the end, with Pluto being mowed because he stops to scratch instead of bumping into the wall.
Finally we see a kind of script for those first scenes, that in red has possible scene divisions indicated. As you will see, it does not completely follow the actual final story. E.g. Pluto knocks into a wall, not a tree. Also we read that "hedge nods head - surprised look of Mickey" which was not executed as clearly as written here...
The short was eventually animated by the usual suspects: Johnny Cannon, Les Clark, Gerry Geronimi, Jack King, Dave Hand, Norm Ferguson, Tom Palmer, Dick Lundy and Ben Sharpsteen, who was in charge of a group of junior animators, which very likely included Marvin Woodward, Chuck Couch, Hardie Gramatky, Harry Reeves and Dick Williams. This draft of 11/25/31...
We can compare Fergy's sc. 20 and Hand's sc. 28, as both show the cat watching, then sneaking. Clearly Hand has tried to very logically "figure it out," making for quite mechanical movement, while Fergy has drawn what it feels like when a hungry cat sneaks up on a bird!
The background department at the time existed of Emil Flohri, Carlos Manriquez and Mique Nelson.
Labels: Draft, Other Disney, Shorts, Shorts_Columbia
posted by Hans Perk at 9:00 PM 1 comments
Silly Symphony CS-7 called "Autumn," produced ca. January 1930 and released 2/15/30, has long scenes of squirrels gathering nuts. Here is a drawing I have and a screengrab that goes with it. The specific animator is not known; the backgrounds are by Carlos Manriquez...
The drawing, an inbetween (note the arc for the nose!), does not fit entirely: e.g. the tail is a bit different. I suspect this was a reject that was kept by assistant Jack Cutting because of the drawing on the reverse side:
Just WHY this drawing of small people looking up at the underside of Wilfred "Jaxon" Jackson at his animation desk was made, we will probably never know for certain...
"Autumn" is an interesting Silly Symphony because it was the last one directed and (with Les Clark, Johnny Cannon and Jaxon) animated by Ub Iwerks and scored by Carl Stalling before they left Disney in the last days of January 1930. Their departure was a big blow for production, and though slated for a February 1st delivery, it opened in New York in the middle of April. [Thanks, Merritt/Kaufman!]
Ground Hog - Character Design
The 1930 Silly Symphony "Winter," CS-14, was laid out in September 15 to 27, animated September 16 to October 10, with backgrounds by the gentlemen in my previous post. It was delivered 10/22/30.
A central character in the film is the ground hog, animated first by Jack King, then dancing by Tom Palmer.
Jack King Tom Palmer
Here is a drawing I aquired a year ago: it was among the amazing documents that the film's director Burt Gillett gave to "little Jeannie" when he moved to New York back in 1934...
A note about the coloring of drawings of this period: it was the convention to paint areas indicated in blue pencil with #1 Grey, in red pencil with #2 Grey, unless a number was written in the red color...
Backgrounds in 1931
Emil Flohri and Carlos Manriquez
as drawn by
then animator Jack King in 1931.
Not long ago, March 18th to be precise, Mike Barrier described below photo, and told the story of Emil Flohri (1869-1938), the background painter we see sitting there, with his assistant Carlos Manriquez standing next to him. Until Mique Nelson joined around July 1931, this was the entire Background Department, on Hyperion Ave.!
Carlos Manriquez (10 April 1908 - Mexico, May 81) actually joined Disney before Flohri, late 1928 or early 1929, but I seem to remember reading that he left the studio around 1933 after he could not get a requested raise because he was not deemed good enough. On the other hand, Manriquez had a Disney Social Security Number, between Claude Coats and Vern Papineau, and that indicates that he still was on the Disney payroll in November 1936! [Added in 2018: he actually worked at Disney from 5/26/1929 until 5/27/1938. Flohri started 3/19/1930, with Disney until "ca. 1936."] He later had a studio in Mexico, and painted backgrounds for Warner shorts.
<< Click to enlarge...
[Note the upside-down visor/cap on top of Flohri's desk - it seems to be the same as in Jack King's caricature at the top of this post.]
It is interesting to look at details in this picture! Here we see on the left the background that Manriquez is holding - on the right a frame grab from scene 2 of the Mickey Mouse short CM-13 The Moose Hunt (rel. 5/8/31), as animated by Dave Hand.
If Manriquez was just finishing this background, which looks to be so as there is no writing on it yet, this would date the photo to around April 1931! Manriquez would just be 23 years old.
On this blog we have met Flohri before, on the draft of CM-10 The Birthday Party, released five months earlier than The Moose Hunt. The background on Flohri's table is a bit of a puzzlement to me, as I have tried to look through all of 1931's shorts for it, without any results. Here it is, adjusted for perspective... [See below!]
(Comments are welcomed!)
[Thanks to Alex Rannie, I was able to find the BG and make a little mosaic of screen grabs. It was used in CM-8 The Picnic, a Mickey short released 10/23/30, which would push the date of this photo back to late 1930. It seems likely, though, that the long BG was staged especially for the photo, as the BG for The Moose Hunt would at not have been done at the same time! Alex supports this suggestion, remarking that the background seems to have been cut loose from the backing board they normally are stretched onto during the painting process. How intriguing!]
Another interesting detail are the crusty old books on Flohri's shelves: I can just make out (after refocusing the image) that the spines read "Judge," so they may very well be bound versions of the magazine that Flohri himself illustrated, as described by Mike Barrier!
He had his claim to fame, his portfolio, right there!
Think what you want, I find this stuff fascinating!
If you like this stuff too, check out any of my previous 500 postings - that's right, the posting on "The Blend" was number 500!
posted by Hans Perk at 3:00 AM 10 comments
--The two Disney patents of Mary Louise Weiser
The Pinocchio Blu-Ray really brings home to us the amount of work that went into the creation of the beautiful imagery. The characters have a rounded look that adds dimensionality and realism to the otherwise flat surfaces. The technique used to accomplish this look is generally just referred to as "The Blend." On the Special Features one can hear noted historian J.B. Kaufman refer to it as such.
I recently found this image of Mary Louise Weiser, head of the Ink and Paint Department at the Walt Disney Studios in 1939, during the period when the techniques for painting Pinocchio and Fantasia were finalized. Ms. Weiser has two patents to her name, assigned to Walt Disney Productions: one for a formula for grease pencils (filed Nov. 14, 1939, granted Apr. 28, 1942, nr. US 2,280,988), and one for a method of adding roundness and texture to characters - in other words, "The Blend" (filed a week later, Nov. 21, 1939, granted Sept. 2, 1942, nr. US 2,254,462).
As you can see in the following, the actual patent, the "discontinuously associated translucent modifying areas adapted to impart depth to the underlying areas" - is basically just this: on the cell with the character, or on a new one on top of this, dab with a sponge, apply a lacquer or draw with grease pencil, to get an effect of roundness. In other words, The Blend just means "paint the effect on top of the cell!" No witchcraft! This is basically what they did on Snow White over two years earlier, when they applied rouge to Snow White's cheeks. The patent does go into different ways to accomplish this effect, in itself an interesting insight...
Ms. Weiser's patent for grease pencils directly refers to the above patent, and she sees these as an integral part of reaching the goal of getting a good blend-effect on the cellulose-based cells. In the wording of the patent, it would "not only permit the artist to work directly on the cells but in addition permit the artist to produce pastel effects, textures, stipples and stains capable of creating the depth and roundness referred to in the co-pending application" above!
The use of grease pencils in animation has been very well established during the 70's and 80's. I remember the quest for good pencils "as used by Richard Williams in Soho Square" during the making of Børge Ring's Anna & Bella, which we cleaned up directly with cell pencils.
(I would like to see that application by Bill Garity that was co-pending with this, on a photographic process to create the characters' lines!)
The Blend has previously been referred to as a "technique that was used:" we just knew they used "The Blend," without getting into the details. It seems clear to me now that there really were no details! In some scenes of Jiminy Cricket, we see a very smooth blend, possibly airbrushed on, or lightly applied with a small sponge - in others we see heavy clear light lines either made with a paint brush or with grease pencil. Just a lot of work, all done by hand, by "dedicated professionals."
Nowadays, of course, CG animation has this roundness built in - at times even too much of it. Hand-drawn animation gets its help from paint programs that may have the possibility of adding a shading effect like the Blend. Still, I hope that the above will give some insight into the considerations and elbow grease that went into the creation of the masterpiece that is Pinocchio. Give a kind thought to Ms. Weiser next time you watch the fruit of her labor!
[Addition: on page 189 of The Illusion of Life, you can find another image of Mary Weiser!]
Labels: Other Disney, Patents
Greetings from California...where even the Easter Eggs register on the Richter Scale! (Or at least...that is ALL we want to do so!)
<< Click On It!
Scene from Funny Little Bunnies (1934), animated by Dick Huemer.
Image courtesy of Van Eaton Galleries 2006.
Walt's Great New Plans
This article from a 1938 Photoplay magazine talks of Pinocchio, Bambi and Fantasia, at a time when only Cliff Edwards was cast, filling the roll of Jiminy Cricket.
That Bambi (prod. 2002) truly was conceived as the follow-up to Snow White (prod. 2001) is here described as a rumor, though this was the case up to about a week before Snow White's premiere, when Walt announced that Pinocchio would be proritised. In any case, the article gives us an interesting insight into Walt's plans and how much of them were public knowledge...

redpajama_set_name: RedPajamaCommonCrawl


text:
RTC25
rtc interviews
rushed reactions
best of rtc
big 4 state tournament
greatest games
mascot death match
sweetest ncaa memories
rtc modern bracket
team of the 2000s
RTC Roster
CBB Survivor '20
RTC Pick 'Em Game '20
Weekend Notebook: Big ...
big 12, feature
Inside the ACC Numbers...
ACC Stock Report: Volu...
acc, feature
Five Questions: Big Ea...
big east, feature
ACC Decade in Review, ...
Quarter-Pole Check-In ...
Is It Time to Panic in...
Big 12 Temperature Che...
ACC Feast Week in Revi...
Virginia Picking Up Ri...
Key ACC Non-Conference...
Red River Rising as Te...
This is a Different Lo...
ACC Opening Game React...
Big East Key Questions...
Big 12 Key Questions: ...
Rushed Reactions: #2 Kentucky 86, #3 UCLA 75
Posted by Bennet Hayes on March 24th, 2017
RTC is providing coverage from start to finish of the NCAA Tournament for the next three weeks.
De'Aaron Fox knifed through the UCLA defense to the tune of an NCAA Tournament-high 39 points (Photo: Justin Ford-USA TODAY Sports)
Key Takeaways.
Battle of the freshmen backcourts. It's not impossible that three of the top four picks in this June's NBA Draft occupied three of the four spots in the starting backcourts of this game. All showed flashes of brilliance, but the shine was far brighter on the Kentucky side. De'Aaron Fox darted through the UCLA defense time and time again en route to a career-high 39 points, while Malik Monk caught fire on either end of halftime, scoring 17 of his 21 points in a seven-minute stretch that straddled intermission. UCLA's Lonzo Ball got teammates involved early and finished with eight assists, but the Bruins' star never found his stroke in missing five of his six three-point attempts. There's little doubt that tonight's 40 minutes will be mentioned often during discussions of Ball and Fox's draft stock in the coming months, but the trio combined to put on the show everyone had hoped for.
Tempo quickens in second half. With two efficient, fast-paced offenses doing battle, most expected a high-possession, high-scoring game. The first half was not that – only 69 total points were scored, and most of them came in the half-court – but the second half ushered in the uptempo basketball that had been anticipated. Monk and UCLA's Bryce Alford and Isaac Hamilton took turns splashing in jumpers during a breathless first four minutes of the frame, and the Memphis crowd channeled the newfound energy on the floor. Ninety-two total second half points later, Kentucky was through to the next round and fans were fully satiated by a dazzling offensive display.
UCLA, Alford's uncertain future. The Bruins erased memories of a disappointing 2015-16 with a highlight-laden 31-win season, one that may have cooled Steve Alford's warm seat in Los Angeles yet also made him an attractive hire to one of the few programs he might consider bolting for — Indiana. The Hoosiers' coaching vacancy is unlikely to be filled without at least a call to Alford, and there's little indication he wouldn't listen to an offer from his alma mater. Apathy around the UCLA program has been difficult to fully eradicate, even during this turn-back-the-clock season, and Indiana should be able to provide Alford heavy doses of both cash and nostalgia. It's far from a certain marriage, but the uncomfortable irony of this unexpectedly successful UCLA season is that it may have been good enough to lead to a new coaching search.
Star of the Game. De'Aaron Fox, Kentucky. The Wildcats' freshman sensation played the game of his college career, scoring a career-high 39 points. He added four assists against just one turnover and thoroughly controlled a game that featured an even more hyped freshman point guard. Fox's 39 points also stand as the high point total of the NCAA Tournament (no player had gone over 30 until tonight), and they were more than enough to compensate for a sluggish night from the backcourt's supporting cast. Fox dominated tonight in Memphis.
| 2017 ncaa tournament, feature, rushed reactions | Tagged: bam adebayo, bryce alford, de'aaron fox, Derek Willis, Isaac Hamilton, john calipari, kentucky, Lonzo Ball, malik monk, south region, ucla
Pac-12 Tournament Prospectus
Posted by RJ Abeytia on March 15th, 2017
The Pac-12 ended up with fewer seeds in the NCAA Tournament than the ACC, Big 12, SEC, and Big 10. Of course, it was always quality (Arizona, Oregon, UCLA) and not quantity for the Conference of Champions this season. Outside of the ACC, no conference has three teams being hailed as legitimate Final Four threats. The questions this time of year focus on where you're trending and your presumptive path. By the time you get to a National Semifinal you are certainly going to be playing a great team, or at the very least a team playing like one. Those games match up as coin tosses in most cases, so let's focus on which of the four Pac-12 teams who qualified has the best shot of reaching Glendale.
Do Allonzo Trier and Arizona own the Pac-12's best chances of reaching the National Semifinals? (Photo: USA Today Sports)
Trending Up: Jordan McLaughlin is averaging nearly 17 points a game over his last four and has a stellar A/TO rate of 31/6 over those four games. Guard play takes center stage in the NCAA Tournament, and if the Trojans are to make more than a cameo in the round of 68, they'll need McLaughlin to keep playing at a high level this week.
Trending Down: Since posting a stellar 156 ORtg against Washington State in March 1, Bennie Boatwright has slumped to games with offensive efficiency ratings of 88, 102, and 83 amidst an 8-28 field goal shooting stretch. USC is not a great offensive team and they struggle in the halfcourt; without Boatwright at max efficiency working to stretch defenses and convert in the paint, USC isn't long for this week.
Final Four: The Trojans were on a three-game winning streak before UCLA dispatched them in the quarterfinals of the Pac-12 Tournament. USC didn't make it easy for the Bruins, however, and in the last four games found an offensive groove, posting efficiency ratings well over national average in its three wins. The loss to UCLA showed they could hang with an elite team despite subpar performances from Boatwright, Chimezie Metu, and De'Anthony Melton. Coming off a loss, it'd be wrong to say the Trojans are streaking, but they are playing good ball.
| 2017 ncaa tournament, microsites, pac 12 | Tagged: allonzo trier, arizona, Bennie Boatright, bryce alford, chimezie metu, chris boucher, dana altman, de'anthony melton, Dillon Brooks, Isaac Hamilton, john calipari, jordan mclaughlin, Kobi Simmons, Lonzo Ball, oregon, Rawle Alkins, roy williams, sean miller, steve alford, T.J. Leaf, Tyler Dorsey, ucla, usc
For UCLA, It's Defend or Die…
Posted by RJ Abeytia on January 25th, 2017
The second game of six between the three best teams in the Pac-12 was an undeniably entertaining epic that left Arizona reinvigorated as a Final Four contender and UCLA with a clear ultimatum: Defend or die. It's not like the Bruins had convinced anyone that they were a solid defensive team to this point in the season — UCLA entered the game hovering around the middle of the Pac-12 in defensive efficiency. The Bruins' marquee win in Lexington over Kentucky came on the strength of their offense (1.17 PPP) and their only other loss came to an Oregon team they ultimately couldn't defend (1.24 PPP). The national spotlight tends to expose and crystallize the flaws of even the elite teams in college basketball, and Arizona on Saturday in Pauley Pavilion exposed UCLA's middling defense as an Achilles' Heel that may very well short-circuit a deep NCAA Tournament run.
Without a semblance of defense, UCLA's tourney life might be cut short. (USA TODAY)
The Bruins' major issue against the Wildcats was defending the paint via the drive. Kobi Simmons, Kadeem Allen and the newly-eligible Allonzo Trier pounded the paint relentlessly, often singularly focused on their easy target, UCLA guard Bryce Alford. Alford is having an exceptional season playing off the ball next to All-Universe Point Guard Lonzo Ball, but the senior was no match for the physicality and athleticism of Allen, who relentlessly attacked the basket when isolated against him. Arizona's 34 points in the paint was also a result of mediocre post defense. Dusan Ristic contributed 11 points; Chance Comanche 10; and Lauri Markannen, he of the skyrocketing draft stock, repeatedly took TJ Leaf well outside his defensive comfort zone in nailing 3-of-4 from behind the three-point line as well as grabbing the offensive board and ensuing dunk that effectively ended the contest. Read the rest of this entry »
| feature, microsites, pac 12 | Tagged: aaron holiday, allonzo trier, arizona, bryce alford, kadeem allen, Kobi Simmons, Lauri Markannen, Lonzo Ball, steve alford, tj leaf, ucla
Weekly Pac-5: Spot Up Shooters
Posted by Adam Butler on December 9th, 2016
An open three-pointer is a simpler three-pointer. There are a few ways someone can get open for basketball's highest value shot: dribbling by yourself; letting someone else attract the defense; or running off of screens set by teammates. These options (and I've indubitably missed some) are listed in order of increasing participation. Which is to say, scenario one takes just one player; scenario two requires a pair; and scenario three needs — at a minimum — three. As we learned in kindergarten, sharing is caring and there is no "I" in team. Greater involvement often lends itself to greater success. These elementary insights may not be the core reason you visit RTC's Pac-12 microsite, but if the objective of the sport is to optimize shot-making or shot-stopping, then perhaps it's a worthwhile exploration. Because we'd like to know who is best suited to make this team-built open shot? In this week's segment of the Weekly Pac-5, we'll discover and list the best spot-up shooters in the Pac-12.
Isaac Hamilton is the best long-range shooter in the Pac-12. (photo by Don Liebig)
These are the players, loosely defined, whose teams are going to make an effort to get them open. Through planning and screening, it's a worthwhile endeavor to get these dudes open from distance. We'll quantify it by the number of assisted threes made, as this suggests an open, quality shot in which one player has recognized the other's advantageous, shot-making position. If assisted, the assumption is that our shooter has set his feet and evaded the defense with some assistance of his teammates. He is not running amok, wildly crossing over, stepping back or doing all of the moves you loathe as a fan (and cherish as a fan of Steph Curry). Consider that Klay Thompson scored 60 points on 20 assisted baskets (he made 21 field goals in total) earlier this week. For your further consideration and long-term focus, Pac-12 point guards have been outstanding thus far. Lonzo Ball's success is well-documented, as is Markelle Fultz's, but there are five other players averaging more than four assists per game. Nice distribution! Read the rest of this entry »
| feature, microsites, pac 12 | Tagged: bryce alford, David Crisp, elijah stewart, Isaac Hamilton, Lonzo Ball, Markelle Fultz, Torian Graham
Heading to Kentucky — How Good is UCLA?
Posted by Mike Lemaire on December 2nd, 2016
Few teams in the country have done more to burnish its reputation in the first three weeks of the season than UCLA. Armed with two of the most impressive freshmen and arguably the deepest backcourt in the country, UCLA cruised past the competition to win the Wooden Legacy Tournament and, through eight games, has yet to encounter an opponent capable of handling its offensive firepower. The Bruins lead the country in effective field goal percentage (63.8%), are second in the country in three-point shooting (45.6%), are third in the country in two-point shooting (61.1%) and are 22nd in the country in turnover percentage (15.6%). Put simply, the Bruins are playing faster than their opponents (roughly a quarter of their field-goal attempts come in transition), can create whatever scoring opportunities they want and are taking excellent care of the ball. All of that is likely to change on Saturday when UCLA travels to Lexington for the marquee college basketball matchup of the weekend. But then, and only then, will it be time to truly evaluate just how good this team can be.
Lonzo Ball and UCLA Have Made Plenty of Waves Early In The Season (Photo: SI)
Still, there is a lot to love about how UCLA has played in those eight games this season. Lonzo Ball and T.J. Leaf have been even better than expected; five different Bruins are shooting 40 percent or better from downtown; and the big men – Leaf and Thomas Welsh – have proven to be the perfect complement to the team's loaded backcourt. There is nothing presumptive in stating that UCLA is now the favorite to win the Pac-12. Before we lock it into stone, however, it is worth wondering how much of UCLA's early start is sustainable. The schedule hasn't been downright embarrassing, but it hasn't been all that good either. The team has yet to leave the Golden State, and while games against Nebraska and Texas A&M were technically held at neutral sites, a quick Google Maps search shows that Westwood is just a bit closer to Anaheim than either Lincoln or College Station. The Cornhuskers and Aggies were worthy opponents, but Rupp Arena on a December afternoon is going to be a completely different atmosphere and it will be interesting to see how Steve Alford's team handles the pressure.
| feature, microsites, pac 12 | Tagged: bryce alford, Isaac Hamilton, Lonzo Ball, tj leaf, ucla
It's a Make or Break Week for the Pac-12
Posted by RJ Abeytia on November 30th, 2016
After a sizzling opening weekend followed by some Feast Week struggles, the Pac-12 finds itself facing a potential do or die week in terms of its national perception. Three teams will be front and center this week under the bright lights of ESPN and CBS, and after 71 games and even with all of December left, chances are it will be this week's main events that set the tone for the Pac-12 come March. Part of the concentration on these games stems from factors out of the league's control. Oregon's injury issues have left it a shell of the team most expected it to be come March — the Ducks have already dropped games to Baylor and Georgetown without the services of Dillon Brooks (and have looked shaky even with him back). While the committee will factor Oregon's injuries into its analysis, that doesn't help the Pac-12's overall profile. And that brings us to this week, starting this evening on the Peninsula.
St. Mary's at Stanford: Wednesday 11/30 8:00 PM PT (Pac-12 Bay Area)
Jerod Haase and Stanford have a monster week ahead of them, including a trip to Haase's alma mater where dreams tend to fade. (Tahoe Daily Tribune)
Not only is the Pac-12 counting on Stanford — the team picked to finish 10th in the league standings this season — but the Cardinal actually have two games with national ramifications this week. First, Randy Bennett's St. Mary's bunch (11th nationally, per KenPom) comes to Maples Pavilion tonight. The Gaels may not yet be a nationally-renowned name, but they drilled Stanford last season and will be a contender in a league (WCC) that has been quite the thorn in the side of the Pac-12 in recent years. This is one of two big Pac-12/WCC showdowns this week, and while it's definitely the undercard, it's still a big game for both teams and conferences.
UCLA at Kentucky: Saturday 12/3 9:30 AM PT (CBS)
| feature, microsites, pac 12 | Tagged: arizona, baylor, bryce alford, Dillon Brooks, georgetown, gonzaga, jerod haase, john calipari, kansas, kentucky, Lonzo Ball, oregon, st mary's, stanford, steve alford, ucla
Pac-12 Burning Questions: Is UCLA Any Good?
Posted by Adam Butler on November 3rd, 2016
This is easily the most basic of any of our burning questions but it feels completely legitimate. UCLA finished 15-17 last season and we could stop right there to qualify the question. Steve Alford returns much of the roster that played selective defense last season and ultimately led the hand of its coach into a formal letter of apology. Sure, there might have been some injuries, but this is UCLA basketball – something fans have been squawking about since mid-to-late-Ben Howland – and as Steve Alford noted at Pac-12 Media Day, there are consequences in failing to uphold what it means to be a UCLA basketball player, coach or team. The nice thing about an offseason is that it allows you get healthy. The nicer thing about an offseason is it allows you to bring in new players. The nicest thing about an offseason is that your last season ends. The Bruins will welcome back their frontcourt depth with Gyorgy Goloman and Alex Olesinski being veteran returnees who will start the season (and hopefully finish it) healthy. They'll also introduce Ike Anigbogu (hulking center) and TJ Leaf (skilled power forward) as freshmen. Of course, Thomas Welsh also returns his well-developed skill set to the starting center role.
Thomas Welch is UCLA's top returning standout. Is he enough? (Andy Lyons/Getty Images)
But as this is UCLA basketball and there's much to like about Welsh's offensive game, the Bruins' question marks center around the defensive end. Does a team improve its defense with freshmen? Not usually. Furthermore, UCLA has spent the last few seasons masking their defensive flaws with an opportunistic zone that has been headed by some unique talents (if not bodies) in Kyle Anderson, Kevon Looney and Jonah Bolden (trying early departure from last year's team). Each of these players was a lengthy forward with ball skills. This roster lacks that player. What this roster doesn't lack is guards. Alford returns a veteran lot but it is also the same lot that didn't play defense last year and a reminder of why the Bruins played zone defense. Bryce Alford and Isaac Hamilton are both very talented scorers, but will their senior campaigns lend itself to a defensive renaissance? Adding Lonzo Ball to the mix is something any coach would want to do but another talented passer and shooter isn't necessarily what this team needs. Of course adding talent is never a bad thing, and to that extent the Bruins should absolutely be expected to improve (which, granted, is not hard to do from two games under .500).
What I see on this roster are improvements at positions that didn't necessarily need improving. And while I can agree that the previous sentence is oxymoronic (when you're sub-.500, you absolutely need to improve), I would prefer that this group show me why they're a top 20 team in the preseason national polls. The depth chart over UCLA's final five games last year (per KenPom) was Bryce Alford, Aaron Holiday, Isaac Hamilton, Jonah Bolden and Thomas Welsh. How much better can that group defend when you toss in some pups?
| feature, microsites, pac 12 | Tagged: bryce alford, Lonzo Ball, steve alford, Thomas Welch, ucla
Burning Questions: Pac-12's Best Wing
Posted by Mike Lemaire (@Mike_Lemaire), Adam Butler (@pachoopsab) and Andrew Murawa (@Amurawa) on January 22nd, 2016
We started out by assessing the Pac-12 point guards. Last week we moved onto the big men. This week we're looking at the slashers and shooters (sounds dangerous) manning the wing in the conference. We asked three of our guys: who's the best wing in the Pac, and unlike those first two questions (where Payton and Poeltl were heavy favorites), this one is wide open. Answers below.
Adam Butler: I always struggle with whether or not to call the college basketball season a sprint or a marathon. It's easy to equate it to both, knowing that November losses can be meaningless with a strong sprint to the finish. Conversely, sprinting out of the gate (i.e. Washington last season) doesn't alway suggest super success. This, of course, is a lead to consider that so long as you can endure the marathon and garner an invitation to the sprint (March Madness) your team is best suited by having the best players. I don't care about your efficiencies, team chemistry, peaking, drowning, front court, back court, history — if you have the best players in the NCAA tournament you have a chance. Jaylen Brown might be the best player. His shooting stroke leaves something to be desired (28% isn't good from three), but as the game trends towards the rim, so too does Brown's. The 6'7″ power wing is connecting on 72% of his attempts at the rim. Furthermore, 45% of all his attempts are at the rim. Ipso facto, as math would suggest, Brown is getting lots of easy buckets. And if they're not easy buckets, they're free throws (10th highest FT rate in the conference). For some context surrounding his rim abilities, Stanley Johnson — a similarly sized power wing — took just 29% of his shots at the rim, connecting on only 53% of those attempts. I'd like to see him curb his turnovers and hit a few more jumpers if we're considering his NBA prospects, but when it comes to bullying NCAA players, Brown might be my first pick.
Jaylen Brown's Ability To Bully Smaller Players Gets Him One Vote. (USA Today)
Mike Lemaire: In terms of potential and ability, California's Jaylen Brown is probably the easy answer. But in terms of production and importance to his team's success, it is a close race between UCLA's Bryce Alford and Oregon's Dillon Brooks. Alford is fifth in the conference in scoring (16.9 PPG); he is tied for second in assists per game (5.2 APG); and he leads the conference in free-throw percentage. Brooks is ninth in the conference in scoring (15.5 PPG); he is 14th in the conference in rebounding (6.6 RPG); and he is right behind Alford at second in free-throw percentage. Also, both guys play more than 30 minutes per game and have similar usage rates. It comes down to Brooks' vastly superior defense vs. Alford's vastly superior shooting. In a pinch, the pick here is Brooks because he has a big impact on the game at both ends of the floor. Read the rest of this entry »
| microsites, pac 12 | Tagged: allonzo trier, bryce alford, Dillon Brooks, Jaylen Brown
UCLA: Predictably Unpredictable?
Posted by Andrew Murawa on January 8th, 2016
Conventional wisdom on UCLA, after taking down KenPom #16 Arizona on Thursday night to pair with earlier wins over then-#2 Kentucky and then-#19 Gonzaga, is that the Bruins are inconsistent and unpredictable. And conventional wisdom, as is often the case, may only be partially right. The more complete argument may be that the Bruins are consistent in their inconsistency and predictable in their unpredictability. This isn't one of those riddle, wrapped in a mystery, inside an enigma bits of nonsense. There's a method to UCLA's madness. Let's dig in.
Just Another Predictable Night In Westwood (ESPN)
First, let's take a look at the current landscape of college basketball. Again, using those KenPom rankings, Virginia is ranked sixth in the nation and has lost road games to George Washington (#72) and Virginia Tech (#119). Miami is ranked 10th and the Hurricanes took a home loss to Northeastern (#81). North Carolina was the AP preseason #1 team and currently ranks 11th in KenPom; the Tar Heels have suffered road losses to Northern Iowa and Texas. Dig a bit further down the rankings and there are many other examples of big-time teams losing to small-time teams. It's been said that there aren't any great teams this year, and that may well be true (although reserving that judgment until all of the classwork is in might be in order), but more to the point, there just may be less of a difference this season between the top team and the 50th-best team in the country than ever before. And perhaps more to the point, there is almost assuredly less difference between a team like the 10th-best team and the 90th-best team. In other words, big time teams are susceptible to taking losses against lesser ones, especially when they go on the road.
| feature, microsites, pac 12 | Tagged: aaron holiday, arizona, bryce alford, tony parker, ucla
What Went Right For UCLA That Has Gone Wrong So Far
Posted by Andrew Murawa on December 4th, 2015
24-0. 41-7. 61-20. 83-44. No, this is not my high school locker combination. Rather, a handful of snapshots of scores during the Kentucky/UCLA game in Chicago about 50 weeks ago. Those scores and that domination will never go away. But on Thursday night, the Bruins began to earn back some of the capital they tossed away that Saturday afternoon nearly a year ago. Along the way, they also began to bounce back from their early-season underachieving ways, putting losses to Monmouth and Wake Forest behind them for the time being. Below, here are four, er, five things that went right for UCLA on Thursday night — things that haven't been going right in recent days, weeks, months and years.
UCLA Fans: It's OK to Be A Fan (UCLA Athletics)
Fan Support. It's a funny thing that fans can overreact to one way or the other. Great fan support and a raucous crowd in the arena and fans walk out thinking they may as well be part of the team. Empty arena as quiet as a library and fans walk out blaming the team for playing without passion and energy. Two sides of the same coin. For the better part of the past half-decade, Kentucky has been the exemplar of the first scenario. Sure, they've had great talent, but you're can't tell me that playing to a packed house at home every night hasn't contributed to a win or two here and there that wouldn't have otherwise happened. UCLA, on the other hand, has been exhibit A for option B. Talented players playing a fun brand of basketball in a great college arena in front of sparse crowds, leading to head scratching losses that an overly critical fan base blames on the coach, the administration and the players, rather than their collective self. Thursday night in Pauley Pavilion showed what a boost an actually supportive crowd can provide to a group of players in need of some confidence. Sure, no one is going to mistake Pauley last night for the great atmospheres in college basketball. Empty seats in the lower bowl were masked by yellow giveaway t-shirt deep into the first half. But, there was a visible and vocal crowd, something that has become the exception rather than the rule. Extra special mention is reserved for the Bruin student section. And, for that one night, the entirety of Bruin fans deserve at least some credit. The truth is, UCLA fans, UCLA students, you guys had some small part in this win tonight. Flip that coin the other way and recognize the other truth: you guys had some small part in that Monmouth loss as well. You can't expect to be a great program on the level of Kentucky, Duke, Kansas, Michigan State, etc., when you're not providing fan support on the level of those great programs. One little tip: it's okay to get into your seats early prior to the game (traffic on the 405 is not a legit excuse) and return from halftime (Komodo food truck, also not a legit excuse) in time second-half action. Read the rest of this entry »
| microsites, pac 12 | Tagged: aaron holiday, bryce alford, feature, Isaac Hamilton, Jonah Bolden, kentucky, Prince Ali, Thomas Welsh, tony parker, ucla
Weekend Notebook: Big 12 Elite Hit the Road
It's been a strange year around college basketball, and in some ways, the Big 12 is no different. Yes, Baylor and ...
Ten Questions To Consider: Bumps in the Road Lead to Weekend of Opportunity
With each passing week, familiarity breeds competitive action everywhere one looks. This weekend provides opportunities for ...
ACC Stock Report: Volume IV
Stock Rising What a Wild Four-Day Stretch for Clemson Basketball (USA Today Images) Clemson. Weeks don't come much better ...
Five Questions: Big East Midseason
It feels like just yesterday that the season was tipping off and we were examining the biggest questions each Big East team ...
2019-20 RTC16: Week Nine
Much of the narrative surrounding college basketball this season has been how any team can win on any night and how this ...
What's Trending: Out With the Old and In With the New
What's Trending is a column examining the week that was in college basketball social media. Matthew Eisenberg (@matteise) is ...
ACC Decade in Review, Part 2: The Five Best Players
As the new new decade gets under way, it's a good time to reflect on the past 10 years of basketball in the ACC. Recently, ...
10 Questions To Consider: A Weekend of Marquee Matchups and Important Conference Games
With each passing day March inches closer and closer. As conference play continues, this weekend includes a key match-up ...
2019-20 RTC16: Week Eight
The beginning of conference play is always good for temporarily removing the shine from a team or two that had been a ...
2019-20 RTC16: Week Six
Another week of the season has been completed and another #1 team fell victim to an upset. Like Michigan State, Kentucky, ...
rushthecourt@yahoo.com
© 2020 rush the court. all rights reserved. "Partner of USA TODAY Sports Digital Properties"
Theme designed & developed by Eric King


text:
May 29, 2013 May 31, 2013 by PlayLegit
Our five most anticipated games of 2013
Real Talk By: KJ
The top games we look forward to playing in 2013 (pre E3 at least). We've already had some hot titles make their way to shelves. Game of the year contenders no doubt. Heavy hitters such as BioShock Infinite, Tomb Raider, and Fire Emblem Awakening to name a few are in stores right now. This leaves us with the rest of the year. Were curious. What's still cooking in the kitchen? It's only going to get more interesting for gamers all over the globe.
5. Project X Zone
This is an import that we never thought would make it stateside. Its always the coolest crossovers that US fans continue to get deprived of (Cough* Jump Ultimate Stars *cough). This is an RPG exclusive to the Nintendo 3DS, which lets players control characters across the world of SEGA, Namco, and Capcom. Project x Zone is about team gameplay. If you wanted a team of Zero, Akira Yuki, and Ryu, you can make it happen. Fighting together and seeing combos chain takes us back to the glory days of Marvel vs. Capcom 2., this is the only place it can be done. Project x Zone releases June 25th, 2013
This platformer has received multiple delays. Origin's was an instant classic with its fantastic gameplay, and charming soundtrack. From everything we've played, this will be no different. Wii U gamers ( as we speak) are currently enjoying the long wait in style. Ubisoft has daily challenges that lets gamers compete against their friends, and everybody around the world. The levels are different every single day, and a weekly stage is there as well. players have 7 days to top the leaderboards stacking up the bonus points. Rayman Legends releases September 3, 2013
3. The Last of us
The zombie genre isn't going anywhere, and many have cashed in on it. While several outings have been standard, Naughty Dog always brings something fresh to the table. This is why it has emerged onto our list so easily. This third person adventure brings it in the graphics department, but more importantly from an emotional standpoint. The two leads have been forced to work together to survive in this world. It's a constant struggle in a post apocalyptic setting. From the videos, we see that nothing comes easy and survival is truly earned in this game. The studio has been tight-lipped on the multiplayer component, and its only sparking up our interest more. The last of Us arrives June 14, 2013 exclusively on PS3.
2. Watch Dogs
This open world tech based game, leaves plenty of opportunities for new gaming experiences. This is a major multiplatform game. Watch Dogs is coming to every system imaginable, including next-gen consoles. Players will be able to hack into the city's operating systems to get through goals. Early videos showed lead character Aiden Pierce, changing up traffic patterns causing a massive car wreck. The game features parkour action, hand to hand combat, and some stealth sequences. Watch Dogs will be available November 19, 2013
1. Grand theft Auto V
One of the most consistently great franchises in gaming history Grand Theft Auto, is back with its newest game. GTAV for the first time, revolves around three characters. Players will switch between Franklin, Michael, and Trevor. Seeing missions from their different perspectives will add more to the replay value. Exploring the re-imagined city of Los Santos will be a game in its own right. Rockstar is saying that it's their biggest open world they've ever put together. Expect multiplayer to be even more chaotic (and hopefully less laggy), and more activities than ever before.
Honorable Mention: The Wonderful 101
We miss a spot? Tell us below, or @PlayLegit
Posted in News, Real TalkTagged Capcom, Grand theft auto V, Project X Zone, PS4, Rayman Legends, Sega, The Last of Us, Ubisoft, Watch Dogs, Wii U, Xbox One
Previous Highlight Deals 5/28/13
Next Fast and Furious: Showdown Review


The EasyUEFI Development Team in Utilities \ Misc. Utils.
WinToHDD is a free, handy and useful software which allows you to install or reinstall Microsoft Windows 10/8.1/8/7/vista & Windows Server 2016/2012/2008 without using a CD/DVD or USB drive. With this All-in-One Microsoft Windows Deployment Tool, you can easily reinstall Microsoft Windows, install Microsoft Windows onto disks other than the one where your Microsoft Windows operating system is installed, or clone existing Windows OS installation (Windows vista or later) to other disk. Furthermore, you can use it to create a Windows installation USB containing all your Windows installation ISO files (including Windows 10/8.1/8/7/vista & Windows Server 2016/2012/2008, both 64 & 32 bits), then you can install Windows 10/8.1/8/7/vista & Windows Server 2016/2012/2008 from the same USB drive on both BIOS and UEFI computers.
Reinstall Windows directly from ISO, WIM, ESD without using a CD/DVD or USB drive.
Install Windows onto a second hard drive directly from ISO, WIM, ESD without using a CD/DVD or USB drive.
Clone Windows operating system to new hard disk or SSD.
Hot clone Windows without restarting the clone source computer.
Install any version of Windows 10/8/7/Vista & Windows Server (64 & 32 bits) from same USB drive on both BIOS and UEFI computers.


text:
ZIMBABWE: Government rehabilitates more than 161km of road network
US$900 million has been reserved for Zimbabwe road construction projects as the country moves to restore and resurface over 161 km of roads for the Road Development Programme.
This marks the most significant progress in the past two decades to reverse the decay of the country's road infrastructure. The Zimbabwe road construction projects aim to construct trafficable world-class roads for public convenience and to boost economic activity.
So far, significant headway has been made in all the country's eight rural provinces for projects that had been planned for this year according to a report compiled by the Department of Works, which falls under the Ministry of Transport and Infrastructural Development.
In Mashonaland Central, the laying of asphalt over the 2,7-kilometre stretch of the Bindura-Mt Darwin-Mukumbura road has been completed. Construction on a 16km stretch of the Mt Darwin to Mukumbura road is now 78 per cent (12,8 km) complete, while 80 per cent has been covered on the planned 10km stretch of the St Albert- Dotito road. The laying asphalt on the Guruve-Kanyemba road is halfway through completion. Another great accomplishment the country has seen is the completion of the Norton road-over-rail bridge, which will be commissioned soon along with the dualisation of the Harare-Mutare road managed to cover 11km of the planned 16km.
Initially, Geiger International, an Austrian company, was awarded the tender for rehabilitating the road which was meant to begin in 2016, but endless delays forced the Government to cancel the tender.
Overall, Government plans to upgrade 781km of Zimbabwe's road network, re-gravel 483km and construct 22 bridges.
Morocco granted US$61.8m for water projectsTanzania Plans New Airport In Dodoma