text:
grammar 'source.d' do
  comment 'D language'
  file_types %w(d di)
  key_equivalent '^~D'
  name 'D'
  uuid 'D7C3A109-0466-4C28-9ECF-10753300FF46'
  first_line_match '^#!.*\bg?dmd\b.'

  pattern 'comment.block.empty.d' do
    match '/\*\*/'
    capture 0, 'punctuation.definition.comment.d'
  end

  pattern { include 'text.html.javadoc' }

  pattern 'meta.other.debug.d' do
    match '\s*(\b(deprecated|unittest|debug)\b|((static)\s+)?(assert))'

    capture 2, 'keyword.other.debug.d'
    capture 4, 'keyword.other.debug.d'
    capture 5, 'keyword.other.debug.d'
  end

  pattern 'meta.version.d' do
    match '(?x)^\s*
					(else\s+)?(version)\s*
					\(\s*
					((DigitalMars|
					GNU|
					LDC|
					SDC|
					Windows|
					Win32|
					Win64|
					linux|
					OSX|
					FreeBSD|
					OpenBSD|
					NetBSD|
					DragonFlyBSD|
					BSD|
					Solaris|
					Posix|
					AIX|
					Haiku|
					SkyOS|
					SysV3|
					SysV4|
					Hurd|
					Android|
					Cygwin|
					MinGW|
					FreeStanding|
					X86|
					X86_64|
					ARM|
					ARM_Thumb|
					ARM_SoftFloat|
					ARM_SoftFP|
					ARM_HardFloat|
					AArch64|
					Epiphany|
					PPC|
					PPC_SoftFloat|
					PPC_HardFloat|
					PPC64|
					IA64|
					MIPS32|
					MIPS64|
					MIPS_O32|
					MIPS_N32|
					MIPS_O64|
					MIPS_N64|
					MIPS_EABI|
					MIPS_SoftFloat|
					MIPS_HardFloat|
					NVPTX|
					NVPTX64|
					SPARC|
					SPARC_V8Plus|
					SPARC_SoftFloat|
					SPARC_HardFloat|
					SPARC64|
					S390|
					S390X|
					HPPA|
					HPPA64|
					SH|
					SH64|
					Alpha|
					Alpha_SoftFloat|
					Alpha_HardFloat|
					LittleEndian|
					BigEndian|
					D_Coverage|
					D_Ddoc|
					D_InlineAsm_X86|
					D_InlineAsm_X86_64|
					D_LP64|
					D_X32|
					D_HardFloat|
					D_SoftFloat|
					D_PIC|
					D_SIMD|
					D_Version2|
					D_NoBoundsChecks|
					unittest|
					assert|
					none|
					all)|(darwin|Thumb)|([A-Za-z_][A-Za-z0-9_]*))
					\s*\)'

    capture 1, 'keyword.control.version.d'
    capture 2, 'keyword.control.version.d'
    capture 4, 'constant.language.version.d'
    capture 5, 'invalid.deprecated.version.d'
  end

  pattern 'meta.control.conditional.d' do
    match '\s*\b((else|switch)|((static)\s+)?(if))\b'

    capture 2, 'keyword.control.conditional.d'
    capture 4, 'keyword.control.conditional.d'
    capture 5, 'keyword.control.conditional.d'
  end

  pattern 'meta.definition.class.d' do
    self.begin '(?x)^\s*
					((?:\b(public|private|protected|static|final|synchronized|abstract|export|shared)\b\s*)*) # modifier
					(class|interface)\s+
					(\w+)\s* # identifier
					(?:\(\s*([^\)]+)\s*\)|)\s* # Template type
					(?:
					  \s*(:)\s*
					  (\w+)
					  (?:\s*,\s*(\w+))?
					  (?:\s*,\s*(\w+))?
					  (?:\s*,\s*(\w+))?
					  (?:\s*,\s*(\w+))?
					  (?:\s*,\s*(\w+))?
					  (?:\s*,\s*(\w+))?
					)? # super class
					'
    self.end '(?={|;)'

    begin_capture 1, 'storage.modifier.d'
    begin_capture 3, 'storage.type.structure.d'
    begin_capture 4, 'entity.name.type.class.d'

    begin_capture 5 do
      pattern { include '$base' }
    end

    begin_capture 6, 'punctuation.separator.inheritance.d'
    begin_capture 7, 'entity.other.inherited-class.d'
    begin_capture 8, 'entity.other.inherited-class.d'
    begin_capture 9, 'entity.other.inherited-class.d'
    begin_capture 10, 'entity.other.inherited-class.d'
    begin_capture 11, 'entity.other.inherited-class.d'
    begin_capture 12, 'entity.other.inherited-class.d'
    begin_capture 13, 'entity.other.inherited-class.d'

    pattern 'meta.definition.class.extends.d' do
      self.begin '\b(_|:)\b';
      self.end '(?={)';

      capture 1, 'storage.modifier.d'
      pattern { include '#all-types' }
    end

    pattern { include '#template-constraint-d' }
  end

  pattern 'meta.definition.struct.d' do
    self.begin '(?x)^\s*
					((?:\b(public|private|protected|static|final|synchronized|abstract|export|shared)\b\s*)*) # modifier
					(struct)\s+
					(\w+)\s* # identifier
					(?:\(\s*([^\)]+)\s*\)|)\s* # Template type
					'

    self.end '(?={|;)'

		begin_capture 1, 'storage.modifier.d'
		begin_capture 3, 'storage.type.structure.d'
		begin_capture 4, 'entity.name.type.struct.d'

    begin_capture 5 do
      pattern { include '$base' }
    end

    pattern 'meta.definition.class.extends.d' do
      self.begin '\b(_|:)\b'
      self.end '(?={)'
      capture 1, 'storage.modifier.d'
      pattern { include '#all-types' }
    end

    pattern { include '#template-constraint-d' }
  end

  pattern 'meta.definition.constructor.d' do
    self.begin '(?x)^\s*
					((?:\b(public|private|protected|static|final|synchronized|abstract|export)\b\s*)*) # modifier
					(\b(this))\s* # identifier
					(?=\()'

    self.end '(?={|;)'

    capture 1, 'storage.modifier.d'
    capture 3, 'entity.name.function.constructor.d'

    pattern { include '$base'}
  end

  pattern 'meta.definition.destructor.d' do
    self.begin '(?x)
    				(?:  ^                                 # begin-of-line
    				  |  (?: (?<!else|new|=) )             #  or word + space before name
    				)
					((?:\b(?:public|private|protected|static|final|synchronized|abstract|export)\b\s*)*) # modifier
    				(~this) # actual name
    				 \s*(\()                           # start bracket or end-of-line
    			'
    self.end '\)'

    capture 1, 'storage.modifier.d'
    capture 2, 'entity.name.function.destructor.d'

    end_capture 0, 'punctuation.definition.parameters.d'
    pattern { include '$base' }
  end

  pattern 'meta.definition.method.d' do
    self.begin '(?x)^\s*
					((?:\b(?:public|private|protected|static|final|synchronized|abstract|export|override|auto|nothrow|immutable|const|inout|ref|shared)\b\s*)*) # modifier
					(?:(_|\w[^\s]*))\s+ # return type
					(\w+)\s* # identifier
					(?=\()'

    self.end '(?={|;)'

		begin_capture 1, 'storage.modifier.d'

    begin_capture 2 do
      pattern { include '$base' }
    end

		begin_capture 3, 'entity.name.function.d'

    pattern { include '$base' }
    pattern { include '#block' }
  end

  pattern 'meta.traits.d' do
    self.begin '(?x)^\s*
					(__traits)
					\(
					(isAbstractClass|
					isArithmetic|
					isAssociativeArray|
					isFinalClass|
					isPOD|
					isNested|
					isFloating|
					isIntegral|
					isScalar|
					isStaticArray|
					isUnsigned|
					isVirtualFunction|
					isVirtualMethod|
					isAbstractFunction|
					isFinalFunction|
					isStaticFunction|
					isOverrideFunction|
					isRef|
					isOut|
					isLazy|
					hasMember|
					identifier|
					getAliasThis|
					getAttributes|
					getFunctionAttributes|
					getMember|
					getOverloads|
					getPointerBitmap|
					getProtection|
					getVirtualFunctions|
					getVirtualMethods|
					getUnitTests|
					parent|
					classInstanceSize|
					getVirtualIndex|
					allMembers|
					derivedMembers|
					isSame|
					compiles)
					,'

    self.end '\);'

		begin_capture 1, 'keyword.other.special.d'
		begin_capture 2, 'constant.language.traits.d'

    pattern { include '$base' }
  end

  pattern 'meta.external.d' do
    match '(extern)(\s*\(\s*(((C\+\+)(\s*,\s*[A-Za-z_][A-Za-z0-9._]*)?)|(C|D|Windows|Pascal|System))\s*\))?'

    capture 1, 'keyword.other.external.d'
    capture 5, 'constant.language.external.d'
    capture 7, 'constant.language.external.d'
  end

  pattern 'constant.other.d' do
    match '\b([A-Z][A-Z0-9_]+)\b'
  end

  pattern { include '#comments' }
  pattern { include '#all-types' }

  pattern 'storage.modifier.access-control.d' do
    match '\b(private|protected|public|export|package)\b'
  end

  pattern 'storage.modifier.d' do
    match '(?x)
				\b(
					auto|
					static|
					override|
					final|
					abstract|
					volatile|
					synchronized|
					lazy|
					nothrow|
					immutable|
					const|
					inout|
					ref|
					in|
					scope|
					__gshared|
					shared|
					pure
				)
				\b|
				(@)(
					property|
					disable|
					nogc|
					safe|
					trusted|
					system
				)\b'
  end

  pattern 'storage.type.structure.d' do
    match '\b(template|interface|class|enum|struct|union)\b'
  end

  pattern 'storage.type.d' do
    match '(?x)
				\b(
					ushort|
					int|
					uint|
					long|
					ulong|
					float|
					void|
					byte|
					ubyte|
					double|
					char|
					wchar|
					ucent|
					cent|
					short|
					bool|
					dchar|
					real|
					ireal|
					ifloat|
					idouble|
					creal|
					cfloat|
					cdouble|
					lazy|
					__vector
				)\b'
  end

  pattern('keyword.control.exception.d') { match '\b(try|catch|finally|throw)\b' }
  pattern('keyword.control.d') { match '\b(return|break|case|continue|default|do|while|for|switch|if|else)\b' }
  pattern('keyword.control.branch.d') { match '\b(goto|break|continue)\b' }
  pattern('keyword.control.repeat.d') { match '\b(while|for|do|foreach(_reverse)?)\b' }
  pattern('keyword.control.statement.d') { match '\b(return|with|invariant|body|scope|asm|mixin|function|delegate)\b' }
  pattern('keyword.control.pragma.d') { match '\b(pragma)\b' }
  pattern('keyword.control.alias.d') { match '\b(alias|typedef)\b' }
  pattern('keyword.control.import.d') { match '\b(import)\b' }

  pattern 'meta.module.d' do
    match '^\s*(module)\s+([^ ;]+?);'

		capture 1, 'keyword.control.module.d'
		capture 2, 'entity.name.function.package.d'
  end

  pattern('constant.language.boolean.d') { match '\b(true|false)\b' }

  pattern 'constant.language.d' do
    match '(?x)
				\b(
					__FILE__|
					__LINE__|
					__DATE__|
					__TIME__|
					__TIMESTAMP__|
					__MODULE__|
					__FUNCTION__|
					__PRETTY_FUNCTION__|
					__VENDOR__|
					__VERSION__|
					null
				)\b'
  end

  pattern('variable.language.d') { match '\b(this|super)\b' }
  pattern('constant.numeric.d') { match '\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\b' }

  pattern { include '#string_escaped_char' }
	pattern {	include '#strings' }

  pattern('keyword.operator.comparison.d') { match '(==|!=|<=|>=|<>|<|>)' }
  pattern('keyword.operator.increment-decrement.d') { match '(\-\-|\+\+)' }
  pattern('keyword.operator.arithmetic.d') { match '(\-|\+|\*|\/|~|%|\^|\^\^)=?' }
  pattern('keyword.operator.slice.d') { match '(\.\.)' }
  pattern('keyword.operator.logical.d') { match '(!|&&|\|\|)' }

  pattern 'keyword.operator.overload.d' do
    match '(?x)
				\b(
					opNeg|
					opCom|
					opPostInc|
					opPostDec|
					opCast|
					opAdd|
					opSub|
					opSub_r|
					opMul|
					opDiv|
					opDiv_r|
					opMod|
					opMod_r|
					opAnd|
					opOr|
					opXor|
					opShl|
					opShl_r|
					opShr|
					opShr_r|
					opUShr|
					opUShr_r|
					opCat|
					opCat_r|
					opEquals|
					opEquals|
					opCmp|
					opCmp|
					opCmp|
					opCmp|
					opAddAssign|
					opSubAssign|
					opMulAssign|
					opDivAssign|
					opModAssign|
					opAndAssign|
					opOrAssign|
					opXorAssign|
					opShlAssign|
					opShrAssign|
					opUShrAssign|
					opCatAssign|
					opIndex|
					opIndexAssign|
					opCall|
					opSlice|
					opSliceAssign|
					opPos|
					opAdd_r|
					opMul_r|
					opAnd_r|
					opOr_r|
					opXor_r|
					opDispatch
				)\b'
  end

  pattern('keyword.operator.d') { match '\b(new|delete|typeof|typeid|cast|align|is)\b' }
  pattern('keyword.other.class-fns.d') { match '\b(new)\b' }
  pattern('keyword.other.special.d') { match '\b(__parameters)\b|(#)line\b' }
  pattern('keyword.other.reserved.d') { match '\b(macro)\b' }

  pattern 'support.type.sys-types.c' do
    match '(?x)
				\b(
					u_char|
					u_short|
					u_int|
					u_long|
					ushort|
					uint|
					u_quad_t|
					quad_t|
					qaddr_t|
					caddr_t|
					daddr_t|
					dev_t|
					fixpt_t|
					blkcnt_t|
					blksize_t|
					gid_t|
					in_addr_t|
					in_port_t|
					ino_t|
					key_t|
					mode_t|
					nlink_t|
					id_t|
					pid_t|
					off_t|
					segsz_t|
					swblk_t|
					uid_t|
					id_t|
					clock_t|
					size_t|
					ssize_t|
					time_t|
					useconds_t|
					suseconds_t
				)\b'
  end

  pattern 'support.type.pthread.c' do
    match '(?x)
				\b(
					pthread_attr_t|
					pthread_cond_t|
					pthread_condattr_t|
					pthread_mutex_t|
					pthread_mutexattr_t|
					pthread_once_t|
					pthread_rwlock_t|
					pthread_rwlockattr_t|
					pthread_t|
					pthread_key_t
				)\b'
  end

  pattern 'support.type.stdint.c' do
    match '(?x)
				\b(
					int8_t|
					int16_t|
					int32_t|
					int64_t|
					uint8_t|
					uint16_t|
					uint32_t|
					uint64_t|
					int_least8_t|
					int_least16_t|
					int_least32_t|
					int_least64_t|
					uint_least8_t|
					uint_least16_t|
					uint_least32_t|
					uint_least64_t|
					int_fast8_t|
					int_fast16_t|
					int_fast32_t|
					int_fast64_t|
					uint_fast8_t|
					uint_fast16_t|
					uint_fast32_t|
					uint_fast64_t|
					intptr_t|
					uintptr_t|
					intmax_t|
					intmax_t|
					uintmax_t|
					uintmax_t
				)\b'
  end

  pattern { include '#block' }

  rule 'all-types' do
    pattern { include '#support-type-built-ins-d' }
    pattern { include '#support-type-d' }
    pattern { include '#storage-type-d' }
  end

  rule 'block' do
    pattern 'meta.block.d' do
      self.begin '\{'
      self.end '\}'

      begin_capture 0, 'punctuation.section.block.begin.d'
      end_capture 0, 'punctuation.section.block.end.d'

      pattern { include '$base' }
    end
  end

  rule 'comments' do
    pattern 'comment.block.d' do
      self.begin '/\*'
      self.end '\*/'

      capture 0, 'punctuation.definition.comment.d'
    end

    pattern 'comment.block.nested.d' do
      self.begin '/\+'
      self.end '\+/'

      capture 0, 'punctuation.definition.comment.d'
    end

    pattern do
      self.begin '(^[ \t]+)?(?=//)'
      self.end '(?!\G)'

      begin_capture 1, 'punctuation.whitespace.comment.leading.d'

      pattern 'comment.line.double-slash.d' do
        self.begin '//'
        self.end '\n'

        begin_capture 0, 'punctuation.definition.comment.d'
      end
    end
  end

  rule 'constant_placeholder' do
    name 'constant.other.placeholder.d'
    match '(?i:%(\([a-z_]+\))?#?0?\-?[ ]?\+?([0-9]*|\*)(\.([0-9]*|\*))?[hL]?[a-z%])'
  end

  rule 'regular_expressions' do
    disabled true
    comment 'Change disabled to 1 to turn off syntax highlighting in "r" strings.'

    pattern { include 'source.regexp.python' }
  end

  rule 'statement-remainder' do
    pattern 'meta.definition.param-list.d' do
      self.begin '\('
      self.end '(?=\))'
      pattern { include '#all-types' }
    end
  end

  rule 'storage-type-d' do
    name 'storage.type.d'
    match '\b(void|byte|short|char|int|long|float|double)\b'
  end

  rule 'string_escaped_char' do
    pattern('constant.character.escape.d') { match /\\(\\|[abefnprtv'"?]|[0-3]\d{0,2}|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|&\w+;)/ }
    pattern('invalid.illegal.unknown-escape.d') { match /\\./ }
  end

  rule 'strings' do
    pattern 'string.quoted.double.d' do
      self.begin '"'
      self.end '"'

      begin_capture 0, 'punctuation.definition.string.begin.d'
      end_capture 0, 'punctuation.definition.string.end.d'

      pattern { include '#string_escaped_char' }
    end

    pattern 'string.quoted.double.raw.d' do
      self.begin '(r)(")'
      self.end '((?<=")(")|")'

			begin_capture 1, 'storage.type.string.d'
			begin_capture 2, 'punctuation.definition.string.begin.d'

			end_capture 1, 'punctuation.definition.string.end.d'
			end_capture 2, 'meta.empty-string.double.d'

      pattern { include '#regular_expressions' }
    end

    pattern 'string.quoted.double.raw.backtick.d' do
      self.begin '`'
      self.end '((?<=`)(`)|`)'

      begin_capture 0, 'punctuation.definition.string.begin.d'

			end_capture 1, 'punctuation.definition.string.end.d'
			end_capture 2, 'meta.empty-string.double.d'
    end

    pattern 'string.quoted.single.d' do
      self.begin "'"
      self.end "'"

      begin_capture 0, 'punctuation.definition.string.begin.d'
      end_capture 0, 'punctuation.definition.string.end.d'

      pattern { include '#string_escaped_char' }
    end
  end

  rule 'support-type-built-ins-aliases-d' do
    name 'support.type.built-ins.aliases.d'
    match '\b(dstring|equals_t|hash_t|ptrdiff_t|sizediff_t|size_t|string|wstring)\b'
  end

  rule 'support-type-built-ins-classes-d' do
    name 'support.type.built-ins.classes.d'
    match '(?x)
				\b(
					AbstractServer|
					ArchiveMember|
					ArgParser|
					Barrier|
					BomSniffer|
					Buffer|
					BufferInput|
					BufferOutput|
					BufferSlice|
					BufferedFile|
					BufferedStream|
					BzipInput|
					BzipOutput|
					CFile|
					CacheInvalidatee|
					CacheInvalidator|
					CacheServer|
					CacheThread|
					Certificate|
					CertificateStore|
					CertificateStoreCtx|
					ChunkInput|
					ChunkOutput|
					ClassInfo|
					Cluster|
					ClusterCache|
					ClusterQueue|
					ClusterThread|
					CmdParser|
					ComObject|
					Compress|
					Condition|
					Conduit|
					Cookie|
					CookieParser|
					CookieStack|
					CounterInput|
					CounterOutput|
					DataFileInput|
					DataFileOutput|
					DataInput|
					DataOutput|
					Database|
					DatagramConduit|
					DeviceConduit|
					DigestInput|
					DigestOutput|
					DocPrinter|
					Document|
					DummyInputStream|
					DummyOutputStream|
					EndianInput|
					EndianOutput|
					EndianProtocol|
					EndianStream|
					EventSeekInputStream|
					EventSeekOutputStream|
					FTPConnection|
					Fiber|
					Field|
					File|
					FileConduit|
					FileFolder|
					FileGroup|
					FileInput|
					FileOutput|
					FilePath|
					FileScan|
					FilterStream|
					Foo|
					FormatOutput|
					GreedyInput|
					GreedyOutput|
					Gregorian|
					GrowBuffer|
					HeapCopy|
					HeapSlice|
					Hierarchy|
					HttpClient|
					HttpCookies|
					HttpCookiesView|
					HttpGet|
					HttpHeaders|
					HttpHeadersView|
					HttpParams|
					HttpPost|
					HttpStack|
					HttpTokens|
					HttpTriplet|
					IPv4Address|
					IUnknown|
					InputFilter|
					InternetAddress|
					InternetHost|
					Layout|
					LineInput|
					LineIterator|
					LinkedFolder|
					Log|
					MapInput|
					MapOutput|
					MappedBuffer|
					Md2|
					Md4|
					MemoryQueue|
					MemoryStream|
					MmFile|
					MmFileStream|
					ModuleInfo|
					MulticastConduit|
					Mutex|
					NativeProtocol|
					NetCall|
					NetHost|
					NetworkAlert|
					NetworkCache|
					NetworkCall|
					NetworkClient|
					NetworkCombo|
					NetworkMessage|
					NetworkQueue|
					NetworkRegistry|
					NetworkTask|
					NotImplemented|
					Object|
					Observer|
					OutBuffer|
					OutputFilter|
					PersistQueue|
					Pipe|
					PipeConduit|
					Print|
					PrivateKey|
					Process|
					Properties|
					Protocol|
					ProtocolReader|
					ProtocolWriter|
					PublicKey|
					PullParser|
					QueueFile|
					QueueServer|
					QueueThread|
					QueuedCache|
					QuoteIterator|
					Random|
					Range|
					ReadWriteMutex|
					Reader|
					Record|
					RegExp|
					RegExpT|
					RegexIterator|
					RollCall|
					SSLCtx|
					SSLServerSocket|
					SSLSocketConduit|
					SaxParser|
					SelectionKey|
					Semaphore|
					ServerSocket|
					ServerThread|
					Service|
					SimpleIterator|
					SliceInputStream|
					SliceSeekInputStream|
					SliceSeekOutputStream|
					SliceStream|
					SnoopInput|
					SnoopOutput|
					Socket|
					SocketConduit|
					SocketListener|
					SocketSet|
					SocketStream|
					Sprint|
					Stream|
					StreamIterator|
					TArrayStream|
					TaskServer|
					TaskThread|
					TcpSocket|
					Telnet|
					TempFile|
					Text|
					TextFileInput|
					TextFileOutput|
					TextView|
					Thread|
					ThreadGroup|
					ThreadLocal|
					ThreadPool|
					Token|
					TypeInfo|
					TypeInfo_AC|
					TypeInfo_Aa|
					TypeInfo_Ab|
					TypeInfo_Ac|
					TypeInfo_Ad|
					TypeInfo_Ae|
					TypeInfo_Af|
					TypeInfo_Ag|
					TypeInfo_Ah|
					TypeInfo_Ai|
					TypeInfo_Aj|
					TypeInfo_Ak|
					TypeInfo_Al|
					TypeInfo_Am|
					TypeInfo_Ao|
					TypeInfo_Ap|
					TypeInfo_Aq|
					TypeInfo_Ar|
					TypeInfo_Array|
					TypeInfo_As|
					TypeInfo_AssociativeArray|
					TypeInfo_At|
					TypeInfo_Au|
					TypeInfo_Av|
					TypeInfo_Aw|
					TypeInfo_C|
					TypeInfo_Class|
					TypeInfo_D|
					TypeInfo_Delegate|
					TypeInfo_Enum|
					TypeInfo_Function|
					TypeInfo_Interface|
					TypeInfo_P|
					TypeInfo_Pointer|
					TypeInfo_StaticArray|
					TypeInfo_Struct|
					TypeInfo_Tuple|
					TypeInfo_Typedef|
					TypeInfo_a|
					TypeInfo_b|
					TypeInfo_c|
					TypeInfo_d|
					TypeInfo_e|
					TypeInfo_f|
					TypeInfo_g|
					TypeInfo_h|
					TypeInfo_i|
					TypeInfo_j|
					TypeInfo_k|
					TypeInfo_l|
					TypeInfo_m|
					TypeInfo_o|
					TypeInfo_p|
					TypeInfo_q|
					TypeInfo_r|
					TypeInfo_s|
					TypeInfo_t|
					TypeInfo_u|
					TypeInfo_v|
					TypeInfo_w|
					TypedInput|
					TypedOutput|
					URIerror|
					UdpSocket|
					UnCompress|
					UniText|
					UnicodeBom|
					UnicodeFile|
					UnknownAddress|
					Uri|
					UtfInput|
					UtfOutput|
					VirtualFolder|
					WrapSeekInputStream|
					WrapSeekOutputStream|
					Writer|
					XmlPrinter|
					ZipArchive|
					ZipBlockReader|
					ZipBlockWriter|
					ZipEntry|
					ZipEntryVerifier|
					ZipFile|
					ZipFileGroup|
					ZipFolder|
					ZipSubFolder|
					ZipSubFolderEntry|
					ZipSubFolderGroup|
					ZlibInput|
					ZlibOutput
				)\b'
  end

  rule 'support-type-built-ins-d' do
    pattern { include '#support-type-built-ins-exceptions-d' }
    pattern { include '#support-type-built-ins-classes-d' }
    pattern { include '#support-type-built-ins-interfaces-d' }
    pattern { include '#support-type-built-ins-structs-d' }
    pattern { include '#support-type-built-ins-aliases-d' }
    pattern { include '#support-type-built-ins-functions-d' }
    pattern { include '#support-type-built-ins-templates-d' }
  end

  rule 'support-type-built-ins-exceptions-d' do
    name 'support.type.built-ins.exceptions.d'
    match '(?x)
				\b(
					AddressException|
					ArrayBoundsError|
					ArrayBoundsException|
					AssertError|
					AssertException|
					Base64CharException|
					Base64Exception|
					BzipClosedException|
					BzipException|
					ClusterEmptyException|
					ClusterFullException|
					ConvError|
					ConvOverflowError|
					ConversionException|
					CorruptedIteratorException|
					DatabaseException|
					DateParseError|
					Exception|
					FTPException|
					FiberException|
					FileException|
					FinalizeException|
					FormatError|
					HostException|
					IOException|
					IllegalArgumentException|
					IllegalElementException|
					InvalidKeyException|
					InvalidTypeException|
					LocaleException|
					ModuleCtorError|
					NoSuchElementException|
					OpenException|
					OpenRJException|
					OutOfMemoryException|
					PlatformException|
					ProcessCreateException|
					ProcessException|
					ProcessForkException|
					ProcessKillException|
					ProcessWaitException|
					ReadException|
					RegExpException|
					RegexException|
					RegistryException|
					SeekException|
					SharedLibException|
					SocketAcceptException|
					SocketException|
					StdioException|
					StreamException|
					StreamFileException|
					StringException|
					SwitchError|
					SwitchException|
					SyncException|
					TextException|
					ThreadError|
					ThreadException|
					UnboxException|
					UnicodeException|
					UtfException|
					VariantTypeMismatchException|
					Win32Exception|
					WriteException|
					XmlException|
					ZipChecksumException|
					ZipException|
					ZipExhaustedException|
					ZipNotSupportedException|
					ZlibClosedException|
					ZlibException|
					OurUnwindException|
					SysError
				)\b'
  end

  rule 'support-type-built-ins-functions-d' do
    name 'support.type.built-ins.functions.d'
    match '(?x)
				\b(
					aaLiteral|
					assumeSafeAppend|
					byKey|
					byKeyValue|
					byValue|
					capacity|
					destroy|
					dup|
					get|
					keys|
					rehash|
					reserve|
					values
				)\b'
  end

  rule 'support-type-built-ins-interfaces-d' do
    name 'support.type.built-ins.interfaces.d'
    match '(?x)
				\b(
					Buffered|
					HttpParamsView|
					ICache|
					IChannel|
					IClassFactory|
					ICluster|
					IConduit|
					IConsumer|
					IEvent|
					IHierarchy|
					ILevel|
					IListener|
					IMessage|
					IMessageLoader|
					IOStream|
					IReadable|
					ISelectable|
					ISelectionSet|
					ISelector|
					IServer|
					IUnknown|
					IWritable|
					IXmlPrinter|
					InputStream|
					OutputStream|
					PathView|
					VfsFile|
					VfsFiles|
					VfsFolder|
					VfsFolderEntry|
					VfsFolders|
					VfsHost|
					VfsSync|
					ZipReader|
					ZipWriter
				)\b'
  end

  rule 'support-type-built-ins-structs-d' do
    name 'support.type.built-ins.structs.d'
    match '(?x)
				\b(
					ABC|
					ABCFLOAT|
					ACCEL|
					ACCESSTIMEOUT|
					ACCESS_ALLOWED_ACE|
					ACCESS_DENIED_ACE|
					ACE_HEADER|
					ACL|
					ACL_REVISION_INFORMATION|
					ACL_SIZE_INFORMATION|
					ACTION_HEADER|
					ADAPTER_STATUS|
					ADDJOB_INFO_1|
					ANIMATIONINFO|
					APPBARDATA|
					Argument|
					Atomic|
					Attribute|
					BITMAP|
					BITMAPCOREHEADER|
					BITMAPCOREINFO|
					BITMAPINFO|
					BITMAPINFOHEADER|
					BITMAPV4HEADER|
					BLOB|
					BROWSEINFO|
					BY_HANDLE_FILE_INFORMATION|
					Bar|
					Baz|
					BitArray|
					Box|
					BracketResult|
					ByteSwap|
					CANDIDATEFORM|
					CANDIDATELIST|
					CBTACTIVATESTRUCT|
					CBT_CREATEWND|
					CHARFORMAT|
					CHARRANGE|
					CHARSET|
					CHARSETINFO|
					CHAR_INFO|
					CIDA|
					CIEXYZ|
					CIEXYZTRIPLE|
					CLIENTCREATESTRUCT|
					CMINVOKECOMMANDINFO|
					COLORADJUSTMENT|
					COLORMAP|
					COMMCONFIG|
					COMMPROP|
					COMMTIMEOUTS|
					COMPAREITEMSTRUCT|
					COMPCOLOR|
					COMPOSITIONFORM|
					COMSTAT|
					CONNECTDLGSTRUCT|
					CONSOLE_CURSOR_INFO|
					CONTEXT|
					CONVCONTEXT|
					CONVINFO|
					COORD|
					COPYDATASTRUCT|
					CPINFO|
					CPLINFO|
					CREATESTRUCT|
					CREATE_PROCESS_DEBUG_INFO|
					CREATE_THREAD_DEBUG_INFO|
					CRITICAL_SECTION|
					CRITICAL_SECTION_DEBUG|
					CURRENCYFMT|
					CURSORSHAPE|
					CWPRETSTRUCT|
					CWPSTRUCT|
					CharClass|
					CharRange|
					Clock|
					CodePage|
					Console|
					DATATYPES_INFO_1|
					DCB|
					DDEACK|
					DDEADVISE|
					DDEDATA|
					DDELN|
					DDEML_MSG_HOOK_DATA|
					DDEPOKE|
					DDEUP|
					DEBUGHOOKINFO|
					DEBUG_EVENT|
					DELETEITEMSTRUCT|
					DEVMODE|
					DEVNAMES|
					DEV_BROADCAST_HDR|
					DEV_BROADCAST_OEM|
					DEV_BROADCAST_PORT|
					DEV_BROADCAST_VOLUME|
					DIBSECTION|
					DIR|
					DISCDLGSTRUCT|
					DISK_GEOMETRY|
					DISK_PERFORMANCE|
					DOCINFO|
					DOC_INFO_1|
					DOC_INFO_2|
					DRAGLISTINFO|
					DRAWITEMSTRUCT|
					DRAWTEXTPARAMS|
					DRIVER_INFO_1|
					DRIVER_INFO_2|
					DRIVER_INFO_3|
					DRIVE_LAYOUT_INFORMATION|
					Date|
					DateParse|
					DateTime|
					DirEntry|
					DynArg|
					EDITSTREAM|
					EMPTYRECORD|
					EMR|
					EMRABORTPATH|
					EMRANGLEARC|
					EMRARC|
					EMRBITBLT|
					EMRCREATEBRUSHINDIRECT|
					EMRCREATECOLORSPACE|
					EMRCREATEDIBPATTERNBRUSHPT|
					EMRCREATEMONOBRUSH|
					EMRCREATEPALETTE|
					EMRCREATEPEN|
					EMRELLIPSE|
					EMREOF|
					EMREXCLUDECLIPRECT|
					EMREXTCREATEFONTINDIRECTW|
					EMREXTCREATEPEN|
					EMREXTFLOODFILL|
					EMREXTSELECTCLIPRGN|
					EMREXTTEXTOUTA|
					EMRFILLPATH|
					EMRFILLRGN|
					EMRFORMAT|
					EMRFRAMERGN|
					EMRGDICOMMENT|
					EMRINVERTRGN|
					EMRLINETO|
					EMRMASKBLT|
					EMRMODIFYWORLDTRANSFORM|
					EMROFFSETCLIPRGN|
					EMRPLGBLT|
					EMRPOLYDRAW|
					EMRPOLYDRAW16|
					EMRPOLYLINE|
					EMRPOLYLINE16|
					EMRPOLYPOLYLINE|
					EMRPOLYPOLYLINE16|
					EMRPOLYTEXTOUTA|
					EMRRESIZEPALETTE|
					EMRRESTOREDC|
					EMRROUNDRECT|
					EMRSCALEVIEWPORTEXTEX|
					EMRSELECTCLIPPATH|
					EMRSELECTCOLORSPACE|
					EMRSELECTOBJECT|
					EMRSELECTPALETTE|
					EMRSETARCDIRECTION|
					EMRSETBKCOLOR|
					EMRSETCOLORADJUSTMENT|
					EMRSETDIBITSTODEVICE|
					EMRSETMAPPERFLAGS|
					EMRSETMITERLIMIT|
					EMRSETPALETTEENTRIES|
					EMRSETPIXELV|
					EMRSETVIEWPORTEXTEX|
					EMRSETVIEWPORTORGEX|
					EMRSETWORLDTRANSFORM|
					EMRSTRETCHBLT|
					EMRSTRETCHDIBITS|
					EMRTEXT|
					ENCORRECTTEXT|
					ENDROPFILES|
					ENHMETAHEADER|
					ENHMETARECORD|
					ENOLEOPFAILED|
					ENPROTECTED|
					ENSAVECLIPBOARD|
					ENUMLOGFONT|
					ENUMLOGFONTEX|
					ENUM_SERVICE_STATUS|
					EVENTLOGRECORD|
					EVENTMSG|
					EXCEPTION_DEBUG_INFO|
					EXCEPTION_POINTERS|
					EXCEPTION_RECORD|
					EXIT_PROCESS_DEBUG_INFO|
					EXIT_THREAD_DEBUG_INFO|
					EXTLOGFONT|
					EXTLOGPEN|
					EXT_BUTTON|
					EmptySlot|
					EndOfCDRecord|
					Environment|
					FILETIME|
					FILTERKEYS|
					FINDREPLACE|
					FINDTEXTEX|
					FIND_NAME_BUFFER|
					FIND_NAME_HEADER|
					FIXED|
					FLOATING_SAVE_AREA|
					FMS_GETDRIVEINFO|
					FMS_GETFILESEL|
					FMS_LOAD|
					FMS_TOOLBARLOAD|
					FOCUS_EVENT_RECORD|
					FONTSIGNATURE|
					FORMATRANGE|
					FORMAT_PARAMETERS|
					FORM_INFO_1|
					FileConst|
					FileHeader|
					FileRoots|
					FileSystem|
					FoldingCaseData|
					Foo|
					FtpConnectionDetail|
					FtpFeature|
					FtpFileInfo|
					FtpResponse|
					GC|
					GCP_RESULTS|
					GCStats|
					GENERIC_MAPPING|
					GLYPHMETRICS|
					GLYPHMETRICSFLOAT|
					GROUP_INFO_2|
					GUID|
					HANDLETABLE|
					HD_HITTESTINFO|
					HD_ITEM|
					HD_LAYOUT|
					HD_NOTIFY|
					HELPINFO|
					HELPWININFO|
					HIGHCONTRAST|
					HSZPAIR|
					HeaderElement|
					HttpConst|
					HttpHeader|
					HttpHeaderName|
					HttpResponses|
					HttpStatus|
					HttpToken|
					ICONINFO|
					ICONMETRICS|
					IMAGEINFO|
					IMAGE_DOS_HEADER|
					INPUT_RECORD|
					ITEMIDLIST|
					IeeeFlags|
					Interface|
					JOB_INFO_1|
					JOB_INFO_2|
					KERNINGPAIR|
					LANA_ENUM|
					LAYERPLANEDESCRIPTOR|
					LDT_ENTRY|
					LIST_ENTRY|
					LOAD_DLL_DEBUG_INFO|
					LOCALESIGNATURE|
					LOCALGROUP_INFO_0|
					LOCALGROUP_MEMBERS_INFO_0|
					LOCALGROUP_MEMBERS_INFO_3|
					LOGBRUSH|
					LOGCOLORSPACE|
					LOGFONT|
					LOGFONTA|
					LOGFONTW|
					LOGPALETTE|
					LOGPEN|
					LUID_AND_ATTRIBUTES|
					LV_COLUMN|
					LV_DISPINFO|
					LV_FINDINFO|
					LV_HITTESTINFO|
					LV_ITEM|
					LV_KEYDOWN|
					LocalFileHeader|
					MAT2|
					MD5_CTX|
					MDICREATESTRUCT|
					MEASUREITEMSTRUCT|
					MEMORYSTATUS|
					MEMORY_BASIC_INFORMATION|
					MENUEX_TEMPLATE_HEADER|
					MENUEX_TEMPLATE_ITEM|
					MENUITEMINFO|
					MENUITEMTEMPLATE|
					MENUITEMTEMPLATEHEADER|
					MENUTEMPLATE|
					MENU_EVENT_RECORD|
					METAFILEPICT|
					METARECORD|
					MINIMIZEDMETRICS|
					MINMAXINFO|
					MODEMDEVCAPS|
					MODEMSETTINGS|
					MONCBSTRUCT|
					MONCONVSTRUCT|
					MONERRSTRUCT|
					MONHSZSTRUCT|
					MONITOR_INFO_1|
					MONITOR_INFO_2|
					MONLINKSTRUCT|
					MONMSGSTRUCT|
					MOUSEHOOKSTRUCT|
					MOUSEKEYS|
					MOUSE_EVENT_RECORD|
					MSG|
					MSGBOXPARAMS|
					MSGFILTER|
					MULTIKEYHELP|
					NAME_BUFFER|
					NCB|
					NCCALCSIZE_PARAMS|
					NDDESHAREINFO|
					NETCONNECTINFOSTRUCT|
					NETINFOSTRUCT|
					NETRESOURCE|
					NEWCPLINFO|
					NEWTEXTMETRIC|
					NEWTEXTMETRICEX|
					NMHDR|
					NM_LISTVIEW|
					NM_TREEVIEW|
					NM_UPDOWNW|
					NONCLIENTMETRICS|
					NS_SERVICE_INFO|
					NUMBERFMT|
					OFNOTIFY|
					OFSTRUCT|
					OPENFILENAME|
					OPENFILENAMEA|
					OPENFILENAMEW|
					OSVERSIONINFO|
					OUTLINETEXTMETRIC|
					OUTPUT_DEBUG_STRING_INFO|
					OVERLAPPED|
					OffsetTypeInfo|
					PAINTSTRUCT|
					PALETTEENTRY|
					PANOSE|
					PARAFORMAT|
					PARTITION_INFORMATION|
					PERF_COUNTER_BLOCK|
					PERF_COUNTER_DEFINITION|
					PERF_DATA_BLOCK|
					PERF_INSTANCE_DEFINITION|
					PERF_OBJECT_TYPE|
					PIXELFORMATDESCRIPTOR|
					POINT|
					POINTFLOAT|
					POINTFX|
					POINTL|
					POINTS|
					POLYTEXT|
					PORT_INFO_1|
					PORT_INFO_2|
					PREVENT_MEDIA_REMOVAL|
					PRINTER_DEFAULTS|
					PRINTER_INFO_1|
					PRINTER_INFO_2|
					PRINTER_INFO_3|
					PRINTER_INFO_4|
					PRINTER_INFO_5|
					PRINTER_NOTIFY_INFO|
					PRINTER_NOTIFY_INFO_DATA|
					PRINTER_NOTIFY_OPTIONS|
					PRINTER_NOTIFY_OPTIONS_TYPE|
					PRINTPROCESSOR_INFO_1|
					PRIVILEGE_SET|
					PROCESS_HEAPENTRY|
					PROCESS_INFORMATION|
					PROPSHEETHEADER|
					PROPSHEETHEADER_U1|
					PROPSHEETHEADER_U2|
					PROPSHEETHEADER_U3|
					PROPSHEETPAGE|
					PROPSHEETPAGE_U1|
					PROPSHEETPAGE_U2|
					PROTOCOL_INFO|
					PROVIDOR_INFO_1|
					PSHNOTIFY|
					PUNCTUATION|
					PassByCopy|
					PassByRef|
					Phase1Info|
					PropertyConfigurator|
					QUERY_SERVICE_CONFIG|
					QUERY_SERVICE_LOCK_STATUS|
					RASAMB|
					RASCONN|
					RASCONNSTATUS|
					RASDIALEXTENSIONS|
					RASDIALPARAMS|
					RASENTRYNAME|
					RASPPPIP|
					RASPPPIPX|
					RASPPPNBF|
					RASTERIZER_STATUS|
					REASSIGN_BLOCKS|
					RECT|
					RECTL|
					REMOTE_NAME_INFO|
					REPASTESPECIAL|
					REQRESIZE|
					RGBQUAD|
					RGBTRIPLE|
					RGNDATA|
					RGNDATAHEADER|
					RIP_INFO|
					Runtime|
					SCROLLINFO|
					SECURITY_ATTRIBUTES|
					SECURITY_DESCRIPTOR|
					SECURITY_QUALITY_OF_SERVICE|
					SELCHANGE|
					SERIALKEYS|
					SERVICE_ADDRESS|
					SERVICE_ADDRESSES|
					SERVICE_INFO|
					SERVICE_STATUS|
					SERVICE_TABLE_ENTRY|
					SERVICE_TYPE_INFO_ABS|
					SERVICE_TYPE_VALUE_ABS|
					SESSION_BUFFER|
					SESSION_HEADER|
					SET_PARTITION_INFORMATION|
					SHFILEINFO|
					SHFILEOPSTRUCT|
					SHITEMID|
					SHNAMEMAPPING|
					SID|
					SID_AND_ATTRIBUTES|
					SID_IDENTIFIER_AUTHORITY|
					SINGLE_LIST_ENTRY|
					SIZE|
					SMALL_RECT|
					SOUNDSENTRY|
					STARTUPINFO|
					STICKYKEYS|
					STRRET|
					STYLEBUF|
					STYLESTRUCT|
					SYSTEMTIME|
					SYSTEM_AUDIT_ACE|
					SYSTEM_INFO|
					SYSTEM_INFO_U|
					SYSTEM_POWER_STATUS|
					Signal|
					SjLj_Function_Context|
					SpecialCaseData|
					TAPE_ERASE|
					TAPE_GET_DRIVE_PARAMETERS|
					TAPE_GET_MEDIA_PARAMETERS|
					TAPE_GET_POSITION|
					TAPE_PREPARE|
					TAPE_SET_DRIVE_PARAMETERS|
					TAPE_SET_MEDIA_PARAMETERS|
					TAPE_SET_POSITION|
					TAPE_WRITE_MARKS|
					TBADDBITMAP|
					TBBUTTON|
					TBNOTIFY|
					TBSAVEPARAMS|
					TCHOOSECOLOR|
					TCHOOSEFONT|
					TC_HITTESTINFO|
					TC_ITEM|
					TC_ITEMHEADER|
					TC_KEYDOWN|
					TEXTMETRIC|
					TEXTMETRICA|
					TEXTRANGE|
					TFINDTEXT|
					TIME_ZONE_INFORMATION|
					TOGGLEKEYS|
					TOKEN_CONTROL|
					TOKEN_DEFAULT_DACL|
					TOKEN_GROUPS|
					TOKEN_OWNER|
					TOKEN_PRIMARY_GROUP|
					TOKEN_PRIVILEGES|
					TOKEN_SOURCE|
					TOKEN_STATISTICS|
					TOKEN_USER|
					TOOLINFO|
					TOOLTIPTEXT|
					TPAGESETUPDLG|
					TPMPARAMS|
					TRANSMIT_FILE_BUFFERS|
					TREEITEM|
					TSMALLPOINT|
					TTHITTESTINFO|
					TTPOLYCURVE|
					TTPOLYGONHEADER|
					TVARIANT|
					TV_DISPINFO|
					TV_HITTESTINFO|
					TV_INSERTSTRUCT|
					TV_ITEM|
					TV_KEYDOWN|
					TV_SORTCB|
					Time|
					TimeOfDay|
					TimeSpan|
					Tuple|
					UDACCEL|
					ULARGE_INTEGER|
					UNIVERSAL_NAME_INFO|
					UNLOAD_DLL_DEBUG_INFO|
					USEROBJECTFLAGS|
					USER_INFO_0|
					USER_INFO_2|
					USER_INFO_3|
					UnicodeData|
					VALENT|
					VA_LIST|
					VERIFY_INFORMATION|
					VS_FIXEDFILEINFO|
					Variant|
					VfsFilterInfo|
					WIN32_FILE_ATTRIBUTE_DATA|
					WIN32_FIND_DATA|
					WIN32_FIND_DATAW|
					WIN32_STREAM_ID|
					WINDOWINFO|
					WINDOWPLACEMENT|
					WINDOWPOS|
					WINDOW_BUFFER_SIZE_RECORD|
					WNDCLASS|
					WNDCLASSA|
					WNDCLASSEX|
					WNDCLASSEXA|
					WSADATA|
					WallClock|
					XFORM|
					ZipEntryInfo
				)\b'
  end

  rule 'support-type-built-ins-templates-d' do
    name 'support.type.built-ins.templates.d'
    match '\b(AssociativeArray|RTInfo)\b'
  end

  rule 'support-type-d' do
    name 'support.type.d'
    match '\b((?:core|std)\.[\w\.]+)\b'
  end

  rule 'template-constraint-d' do
    pattern 'meta.definition.template-constraint.d' do
      match '\s*(if\s*\(\s*([^\)]+)\s*\)|)'

      capture 1 do
        pattern { include '$base' }
      end
    end
  end
end

redpajama_set_name: RedPajamaGithub


text:
Home	/ Education
Education is a crucial element in any attempt to effectively address the phenomenon of corruption. UNODC works with students, schools, universities and professional training institutions to promote the teaching of anti-corruption and integrity at all stages of the education process. This page provides an overview of our work.
Anti-Corruption Academic Initiative (ACAD)
The ACAD Initiative is a collective academic project led by UNODC that brings together academic institutions, international organizations and national governments to promote anti-corruption education in universities worldwide. To date, the Initiative has over 100 universities taking part and has produced a comprehensive anti-corruption educational tool, the ACAD Initiative Menu of Topics, containing over 1,400 articles, publications and research papers related to corruption. LEARN MORE
Education for Justice Initiative (E4J)
Adopted at the conclusion of the 13th United Nations Congress on Crime Prevention and Criminal Justice, the Doha Declaration highlights the importance of education as a tool to preventing crime and corruption. It emphasizes that education for children and youth is fundamental in promoting a culture that supports the rule of law, crime prevention and criminal justice. LEARN MORE
E-learning tools
As part of its efforts to educate and raise awareness of anti-corruption initiatives, UNODC has developed two anti-corruption e-learning modules - "Introduction to Anti-corruption" and "Advanced Anti-corruption: Prevention of Corruption" - and produced, together with the UN Global Compact, the video-based interactive e-learning tool "The Fight Against Corruption" which is available in over 20 languages. UNODC also aims to draw attention to anti-corruption e-learning tools produced by partner institutions, such as UNDP's online courses on anti-corruption and development issues. LEARN MORE
Content Editor [3]
Singapore, 13 - 14 June 2017
UNODC, in partnership with the National University of Singapore, organized a two-day workshop of the ACAD Initiative, where academics from the region shared their experiences and good practices in introducing anti-corruption education at universities in their respective countries.
ACAD Outline
Full PDF Outline of the current version of the Menu of Topics developed by the group, containing 20 units covering a range of anti-corruption issues.
UNCAC Academic Course Outline
Full PDF Outline of the UNCAC Academic Course.

redpajama_set_name: RedPajamaCommonCrawl


One of the most recognizable symbols of World War II will once again report for duty exactly 75 years after its crew finished their last mission in the war against Nazi Germany on May 17, 1943. Plans call for the aircraft to be placed on permanent public display in the WWII Gallery of the National Museum of the U.S. Air Force on May 17, 2018. The new exhibit surrounding the Memphis BelleTM will include interactive displays, rare archival film footage and many personal artifacts which have never been seen before by our visitors.
The famed B-17F Memphis Belle and its crew became iconic symbols of the heavy bomber crews and support personnel who helped defeat Nazi Germany. The Memphis Belle was the first U.S. Army Air Forces heavy bomber to return to the United States after completing 25 combat missions over Europe during World War II. The USAAF chose the aircraft for a highly-publicized war bond tour from June-August 1943, and its crew was celebrated as national heroes. The aircraft and crew were also the subject of two widely-seen Hollywood movies (one in 1944 and another in 1990).
The three-day celebratory event (May 17-19, 2018) will include three B-17 Flying Fortresses, six P-51 Mustangs, and three WWII-era trainer aircraft on static display; a ribbon cutting ceremony for the Memphis Belle and Strategic Bombing Exhibits; more than 160 WWII military and home front reenactors; 30 vintage military and civilian vehicles; a Big Band Concert; book signings; and both Memphis Belle films featuring guest speakers in the Air Force Museum Theatre. Activities will be both inside and outside the National Museum of the U.S. Air Force.
Can't wait to see the new B-17F Memphis Belle exhibit in person?
private event on May 16 at 6:30 p.m.
The B-17F Memphis BelleTM will be placed on permanent public display on Thursday, May 17, 2018, with celebratory events on May 17-19, 2018.
Education Programs will take place in the Reenactor Area, STEM Learning Nodes, and WWII Gallery.
(Interested schools and youth groups should contact the museum's Education Division at nationalmuseum.mut@us.af.mil or (937) 255-4652).
The Valkyrie Café, located on the second floor above the Museum Store and the Refueling Café, located on the second floor of the Missile Gallery are open from 9 a.m. until one hour before closing.
Food Trucks are available in the parking lot near the reenactor area.
Food Trucks will be available on the runway on Thursday & Friday only.
Schedule is subject to change. Outdoor activities are weather dependent.
All activities are FREE unless otherwise noted ($).
**Please note this is not an open fly-in. Wright Field is a closed runway and not open for general aviation use.
Click here for information about entry gates and parking.
(Please note this is not an open fly-in. Wright Field is a closed runway and not open for general aviation use).
Each week we will be featuring pictures of artifacts that will be included in the Memphis Belle Exhibit and the new USAAF Strategic Bombing in Europe Exhibit. Click here to view these artifacts.
The outdoor events will take place in two areas on the museum grounds. The WWII aircraft will be located on the runway behind the museum and the WWII Military Encampments, 1940s era "Home Front" reenactors, and Vintage Vehicles will be located near the WWII 8th Air Force Control Tower replica.
Due to weather the aircraft will not land today, but will conduct a mass flyover.
Share your pictures with us on Social Media.
Click here to visit the Facebook page for this exciting event. Let us know if you are interested in going.
Download a flyer with event information.
B-17F Memphis Belle™ to be placed on public display.
Accommodations could fill up fast as the date approaches, so if you plan to attend consider making your arrangements as soon as possible. This weekend will be a busy one in the Dayton area as Hamvention, the largest amateur radio convention in the world takes place beginning Friday, May 18. (Select the drop-down arrow in the boxes below for information on area lodging).
Unfortunately, we cannot recommend lodging. As a government institution, the museum is not permitted to endorse commercial establishments. We suggest you check with the local convention and visitors bureaus (CVBs).
Overnight parking is not permitted at the museum. Here is a list of several area RV parks and campgrounds. Please contact the individual locations for more information.
On March 14, 2018 the B17F Memphis Belle moved from the National Museum of the U.S. Air Force's Restoration Hangar to the museum's World War II Gallery. Although the iconic aircraft is now inside the WWII Gallery, it will continue to remain out of public view until it is unveiled in a new exhibit following a ribbon cutting ceremony on the morning of May 17 - exactly 75 years after its crew finished their last mission in the war against Nazi Germany on May 17, 1943.
Both professional museum restoration staff and technically qualified volunteers are worked on the Memphis Belle's restoration.
What will happen to the B-17G Shoo Shoo Baby?
The B-17G Shoo Shoo Shoo Baby has been placed in storage in the restoration area until it is transferred to the Smithsonian's National Air & Space Museum.


Israel has warned that any future peace agreement in Syria that would unify all forces in that country against the Islamic State must also provide for the withdrawal of Iranian forces. The Israeli warning gives away the rough outlines of a possible agreement which would bring the civil war between President Bashar al-Assad and the opposition in Syria to an end and would establish some sort of a temporary peace until conditions for free and peaceful elections are established. According to the Israelis, the maintenance of Iranian forces in Syria after the conclusion of the peace agreement would turn into a kind of the most sensitive point, primarily on the Golan Heights, that could at any point turn into an armed confrontation.
The latest battles of the Iraqi army against the Islamic State in western Mosul points to a slow but strong military campaign, as part of a broad coalition, which is very gradually taking territory away from the terrorists, inflicting severe losses on them in terms of personnel and equipment and pushing them out towards Syria and locations from which they first arrived.
In fact, the apparent outcome of the Mosul offensive is not a surprise. The Islamic State was never capable of maintaining effective control of territory it occupied two years ago, particularly given its lack of manpower and financial resources, as well as its system of government which did not secure the support of the local population. An Iraqi victory is therefore only a matter of time and the price which they will pay for it, whether it is in terms of civilian and troop casualties. In this regard, it is evident that the Islamic State will continue to use civilians as defense shields which will result in the loss of innocent lives. In fact, this is a fundamental problem of the coalition fighting against the "Caliphate," given that the United States and other member countries certainly do not want to participate in the slaughter of the civilian population, regardless of which side would actually shoulder the blame.
The Islamic State conquered Mosul without many casualties, primarily as a result of the fear which gripped the Iraqi army at that time. The city's liberation may take a different course. The Iraqis will certainly try to destroy as many members of the Islamic State as possible in this offensive by encircling them and engaging in street combat. The United States and other coalition members, on the other hand, view the main battle as yet to take place in Syria, in Raqqa and surrounding areas, where the terrorist organization is based. For them, what is happening now is merely a preliminary phase for the final offensive which is yet to come. For this reason, as well as the need to maintain public support, primarily in the Arab and broader Muslim world, it is necessary for the coalition to ensure that civilian casualties are kept to a minimum in order to avoid another Aleppo scenario (regardless of the roles of attacker and defender being reversed in this instance).
Iraq has suffered the catastrophe of war which, in the past few years, also included a terrorist campaign that has all but practically destroyed the possibility for normal life in that country. Syria has undergone a similar experience and the question of peace and stability no longer lies in who will occupy higher or lower positions in government in the future. Ordinary people want peace at any price, as well as basic security, so the warring parties will have to reach an agreement in one way or another in order to end and eventually overcome the absurdity that has become the status quo in the region.


text:
ABE Urdaneta mainly provides undergraduate programs in Accountancy, Business Administration, Information Technology, Tourism Management, Computer Science, and Hotel and Restaurant Management. In addition to baccalaureates, the school also offers a comprehensive senior high school program featuring strands under the Academic and Technical-Vocational-Livelihood (TVL) track. Also available are TESDA-recognized Technical-Vocational courses such as Medical Transcription NC II, Finishing Course for Call Center Agents and Caregiving NC II. ", 'telephone': "(+6375) 568-8130; (+6375) 656-2028" } ]]>
ABE International College of Business & Accountancy - Urdaneta City Campus
Zion 2000 E. A. Building, McArthur Highway, San Vicente, Urdaneta City, Pangasinan
PHP 30,000 to 40,000
Typically replies within months
Response time: Typically replies within months
Welcome! We hope you find our page helpful. If you're interested on any of our courses or scholarships, feel free to ask us.
Your Edukasyon.ph Buddy
Quick Facts & Figures
(Updated as of Nov 29, 2019)
Ave. Tuition Fee
Accepting Top-up Vouchers?
Gender Admission
Batch Size
Food/Meal Budget
PHP Snacks, Budget Meal, any Drinks,
(Updated as of May 17, 2018)
Chemistry Laboratory
Biology Laboratory
Physics Laboratory
Airconditioned Classrooms
Audio-Visual Rooms
What does ABE International College of Business & Accountancy - Urdaneta City Campus stand for?
ABE International Business College - Urdaneta City is a private co-educational institution located in Urdaneta, Pangasinan. It is one of the many campuses of ABE International Business College, a member of the AMA Education System.
ABE Urdaneta mainly provides undergraduate programs in Accountancy, Business Administration, Information Technology, Tourism Management, Computer Science, and Hotel and Restaurant Management. In addition to baccalaureates, the school also offers a comprehensive senior high school program featuring strands under the Academic and Technical-Vocational-Livelihood (TVL) track. Also available are TESDA-recognized Technical-Vocational courses such as Medical Transcription NC II, Finishing Course for Call Center Agents and Caregiving NC II.
What programs & courses does ABE International College of Business & Accountancy - Urdaneta City Campus offer?
Choosing the right program can help you set your future goals and visualize where you want to be. Whether you want to be an engineer, a teacher, an accountant, or you want to level up in your profession, making yourself informed with the right choices will surely back you up in the future. Are you ready to map your career with ABE International College of Business & Accountancy - Urdaneta City Campus? Make the best decision in choosing the right path for you, click through the list of programs offered by ABE International College of Business & Accountancy - Urdaneta City Campus below:
College (Undergraduate) Programs
Tech-Voc Programs
What are the tuition & fees for students at ABE International College of Business & Accountancy - Urdaneta City Campus?
Tuition and miscellaneous fees vary by program and course.
Senior High School: PHP 300 to 500 (Per Term)
For a complete list of details, please send an inquiry here.
Where is ABE International College of Business & Accountancy - Urdaneta City Campus located?
(+6375) 568-8130; (+6375) 656-2028
Website http://www.abe.edu.ph/urdaneta/
Email Address [email protected]
Apply to ABE International College of Business & Accountancy - Urdaneta City Campus


I have been collecting/accumulating little 'bits' for about fifty years--you know all the fiddly bits floating around the house. Those little toys you step on, the things that have been in your junk drawer for years, and all the little bits you find while digging in your garden or on walks. One day I decided to put them on display.
Mirror: On the big mirror I used a plain pane, 12" x 14", on the smaller one I used a framed mirror I found in a thrift store.
The contents of your junk drawers and pockets.
Gather all your items, start laying them out on your mirror. Play with them until you like your layout. Take a picture of your layout, remove all your items, and clean your mirror or frame.
Or just start with the big pieces, and fill in with the smaller ones.
Step 3: Glue It Down!
If you took a picture, refer back to it so you can glue it exactly like you want to. Glue it down according to the directions on the E - 6000 glue. To display, use a plate or book display, on my next one, I am going to experiment with soda can tabs for hangers.
Now you can start collecting more!


Home » Pool and Water » Woof! Woof! The Best Pool Toys For Dogs!
Lots of dogs love the water whether they're at the beach, lake or pool throw a ball and they'll swim after it! If you have a pet dog or know of someone who does, you will know they're mad for retrieving a ball. There are lots of different options for you to think about when deciding which pool toy to get for your dog. Maybe you're looking for a more exciting ball rather than your standard tennis ball or you want your dog to enjoy the pool and sunshine as much as you do and are looking at a pool float. Keep your furry friend happy and let them enjoy the pool and water as much as us humans with our guide to the best pool toys for dogs!
Your dog might enjoy chasing the tennis ball on their everyday walk down the beach or on the field but why not treat them to a Waboba ball?
Wobaba is a brand that created the ball that bounces on water in 2005. After the success of their first initial ball, they now have a range of different Waboba balls that are designed for different surfaces such as surf, skippers, extreme water and land. They have also designed a water ball for dogs, your dog's new best friend! This ball bounces on water and is the perfect ball for your dog to play fetch in the swimming pool. The ball is firm, sturdy and very durable so that it is safe for your dog to handle every time they retrieve it in the water. It is a bright yellow colour to allow for the best visibility when playing fetch.
Get the Waboba ball for your dog from Amazon!
Everyone enjoys trying to skip stones along the water but now you can have fun trying to get the most skips in one shot whilst also entertaining your dog!
The Kurgo skipping stones are stone shaped chew toys that float so that your dog can fetch them back to you. They come in easy to spot colours and safe for your dog to chew as they are super tough. This gives you the perfect balance whilst your lying by the pool as you can practice your skipping stones skills and then let your dog go fetch and give them a fun and playful workout in the water. This is a great and innovative way for you and your dog to enjoy pool activities together.
Skip on over to Amazon and get it now!
Your dog wont want to be chasing after a ball all the time and just like you they might want to relax on the water and take a nap.
Swim Ways offers a dog float, which is a pool float that is strong enough to hold your dog. Whether you have a large Labrador or a small Yorkie, your dog will be safe relaxing on this durable inflatable float. Built with reinforced construction and heavy-duty fabric, it is paw and claw friendly to allow furry friend to cool off in the pool. Now your dog can be properly involved the next time you have a pool party or family round to relax by the pool. Grab your favorite pool float and enjoy relaxing knowing your dog can join in too. Dog floats are also good for any dog that might be scared of the water. It is important to try get them over their fear so by having them on a float, whilst you're holding it, will slowly get them closer to the water and help make them feel more comfortable. You can let them lie on the float out of the water and carry them in and keep a hold of them whilst they float on the pool. By having you there they will feel more comfortable and you can slowly back off and see how comfortable they are.
Get your dog float today!
The Aerobie Dogobie Flying Disc is a great pool toy for dogs. It is a soft, flexible and squidgy disc that can be thrown and caught just like a frisbee.
It is used a catch and fetch toy and helps train your dog well for catching and retrieving the disc. The plus is that this disc floats so if you throw the disc before your dog is in the water, they can jump and swim to the disc and retrieve it. The disc material is very sturdy and won't get damaged after being in a dog's mouth. This flying disc is a fun toy for your dog to play with in and out of the pool but also helps when training your dog in catching and retrieving. It is very easy to throw and can glide a long distance, even if you're a beginner. Enjoy the warm weather in your garden, lying by the pool and keep your dog occupied by throwing this disc and everyone will be happy!
Disc can be purchased right here!
It is important that your dog has a happy and healthy lifestyle. By letting them swim in the pool and fetch toys from the pool, they are getting great exercise through swimming. Swimming is one of the best exercises for dogs as it helps strengthen their legs a lot quicker than walking or running. A large majority of dogs enjoy the water and fetching for toys so by having one of the swimming pool toys you are letting them enjoy their time whilst improving their health.
Once they have had their morning walk and jumps in the pool chasing after their balls or flying disc they can relax on their float that has been especially made just for dogs. They can enjoy the sun and warm weather just as much as you! There tail will be wagging all day as they will be very happy after having fun in the pool then relaxing on the pool on their own float. If you go to a friend or family's pool party be sure to take your dogs toys so they can have as much fun by the pool as all the other guests.


North Korea's top three military officials have been replaced ahead of an historic summit between leader Kim Jong-un and US President Donald Trump, according to multiple reports.
All three appear to have been replaced by younger Kim loyalists, part of an ongoing transformation of the country's political and military establishment since the young leader took power in 2011.
South Korea's Yonhap news agency, citing an unnamed intelligence official, reported that defense chief Pak Yong Sik had been replaced by No Kwang Chol, while Ri Myong Su, chief of the Korean People's Army (KPA) general staff, had been replaced by his deputy, Ri Yong Gil.
Army general Kim Su Gil's replacement of Kim Jong Gak as director of the KPA's general political bureau was previously referenced in North Korean state media, and confirmed Monday by South Korea's Unification Ministry, which deals with North Korean affairs.
"All these (promoted) guys are top Kim Jong Un guys," said Michael Madden, author of the highly respected North Korea Leadership Watch blog. "All three of them have held very sensitive and high level positions under Kim Jong Un, they're very loyal (to him), and all have experience interacting with foreign delegations."
The three men replaced, Pak, Ri and Kim, are 68, 81 and 77 years old respectively.
Madden said the reshuffling at the top of the North Korean military was likely done for a number of reasons, among them preparation for the Kim-Trump talks and future South Korean negotiations and exchanges.
In particular, the military's General Political Bureau (GPB) is responsible for auditing and overseeing the financial operations of the KPA, which controls a large number of trading corporations and other businesses which could be highly involved in any future inter-Korean trade or infrastructure projects.
Political commissars under the bureau are stationed throughout the KPA and can influence the army's activity at all levels.
"(Kim) is not going to want these military commissars helping themselves to any of this assistance coming to the North," Madden said. "That was a problem during the sunshine period, a lot of misappropriation and malfeasance."
He added that the size and breadth of of the GPB responsibilities is such that, more than any other North Korean organization, it presents the most realistic potential threat to Kim's own power.
"From about June 2017 to earlier this year, the KPA general political bureau was under investigation by the (ruling Worker's Party), the first time in 20 years that the GPB was under investigation," Madden said.
By bringing the GPB firmly under the Party's and his own control, Kim is likely looking to avoid a repeat of the extreme action he had to take against his uncle, Jang Song Thaek, early into his rule.
Jang, previously one of the most powerful men in North Korea, was purged and executed in 2013 after he reportedly built up an alternate power base to his nephew.
Preparations are still underway for Kim and Trump's summit in Singapore, the first time a sitting US President will meet the leader of North Korea.
Trump met with former North Korean spy chief Kim Yong Chol for about 90 minutes Friday -- the highest-level North Korean official to visit the US in 18 years.
He stressed that the Singapore meeting is part of a "process" that will go on for some time: "I told them today, 'Take your time. We can go fast. We can go slowly.'"
This is something of a change from Trump's previous statements, which seemed to indicate he expected a deal to be signed in Singapore on denuclearization and other issues, and raised the possibility it may be more of a meet and greet between the two leaders.
South Korea's Blue House on Monday quashed suggestions a formal end to the Korean War could be announced at the Trump-Kim summit.
Kim is unlikely to spend much time in Singapore. Sanctions make it very difficult for senior North Korean officials to travel overseas, and Madden said Kim will also not wish to impose too much of a burden on the Singapore government, which will have to deal with onerous security arrangements caused by both leaders' presence in the city.
There has also been speculation Kim does not wish to leave North Korea for an extended period of time as this may encourage any remaining opponents to his rule to seize the opportunity to stage a coup.
In 1971, Idi Amin famously seized power in Uganda while President Milton Obote was in Singapore for a meeting of Commonwealth leaders.
Madden said any similar attempt to wrest power during the North Korean leader's absence was unlikely, pointing to Kim's previous trips to Beijing and Dalian in China, which went off without a hitch.


text:
Wainwright dominates, Cardinals beat Astros 7-0
ST. LOUIS – Adam Wainwright matched his career high with 12 strikeouts in a five-hitter and the St. Louis Cardinals punished rookie Lucas Harrell with six runs in the first three innings, getting over an excruciating 19-inning loss two days earlier with a 7-0 victory over the Houston Astros on Tuesday night.
Skip Schumaker and Yadier Molina had two RBIs apiece for the Cardinals, who got six hits the first seven at-bats in a four-run first and then capitalized on a pair of walks to open a two-run third. Jon Jay had three hits and an RBI.
Wainwright (12-10) threw his second shutout and third complete game of the season. Two of the complete games have come during a string of six consecutive victories at home with a 1.42 ERA. He pitched a five-hitter on Aug. 4, a 6-1 victory over the Brewers.


text:
Бринзові галу́шки () — галушки, густо заправлені м'яким сиром. Традиційна словацька страва, дуже популярна в минулому. Про популярність галушок свідчить той факт, що про них складені пісні, приказки тощо. В кожному краї рецепт приготування мав певні особливості.

Бринзові галушки — одна з найпопулярніших страв словацької кухні. До них входять продукти, котрі для цієї кухні є основними: словацька бринза, картопля, борошно і копчене свиняче м'ясо із салом. На відміну від української кухні, словацькі галушки мають солонуватий смак і мілкіші за розміром. Тісто для галушок з бринзою готують із тертої картоплі і борошна. Самі галушки можна приготувати різноманітними способами: тісто можна видавлювати через спеціальну металеву форму з невеликими отворами або відщипувати, нарізати. Після відварювання готові гарячі галушки змішують із бринзою, при цьому бринза до складу тіста не входить. Подають галушки з бринзою найчастіше із кисляком або сметаною і також зі шкварками із копченого м'яса із салом.

Посилання

Примітки

Словацька кухня
Галушки
Страви з сиру
Страви з картоплі

redpajama_set_name: RedPajamaWikipedia


The range of UVi camera intensifiers are designed to add low light, extended spectral range (from UV to NIR) and fast gating in a compact all inclusive lens coupled package. Available in 18 & 25mm formats with a range of photocathodes and phosphors. Typical applications are in combustion, electric discharge, biomedical and ultra high speed stroboscopic techniques in conjunction with high speed or conventional video cameras.
Available in 18 & 25mm formats in equivalent 2 stage (models 1850 & 2550) & 3 stage (1850B & 2550B) and now including the patented Super UVi with it's exceptional Qe to 40% in the UV, 75 lp/mm resolution over 25mm, linear amplification and extreme output power & fast gating to MHz frame rates.
Choice of optimized photocathodes & phosphors including S1, S20, S25 and GaAs.


At Dumpster Index, we strive to bring you the best service at the best price available. We have a wide selection of dumpster sizes in stock in Gould City, MI, with flexible & timley pickup and delivery. Give us a call today for all your dumpster rental and roll off needs.
Dumpsters are available in sizes according to your tailored needs. When you permit the dumpster hire organizations know about your distinct requirements, an appropriate sized dumpster is going to be delivered to your livelihood location. Comprehending the pricing method of the company before putting in an order will help you making the 5 Yard Dumpster Rental in Gould City, MI less expensive. Dumpsters are usually charged based on the dimension and time period of the 5 Yard Dumpster Rental in Gould City, MI. And so before you place an investment for 5 Yard Dumpster Rental in Gould City, MI have a transparent picture about the size the dumpster in addition to period of this 5 Yard Dumpster Rental in Gould City, MI. If you don't have a concept, you can even receive assistance from this 5 Yard Dumpster Rental in Gould City, MI companies going to the best deal. Question the charges charged for the more disposal across the tonnage limit to make the 5 Yard Dumpster Rental in Gould City, MI more affordable.
When the advertising begins, it's important that you can find things which you want to sell. We all have anything lurking inside corners of the homes we no longer wish! Old garments, forgotten childrens toys, in addition to mismatched dishware are always good places to start. For those who have enough time, start to look through your underground room, attic, in addition to garage for other neglected items that are just gathering dust. You may be shocked at just how many things you would probably kept all-around unintentionally.
A premier 5 Yard Dumpster Rental in Gould City, MI disposal organization will load a large want as local neighborhoods switch to pay-per-throw neighborhood trash plans. These plans burden a new tax payer with an increase of fees to own there rubbish picked up. A great storm on an established or even upstart organization. Why along with what else produces a premier disposal business the solution to 5 Yard Dumpster Rental in Gould City, MI needs? This article will highlight several reasons why you should do some study before selecting an organization to fulfill these needs.
That old carpeting may be thrown out into your rented dumpster. The actual carpeting could possibly have had to involving been cut to get it away from the floor. There's more a mess this tends to cause. Renting a new dumpster can make your life as well as the structure crew's life less difficult by simply having the capacity to toss this into the dumpster.
You will have to look for a dumpster company that offers different size dumpsters. You will want at least a few options throughout small, channel and large. Your little friend dumpsters are for smaller jobs such as if you wish to tear away from each other and redesign a bathroom. Your little friend dumpster should keep at least 2 plenty of debris.
Some sort of junk haul professional is useful for more than just rubbish removal, however. Most neighborhood companies in addition provide 5 Yard Dumpster Rental in Gould City, MI services for anyone individuals who have a new do-it-yourself attitude. If you are performing the estate cleanout, moving, or polishing off a home development project, you will want some way involving disposing of your scraps. A local dumpster service could drop off a new dumpster at a scheduled time and figure it out once you will be finished, letting you work at your individual pace. Dumpster rentals from a neighborhood trash removal company provides you with the ultimate throughout convenience in addition to dependability.
Persons require 5 Yard Dumpster Rental in Gould City, MI products and services for many causes. For example, a new landlord frequently needs to cleanse the residence where the past tenants still left garbage loaded high. An established home handy-man often takes many trips for the county dispose of. Or perhaps, you just have a big cleanup task to do and you desire a place to get rid of all the waste material. Usually, renting of such king-size garbage canisters is the location of large structure companies, nevertheless there numerous 5 Yard Dumpster Rental in Gould City, MI companies that rent huge dumpsters (also called move offs) to popular people also. Hiring move off dumpster could be a great choice for anybody who doesn't want garbage because the obstacle with respect to getting the done.
A lot of the 5 Yard Dumpster Rental in Gould City companies furthermore cater for firms that may need to retain the services of dumpsters and rolloff containers. One company that sees this rental services very useful is actually construction organizations, as they generally a lot of waste materials that they need to get rid of. It is very important to consider any policies and limits that employ within your place and also people that may be put in place by the company.
One of the primary benefits associated with dumpsters is that you can populate them with whatsoever kind of trash you have. Think about that before you even look into 5 Yard Dumpster Rental in Gould City rates. Whether you can utilize them for appliance removal, furniture removal, or just simple junk removal, if you can suit it in there, you can put the item in there. It is great news if you are doing a entire cleanout of a household, garage, and other building. Traditional garbage removing options do not give you this kind of luxury--you have to take the oversized what you should a move station or even landfill yourself. With a dumpster rental from your local junk carrying business, however, you can discard virtually anything you need to.
For anyone who is considering a home renovation undertaking or just have to clear away a large amount of trash from your own home, you need to rent some sort of dumpster to make it relatively easy. Follow these 5 Yard Dumpster Rental in Gould City tips to make sure you don't get cleansed of your cash as well as your trash during your undertaking.
In your home restoration or building projects, you see huge waste products that has to be broke up with to keep your work location free of the trash. The garbage generated from the house renovation will cause many adverse effects impacting the eco-system causing contamination in the environment as well. Self disposal of home renovation trash will placed you to problems like period consumption, actual physical stress and budgets. You may need some professional guidance to handle the process hassle free.
The following choices you should make with regards to 5 Yard Dumpster Rental in Gould City will have to use size in addition to quantity. For many individuals, one will be sufficient. The smaller you go, the cheaper and more handy it will usually be. Talk with the company to see their charges, telling them whatever you know about the length of time you'll need the item and when you will need it grabbed. While a tiny one may have the desired effect, it's a good idea to travel a little huge bigger than you imagine you'll need. It could be somewhat more high-priced, but it you will save a lot of hassle if you wind up having a lot more waste than you assumed.
It is a Fast and Easiest Way to help Dispose down Human Squanders - Since the building site can be littered simply by human waste products, using it cleans away the human waste materials like cardstock litter, utilize and throw paper meals package baskets, paper baskets and many more.
Today go ahead and approach that barbeque party as part of your backyard and lose focus on about the cleaning up and getting rid of. Decorate the home, cook for friends and family, request them over in addition to planning out the thrill activities for guests. Before you are carried out, you can be still having little or even big many trash that will now be dealt with easily. They then are in this article to make life easier.
Sadly it's not easy to gauge a new company's degree of service before getting them. They may put on a great front by having an eye catching advert or attractive website. That doesn't mean they are essentially a reputable company however. Instead you will need to look more deeply.
When you have more trash in comparison with you can handle through usual disposal signifies, renting a new dumpster through a rubbish haul support can be a lifesaver. For heavy-duty such things as appliances or even long-term projects like construction demolition, booking a dumpster causes it to become much easier to manage whatever waste materials comes up.
Redesigning construction entails a large amount of resources. It's no surprise then that at the conclusion of most jobs the site is very messy in addition to full of trash with further materials in addition to dirt wanting to be obtained. A development 5 Yard Dumpster Rental in Gould City, MI can do the work for you. Just before stripping or even guttering out your vacant home you should look at having your dumpster currently delivered and ready and waiting around.
That doesn't mean you desire to pay a lot to get a waste 5 Yard Dumpster Rental in Gould City, MI, though! Here's a look at you skill to get a good selling price on your rental (without having to slip this dumpster fairy an extra something like 20 on the side!).
Working with a full company to take care of your trash carrying needs by start to complete can save you quite a lot of hassle. There isn't to worry about working out with or transferring the trash or even junk products you're throwing out on your own, and also you don't have to make plans about precisely how you're going to transfer the garbage you've got to an appropriate discretion location. Your own dumpster pro will handle it all for you, allowing you to pay attention to getting your residence in order plus your domestic programs back on track.
You could think of replacing the doors to thicker solid wood, new baseboards, lush rug, new fire, and brand new wood shelving installed, etcetera. To get started both you and your significant other or even spouse will need to agree on each of the items earlier mentioned.
An ideal company to rent from is a that offers a flat rental rate. The particular charge will incorporate delivery, pickup, disposal in addition to taxes may also be included. A few companies in addition only have a new four or even five-day rental period, and all days past on this occasion frame are usually an additional cost. Renting from a company that includes a longer leasing period is much more desirable.
Home owners with a space or 2 of demo ahead of them can help to save money if you rent then their own dumpster and still have it provided straight to the website. Construction organizations use 5 Yard Dumpster Rental in Gould City, MI organizations for almost just about every job -- they tell them how big a spin off they want and then a neighborhood roll off of or a couple of is provided and dropped off. Local is often cheaper as well as people can go to a couple of websites that can give them a bid on the size they need, together with playing a significant part to keep the test materials arranged and the development site uncluttered.
Industrialization contributes to major part of environmental pollution, nevertheless there are even additional sources of waste materials generation such as house store waste, development waste in addition to green garden waste. Start should be consumed every field to mitigate the consequences pollution simply by recycling produced trash. Dumpster rental agencies will be your best choice to ward off this kind of waste in addition to gift your future generation with toxin heavy free in addition to economically developed society.


text:
Bureau van Dijk and the Global...
See all our offices
Bureau van Dijk and the Global Innovation Index
Product Aida Aida PA Amadeus Astree Aurelia BankFocus Bel-first Classification Catalyst Compliance Catalyst Compliance Catalyst 2 Credit Catalyst Credit Catalyst 2 Credit Catalyst for banks Dafne Diane Fame InsuranceFocus M&A Research Catalyst Markus Gewerberegister Markus Mint Americas Mint Asia-Pacific Mint Europe Mint Global Mint Italy Mint Portal Odin Orbis Orbis Americas Orbis Asia-Pacific Orbis Crossborder Investment Orbis Europe Orbis Financial Institutions Orbis Intellectual Property Oriana Osiris PA France Procurement Catalyst Reach Ruslana Sabi Sabina Supply Chain Catalyst TP Catalyst TP Catalyst Document Manager Walletsizing Catalyst Zephyr Go
Ann Van Nieuwenhove
Thursday saw the release of this year's Global Innovation Index (GII), which ranks Switzerland, Sweden, the Netherlands, the USA and the UK as the world's top performers.
The full report, co-authored by Cornell University, INSEAD and the World Intellectual Property Organization (WIPO), also highlights the achievements of India, Kenya and Viet Nam, which are "outperforming their development-level peers".
Now in its tenth edition, the index was compiled with hard data from a range of sources, including Bureau van Dijk's private company information databases, as referenced on pages xiv and 419 of the report.
Its survey of 130 economies uses "dozens of metrics, from patent filings to education spending, providing decision-makers a high-level look at the innovative activity that increasingly drives economic and social growth".
Other key findings – encapsulated in the expandable thumbnail, right – include:
The emergence of India as an innovation centre in Asia
High innovation performance in Sub-Saharan Africa relative to development, its league-toppers being South Africa, Mauritius and Kenya
An opportunity to improve innovation capacity in Latin America and the Caribbean
Here's a snapshot of the top 20, with last year's rank in brackets.
1. Switzerland (1) 2. Sweden (2)
3. Netherlands (9) 4. United States (4)
5. United Kingdom (3) 6. Denmark (8)
7. Singapore (6) 8. Finland (5)
9. Germany (10) 10. Ireland (7)
11. South Korea (11) 12. Luxembourg (12)
13. Iceland (13) 14. Japan (16)
15. France (18) 16. Hong Kong (14)
17. Israel (21) 18. Canada (15)
19. Norway (22) 20. Austria (20)
You can find the complete set of rankings, methodology and findings in the full report.
Three minutes with Francis Gurry, WIPO Director General
"Innovation is the engine of economic growth in an increasingly knowledge-based global economy, but more investment is needed to help boost human creativity and economic output," said WIPO Director General Francis Gurry. "Innovation can help transform the current economic upswing into longer-term growth."
You can watch WIPO's short video with him here:
Ann Van Nieuwenhove, Global Account Director
One of Bureau van Dijk's longest serving and most senior account directors, Ann is also a core member of the company's global practice group for government.


text:
Russian man who drove his car into an airport says he did it for love
"I had to get on the platform. I was fighting for love!"
By Associated Press Friday 23 Dec 2016, 9:26 PM
Dec 23rd 2016, 9:26 PM 17,518 Views 20 Comments
Source: Karen Gabrielyan/YouTube
A RUSSIAN MAN who drove his car into an airport terminal and reached the departure gates says he did it for love.
The Kazan airport administration says an intoxicated man rammed through the terminal's door late on Wednesday night and drove around inside. Video footage shows a battered, Russian-made car drive past the check-in desk and into a departure gate before it reached a railway terminal outside. Remarkably, he damages very little as he navigates the airport as if it is a roadway, even indicating.
News website Kazansky Reporter today quoted 40-year old Ruslan Nurtdinov, who told a court hearing that he had planned his route carefully: "I had to get on the platform. I was fighting for love!"
Nurtdinov said his lady friend was arriving at the railway platform, and this was his way to greet her.
The airport said no one was hurt in the incident.
Read: America abstains as the UN condemns Israeli settlements
See more articles by Associated Press
<iframe width="600" height="460" frameborder="0" style="border:0px;" src="https://www.thejournal.ie/https://www.thejournal.ie/russia-man-in-airport-did-it-3158784-Dec2016/?embedpost=3158784&width=600&height=460" ></iframe>
Email "Russian man who drove his car into an airport says he did it for love".
Feedback on "Russian man who drove his car into an airport says he did it for love".
Russian man who drove his car into an airport says he did it for love Comments


text:
package org.pentaho.di.trans.steps.sort;

import java.io.File;
import java.util.List;
import java.util.Map;

import org.pentaho.di.core.CheckResult;
import org.pentaho.di.core.CheckResultInterface;
import org.pentaho.di.core.Const;
import org.pentaho.di.core.Counter;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.core.exception.KettleStepException;
import org.pentaho.di.core.exception.KettleXMLException;
import org.pentaho.di.core.row.RowMetaInterface;
import org.pentaho.di.core.row.ValueMetaInterface;
import org.pentaho.di.core.variables.VariableSpace;
import org.pentaho.di.core.xml.XMLHandler;
import org.pentaho.di.i18n.BaseMessages;
import org.pentaho.di.repository.Repository;
import org.pentaho.di.repository.ObjectId;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;
import org.pentaho.di.trans.step.BaseStepMeta;
import org.pentaho.di.trans.step.StepDataInterface;
import org.pentaho.di.trans.step.StepInterface;
import org.pentaho.di.trans.step.StepMeta;
import org.pentaho.di.trans.step.StepMetaInterface;
import org.w3c.dom.Node;

/*
 * Created on 02-jun-2003
 */
public class SortRowsMeta extends BaseStepMeta implements StepMetaInterface
{
	private static Class<?> PKG = SortRowsMeta.class; // for i18n purposes, needed by Translator2!!   $NON-NLS-1$

    /** order by which fields? */
    private String  fieldName[];

    /** false : descending, true=ascending */
    private boolean ascending[];

    /** false : case insensitive, true=case sensitive */
    private boolean caseSensitive[];

    /** Directory to store the temp files */
    private String  directory;

    /** Temp files prefix... */
    private String  prefix;

    /** The sort size: number of rows sorted and kept in memory */
    private String  sortSize;

    /** The free memory limit in percentages in case we don't use the sort size */
    private String  freeMemoryLimit;

    /** only pass unique rows to the output stream(s) */
    private boolean onlyPassingUniqueRows;

    /**
     * Compress files: if set to true, temporary files are compressed, thus reducing I/O at the cost of slightly higher
     * CPU usage
     */
    private boolean compressFiles;

    /** The variable to use to set the compressFiles option boolean */
    private String  compressFilesVariable;

    public SortRowsMeta()
    {
        super(); // allocate BaseStepMeta
    }

    /**
     * @return Returns the ascending.
     */
    public boolean[] getAscending()
    {
        return ascending;
    }

    /**
     * @param ascending The ascending to set.
     */
    public void setAscending(boolean[] ascending)
    {
        this.ascending = ascending;
    }

    /**
     * @return Returns the directory.
     */
    public String getDirectory()
    {
        return directory;
    }

    /**
     * @param directory The directory to set.
     */
    public void setDirectory(String directory)
    {
        this.directory = directory;
    }

    /**
     * @return Returns the fieldName.
     */
    public String[] getFieldName()
    {
        return fieldName;
    }

    /**
     * @param fieldName The fieldName to set.
     */
    public void setFieldName(String[] fieldName)
    {
        this.fieldName = fieldName;
    }

    /**
     * @return Returns the prefix.
     */
    public String getPrefix()
    {
        return prefix;
    }

    /**
     * @param prefix The prefix to set.
     */
    public void setPrefix(String prefix)
    {
        this.prefix = prefix;
    }

    public void loadXML(Node stepnode, List<DatabaseMeta> databases, Map<String, Counter> counters) throws KettleXMLException
    {
        readData(stepnode);
    }

    public void allocate(int nrfields)
    {
        fieldName = new String[nrfields]; // order by
        ascending = new boolean[nrfields];
        caseSensitive = new boolean[nrfields];
    }

    public Object clone()
    {
        SortRowsMeta retval = (SortRowsMeta) super.clone();

        int nrfields = fieldName.length;

        retval.allocate(nrfields);

        for (int i = 0; i < nrfields; i++)
        {
            retval.fieldName[i] = fieldName[i];
            retval.ascending[i] = ascending[i];
            retval.caseSensitive[i] = caseSensitive[i];
        }

        return retval;
    }

    private void readData(Node stepnode) throws KettleXMLException
    {
        try
        {
            directory = XMLHandler.getTagValue(stepnode, "directory");
            prefix = XMLHandler.getTagValue(stepnode, "prefix");
            sortSize = XMLHandler.getTagValue(stepnode, "sort_size");
            freeMemoryLimit = XMLHandler.getTagValue(stepnode, "free_memory");
            compressFiles = "Y".equalsIgnoreCase(XMLHandler.getTagValue(stepnode, "compress"));
            compressFilesVariable = XMLHandler.getTagValue(stepnode, "compress_variable");
            onlyPassingUniqueRows = "Y".equalsIgnoreCase( XMLHandler.getTagValue(stepnode, "unique_rows") );

            Node fields = XMLHandler.getSubNode(stepnode, "fields");
            int nrfields = XMLHandler.countNodes(fields, "field");

            allocate(nrfields);

            for (int i = 0; i < nrfields; i++)
            {
                Node fnode = XMLHandler.getSubNodeByNr(fields, "field", i);

                fieldName[i] = XMLHandler.getTagValue(fnode, "name");
                String asc = XMLHandler.getTagValue(fnode, "ascending");
                ascending[i] = "Y".equalsIgnoreCase(asc);
                String sens = XMLHandler.getTagValue(fnode, "case_sensitive");
                caseSensitive[i] = Const.isEmpty(sens) || "Y".equalsIgnoreCase(sens);
            }
        }
        catch (Exception e)
        {
            throw new KettleXMLException("Unable to load step info from XML", e);
        }
    }

    public void setDefault()
    {
        directory = "%%java.io.tmpdir%%";
        prefix = "out";
        sortSize = "1000000";
        freeMemoryLimit = null;
        compressFiles = false;
        compressFilesVariable = null;
        onlyPassingUniqueRows = false;

        int nrfields = 0;

        allocate(nrfields);

        for (int i = 0; i < nrfields; i++)
        {
            fieldName[i] = "field" + i;
            caseSensitive[i] = true;
        }
    }

    public String getXML()
    {
        StringBuffer retval = new StringBuffer(256);

        retval.append("      ").append(XMLHandler.addTagValue("directory", directory));
        retval.append("      ").append(XMLHandler.addTagValue("prefix", prefix));
        retval.append("      ").append(XMLHandler.addTagValue("sort_size", sortSize));
        retval.append("      ").append(XMLHandler.addTagValue("free_memory", freeMemoryLimit));
        retval.append("      ").append(XMLHandler.addTagValue("compress", compressFiles));
        retval.append("      ").append(XMLHandler.addTagValue("compress_variable", compressFilesVariable));
        retval.append("      ").append(XMLHandler.addTagValue("unique_rows", onlyPassingUniqueRows));

        retval.append("    <fields>").append(Const.CR);
        for (int i = 0; i < fieldName.length; i++)
        {
            retval.append("      <field>").append(Const.CR);
            retval.append("        ").append(XMLHandler.addTagValue("name", fieldName[i]));
            retval.append("        ").append(XMLHandler.addTagValue("ascending", ascending[i]));
            retval.append("        ").append(XMLHandler.addTagValue("case_sensitive", caseSensitive[i]));
            retval.append("      </field>").append(Const.CR);
        }
        retval.append("    </fields>").append(Const.CR);

        return retval.toString();
    }

    public void readRep(Repository rep, ObjectId id_step, List<DatabaseMeta> databases, Map<String, Counter> counters) throws KettleException
    {
        try
        {
            directory = rep.getStepAttributeString(id_step, "directory");
            prefix = rep.getStepAttributeString(id_step, "prefix");
            int sortSizeInt = (int) rep.getStepAttributeInteger(id_step, "sort_size");
            if (sortSizeInt>0) {
            	sortSize = Integer.toString(sortSizeInt); // For backward compatibility
            }
            else {
            	sortSize = rep.getStepAttributeString(id_step, "sort_size");
            }
            freeMemoryLimit = rep.getStepAttributeString(id_step, "free_memory");

            compressFiles = rep.getStepAttributeBoolean(id_step, "compress");
            compressFilesVariable = rep.getStepAttributeString(id_step, "compress_variable");

            onlyPassingUniqueRows = rep.getStepAttributeBoolean(id_step, "unique_rows");

            int nrfields = rep.countNrStepAttributes(id_step, "field_name");

            allocate(nrfields);

            for (int i = 0; i < nrfields; i++)
            {
                fieldName[i] = rep.getStepAttributeString(id_step, i, "field_name");
                ascending[i] = rep.getStepAttributeBoolean(id_step, i, "field_ascending");
                caseSensitive[i] = rep.getStepAttributeBoolean(id_step, i, "field_case_sensitive", true);
            }
        }
        catch (Exception e)
        {
            throw new KettleException("Unexpected error reading step information from the repository", e);
        }
    }

    public void saveRep(Repository rep, ObjectId id_transformation, ObjectId id_step) throws KettleException
    {
        try
        {
            rep.saveStepAttribute(id_transformation, id_step, "directory", directory);
            rep.saveStepAttribute(id_transformation, id_step, "prefix", prefix);
            rep.saveStepAttribute(id_transformation, id_step, "sort_size", sortSize);
            rep.saveStepAttribute(id_transformation, id_step, "free_memory", freeMemoryLimit);
            rep.saveStepAttribute(id_transformation, id_step, "compress", compressFiles);
            rep.saveStepAttribute(id_transformation, id_step, "compress_variable", compressFilesVariable);
            rep.saveStepAttribute(id_transformation, id_step, "unique_rows", onlyPassingUniqueRows);

            for (int i = 0; i < fieldName.length; i++)
            {
                rep.saveStepAttribute(id_transformation, id_step, i, "field_name", fieldName[i]);
                rep.saveStepAttribute(id_transformation, id_step, i, "field_ascending", ascending[i]);
                rep.saveStepAttribute(id_transformation, id_step, i, "field_case_sensitive", caseSensitive[i]);
            }
        }
        catch (Exception e)
        {
            throw new KettleException("Unable to save step information to the repository for id_step=" + id_step, e);
        }
    }

    public void getFields(RowMetaInterface inputRowMeta, String name, RowMetaInterface[] info, StepMeta nextStep, VariableSpace space) throws KettleStepException
    {
        // Set the sorted properties: ascending/descending
        for (int i=0;i<fieldName.length;i++)
        {
            int idx = inputRowMeta.indexOfValue(fieldName[i]);
            if (idx>=0)
            {
                ValueMetaInterface valueMeta = inputRowMeta.getValueMeta(idx);
                valueMeta.setSortedDescending(!ascending[i]);
                valueMeta.setCaseInsensitive(!caseSensitive[i]);

                // Also see if lazy conversion is active on these key fields.
                // If so we want to automatically convert them to the normal storage type.
                // This will improve performance, see also: PDI-346
                //
                valueMeta.setStorageType(ValueMetaInterface.STORAGE_TYPE_NORMAL);
                valueMeta.setStorageMetadata(null);
            }
        }

    }

    public void check(List<CheckResultInterface> remarks, TransMeta transMeta, StepMeta stepMeta, RowMetaInterface prev, String input[], String output[], RowMetaInterface info)
    {
        CheckResult cr;

        if (prev != null && prev.size() > 0)
        {
            cr = new CheckResult(CheckResultInterface.TYPE_RESULT_OK, BaseMessages.getString(PKG, "SortRowsMeta.CheckResult.FieldsReceived", "" + prev.size()),
                    stepMeta);
            remarks.add(cr);

            String error_message = "";
            boolean error_found = false;

            // Starting from selected fields in ...
            for (int i = 0; i < fieldName.length; i++)
            {
                int idx = prev.indexOfValue(fieldName[i]);
                if (idx < 0)
                {
                    error_message += "\t\t" + fieldName[i] + Const.CR;
                    error_found = true;
                }
            }
            if (error_found)
            {
                error_message = BaseMessages.getString(PKG, "SortRowsMeta.CheckResult.SortKeysNotFound", error_message);

                cr = new CheckResult(CheckResultInterface.TYPE_RESULT_ERROR, error_message, stepMeta);
                remarks.add(cr);
            }
            else
            {
                if (fieldName.length > 0)
                {
                    cr = new CheckResult(CheckResultInterface.TYPE_RESULT_OK, BaseMessages.getString(PKG, "SortRowsMeta.CheckResult.AllSortKeysFound"), stepMeta);
                    remarks.add(cr);
                }
                else
                {
                    cr = new CheckResult(CheckResultInterface.TYPE_RESULT_ERROR, BaseMessages.getString(PKG, "SortRowsMeta.CheckResult.NoSortKeysEntered"), stepMeta);
                    remarks.add(cr);
                }
            }

            // Check the sort directory
            String realDirectory = transMeta.environmentSubstitute(directory);

            File f = new File(realDirectory);
            if (f.exists())
            {
                if (f.isDirectory())
                {
                    cr = new CheckResult(CheckResultInterface.TYPE_RESULT_OK, BaseMessages.getString(PKG, "SortRowsMeta.CheckResult.DirectoryExists", realDirectory),
                            stepMeta);
                    remarks.add(cr);
                }
                else
                {
                    cr = new CheckResult(CheckResultInterface.TYPE_RESULT_ERROR, BaseMessages.getString(PKG, "SortRowsMeta.CheckResult.ExistsButNoDirectory",
                            realDirectory), stepMeta);
                    remarks.add(cr);
                }
            }
            else
            {
                cr = new CheckResult(CheckResultInterface.TYPE_RESULT_ERROR, BaseMessages.getString(PKG, "SortRowsMeta.CheckResult.DirectoryNotExists", realDirectory),
                        stepMeta);
                remarks.add(cr);
            }
        }
        else
        {
            cr = new CheckResult(CheckResultInterface.TYPE_RESULT_ERROR, BaseMessages.getString(PKG, "SortRowsMeta.CheckResult.NoFields"), stepMeta);
            remarks.add(cr);
        }

        // See if we have input streams leading to this step!
        if (input.length > 0)
        {
            cr = new CheckResult(CheckResultInterface.TYPE_RESULT_OK, BaseMessages.getString(PKG, "SortRowsMeta.CheckResult.ExpectedInputOk"), stepMeta);
            remarks.add(cr);
        }
        else
        {
            cr = new CheckResult(CheckResultInterface.TYPE_RESULT_ERROR, BaseMessages.getString(PKG, "SortRowsMeta.CheckResult.ExpectedInputError"), stepMeta);
            remarks.add(cr);
        }
    }

    public StepInterface getStep(StepMeta stepMeta, StepDataInterface stepDataInterface, int cnr, TransMeta transMeta, Trans trans)
    {
        return new SortRows(stepMeta, stepDataInterface, cnr, transMeta, trans);
    }

    public StepDataInterface getStepData()
    {
        return new SortRowsData();
    }

    /**
     * @return Returns the sortSize.
     */
    public String getSortSize()
    {
        return sortSize;
    }

    /**
     * @param sortSize The sortSize to set.
     */
    public void setSortSize(String sortSize)
    {
        this.sortSize = sortSize;
    }

    /**
     * @return Returns whether temporary files should be compressed
     */
    public boolean getCompressFiles()
    {
        return compressFiles;

    }

    /**
     * @param compressFiles Whether to compress temporary files created during sorting
     */
    public void setCompressFiles(boolean compressFiles)
    {
        this.compressFiles = compressFiles;
    }

    /**
     * @return the onlyPassingUniqueRows
     */
    public boolean isOnlyPassingUniqueRows()
    {
        return onlyPassingUniqueRows;
    }

    /**
     * @param onlyPassingUniqueRows the onlyPassingUniqueRows to set
     */
    public void setOnlyPassingUniqueRows(boolean onlyPassingUniqueRows)
    {
        this.onlyPassingUniqueRows = onlyPassingUniqueRows;
    }

	/**
	 * @return the compressFilesVariable
	 */
	public String getCompressFilesVariable() {
		return compressFilesVariable;
	}

	/**
	 * @param compressFilesVariable the compressFilesVariable to set
	 */
	public void setCompressFilesVariable(String compressFilesVariable) {
		this.compressFilesVariable = compressFilesVariable;
	}

	/**
	 * @return the caseSensitive
	 */
	public boolean[] getCaseSensitive() {
		return caseSensitive;
	}

	/**
	 * @param caseSensitive the caseSensitive to set
	 */
	public void setCaseSensitive(boolean[] caseSensitive) {
		this.caseSensitive = caseSensitive;
	}

	/**
	 * @return the freeMemoryLimit
	 */
	public String getFreeMemoryLimit() {
		return freeMemoryLimit;
	}

	/**
	 * @param freeMemoryLimit the freeMemoryLimit to set
	 */
	public void setFreeMemoryLimit(String freeMemoryLimit) {
		this.freeMemoryLimit = freeMemoryLimit;
	}
}