text:
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.12">
	<Catalog uuid="1c09bf33-9b54-4bfd-bc92-e7324025fab0">
		<InternalInfo>
			<xr:GeneratedType name="CatalogObject.Календари" category="Object">
				<xr:TypeId>bba9a909-1811-43d6-8c74-d15166a6caf9</xr:TypeId>
				<xr:ValueId>fc104b7d-4294-45f5-a42a-9a2ed15ce58c</xr:ValueId>
			</xr:GeneratedType>
			<xr:GeneratedType name="CatalogRef.Календари" category="Ref">
				<xr:TypeId>f81e5a9a-0644-431b-8994-74627bf4207c</xr:TypeId>
				<xr:ValueId>9e4aa6b9-c583-4f65-921f-9ddc7e675167</xr:ValueId>
			</xr:GeneratedType>
			<xr:GeneratedType name="CatalogSelection.Календари" category="Selection">
				<xr:TypeId>13226790-7bee-4112-bc15-7ae6bdf3b5b6</xr:TypeId>
				<xr:ValueId>c55d231e-90a7-4028-a836-9c235892f75c</xr:ValueId>
			</xr:GeneratedType>
			<xr:GeneratedType name="CatalogList.Календари" category="List">
				<xr:TypeId>6f421635-0a88-4f8a-86d3-d0bcd9185915</xr:TypeId>
				<xr:ValueId>0c0a2683-2c76-4837-9ad6-efc900b60c48</xr:ValueId>
			</xr:GeneratedType>
			<xr:GeneratedType name="CatalogManager.Календари" category="Manager">
				<xr:TypeId>9cde8666-b9cc-463e-bfd2-d9910cc3234d</xr:TypeId>
				<xr:ValueId>37a8e369-385e-4c11-b912-247eb7bf3dcd</xr:ValueId>
			</xr:GeneratedType>
		</InternalInfo>
		<Properties>
			<Name>Календари</Name>
			<Synonym>
				<v8:item>
					<v8:lang>ru</v8:lang>
					<v8:content>Графики работы</v8:content>
				</v8:item>
			</Synonym>
			<Comment/>
			<Hierarchical>true</Hierarchical>
			<HierarchyType>HierarchyFoldersAndItems</HierarchyType>
			<LimitLevelCount>false</LimitLevelCount>
			<LevelCount>2</LevelCount>
			<FoldersOnTop>true</FoldersOnTop>
			<UseStandardCommands>true</UseStandardCommands>
			<Owners/>
			<SubordinationUse>ToItems</SubordinationUse>
			<CodeLength>0</CodeLength>
			<DescriptionLength>100</DescriptionLength>
			<CodeType>String</CodeType>
			<CodeAllowedLength>Fixed</CodeAllowedLength>
			<CodeSeries>WholeCatalog</CodeSeries>
			<CheckUnique>false</CheckUnique>
			<Autonumbering>false</Autonumbering>
			<DefaultPresentation>AsDescription</DefaultPresentation>
			<StandardAttributes>
				<xr:StandardAttribute name="PredefinedDataName">
					<xr:LinkByType/>
					<xr:FillChecking>DontCheck</xr:FillChecking>
					<xr:MultiLine>false</xr:MultiLine>
					<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
					<xr:CreateOnInput>Auto</xr:CreateOnInput>
					<xr:MaxValue xsi:nil="true"/>
					<xr:ToolTip/>
					<xr:ExtendedEdit>false</xr:ExtendedEdit>
					<xr:Format/>
					<xr:ChoiceForm/>
					<xr:QuickChoice>Auto</xr:QuickChoice>
					<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
					<xr:EditFormat/>
					<xr:PasswordMode>false</xr:PasswordMode>
					<xr:DataHistory>Use</xr:DataHistory>
					<xr:MarkNegatives>false</xr:MarkNegatives>
					<xr:MinValue xsi:nil="true"/>
					<xr:Synonym/>
					<xr:Comment/>
					<xr:FullTextSearch>Use</xr:FullTextSearch>
					<xr:ChoiceParameterLinks/>
					<xr:FillValue xsi:nil="true"/>
					<xr:Mask/>
					<xr:ChoiceParameters/>
				</xr:StandardAttribute>
				<xr:StandardAttribute name="Predefined">
					<xr:LinkByType/>
					<xr:FillChecking>DontCheck</xr:FillChecking>
					<xr:MultiLine>false</xr:MultiLine>
					<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
					<xr:CreateOnInput>Auto</xr:CreateOnInput>
					<xr:MaxValue xsi:nil="true"/>
					<xr:ToolTip/>
					<xr:ExtendedEdit>false</xr:ExtendedEdit>
					<xr:Format/>
					<xr:ChoiceForm/>
					<xr:QuickChoice>Auto</xr:QuickChoice>
					<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
					<xr:EditFormat/>
					<xr:PasswordMode>false</xr:PasswordMode>
					<xr:DataHistory>Use</xr:DataHistory>
					<xr:MarkNegatives>false</xr:MarkNegatives>
					<xr:MinValue xsi:nil="true"/>
					<xr:Synonym/>
					<xr:Comment/>
					<xr:FullTextSearch>Use</xr:FullTextSearch>
					<xr:ChoiceParameterLinks/>
					<xr:FillValue xsi:nil="true"/>
					<xr:Mask/>
					<xr:ChoiceParameters/>
				</xr:StandardAttribute>
				<xr:StandardAttribute name="Ref">
					<xr:LinkByType/>
					<xr:FillChecking>DontCheck</xr:FillChecking>
					<xr:MultiLine>false</xr:MultiLine>
					<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
					<xr:CreateOnInput>Auto</xr:CreateOnInput>
					<xr:MaxValue xsi:nil="true"/>
					<xr:ToolTip/>
					<xr:ExtendedEdit>false</xr:ExtendedEdit>
					<xr:Format/>
					<xr:ChoiceForm/>
					<xr:QuickChoice>Auto</xr:QuickChoice>
					<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
					<xr:EditFormat/>
					<xr:PasswordMode>false</xr:PasswordMode>
					<xr:DataHistory>Use</xr:DataHistory>
					<xr:MarkNegatives>false</xr:MarkNegatives>
					<xr:MinValue xsi:nil="true"/>
					<xr:Synonym/>
					<xr:Comment/>
					<xr:FullTextSearch>Use</xr:FullTextSearch>
					<xr:ChoiceParameterLinks/>
					<xr:FillValue xsi:nil="true"/>
					<xr:Mask/>
					<xr:ChoiceParameters/>
				</xr:StandardAttribute>
				<xr:StandardAttribute name="DeletionMark">
					<xr:LinkByType/>
					<xr:FillChecking>DontCheck</xr:FillChecking>
					<xr:MultiLine>false</xr:MultiLine>
					<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
					<xr:CreateOnInput>Auto</xr:CreateOnInput>
					<xr:MaxValue xsi:nil="true"/>
					<xr:ToolTip/>
					<xr:ExtendedEdit>false</xr:ExtendedEdit>
					<xr:Format/>
					<xr:ChoiceForm/>
					<xr:QuickChoice>Auto</xr:QuickChoice>
					<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
					<xr:EditFormat/>
					<xr:PasswordMode>false</xr:PasswordMode>
					<xr:DataHistory>Use</xr:DataHistory>
					<xr:MarkNegatives>false</xr:MarkNegatives>
					<xr:MinValue xsi:nil="true"/>
					<xr:Synonym/>
					<xr:Comment/>
					<xr:FullTextSearch>Use</xr:FullTextSearch>
					<xr:ChoiceParameterLinks/>
					<xr:FillValue xsi:nil="true"/>
					<xr:Mask/>
					<xr:ChoiceParameters/>
				</xr:StandardAttribute>
				<xr:StandardAttribute name="IsFolder">
					<xr:LinkByType/>
					<xr:FillChecking>DontCheck</xr:FillChecking>
					<xr:MultiLine>false</xr:MultiLine>
					<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
					<xr:CreateOnInput>Auto</xr:CreateOnInput>
					<xr:MaxValue xsi:nil="true"/>
					<xr:ToolTip/>
					<xr:ExtendedEdit>false</xr:ExtendedEdit>
					<xr:Format/>
					<xr:ChoiceForm/>
					<xr:QuickChoice>Auto</xr:QuickChoice>
					<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
					<xr:EditFormat/>
					<xr:PasswordMode>false</xr:PasswordMode>
					<xr:DataHistory>Use</xr:DataHistory>
					<xr:MarkNegatives>false</xr:MarkNegatives>
					<xr:MinValue xsi:nil="true"/>
					<xr:Synonym/>
					<xr:Comment/>
					<xr:FullTextSearch>Use</xr:FullTextSearch>
					<xr:ChoiceParameterLinks/>
					<xr:FillValue xsi:nil="true"/>
					<xr:Mask/>
					<xr:ChoiceParameters/>
				</xr:StandardAttribute>
				<xr:StandardAttribute name="Owner">
					<xr:LinkByType/>
					<xr:FillChecking>ShowError</xr:FillChecking>
					<xr:MultiLine>false</xr:MultiLine>
					<xr:FillFromFillingValue>true</xr:FillFromFillingValue>
					<xr:CreateOnInput>Auto</xr:CreateOnInput>
					<xr:MaxValue xsi:nil="true"/>
					<xr:ToolTip/>
					<xr:ExtendedEdit>false</xr:ExtendedEdit>
					<xr:Format/>
					<xr:ChoiceForm/>
					<xr:QuickChoice>Auto</xr:QuickChoice>
					<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
					<xr:EditFormat/>
					<xr:PasswordMode>false</xr:PasswordMode>
					<xr:DataHistory>Use</xr:DataHistory>
					<xr:MarkNegatives>false</xr:MarkNegatives>
					<xr:MinValue xsi:nil="true"/>
					<xr:Synonym/>
					<xr:Comment/>
					<xr:FullTextSearch>Use</xr:FullTextSearch>
					<xr:ChoiceParameterLinks/>
					<xr:FillValue xsi:nil="true"/>
					<xr:Mask/>
					<xr:ChoiceParameters/>
				</xr:StandardAttribute>
				<xr:StandardAttribute name="Parent">
					<xr:LinkByType/>
					<xr:FillChecking>DontCheck</xr:FillChecking>
					<xr:MultiLine>false</xr:MultiLine>
					<xr:FillFromFillingValue>true</xr:FillFromFillingValue>
					<xr:CreateOnInput>Auto</xr:CreateOnInput>
					<xr:MaxValue xsi:nil="true"/>
					<xr:ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Группа, в которую входит текущий график</v8:content>
						</v8:item>
					</xr:ToolTip>
					<xr:ExtendedEdit>false</xr:ExtendedEdit>
					<xr:Format/>
					<xr:ChoiceForm/>
					<xr:QuickChoice>Auto</xr:QuickChoice>
					<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
					<xr:EditFormat/>
					<xr:PasswordMode>false</xr:PasswordMode>
					<xr:DataHistory>Use</xr:DataHistory>
					<xr:MarkNegatives>false</xr:MarkNegatives>
					<xr:MinValue xsi:nil="true"/>
					<xr:Synonym>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Группа графиков работы</v8:content>
						</v8:item>
					</xr:Synonym>
					<xr:Comment/>
					<xr:FullTextSearch>Use</xr:FullTextSearch>
					<xr:ChoiceParameterLinks/>
					<xr:FillValue xsi:type="xr:DesignTimeRef">Catalog.Календари.EmptyRef</xr:FillValue>
					<xr:Mask/>
					<xr:ChoiceParameters/>
				</xr:StandardAttribute>
				<xr:StandardAttribute name="Description">
					<xr:LinkByType/>
					<xr:FillChecking>ShowError</xr:FillChecking>
					<xr:MultiLine>false</xr:MultiLine>
					<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
					<xr:CreateOnInput>Auto</xr:CreateOnInput>
					<xr:MaxValue xsi:nil="true"/>
					<xr:ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Название графика работы</v8:content>
						</v8:item>
					</xr:ToolTip>
					<xr:ExtendedEdit>false</xr:ExtendedEdit>
					<xr:Format/>
					<xr:ChoiceForm/>
					<xr:QuickChoice>Auto</xr:QuickChoice>
					<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
					<xr:EditFormat/>
					<xr:PasswordMode>false</xr:PasswordMode>
					<xr:DataHistory>Use</xr:DataHistory>
					<xr:MarkNegatives>false</xr:MarkNegatives>
					<xr:MinValue xsi:nil="true"/>
					<xr:Synonym/>
					<xr:Comment/>
					<xr:FullTextSearch>Use</xr:FullTextSearch>
					<xr:ChoiceParameterLinks/>
					<xr:FillValue xsi:nil="true"/>
					<xr:Mask/>
					<xr:ChoiceParameters/>
				</xr:StandardAttribute>
				<xr:StandardAttribute name="Code">
					<xr:LinkByType/>
					<xr:FillChecking>DontCheck</xr:FillChecking>
					<xr:MultiLine>false</xr:MultiLine>
					<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
					<xr:CreateOnInput>Auto</xr:CreateOnInput>
					<xr:MaxValue xsi:nil="true"/>
					<xr:ToolTip/>
					<xr:ExtendedEdit>false</xr:ExtendedEdit>
					<xr:Format/>
					<xr:ChoiceForm/>
					<xr:QuickChoice>Auto</xr:QuickChoice>
					<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
					<xr:EditFormat/>
					<xr:PasswordMode>false</xr:PasswordMode>
					<xr:DataHistory>Use</xr:DataHistory>
					<xr:MarkNegatives>false</xr:MarkNegatives>
					<xr:MinValue xsi:nil="true"/>
					<xr:Synonym/>
					<xr:Comment/>
					<xr:FullTextSearch>Use</xr:FullTextSearch>
					<xr:ChoiceParameterLinks/>
					<xr:FillValue xsi:nil="true"/>
					<xr:Mask/>
					<xr:ChoiceParameters/>
				</xr:StandardAttribute>
			</StandardAttributes>
			<Characteristics/>
			<PredefinedDataUpdate>Auto</PredefinedDataUpdate>
			<EditType>InDialog</EditType>
			<QuickChoice>false</QuickChoice>
			<ChoiceMode>BothWays</ChoiceMode>
			<InputByString>
				<xr:Field>Catalog.Календари.StandardAttribute.Description</xr:Field>
			</InputByString>
			<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
			<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
			<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
			<DefaultObjectForm>Catalog.Календари.Form.ФормаЭлемента</DefaultObjectForm>
			<DefaultFolderForm/>
			<DefaultListForm>Catalog.Календари.Form.ФормаСписка</DefaultListForm>
			<DefaultChoiceForm>Catalog.Календари.Form.ФормаСписка</DefaultChoiceForm>
			<DefaultFolderChoiceForm/>
			<AuxiliaryObjectForm/>
			<AuxiliaryFolderForm/>
			<AuxiliaryListForm/>
			<AuxiliaryChoiceForm/>
			<AuxiliaryFolderChoiceForm/>
			<IncludeHelpInContents>true</IncludeHelpInContents>
			<BasedOn/>
			<DataLockFields/>
			<DataLockControlMode>Managed</DataLockControlMode>
			<FullTextSearch>Use</FullTextSearch>
			<ObjectPresentation>
				<v8:item>
					<v8:lang>ru</v8:lang>
					<v8:content>График работы</v8:content>
				</v8:item>
			</ObjectPresentation>
			<ExtendedObjectPresentation/>
			<ListPresentation/>
			<ExtendedListPresentation/>
			<Explanation>
				<v8:item>
					<v8:lang>ru</v8:lang>
					<v8:content>Графики работы логистических центров, складов, поставщиков и покупателей.</v8:content>
				</v8:item>
			</Explanation>
			<CreateOnInput>Use</CreateOnInput>
			<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
			<DataHistory>DontUse</DataHistory>
			<UpdateDataHistoryImmediatelyAfterWrite>false</UpdateDataHistoryImmediatelyAfterWrite>
			<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>
		</Properties>
		<ChildObjects>
			<Attribute uuid="8d7750e9-899f-4434-8702-44cd02681779">
				<Properties>
					<Name>ПроизводственныйКалендарь</Name>
					<Synonym>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Производственный календарь</v8:content>
						</v8:item>
					</Synonym>
					<Comment/>
					<Type>
						<v8:Type>cfg:CatalogRef.ПроизводственныеКалендари</v8:Type>
					</Type>
					<PasswordMode>false</PasswordMode>
					<Format/>
					<EditFormat/>
					<ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Производственный календарь, на основании которого выполняется заполнение графика</v8:content>
						</v8:item>
					</ToolTip>
					<MarkNegatives>false</MarkNegatives>
					<Mask/>
					<MultiLine>false</MultiLine>
					<ExtendedEdit>false</ExtendedEdit>
					<MinValue xsi:nil="true"/>
					<MaxValue xsi:nil="true"/>
					<FillFromFillingValue>false</FillFromFillingValue>
					<FillValue xsi:nil="true"/>
					<FillChecking>DontCheck</FillChecking>
					<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
					<ChoiceParameterLinks/>
					<ChoiceParameters/>
					<QuickChoice>Auto</QuickChoice>
					<CreateOnInput>Auto</CreateOnInput>
					<ChoiceForm/>
					<LinkByType/>
					<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
					<Use>ForItem</Use>
					<Indexing>DontIndex</Indexing>
					<FullTextSearch>Use</FullTextSearch>
					<DataHistory>Use</DataHistory>
				</Properties>
			</Attribute>
			<Attribute uuid="d85244dc-c417-4e69-9aa7-7ad313ecb940">
				<Properties>
					<Name>СпособЗаполнения</Name>
					<Synonym>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Способ заполнения</v8:content>
						</v8:item>
					</Synonym>
					<Comment/>
					<Type>
						<v8:Type>cfg:EnumRef.СпособыЗаполненияГрафикаРаботы</v8:Type>
					</Type>
					<PasswordMode>false</PasswordMode>
					<Format/>
					<EditFormat/>
					<ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Способ заполнения графика работы по данным производственного календаря</v8:content>
						</v8:item>
					</ToolTip>
					<MarkNegatives>false</MarkNegatives>
					<Mask/>
					<MultiLine>false</MultiLine>
					<ExtendedEdit>false</ExtendedEdit>
					<MinValue xsi:nil="true"/>
					<MaxValue xsi:nil="true"/>
					<FillFromFillingValue>false</FillFromFillingValue>
					<FillValue xsi:type="xr:DesignTimeRef">Enum.СпособыЗаполненияГрафикаРаботы.EnumValue.ПоНеделям</FillValue>
					<FillChecking>DontCheck</FillChecking>
					<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
					<ChoiceParameterLinks/>
					<ChoiceParameters/>
					<QuickChoice>Auto</QuickChoice>
					<CreateOnInput>Auto</CreateOnInput>
					<ChoiceForm/>
					<LinkByType/>
					<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
					<Use>ForItem</Use>
					<Indexing>DontIndex</Indexing>
					<FullTextSearch>Use</FullTextSearch>
					<DataHistory>Use</DataHistory>
				</Properties>
			</Attribute>
			<Attribute uuid="3bebf5e9-68bb-48dc-a39d-cbdca2dbecb1">
				<Properties>
					<Name>ДатаНачала</Name>
					<Synonym>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Дата начала</v8:content>
						</v8:item>
					</Synonym>
					<Comment/>
					<Type>
						<v8:Type>xs:dateTime</v8:Type>
						<v8:DateQualifiers>
							<v8:DateFractions>Date</v8:DateFractions>
						</v8:DateQualifiers>
					</Type>
					<PasswordMode>false</PasswordMode>
					<Format/>
					<EditFormat/>
					<ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Дата начала заполнения графика</v8:content>
						</v8:item>
					</ToolTip>
					<MarkNegatives>false</MarkNegatives>
					<Mask/>
					<MultiLine>false</MultiLine>
					<ExtendedEdit>false</ExtendedEdit>
					<MinValue xsi:nil="true"/>
					<MaxValue xsi:nil="true"/>
					<FillFromFillingValue>false</FillFromFillingValue>
					<FillValue xsi:nil="true"/>
					<FillChecking>ShowError</FillChecking>
					<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
					<ChoiceParameterLinks/>
					<ChoiceParameters/>
					<QuickChoice>Auto</QuickChoice>
					<CreateOnInput>Auto</CreateOnInput>
					<ChoiceForm/>
					<LinkByType/>
					<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
					<Use>ForItem</Use>
					<Indexing>DontIndex</Indexing>
					<FullTextSearch>Use</FullTextSearch>
					<DataHistory>Use</DataHistory>
				</Properties>
			</Attribute>
			<Attribute uuid="cd392ef0-dedb-4f83-9a2c-a24190ee0dc0">
				<Properties>
					<Name>ДатаОкончания</Name>
					<Synonym>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Дата окончания</v8:content>
						</v8:item>
					</Synonym>
					<Comment/>
					<Type>
						<v8:Type>xs:dateTime</v8:Type>
						<v8:DateQualifiers>
							<v8:DateFractions>Date</v8:DateFractions>
						</v8:DateQualifiers>
					</Type>
					<PasswordMode>false</PasswordMode>
					<Format/>
					<EditFormat/>
					<ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Дата окончания периода автоматического заполнения графика на основании производственного календаря</v8:content>
						</v8:item>
					</ToolTip>
					<MarkNegatives>false</MarkNegatives>
					<Mask/>
					<MultiLine>false</MultiLine>
					<ExtendedEdit>false</ExtendedEdit>
					<MinValue xsi:nil="true"/>
					<MaxValue xsi:nil="true"/>
					<FillFromFillingValue>false</FillFromFillingValue>
					<FillValue xsi:nil="true"/>
					<FillChecking>DontCheck</FillChecking>
					<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
					<ChoiceParameterLinks/>
					<ChoiceParameters/>
					<QuickChoice>Auto</QuickChoice>
					<CreateOnInput>Auto</CreateOnInput>
					<ChoiceForm/>
					<LinkByType/>
					<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
					<Use>ForItem</Use>
					<Indexing>DontIndex</Indexing>
					<FullTextSearch>Use</FullTextSearch>
					<DataHistory>Use</DataHistory>
				</Properties>
			</Attribute>
			<Attribute uuid="bb2f0c1c-3cfb-4a26-b6de-5bbeb5614587">
				<Properties>
					<Name>ДатаОтсчета</Name>
					<Synonym>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Дата отсчета</v8:content>
						</v8:item>
					</Synonym>
					<Comment/>
					<Type>
						<v8:Type>xs:dateTime</v8:Type>
						<v8:DateQualifiers>
							<v8:DateFractions>Date</v8:DateFractions>
						</v8:DateQualifiers>
					</Type>
					<PasswordMode>false</PasswordMode>
					<Format/>
					<EditFormat/>
					<ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Дата, от которой начинается отсчет произвольного цикла заполнения</v8:content>
						</v8:item>
					</ToolTip>
					<MarkNegatives>false</MarkNegatives>
					<Mask/>
					<MultiLine>false</MultiLine>
					<ExtendedEdit>false</ExtendedEdit>
					<MinValue xsi:nil="true"/>
					<MaxValue xsi:nil="true"/>
					<FillFromFillingValue>false</FillFromFillingValue>
					<FillValue xsi:nil="true"/>
					<FillChecking>DontCheck</FillChecking>
					<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
					<ChoiceParameterLinks/>
					<ChoiceParameters/>
					<QuickChoice>Auto</QuickChoice>
					<CreateOnInput>Auto</CreateOnInput>
					<ChoiceForm/>
					<LinkByType/>
					<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
					<Use>ForItem</Use>
					<Indexing>DontIndex</Indexing>
					<FullTextSearch>Use</FullTextSearch>
					<DataHistory>Use</DataHistory>
				</Properties>
			</Attribute>
			<Attribute uuid="0713de12-87d5-4877-bd8a-2b6466df67df">
				<Properties>
					<Name>УчитыватьПраздники</Name>
					<Synonym>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Учитывать праздники</v8:content>
						</v8:item>
					</Synonym>
					<Comment/>
					<Type>
						<v8:Type>xs:boolean</v8:Type>
					</Type>
					<PasswordMode>false</PasswordMode>
					<Format/>
					<EditFormat/>
					<ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Если установлено, то из состава рабочих дней будут исключаться дни, выпадающие на праздники</v8:content>
						</v8:item>
					</ToolTip>
					<MarkNegatives>false</MarkNegatives>
					<Mask/>
					<MultiLine>false</MultiLine>
					<ExtendedEdit>false</ExtendedEdit>
					<MinValue xsi:nil="true"/>
					<MaxValue xsi:nil="true"/>
					<FillFromFillingValue>false</FillFromFillingValue>
					<FillValue xsi:type="xs:boolean">true</FillValue>
					<FillChecking>DontCheck</FillChecking>
					<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
					<ChoiceParameterLinks/>
					<ChoiceParameters/>
					<QuickChoice>Auto</QuickChoice>
					<CreateOnInput>Auto</CreateOnInput>
					<ChoiceForm/>
					<LinkByType/>
					<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
					<Use>ForItem</Use>
					<Indexing>DontIndex</Indexing>
					<FullTextSearch>Use</FullTextSearch>
					<DataHistory>Use</DataHistory>
				</Properties>
			</Attribute>
			<Attribute uuid="b848aafc-44fb-4dfe-8eec-233dc08fbbb6">
				<Properties>
					<Name>Описание</Name>
					<Synonym>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Описание</v8:content>
						</v8:item>
					</Synonym>
					<Comment/>
					<Type>
						<v8:Type>xs:string</v8:Type>
						<v8:StringQualifiers>
							<v8:Length>0</v8:Length>
							<v8:AllowedLength>Variable</v8:AllowedLength>
						</v8:StringQualifiers>
					</Type>
					<PasswordMode>false</PasswordMode>
					<Format/>
					<EditFormat/>
					<ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Произвольный текст</v8:content>
						</v8:item>
					</ToolTip>
					<MarkNegatives>false</MarkNegatives>
					<Mask/>
					<MultiLine>true</MultiLine>
					<ExtendedEdit>true</ExtendedEdit>
					<MinValue xsi:nil="true"/>
					<MaxValue xsi:nil="true"/>
					<FillFromFillingValue>false</FillFromFillingValue>
					<FillValue xsi:nil="true"/>
					<FillChecking>DontCheck</FillChecking>
					<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
					<ChoiceParameterLinks/>
					<ChoiceParameters/>
					<QuickChoice>Auto</QuickChoice>
					<CreateOnInput>Auto</CreateOnInput>
					<ChoiceForm/>
					<LinkByType/>
					<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
					<Use>ForItem</Use>
					<Indexing>DontIndex</Indexing>
					<FullTextSearch>Use</FullTextSearch>
					<DataHistory>Use</DataHistory>
				</Properties>
			</Attribute>
			<Attribute uuid="c4d7c569-4649-4f98-a048-45f3c5933670">
				<Properties>
					<Name>ГоризонтПланирования</Name>
					<Synonym>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Горизонт планирования</v8:content>
						</v8:item>
					</Synonym>
					<Comment/>
					<Type>
						<v8:Type>xs:decimal</v8:Type>
						<v8:NumberQualifiers>
							<v8:Digits>3</v8:Digits>
							<v8:FractionDigits>0</v8:FractionDigits>
							<v8:AllowedSign>Nonnegative</v8:AllowedSign>
						</v8:NumberQualifiers>
					</Type>
					<PasswordMode>false</PasswordMode>
					<Format/>
					<EditFormat/>
					<ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Период времени, на который график должен быть заполнен вперед</v8:content>
						</v8:item>
					</ToolTip>
					<MarkNegatives>false</MarkNegatives>
					<Mask/>
					<MultiLine>false</MultiLine>
					<ExtendedEdit>false</ExtendedEdit>
					<MinValue xsi:nil="true"/>
					<MaxValue xsi:nil="true"/>
					<FillFromFillingValue>false</FillFromFillingValue>
					<FillValue xsi:nil="true"/>
					<FillChecking>DontCheck</FillChecking>
					<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
					<ChoiceParameterLinks/>
					<ChoiceParameters/>
					<QuickChoice>Auto</QuickChoice>
					<CreateOnInput>Auto</CreateOnInput>
					<ChoiceForm/>
					<LinkByType/>
					<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
					<Use>ForItem</Use>
					<Indexing>DontIndex</Indexing>
					<FullTextSearch>Use</FullTextSearch>
					<DataHistory>Use</DataHistory>
				</Properties>
			</Attribute>
			<Attribute uuid="6dc05d69-bd54-4e8a-8985-c2ddfa0aaffb">
				<Properties>
					<Name>ВладелецГрафика</Name>
					<Synonym>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Владелец графика</v8:content>
						</v8:item>
					</Synonym>
					<Comment/>
					<Type>
						<v8:TypeSet>cfg:CatalogRef</v8:TypeSet>
					</Type>
					<PasswordMode>false</PasswordMode>
					<Format/>
					<EditFormat/>
					<ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Служебный реквизит для связи с владельцем графика работы</v8:content>
						</v8:item>
					</ToolTip>
					<MarkNegatives>false</MarkNegatives>
					<Mask/>
					<MultiLine>false</MultiLine>
					<ExtendedEdit>false</ExtendedEdit>
					<MinValue xsi:nil="true"/>
					<MaxValue xsi:nil="true"/>
					<FillFromFillingValue>false</FillFromFillingValue>
					<FillValue xsi:nil="true"/>
					<FillChecking>DontCheck</FillChecking>
					<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
					<ChoiceParameterLinks/>
					<ChoiceParameters/>
					<QuickChoice>Auto</QuickChoice>
					<CreateOnInput>Auto</CreateOnInput>
					<ChoiceForm/>
					<LinkByType/>
					<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
					<Use>ForItem</Use>
					<Indexing>DontIndex</Indexing>
					<FullTextSearch>Use</FullTextSearch>
					<DataHistory>Use</DataHistory>
				</Properties>
			</Attribute>
			<Attribute uuid="426cbebb-880b-49c5-b046-83c5e071273e">
				<Properties>
					<Name>УдалитьВидКалендаря</Name>
					<Synonym>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>(Не используется) вид календаря</v8:content>
						</v8:item>
					</Synonym>
					<Comment/>
					<Type>
						<v8:Type>cfg:EnumRef.УдалитьВидыКалендарей</v8:Type>
					</Type>
					<PasswordMode>false</PasswordMode>
					<Format/>
					<EditFormat/>
					<ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Вид заполнения календаря (не используется)</v8:content>
						</v8:item>
					</ToolTip>
					<MarkNegatives>false</MarkNegatives>
					<Mask/>
					<MultiLine>false</MultiLine>
					<ExtendedEdit>false</ExtendedEdit>
					<MinValue xsi:nil="true"/>
					<MaxValue xsi:nil="true"/>
					<FillFromFillingValue>false</FillFromFillingValue>
					<FillValue xsi:nil="true"/>
					<FillChecking>DontCheck</FillChecking>
					<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
					<ChoiceParameterLinks/>
					<ChoiceParameters/>
					<QuickChoice>Auto</QuickChoice>
					<CreateOnInput>Auto</CreateOnInput>
					<ChoiceForm/>
					<LinkByType/>
					<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
					<Use>ForItem</Use>
					<Indexing>DontIndex</Indexing>
					<FullTextSearch>Use</FullTextSearch>
					<DataHistory>Use</DataHistory>
				</Properties>
			</Attribute>
			<TabularSection uuid="ad08b104-01f8-4900-a06c-baa1d55eba84">
				<InternalInfo>
					<xr:GeneratedType name="CatalogTabularSection.Календари.ШаблонЗаполнения" category="TabularSection">
						<xr:TypeId>a46154d6-5130-4e31-a509-dfc89004bf6f</xr:TypeId>
						<xr:ValueId>82efe3db-7415-48e9-952b-6b7c546dba82</xr:ValueId>
					</xr:GeneratedType>
					<xr:GeneratedType name="CatalogTabularSectionRow.Календари.ШаблонЗаполнения" category="TabularSectionRow">
						<xr:TypeId>dca0e821-7404-4b21-974e-d802130f5c38</xr:TypeId>
						<xr:ValueId>226ef116-a20d-486f-9847-314b4a075e4b</xr:ValueId>
					</xr:GeneratedType>
				</InternalInfo>
				<Properties>
					<Name>ШаблонЗаполнения</Name>
					<Synonym>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Шаблон заполнения</v8:content>
						</v8:item>
					</Synonym>
					<Comment/>
					<ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Цикл заполнения графика работы</v8:content>
						</v8:item>
					</ToolTip>
					<FillChecking>DontCheck</FillChecking>
					<StandardAttributes>
						<xr:StandardAttribute name="LineNumber">
							<xr:LinkByType/>
							<xr:FillChecking>DontCheck</xr:FillChecking>
							<xr:MultiLine>false</xr:MultiLine>
							<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
							<xr:CreateOnInput>Auto</xr:CreateOnInput>
							<xr:MaxValue xsi:nil="true"/>
							<xr:ToolTip/>
							<xr:ExtendedEdit>false</xr:ExtendedEdit>
							<xr:Format/>
							<xr:ChoiceForm/>
							<xr:QuickChoice>Auto</xr:QuickChoice>
							<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
							<xr:EditFormat/>
							<xr:PasswordMode>false</xr:PasswordMode>
							<xr:DataHistory>Use</xr:DataHistory>
							<xr:MarkNegatives>false</xr:MarkNegatives>
							<xr:MinValue xsi:nil="true"/>
							<xr:Synonym>
								<v8:item>
									<v8:lang>ru</v8:lang>
									<v8:content>Номер дня</v8:content>
								</v8:item>
							</xr:Synonym>
							<xr:Comment/>
							<xr:FullTextSearch>Use</xr:FullTextSearch>
							<xr:ChoiceParameterLinks/>
							<xr:FillValue xsi:nil="true"/>
							<xr:Mask/>
							<xr:ChoiceParameters/>
						</xr:StandardAttribute>
					</StandardAttributes>
					<Use>ForItem</Use>
				</Properties>
				<ChildObjects>
					<Attribute uuid="9352d10d-188f-4074-8dd1-7be5c11525e3">
						<Properties>
							<Name>ДеньВключенВГрафик</Name>
							<Synonym>
								<v8:item>
									<v8:lang>ru</v8:lang>
									<v8:content>День включен в график</v8:content>
								</v8:item>
							</Synonym>
							<Comment/>
							<Type>
								<v8:Type>xs:boolean</v8:Type>
							</Type>
							<PasswordMode>false</PasswordMode>
							<Format/>
							<EditFormat/>
							<ToolTip>
								<v8:item>
									<v8:lang>ru</v8:lang>
									<v8:content>Признак того, что указанный день цикла включен в график</v8:content>
								</v8:item>
							</ToolTip>
							<MarkNegatives>false</MarkNegatives>
							<Mask/>
							<MultiLine>false</MultiLine>
							<ExtendedEdit>false</ExtendedEdit>
							<MinValue xsi:nil="true"/>
							<MaxValue xsi:nil="true"/>
							<FillChecking>DontCheck</FillChecking>
							<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
							<ChoiceParameterLinks/>
							<ChoiceParameters/>
							<QuickChoice>Auto</QuickChoice>
							<CreateOnInput>Auto</CreateOnInput>
							<ChoiceForm/>
							<LinkByType/>
							<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
							<Indexing>DontIndex</Indexing>
							<FullTextSearch>Use</FullTextSearch>
							<DataHistory>Use</DataHistory>
						</Properties>
					</Attribute>
				</ChildObjects>
			</TabularSection>
			<TabularSection uuid="1933634a-6f10-48e7-99f0-60ac338f7832">
				<InternalInfo>
					<xr:GeneratedType name="CatalogTabularSection.Календари.РасписаниеРаботы" category="TabularSection">
						<xr:TypeId>4836955c-d561-4574-a8a1-5d2cbba411a8</xr:TypeId>
						<xr:ValueId>c07825bd-caaa-4acc-be18-98a7f339fb6e</xr:ValueId>
					</xr:GeneratedType>
					<xr:GeneratedType name="CatalogTabularSectionRow.Календари.РасписаниеРаботы" category="TabularSectionRow">
						<xr:TypeId>a89d4d15-b8b5-4398-8c9a-83de47bc0351</xr:TypeId>
						<xr:ValueId>fb037322-2aba-43d0-a34c-a3bd16179acb</xr:ValueId>
					</xr:GeneratedType>
				</InternalInfo>
				<Properties>
					<Name>РасписаниеРаботы</Name>
					<Synonym>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Расписание работы</v8:content>
						</v8:item>
					</Synonym>
					<Comment/>
					<ToolTip>
						<v8:item>
							<v8:lang>ru</v8:lang>
							<v8:content>Интервалы рабочего времени</v8:content>
						</v8:item>
					</ToolTip>
					<FillChecking>DontCheck</FillChecking>
					<StandardAttributes>
						<xr:StandardAttribute name="LineNumber">
							<xr:LinkByType/>
							<xr:FillChecking>DontCheck</xr:FillChecking>
							<xr:MultiLine>false</xr:MultiLine>
							<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
							<xr:CreateOnInput>Auto</xr:CreateOnInput>
							<xr:MaxValue xsi:nil="true"/>
							<xr:ToolTip/>
							<xr:ExtendedEdit>false</xr:ExtendedEdit>
							<xr:Format/>
							<xr:ChoiceForm/>
							<xr:QuickChoice>Auto</xr:QuickChoice>
							<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
							<xr:EditFormat/>
							<xr:PasswordMode>false</xr:PasswordMode>
							<xr:DataHistory>Use</xr:DataHistory>
							<xr:MarkNegatives>false</xr:MarkNegatives>
							<xr:MinValue xsi:nil="true"/>
							<xr:Synonym/>
							<xr:Comment/>
							<xr:FullTextSearch>Use</xr:FullTextSearch>
							<xr:ChoiceParameterLinks/>
							<xr:FillValue xsi:nil="true"/>
							<xr:Mask/>
							<xr:ChoiceParameters/>
						</xr:StandardAttribute>
					</StandardAttributes>
					<Use>ForItem</Use>
				</Properties>
				<ChildObjects>
					<Attribute uuid="655deec5-c079-4748-8521-b3f10c243394">
						<Properties>
							<Name>НомерДня</Name>
							<Synonym>
								<v8:item>
									<v8:lang>ru</v8:lang>
									<v8:content>Номер дня</v8:content>
								</v8:item>
							</Synonym>
							<Comment/>
							<Type>
								<v8:Type>xs:decimal</v8:Type>
								<v8:NumberQualifiers>
									<v8:Digits>7</v8:Digits>
									<v8:FractionDigits>0</v8:FractionDigits>
									<v8:AllowedSign>Nonnegative</v8:AllowedSign>
								</v8:NumberQualifiers>
							</Type>
							<PasswordMode>false</PasswordMode>
							<Format/>
							<EditFormat/>
							<ToolTip>
								<v8:item>
									<v8:lang>ru</v8:lang>
									<v8:content>Номер дня в цикле</v8:content>
								</v8:item>
							</ToolTip>
							<MarkNegatives>false</MarkNegatives>
							<Mask/>
							<MultiLine>false</MultiLine>
							<ExtendedEdit>false</ExtendedEdit>
							<MinValue xsi:nil="true"/>
							<MaxValue xsi:nil="true"/>
							<FillChecking>DontCheck</FillChecking>
							<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
							<ChoiceParameterLinks/>
							<ChoiceParameters/>
							<QuickChoice>Auto</QuickChoice>
							<CreateOnInput>Auto</CreateOnInput>
							<ChoiceForm/>
							<LinkByType/>
							<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
							<Indexing>DontIndex</Indexing>
							<FullTextSearch>Use</FullTextSearch>
							<DataHistory>Use</DataHistory>
						</Properties>
					</Attribute>
					<Attribute uuid="f6d4d818-d54c-4337-82cf-abd5e6dbe770">
						<Properties>
							<Name>ВремяНачала</Name>
							<Synonym>
								<v8:item>
									<v8:lang>ru</v8:lang>
									<v8:content>Время начала</v8:content>
								</v8:item>
							</Synonym>
							<Comment/>
							<Type>
								<v8:Type>xs:dateTime</v8:Type>
								<v8:DateQualifiers>
									<v8:DateFractions>Time</v8:DateFractions>
								</v8:DateQualifiers>
							</Type>
							<PasswordMode>false</PasswordMode>
							<Format>
								<v8:item>
									<v8:lang>ru</v8:lang>
									<v8:content>ДФ=ЧЧ:мм</v8:content>
								</v8:item>
							</Format>
							<EditFormat>
								<v8:item>
									<v8:lang>ru</v8:lang>
									<v8:content>ДФ=ЧЧ:мм</v8:content>
								</v8:item>
							</EditFormat>
							<ToolTip>
								<v8:item>
									<v8:lang>ru</v8:lang>
									<v8:content>Подсистема</v8:content>
								</v8:item>
							</ToolTip>
							<MarkNegatives>false</MarkNegatives>
							<Mask/>
							<MultiLine>false</MultiLine>
							<ExtendedEdit>false</ExtendedEdit>
							<MinValue xsi:nil="true"/>
							<MaxValue xsi:nil="true"/>
							<FillChecking>DontCheck</FillChecking>
							<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
							<ChoiceParameterLinks/>
							<ChoiceParameters/>
							<QuickChoice>Auto</QuickChoice>
							<CreateOnInput>Auto</CreateOnInput>
							<ChoiceForm/>
							<LinkByType/>
							<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
							<Indexing>DontIndex</Indexing>
							<FullTextSearch>Use</FullTextSearch>
							<DataHistory>Use</DataHistory>
						</Properties>
					</Attribute>
					<Attribute uuid="656c447b-291f-4e62-81ac-1c004841aa72">
						<Properties>
							<Name>ВремяОкончания</Name>
							<Synonym>
								<v8:item>
									<v8:lang>ru</v8:lang>
									<v8:content>Время окончания</v8:content>
								</v8:item>
							</Synonym>
							<Comment/>
							<Type>
								<v8:Type>xs:dateTime</v8:Type>
								<v8:DateQualifiers>
									<v8:DateFractions>Time</v8:DateFractions>
								</v8:DateQualifiers>
							</Type>
							<PasswordMode>false</PasswordMode>
							<Format>
								<v8:item>
									<v8:lang>ru</v8:lang>
									<v8:content>ДФ=ЧЧ:мм</v8:content>
								</v8:item>
							</Format>
							<EditFormat>
								<v8:item>
									<v8:lang>ru</v8:lang>
									<v8:content>ДФ=ЧЧ:мм</v8:content>
								</v8:item>
							</EditFormat>
							<ToolTip>
								<v8:item>
									<v8:lang>ru</v8:lang>
									<v8:content>Время окончания интервала</v8:content>
								</v8:item>
							</ToolTip>
							<MarkNegatives>false</MarkNegatives>
							<Mask/>
							<MultiLine>false</MultiLine>
							<ExtendedEdit>false</ExtendedEdit>
							<MinValue xsi:nil="true"/>
							<MaxValue xsi:nil="true"/>
							<FillChecking>DontCheck</FillChecking>
							<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
							<ChoiceParameterLinks/>
							<ChoiceParameters/>
							<QuickChoice>Auto</QuickChoice>
							<CreateOnInput>Auto</CreateOnInput>
							<ChoiceForm/>
							<LinkByType/>
							<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
							<Indexing>DontIndex</Indexing>
							<FullTextSearch>Use</FullTextSearch>
							<DataHistory>Use</DataHistory>
						</Properties>
					</Attribute>
				</ChildObjects>
			</TabularSection>
			<Form>ФормаЭлемента</Form>
			<Form>ФормаСписка</Form>
			<Form>РасписаниеРаботы</Form>
		</ChildObjects>
	</Catalog>
</MetaDataObject>


text:
namespace blink {

// DawnCallback<Callback> is a heap-allocated version of
// base::OnceCallback or base::RepeatingCallback.
// It is allocated on the heap so that it can be reinterpret_cast to/from
// void* and passed to Dawn C callbacks.
//
// Example:
//   DawnCallback<F>* callback =
//     CreateDawnCallback(WTF::Bind(func, arg1));
//
//   // |someDawnFunction| expects callback function with arguments:
//   //    Args... args, void* userdata.
//   // When it is called, it will forward to func(arg1, args...).
//   GetProcs().someDawnFunction(
//     callback->UnboundCallback(), callback->AsUserdata());
template <typename Callback>
class DawnCallback;

template <template <typename> class BaseCallbackTemplate,
          typename R,
          typename... Args>
class DawnCallback<BaseCallbackTemplate<R(Args...)>> {
  using BaseCallback = BaseCallbackTemplate<R(Args...)>;
  using UnboundCallbackFunction = R (*)(Args..., void*);

  static_assert(
      std::is_same<BaseCallback, base::OnceCallback<R(Args...)>>::value ||
          std::is_same<BaseCallback,
                       base::RepeatingCallback<R(Args...)>>::value,
      "Callback must be base::OnceCallback or base::RepeatingCallback");

 public:
  explicit DawnCallback(BaseCallback callback)
      : callback_(std::move(callback)) {}

  R Run(Args... args) && {
    return std::move(callback_).Run(std::forward<Args>(args)...);
  }

  R Run(Args... args) const& {
    return callback_.Run(std::forward<Args>(args)...);
  }

  void Reset() { callback_.Reset(); }

  static R CallUnboundCallback(Args... args, void* handle) {
    // After this non-repeating callback is run, it should delete itself.
    auto callback =
        std::unique_ptr<DawnCallback>(DawnCallback::FromUserdata(handle));
    return std::move(*callback).Run(std::forward<Args>(args)...);
  }

  static R CallUnboundRepeatingCallback(Args... args, void* handle) {
    return DawnCallback::FromUserdata(handle)->Run(std::forward<Args>(args)...);
  }

  UnboundCallbackFunction UnboundCallback() { return CallUnboundCallback; }

  UnboundCallbackFunction UnboundRepeatingCallback() {
    return CallUnboundRepeatingCallback;
  }

  void* AsUserdata() { return static_cast<void*>(this); }

  static DawnCallback* FromUserdata(void* userdata) {
    return static_cast<DawnCallback*>(userdata);
  }

 private:
  BaseCallback callback_;
};

template <typename CallbackType>
DawnCallback<CallbackType>* CreateDawnCallback(CallbackType cb) {
  return new DawnCallback<CallbackType>(std::move(cb));
}

template <typename FunctionType, typename... BoundParameters>
auto BindDawnCallback(FunctionType&& function,
                      BoundParameters&&... bound_parameters) {
  return CreateDawnCallback(
      WTF::Bind(std::forward<FunctionType>(function),
                std::forward<BoundParameters>(bound_parameters)...));
}

template <typename FunctionType, typename... BoundParameters>
auto BindRepeatingDawnCallback(FunctionType&& function,
                               BoundParameters&&... bound_parameters) {
  return CreateDawnCallback(
      WTF::BindRepeating(std::forward<FunctionType>(function),
                         std::forward<BoundParameters>(bound_parameters)...));
}

}  // namespace blink

#endif  // THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGPU_DAWN_CALLBACK_H_

redpajama_set_name: RedPajamaGithub


text:
ACCEPTED

#### According to
Index Fungorum

#### Published in
Mem. Amer. Acad. Arts 15: 519 (1926)

#### Original name
Chitonomyces cornucopioides Thaxt.

### Remarks
null


text:
Library void *znalloc(struct MemPool *mpool, uintptr_t bytes);
Library void zfree(struct MemPool *mpool, void *ptr, uintptr_t bytes);
Library void zextendPool(MemPool *mp, void *base, uintptr_t bytes);
Library void zallocstats(struct MemPool *mp);


text:
body {
  margin: 0px;
  padding: 0px;
}

#patchwork-images {
  position: relative;
}

.image-element {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
}


text:
using System;
using System.Globalization;
using System.Text;
using System.Threading;

namespace money
{
    ///
    /// Money is immutable and coupled to the <see cref="CurrencyInfo" /> it belongs
    /// to at all times. In most cases, the code will attempt to determine
    /// the correct <see cref="CurrencyInfo" /> on its own based on the culture of
    /// the thread viewing the money, unless an explicit currency is provided.
    ///
    [Serializable]
    public partial struct Money : IComparable<Money>, IEquatable<Money>, IFormattable
    {
        public override int GetHashCode()
        {
            unchecked
            {
                var hashCode = _createdDate.GetHashCode();
                hashCode = (hashCode*397) ^ (_currencyInfo != null ? _currencyInfo.GetHashCode() : 0);
                hashCode = (hashCode*397) ^ _override.GetHashCode();
                hashCode = (hashCode*397) ^ _places.GetHashCode();
                hashCode = (hashCode*397) ^ _units.GetHashCode();
                return hashCode;
            }
        }

        private readonly DateTime _createdDate;
        private readonly CurrencyInfo _currencyInfo;
        private double? _override;
        private long _places;
        private long _units;

        public Money(long units) : this(CultureInfo.CurrentCulture, units)
        {

        }

        public Money(double value) : this(CultureInfo.CurrentCulture, value)
        {

        }

        public Money(decimal value) : this(CultureInfo.CurrentCulture, value)
        {

        }

        private Money(CurrencyInfo currencyInfo) : this()
        {
            _createdDate = DateTime.UtcNow;
            _currencyInfo = currencyInfo;
        }

        public Money(CurrencyInfo currencyInfo, long units) : this(currencyInfo)
        {
            _units = units;
        }

        public Money(CurrencyInfo currencyInfo, double value) : this(currencyInfo)
        {
            _units = ScaleUp(value);
        }

        public Money(CurrencyInfo currencyInfo, decimal value) : this(currencyInfo)
        {
            _units = ScaleUp(value);
        }

        public DateTime CreatedDate
        {
            get { return _createdDate; }
        }

        public CurrencyInfo CurrencyInfo
        {
            get { return _currencyInfo; }
        }

        public int CompareTo(Money other)
        {
            return other._units.CompareTo(_units);
        }

        public bool Equals(Money other)
        {
            return _createdDate.Equals(other._createdDate) && Equals(_currencyInfo, other._currencyInfo) && _override.Equals(other._override) && _places == other._places && _units == other._units;
        }

        public string ToString(string format, IFormatProvider formatProvider)
        {
            var value = ScaleDownToDouble();

            return value.ToString(format, formatProvider);
        }

        public bool Equals(double other)
        {
            return other == ScaleDownToDouble();
        }

        public bool Equals(long other)
        {
            return other == ScaleUp(ScaleDownToDouble());
        }

        public override bool Equals(object other)
        {
            if (ReferenceEquals(null, other)) return false;
            return other is Money && Equals((Money) other);
        }

        private double ScaleDownToDouble()
        {
            if (_override.HasValue)
            {
                return _override.Value;
            }

            var numberFormat = _currencyInfo.DisplayCulture.NumberFormat;

            var scalingFactor = Math.Pow(10, _places);

            var scaled = _units/scalingFactor;

            var rounded = Math.Round(scaled, numberFormat.CurrencyDecimalDigits);

            return rounded;
        }

        private decimal ScaleDownToDecimal()
        {
            var numberFormat = _currencyInfo.DisplayCulture.NumberFormat;

            var scalingFactor = Convert.ToDecimal(Math.Pow(10, _places));

            var scaled = _units / scalingFactor;

            var rounded = Math.Round(scaled, numberFormat.CurrencyDecimalDigits);

            return rounded;
        }

        private long ScaleUp(double value)
        {
            if (double.IsInfinity(value))
            {
                _override = value;
                return long.MaxValue;
            }

            var places = CountDecimalPlaces(value);

            var scalingFactor = Math.Pow(10, places);

            var scaled = Convert.ToInt64(value*scalingFactor);

            _places = places;

            return scaled;
        }

        private long ScaleUp(decimal value)
        {
            var places = CountDecimalPlaces(value);

            var scalingFactor = Convert.ToDecimal(Math.Pow(10, places));

            var scaled = Convert.ToInt64(value * scalingFactor);

            _places = places;

            return scaled;
        }

        private static void EnsureSameCurrency(Money left, Money right)
        {
            if (left._currencyInfo != right._currencyInfo)
            {
                throw new ArithmeticException("The currency of both arguments must match to perform this operation.");
            }
        }

        private static void HarmonizeDecimalPlaces(ref Money left, ref Money right)
        {
            var scaleFactor = Math.Abs(right._places - left._places);

            if (right._places > left._places)
            {
                left._places += scaleFactor;

                left._units *= (long) Math.Pow(10, scaleFactor);
            }

            if (right._places >= left._places)
            {
                return;
            }

            right._places += scaleFactor;

            right._units *= (long) Math.Pow(10, scaleFactor);
        }

        ///
        /// Returns a <see cref="System.String"/> that represents this instance.
        ///
        /// <returns>
        /// A <see cref="System.String"/> that represents this instance.
        /// </returns>
        public override string ToString()
        {
            var displayCulture = Thread.CurrentThread.CurrentCulture;
            return DisplayIn(displayCulture, false);
        }

        ///
        /// Displays the current instance as it would appear in the native culture,
        /// no matter 'where' the context thread is running.
        ///
        /// <returns></returns>
        public string DisplayNative()
        {
            return ToString("c", _currencyInfo.DisplayCulture.NumberFormat);
        }

        ///
        /// Displays the current instance as it would appear in a specified culture.
        ///
        /// <param name="displayCulture">The display culture.</param>
        /// <returns></returns>
        public string DisplayIn(CultureInfo displayCulture)
        {
            return DisplayIn(displayCulture, true);
        }

        ///
        /// Displays the value of this instance in a non-native culture, preserving
        /// the characteristics of the native <see cref="CurrencyInfo" /> but respecting
        /// target cultural formatting.
        ///
        /// <param name="displayCulture">The culture to display this money in</param>
        /// <param name="disambiguateMatchingSymbol">If true, if the native culture uses the same currency symbol as the display culture, the ISO currency code is appended to the value to help differentiate the native currency.</param>
        /// <returns>A value representing this instance in another culture</returns>
        public string DisplayIn(CultureInfo displayCulture, bool disambiguateMatchingSymbol)
        {
            var sb = new StringBuilder();

            var nativeCulture = CurrencyInfo.DisplayCulture;
            if (displayCulture == nativeCulture)
            {
                return nativeCulture.ToString();
            }

            var nativeNumberFormat = nativeCulture.NumberFormat;
            nativeNumberFormat = (NumberFormatInfo) nativeNumberFormat.Clone();

            var displayNumberFormat = displayCulture.NumberFormat;
            nativeNumberFormat.CurrencyGroupSeparator = displayNumberFormat.CurrencyGroupSeparator;
            nativeNumberFormat.CurrencyDecimalSeparator = displayNumberFormat.CurrencyDecimalSeparator;

            sb.Append(ToString("c", nativeNumberFormat));

            // If the currency symbol of the display culture matches this money, add the code
            if (disambiguateMatchingSymbol && nativeNumberFormat.CurrencySymbol.Equals(displayNumberFormat.CurrencySymbol))
            {
                var currencyCode = new RegionInfo(nativeCulture.LCID).ISOCurrencySymbol;
                sb.Append(" ").Append(currencyCode);
            }

            return sb.ToString();
        }

        private static int CountDecimalPlaces(double input)
        {
            var value = input.ToString();

            var places = value.Substring(value.IndexOf('.') + 1).Length;

            return places;
        }

        private static int CountDecimalPlaces(decimal input)
        {
            var value = input.ToString(CultureInfo.InvariantCulture);

            var places = value.Substring(value.IndexOf('.') + 1).Length;

            return places;
        }
    }
}


text:
import { Event } from 'vs/base/common/event';
import { Iterator } from 'vs/base/common/iterator';
import { IListRenderer } from 'vs/base/browser/ui/list/list';

export const enum TreeVisibility {

	/**
	 * The tree node should be hidden.
	 */
	Hidden,

	/**
	 * The tree node should be visible.
	 */
	Visible,

	/**
	 * The tree node should be visible if any of its descendants is visible.
	 */
	Recurse
}

/**
 * A composed filter result containing the visibility result as well as
 * metadata.
 */
export interface ITreeFilterDataResult<TFilterData> {

	/**
	 * Whether the node should be visibile.
	 */
	visibility: boolean | TreeVisibility;

	/**
	 * Metadata about the element's visibility which gets forwarded to the
	 * renderer once the element gets rendered.
	 */
	data: TFilterData;
}

/**
 * The result of a filter call can be a boolean value indicating whether
 * the element should be visible or not, a value of type `TreeVisibility` or
 * an object composed of the visibility result as well as additional metadata
 * which gets forwarded to the renderer once the element gets rendered.
 */
export type TreeFilterResult<TFilterData> = boolean | TreeVisibility | ITreeFilterDataResult<TFilterData>;

/**
 * A tree filter is responsible for controlling the visibility of
 * elements in a tree.
 */
export interface ITreeFilter<T, TFilterData = void> {

	/**
	 * Returns whether this elements should be visible and, if affirmative,
	 * additional metadata which gets forwarded to the renderer once the element
	 * gets rendered.
	 *
	 * @param element The tree element.
	 */
	filter(element: T): TreeFilterResult<TFilterData>;
}

export interface ITreeElement<T> {
	readonly element: T;
	readonly children?: Iterator<ITreeElement<T>> | ITreeElement<T>[];
	readonly collapsible?: boolean;
	readonly collapsed?: boolean;
}

export interface ITreeNode<T, TFilterData = void> {
	readonly element: T;
	readonly parent: ITreeNode<T, TFilterData> | undefined;
	readonly children: ITreeNode<T, TFilterData>[];
	readonly depth: number;
	readonly collapsible: boolean;
	readonly collapsed: boolean;
	readonly visible: boolean;
	readonly filterData: TFilterData | undefined;
}

export interface ITreeModel<T, TFilterData, TRef> {
	readonly onDidChangeCollapseState: Event<ITreeNode<T, TFilterData>>;
	readonly onDidChangeRenderNodeCount: Event<ITreeNode<T, TFilterData>>;

	getListIndex(location: TRef): number;
	getNode(location?: TRef): ITreeNode<T, any>;
	getNodeLocation(node: ITreeNode<T, any>): TRef;
	getParentNodeLocation(location: TRef): TRef | null;

	getParentElement(location: TRef): T | null;
	getFirstChildElement(location: TRef): T | null;
	getLastAncestorElement(location: TRef): T | null;

	isCollapsed(location: TRef): boolean;
	setCollapsed(location: TRef, collapsed: boolean): boolean;
	toggleCollapsed(location: TRef): void;
	collapseAll(): void;

	refilter(): void;
}

export interface ITreeRenderer<T, TFilterData, TTemplateData> extends IListRenderer<ITreeNode<T, TFilterData>, TTemplateData> {
	renderTwistie?(element: T, twistieElement: HTMLElement): boolean;
	onDidChangeTwistieState?: Event<T>;
}


text:
package graphite

import (
	"bufio"
	"io"
	"net"
	"strings"
	"sync"
	"time"

	"github.com/influxdb/influxdb/cluster"
	. "github.com/influxdb/influxdb/common"
	"github.com/influxdb/influxdb/configuration"
	"github.com/influxdb/influxdb/coordinator"
	"github.com/influxdb/influxdb/protocol"

	log "code.google.com/p/log4go"
)

type Server struct {
	listenAddress string
	database      string
	coordinator   coordinator.Coordinator
	clusterConfig *cluster.ClusterConfiguration
	conn          net.Listener
	udpConn       *net.UDPConn
	user          *cluster.ClusterAdmin
	writeSeries   chan Record
	allCommitted  chan bool
	connClosed    chan bool // lets us break from the Accept() loop, see http://zhen.org/blog/graceful-shutdown-of-go-net-dot-listeners/ (quit channel)
	udpEnabled    bool
	writers       sync.WaitGroup // allows us to make sure things writing to writeSeries are done (they do blocking calls to handleMessage()) whether udp or tcp
}

// holds a point to be added into series by Name
type Record struct {
	Name string
	*protocol.Point
}

// the ingest could in theory be anything from 1 series(datapoint) every few minutes, upto millions of datapoints every second.
// and there might be multiple connections, each delivering a certain (not necessarily equal) fraction of the total.
// we want ingested points to be ingested (flushed) quickly (let's say at least within 100ms), but since coordinator.WriteSeriesData
// comes with a cost, we also want to buffer up the data, the more the better (up to a limit).
// So basically we need to trade these concepts off against each other, by committing

// a batch of series every commit_max_wait ms or every commit_capacity datapoints, whichever is first.

// upto how many points/series to commit in 1 go?
// let's say buffer up to about 1MiB of data, at 24B per record -> 43690 records, let's make it an even 40k
const commit_capacity = 40000

// how long to wait max before flushing a commit payload
const commit_max_wait = 100 * time.Millisecond

// the write commit payload should get written in a timely fashion.
// if not, the channel that feeds the committer will queue up to max_queue series, and then
// block, creating backpressure to the client.  This allows to keep receiving metrics while
// a flush is ongoing, but not much more than we can actually handle.
const max_queue = 20000

// TODO: check that database exists and create it if not
func NewServer(config *configuration.Configuration, coord coordinator.Coordinator, clusterConfig *cluster.ClusterConfiguration) *Server {
	self := &Server{}
	self.listenAddress = config.GraphitePortString()
	self.database = config.GraphiteDatabase
	self.coordinator = coord
	self.writeSeries = make(chan Record, max_queue)
	self.allCommitted = make(chan bool, 1)
	self.connClosed = make(chan bool, 1)
	self.clusterConfig = clusterConfig
	self.udpEnabled = config.GraphiteUdpEnabled

	return self
}

// getAuth assures that the user property is a user with access to the graphite database
// only call this function after everything (i.e. Raft) is initialized, so that there's at least 1 admin user
func (self *Server) getAuth() {
	// just use any (the first) of the list of admins.
	names := self.clusterConfig.GetClusterAdmins()
	self.user = self.clusterConfig.GetClusterAdmin(names[0])
}

func (self *Server) ListenAndServe() {
	self.getAuth()
	var err error
	if self.listenAddress != "" {
		self.conn, err = net.Listen("tcp", self.listenAddress)
		if err != nil {
			log.Error("GraphiteServer: Listen: ", err)
			return
		}
	}
	if self.udpEnabled {
		udpAddress, _ := net.ResolveUDPAddr("udp", self.listenAddress)
		self.udpConn, _ = net.ListenUDP("udp", udpAddress)
		go self.ServeUdp(self.udpConn)
	}
	go self.committer()
	self.Serve(self.conn)
}

func (self *Server) Serve(listener net.Listener) {
	for {
		conn_in, err := listener.Accept()
		if err != nil {
			log.Error("GraphiteServer: Accept: ", err)
			select {
			case <-self.connClosed:
				break
			default:
			}
			continue
		}
		self.writers.Add(1)
		go self.handleClient(conn_in)
	}
	self.writers.Wait()
	close(self.writeSeries)
}

func (self *Server) ServeUdp(conn *net.UDPConn) {
	var buf []byte = make([]byte, 65536)
	for {
		n, _, err := conn.ReadFromUDP(buf)
		if err != nil {
			log.Warn("GraphiteServer: Error when reading from UDP connection %s", err.Error())
		}
		self.writers.Add(1)
		go self.handleUdpMessage(string(buf[:n]))
	}
}

func (self *Server) handleUdpMessage(msg string) {
	defer self.writers.Done()
	metrics := strings.Split(msg, "\n")
	for _, metric := range metrics {
		reader := bufio.NewReader(strings.NewReader(metric + "\n"))
		self.handleMessage(reader)
	}
}

func (self *Server) Close() {
	if self.udpConn != nil {
		log.Info("GraphiteServer: Closing graphite UDP listener")
		self.udpConn.Close()
	}
	if self.conn != nil {
		log.Info("GraphiteServer: Closing graphite server")
		close(self.connClosed)
		self.conn.Close()
		log.Info("GraphiteServer: Waiting for all graphite requests to finish before killing the process")
		select {
		case <-time.After(time.Second * 5):
			log.Error("GraphiteServer: There seems to be a hanging graphite request or data flush. Closing anyway")
		case <-self.allCommitted:
			log.Info("GraphiteServer shut down cleanly")
		}
	}
}

func (self *Server) committer() {
	defer func() { self.allCommitted <- true }()

	commit := func(toCommit map[string]*protocol.Series) {
		if len(toCommit) == 0 {
			return
		}
		commitPayload := make([]*protocol.Series, len(toCommit))
		i := 0
		for _, serie := range toCommit {
			commitPayload[i] = serie
			i++
		}
		log.Debug("GraphiteServer committing %d series", len(toCommit))
		err := self.coordinator.WriteSeriesData(self.user, self.database, commitPayload)
		if err != nil {
			switch err.(type) {
			case AuthorizationError:
				// user information got stale, get a fresh one (this should happen rarely)
				self.getAuth()
				err = self.coordinator.WriteSeriesData(self.user, self.database, commitPayload)
				if err != nil {
					log.Warn("GraphiteServer: failed to write %d series after getting new auth: %s\n", len(toCommit), err.Error())
				}
			default:
				log.Warn("GraphiteServer: failed write %d series: %s\n", len(toCommit), err.Error())
			}
		}
	}

	timer := time.NewTimer(commit_max_wait)
	toCommit := make(map[string]*protocol.Series)
	pointsPending := 0

CommitLoop:
	for {
		select {
		case record, ok := <-self.writeSeries:
			if ok {
				pointsPending += 1
				if series, seen := toCommit[record.Name]; seen {
					series.Points = append(series.Points, record.Point)
				} else {
					points := make([]*protocol.Point, 1, 1)
					points[0] = record.Point
					toCommit[record.Name] = &protocol.Series{
						Name:   &record.Name,
						Fields: []string{"value"},
						Points: points,
					}
				}
			} else {
				// no more input, commit whatever we have and break
				commit(toCommit)
				break CommitLoop
			}
			// if capacity reached, commit
			if pointsPending == commit_capacity {
				commit(toCommit)
				toCommit = make(map[string]*protocol.Series)
				pointsPending = 0
				timer.Reset(commit_max_wait)
			}
		case <-timer.C:
			commit(toCommit)
			toCommit = make(map[string]*protocol.Series)
			pointsPending = 0
			timer.Reset(commit_max_wait)
		}
	}
}

func (self *Server) handleClient(conn net.Conn) {
	defer conn.Close()
	defer self.writers.Done()
	reader := bufio.NewReader(conn)
	for {
		err := self.handleMessage(reader)
		if err != nil {
			if io.EOF == err {
				log.Debug("GraphiteServer: Client closed graphite connection")
				return
			}
			log.Error("GraphiteServer:", err)
		}
	}
}

func (self *Server) handleMessage(reader *bufio.Reader) (err error) {
	graphiteMetric := &GraphiteMetric{}
	err = graphiteMetric.Read(reader)
	if err != nil {
		return
	}
	values := []*protocol.FieldValue{}
	if graphiteMetric.isInt {
		values = append(values, &protocol.FieldValue{Int64Value: &graphiteMetric.integerValue})
	} else {
		values = append(values, &protocol.FieldValue{DoubleValue: &graphiteMetric.floatValue})
	}
	// sn := uint64(1) // use same SN makes sure that we'll only keep the latest value for a given metric_id-timestamp pair
	point := &protocol.Point{
		Timestamp: &graphiteMetric.timestamp,
		Values:    values,
		// SequenceNumber: &sn,
	}
	record := Record{graphiteMetric.name, point}
	self.writeSeries <- record
	return
}


text:
<!doctype html>

	<title>jQuery Dynamic Form</title>
	<meta charset="UTF-8">
	<link rel="stylesheet" href="css/bootstrap.min.css">
	<link rel="stylesheet" href="css/bootstrap-theme.min.css">
	<link rel="stylesheet" href="css/styles.css">

jQuery Dynamic Form

This is a jQuery plugin created for tests.

			<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#modal">
			  Abrir formulário
			</button>

	        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>

Preencha o formulário

	        <form class="dynamic-form" method="post" action="javascript:;"></form>


text:
actions :set

attribute :key_id, :kind_of => String, :name_attribute => true
attribute :attribute_path, :kind_of => [Array, String], :default => []
attribute :attribute_mode, :kind_of => String, :equal_to => ['node_attribute', 'run_state'], :default => 'node_attribute'
attribute :attribute_access_key, :kind_of => String, :default => 'aws_access_key'
attribute :attribute_secret_access_key, :kind_of => String, :default => 'aws_secret_access_key'
attribute :aws_data_bag, :kind_of => String, :default => 'aws'

def initialize(name, run_context=nil)
  super
  @action = :set
end


text:
package scamp

// import "fmt"
import "errors"
import "bufio"
import "bytes"

// AuthorizedServiceSpec contains service's fingerprint and registered actions
type AuthorizedServiceSpec struct {
	Fingerprint []byte
	Actions     []serviceProxyClass
}

// AuthorizedServicesCache contains array of service's AuthorizedServiceSpec
type AuthorizedServicesCache struct {
	services []AuthorizedServiceSpec
}

// NewAuthorizedServicesCache Initializes amd returns a pointesr to a new AuthorizedServicesCache
func NewAuthorizedServicesCache() (cache *AuthorizedServicesCache) {
	cache = new(AuthorizedServicesCache)
	cache.services = make([]AuthorizedServiceSpec, 100)

	return
}

// LoadAuthorizedServices calls NewAuthorizedServicesCache() if *bufio.Scanner bytes are > 0
func (cache *AuthorizedServicesCache) LoadAuthorizedServices(s *bufio.Scanner) (err error) {
	var read bool
	count := 1

	for {
		read = s.Scan()

		if !read {
			break
			// Skip empty lines
		} else if len(s.Bytes()) == 0 {
			continue
		}

		_, err = NewAuthorizedServicesSpec(s.Bytes())
		if err != nil {
			// Trace.Printf("Error creating AuthorizedServicesCache: %s", err)
		}

		count = count + 1
	}

	return
}

// NewAuthorizedServicesSpec returns a pointer to an AuthorizedServiceSpec which contains the service's fingerprint and svailable actions
func NewAuthorizedServicesSpec(line []byte) (spec *AuthorizedServiceSpec, err error) {
	s := bufio.NewScanner(bytes.NewReader(line))
	s.Split(bufio.ScanWords)

	s.Scan()
	if len(s.Bytes()) == 0 || s.Bytes()[0] == '#' {
		err = errors.New("invalid")
		return
	}

	spec = new(AuthorizedServiceSpec)
	spec.Fingerprint = make([]byte, len(s.Bytes()))
	copy(spec.Fingerprint, s.Bytes())
	spec.Actions = make([]serviceProxyClass, 100) //TODO: do a better job allocating here

	index := 0
	var read bool
	for {
		read = s.Scan()
		if !read {
			break
		}

		// spec.Actions[index].className = make([]byte, len(s.Bytes()))
		spec.Actions[index].className = string(s.Bytes())
		index = index + 1
	}

	return
}


text:
qitoolchain.svn_package - Binary packages using subversion
==========================================================

.. automodule:: qitoolchain.svn_package
    :members:


text:
package com.box.androidsdk.content.models;

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

/**
 * Class that represents a group of Box users.
 */
public class BoxGroup extends BoxCollaborator {

    private static final long serialVersionUID = 5872741782856508553L;
    public static final String TYPE = "group";

    /**
     * Constructs an empty BoxGroup.
     */
    public BoxGroup() {
        super();
    }

    /**
     * Constructs a BoxGroup with the provided map values.
     * @param map   map of keys and values of the object.
     */
    public BoxGroup(Map<String, Object> map) {
        super(map);
    }

    /**
     * A convenience method to create an empty group with just the id and type fields set. This allows
     * the ability to interact with the content sdk in a more descriptive and type safe manner
     *
     * @param groupId  the id of group to create
     * @return an empty BoxGroup object that only contains id and type information
     */
    public static BoxGroup createFromId(String groupId) {
        LinkedHashMap<String, Object> groupMap = new LinkedHashMap<String, Object>();
        groupMap.put(BoxCollaborator.FIELD_ID, groupId);
        groupMap.put(BoxCollaborator.FIELD_TYPE, BoxUser.TYPE);
        return new BoxGroup(groupMap);
    }

}


text:
package org.apache.ignite.internal.processors.cache.persistence;

import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.file.Paths;
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.EnumSet;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.internal.pagemem.wal.record.DataEntry;
import org.apache.ignite.internal.pagemem.wal.record.DataRecord;
import org.apache.ignite.internal.pagemem.wal.record.TxRecord;
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.jetbrains.annotations.Nullable;

import static java.nio.file.StandardOpenOption.CREATE;
import static java.nio.file.StandardOpenOption.READ;
import static java.nio.file.StandardOpenOption.WRITE;

/**
 *
 */
public class RecoveryDebug implements AutoCloseable {
    /** */
    private static final DateTimeFormatter DATE_FORMATTER =
        DateTimeFormatter.ofPattern("dd-MM-yyyy-HH-mm-ss-SSS").withZone(ZoneId.of("UTC"));

    /** */
    @Nullable private final IgniteLogger log;

    /** */
    @Nullable private FileChannel fc;

    /**
     * @param constId Consistent ID.
     */
    public RecoveryDebug(Object constId, long time) {
        this(constId, time, null);
    }

    /**
     * @param constId Consistent ID.
     * @param log Logger.
     */
    public RecoveryDebug(Object constId, long time, @Nullable IgniteLogger log) {
        this.log = log;

        try {
            String workDir = U.defaultWorkDirectory();

            File tmpDir = new File(workDir, "tmp");

            if (!tmpDir.exists())
                if (!tmpDir.mkdir())
                    return;

            File f = new File(tmpDir, "recovery-" +
                DATE_FORMATTER.format(Instant.ofEpochMilli(time)) + "-" + constId + ".log");

            f.createNewFile();

            fc = FileChannel.open(Paths.get(f.getPath()), EnumSet.of(CREATE, READ, WRITE));
        }
        catch (IgniteCheckedException | IOException e) {
            U.error(log, "Fail create recovery debug file.", e);

            fc = null;
        }
    }

    /**
     * @param rec TX record to append.
     * @return {@code this} for convenience.
     */
    public RecoveryDebug append(TxRecord rec) {
        GridCacheVersion txVer = rec.nearXidVersion();

        return fc == null ? this : appendFile(
            "Tx record " + rec.state() + " " + rec.nearXidVersion() + " timestamp " + rec.timestamp()
        );
    }

    /**
     * @param rec Data record to append.
     * @param unwrapKeyValue unwrap key and value flag.
     * @return {@code this} for convenience.
     */
    public RecoveryDebug append(DataRecord rec, boolean unwrapKeyValue) {
        if (fc == null)
            return this;

        append("Data record\n");

        for (DataEntry dataEntry : rec.writeEntries())
            append("\t" + dataEntry.op() + " " + dataEntry.nearXidVersion() +
                (unwrapKeyValue ? " " + dataEntry.key() + " " + dataEntry.value() : "") + "\n"
            );

        return this;
    }

    /**
     * @param st Statement to append.
     * @return {@code this} for convenience.
     */
    public RecoveryDebug append(Object st) {
        return fc == null ? this : appendFile(st);
    }

    /**
     * @param st Statement to append.
     * @return {@code this} for convenience.
     */
    private RecoveryDebug appendFile(Object st) {
        try {
            fc.write(ByteBuffer.wrap(st.toString().getBytes()));
        }
        catch (IOException e) {
            U.error(null, "Fail write to recovery dump file.", e);
        }

        return this;
    }

    /**
     * Closes this debug insrance.
     */
    @Override public void close() {
        if (fc != null) {
            try {
                fc.force(true);

                fc.close();
            }
            catch (IOException e) {
                U.error(null, "Fail close recovery dump file.", e);
            }
        }
    }
}


text:
// Copyright 2017 GeunYoung Lim <interruping4dev@gmail.com>
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/*!
 @file solarcode_livemap_libcommandbinder.hpp
 @brief
 @detail
 @author GeunYoung Lim, interruping@naver.com
 @date Apr 1, 2017
 @version
*/

#ifndef SRC_HEADER_SOLARCODE_LIVEMAP_LIBCOMMANDBINDER_HPP_
#define SRC_HEADER_SOLARCODE_LIVEMAP_LIBCOMMANDBINDER_HPP_

#include "service_command.hpp"

extern "C"{
    std::size_t do_command_bind(std::weak_ptr<solarcode::livemap::client_node> request_node ,
                                solarcode::livemap::client_node_pool& node_db ,
                                char *const raw_request ,
                                const std::size_t raw_request_size ,
                                char **result_buffer );
}
namespace solarcode {
namespace livemap {

	command_type read_service_type(const char * const input_buffer);

    std::size_t _do_command_bind(std::weak_ptr<client_node> request_node,
                                 client_node_pool& node_db,
                                 char *const raw_request,
                                 const std::size_t raw_request_size,
                                 char **result_buffer);

}
}

#endif /* SRC_HEADER_SOLARCODE_LIVEMAP_LIBCOMMANDBINDER_HPP_ */


text:
package org.apache.ignite.internal.processors.platform;

import org.apache.ignite.events.*;
import org.apache.ignite.internal.*;
import org.apache.ignite.lang.*;

import java.util.*;

/**
 * Special version of predicate for events with initialize/close callbacks.
 */
public interface PlatformAwareEventFilter<E extends Event> extends IgnitePredicate<E>, IgniteBiPredicate<UUID, E> {
    /**
     * Initializes the filter.
     */
    public void initialize(GridKernalContext ctx);

    /**
     * Closes the filter.
     */
    public void close();
}


text:
var agml={
  results:[],
  block:'-',
  trail:';',
  delim:':',
  replace:true,
  firstOnly:false,
  separator:'\n',
  destructive:true
};

/*
  agml parse takes three arguments
    a source string
    a results array
    an options object

    it returns the original source string, minus any blocks of delimited AGML

    the options object can include:
      an alternative key-value delimiter, (agml.delim)
      an alternative trailing comment character (agml.trail)
      an alternative character for AGML blocks (agml.block)
      an alternative string which should be used to delimit lines (agml.separator)
      a flag which indicates whether to replace blocks of AGML (agml.replace)
      a flag which indicates whether the parser should destroy or preserve duplicate keys (agml.destructive)
*/

agml.parse=function(text,results,opt){
  // objects are passed by reference in javascript
  // so you can pass an object like a pointer in C
  // and agml.parse will load the results into that

  results=results||agml.results;
  opt=opt||{};
  var delim=opt.delim||agml.delim;
  var trail=opt.trail||agml.trail;
  var block=opt.block||agml.block;
  var replace=opt.replace||agml.replace;
  var separator=opt.separator||agml.separator;
  var destructive=(typeof opt.destructive === 'undefined')?
    agml.destructive:
    opt.destructive;

  // if opt.firstOnly has any truthy value
  // the agmlBlock regex will only grab the first block
  // otherwise it will grab all blocks
  var blockFlags=opt.firstOnly?'m':'mg';

  var leadingComment=new RegExp('^\\s*'+delim);
  var keyPattern=new RegExp('.*?'+delim);
  var trailingComment=new RegExp(trail+'.*$');
  var agmlBlock= new RegExp('\\'+block+'{3}(.|\s|\n)+?\\'+block+'{3}',blockFlags);

  var toJSON=function(AGML){
    var temp={};

    // split into individual lines
    // agml can't split key-value pairs across lines
    AGML.split(separator) // defaults to '\n' (newline)
      // throw away empty lines, or lines with whitespace as keys
      .filter(function(line){
        return (!line || leadingComment.test(line))?false:true;
      })
      // parse each line
      .forEach(function(line){
        // a line is only relevant if it contains a colon
        if(/:/.test(line)){
          var key,val;
          // extract the key, assign the remainder to the value
          val=line.replace(keyPattern,function(k){
            // but don't keep the colon
            key=k.slice(0,-1);
            return '';
            // also, throw away anything after a semicolon
          }).replace(trailingComment,'');
          // add your results to a dictionary
          // first check if you're in destructive mode
          if(destructive){
            // insert the value into the dictionary
            // and overwrite any previous values
            temp[key.trim()]=val.trim();
          }else{
            // in non-destructive mode, all values are arrays of strings
            // cache the key
            key=key.trim();
            if(!temp[key]){
              // initialize the array if not exists
              temp[key]=[];
            }
            // push the new value to the array
            temp[key].push(val.trim());
          }
        }
      });
    results.push(temp);
  };

  // if you detect at least one delimited block of AGML
  // just parse that, and (optionally) remove it from the text
  if(agmlBlock.test(text)){
    (function(){
      // a temporary array
      var temp=[];

      // parse out the content of the blocks
      var tempText=text.replace(agmlBlock,function(block){
        temp.push(block.slice(3,-3));
        return '';
      });

      // call 'toJSON' on each block
      // this pushes to your results array
      temp.forEach(toJSON);

      // unless explicitly instructed not to
      // erase the parsed blocks from the source text
      if(replace){
        text=tempText;
      }
    }());
  }else{
    // just extract the values
    // don't do anything to the source text
    toJSON(text);
  }
  return text;
};

/*
  agml.encode takes a dictionary, and an object of options
    and returns a string

  the options object can include an alternate delimiter
    instead of the default colon
*/

/*
  agml needs to be able to encode based on the following properties

  var agml={
    block:'-',
    replace:true,
    firstOnly:false,
    destructive:true
  };

*/

agml.encode=function(agmlBlocks,opt){
  opt=opt||{};
  var agmlBlocks=agmlBlocks||agml.results;
  var delim=opt.delim||agml.delim;
  var s=opt.separator||agml.separator; // \n
  var b=opt.block||agml.block;

  var destructive=opt.destructive||agml.destructive;

  b+=(b+b+s);

  return agmlBlocks.map(function(agmlBlock){
    if(destructive){
    return b+
      Object.keys(agmlBlock)
        .map(function(key){
          return key+delim+agmlBlock[key];
        }).join(s)+s+b;
    }else{
      return b+(
        Object.keys(agmlBlock)
          .map(function(key){
            return agmlBlock[key]
              .map(function(value,i){
                return {
                  key:key,
                  value:value
                };
              });
          })
          .reduce(function(a,b){
            return a.concat(b);
          })
          .map(function(line){
            return line.key+delim+line.value;
          }).join(s))+s+b;
    }
  })[0]
};

if(typeof module !== 'undefined')
  module.exports=agml;


text:
from django import http
from django.contrib import messages
from django.core.urlresolvers import reverse
from django_openstack import api
from django_openstack.tests.view_tests import base
from mox import IsA

from novaclient import exceptions as novaclient_exceptions

class KeyPairViewTests(base.BaseViewTests):
    def setUp(self):
        super(KeyPairViewTests, self).setUp()
        keypair = self.mox.CreateMock(api.KeyPair)
        keypair.name = 'keyName'
        self.keypairs = (keypair,)

    def test_index(self):
        self.mox.StubOutWithMock(api, 'keypair_list')
        api.keypair_list(IsA(http.HttpRequest)).AndReturn(self.keypairs)

        self.mox.ReplayAll()

        res = self.client.get(reverse('dash_keypairs',
            args=[self.TEST_TENANT]))

        self.assertTemplateUsed(res,
                'django_openstack/dash/keypairs/index.html')
        self.assertItemsEqual(res.context['keypairs'], self.keypairs)

        self.mox.VerifyAll()

    def test_index_exception(self):
        exception = novaclient_exceptions.ClientException('clientException',
                                                message='clientException')
        self.mox.StubOutWithMock(api, 'keypair_list')
        api.keypair_list(IsA(http.HttpRequest)).AndRaise(exception)

        self.mox.StubOutWithMock(messages, 'error')
        messages.error(IsA(http.HttpRequest), IsA(basestring))

        self.mox.ReplayAll()

        res = self.client.get(reverse('dash_keypairs',
            args=[self.TEST_TENANT]))

        self.assertTemplateUsed(res,
                'django_openstack/dash/keypairs/index.html')
        self.assertEqual(len(res.context['keypairs']), 0)

        self.mox.VerifyAll()

    def test_delete_keypair(self):
        KEYPAIR_ID = self.keypairs[0].name
        formData = {'method': 'DeleteKeypair',
                    'keypair_id': KEYPAIR_ID,
                    }

        self.mox.StubOutWithMock(api, 'keypair_delete')
        api.keypair_delete(IsA(http.HttpRequest), unicode(KEYPAIR_ID))

        self.mox.ReplayAll()

        res = self.client.post(reverse('dash_keypairs',
                                       args=[self.TEST_TENANT]),
                               formData)

        self.assertRedirectsNoFollow(res, reverse('dash_keypairs',
                                                  args=[self.TEST_TENANT]))

        self.mox.VerifyAll()

    def test_delete_keypair_exception(self):
        KEYPAIR_ID = self.keypairs[0].name
        formData = {'method': 'DeleteKeypair',
                    'keypair_id': KEYPAIR_ID,
                    }

        exception = novaclient_exceptions.ClientException('clientException',
                                                message='clientException')
        self.mox.StubOutWithMock(api, 'keypair_delete')
        api.keypair_delete(IsA(http.HttpRequest),
                           unicode(KEYPAIR_ID)).AndRaise(exception)

        self.mox.ReplayAll()

        res = self.client.post(reverse('dash_keypairs',
                                       args=[self.TEST_TENANT]),
                               formData)

        self.assertRedirectsNoFollow(res, reverse('dash_keypairs',
                                                  args=[self.TEST_TENANT]))

        self.mox.VerifyAll()

    def test_create_keypair_get(self):
        res = self.client.get(reverse('dash_keypairs_create',
                                      args=[self.TEST_TENANT]))

        self.assertTemplateUsed(res,
                'django_openstack/dash/keypairs/create.html')

    def test_create_keypair_post(self):
        KEYPAIR_NAME = 'newKeypair'
        PRIVATE_KEY = 'privateKey'

        newKeyPair = self.mox.CreateMock(api.KeyPair)
        newKeyPair.name = KEYPAIR_NAME
        newKeyPair.private_key = PRIVATE_KEY

        formData = {'method': 'CreateKeypair',
                    'name': KEYPAIR_NAME,
                    }

        self.mox.StubOutWithMock(api, 'keypair_create')
        api.keypair_create(IsA(http.HttpRequest),
                           KEYPAIR_NAME).AndReturn(newKeyPair)

        self.mox.ReplayAll()

        res = self.client.post(reverse('dash_keypairs_create',
                                       args=[self.TEST_TENANT]),
                               formData)

        self.assertTrue(res.has_header('Content-Disposition'))

        self.mox.VerifyAll()

    def test_create_keypair_exception(self):
        KEYPAIR_NAME = 'newKeypair'

        formData = {'method': 'CreateKeypair',
                    'name': KEYPAIR_NAME,
                    }

        exception = novaclient_exceptions.ClientException('clientException',
                                                message='clientException')
        self.mox.StubOutWithMock(api, 'keypair_create')
        api.keypair_create(IsA(http.HttpRequest),
                           KEYPAIR_NAME).AndRaise(exception)

        self.mox.ReplayAll()

        res = self.client.post(reverse('dash_keypairs_create',
                                       args=[self.TEST_TENANT]),
                               formData)

        self.assertRedirectsNoFollow(res, reverse('dash_keypairs_create',
                                                  args=[self.TEST_TENANT]))

        self.mox.VerifyAll()


text:
package org.sirix.gui.view;

import static com.google.common.base.Preconditions.checkNotNull;

import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.MouseEvent;

import javax.swing.JComponent;
import javax.swing.JMenuBar;

import org.sirix.gui.view.controls.Control;
import org.sirix.gui.view.sunburst.AbstractSunburstGUI.EResetZoomer;

import processing.core.PApplet;

/**
 * Processing view base class used for composition.
 *
 * @author Johannes Lichtenberger, University of Konstanz
 *
 */
public class ProcessingEmbeddedView {

	/** {@link ProcessingGUI} reference. */
	private final ProcessingGUI mProcessingGUI;

	/** {@link Control} implementation. */
	private final Control mControl;

	/** {@link View} implementation. */
	private final View mView;

	/** Processing view. */
	private final PApplet mApplet;

	/** {@link ProcessingEmbeddedView} reference. */
	private static ProcessingEmbeddedView mEmbeddedView;

	/**
	 * Constructor.
	 *
	 * @param pProcessingGUI
	 *          {@link ProcessingGUI} implementation
	 * @param pControl
	 *          {@link Control} implementation
	 * @param pViewNotifier
	 *          {@link ViewNotifier} reference
	 */
	private ProcessingEmbeddedView(final PApplet pApplet, final View pView,
			final ProcessingGUI pProcessingGUI, final Control pControl,
			final ViewNotifier pViewNotifier) {
		mApplet = pApplet;
		mView = pView;
		mProcessingGUI = pProcessingGUI;
		mControl = pControl;
	}

	/**
	 * Get an instance, usually the same instance until the view resets
	 * everything.
	 *
	 * @param pView
	 *          the implementing {@link View} instance, which embeds the
	 *          processing view
	 * @param pProcessingGUI
	 *          {@link ProcessingGUI} implementation
	 * @param pControl
	 *          {@link Control} implementation
	 * @param pViewNotifier
	 *          {@link ViewNotifier} reference
	 * @return {@link ProcessingEmbeddedView} singleton
	 */
	public static synchronized ProcessingEmbeddedView getInstance(
			final PApplet pApplet, final View pView,
			final ProcessingGUI pProcessingGUI, final Control pControl,
			final ViewNotifier pViewNotifier) {
		checkNotNull(pApplet);
		checkNotNull(pView);
		checkNotNull(pProcessingGUI);
		checkNotNull(pControl);
		checkNotNull(pViewNotifier);
		if (mEmbeddedView == null) {
			mEmbeddedView = new ProcessingEmbeddedView(pApplet, pView,
					pProcessingGUI, pControl, pViewNotifier);
		}
		return mEmbeddedView;
	}

	/** Reset the view. */
	public void resetEmbedded() {
		mEmbeddedView = null;
	}

	/** {@inheritDoc} */
	public void draw() {
		if (mProcessingGUI != null) {
			mProcessingGUI.draw();
			handleHLWeight();
		}
	}

	/** {@inheritDoc} */
	public void mouseEntered(final MouseEvent pEvent) {
		if (mControl != null) {
			mControl.mouseEntered(pEvent);
			handleHLWeight();
		}
	}

	/** {@inheritDoc} */
	public void mouseExited(final MouseEvent pEvent) {
		if (mControl != null) {
			mControl.mouseExited(pEvent);
			handleHLWeight();
		}
	}

	/** {@inheritDoc} */
	public void keyReleased() {
		if (mControl != null) {
			mControl.keyReleased();
			handleHLWeight();
		}
	}

	/** {@inheritDoc} */
	public void mousePressed(final MouseEvent pEvent) {
		if (mControl != null) {
			mControl.mousePressed(pEvent);
			handleHLWeight();
		}
	}

	/** Update the GUI. */
	public void updateGUI() {
		if (mView != null) {
			final Dimension dim = mView.component().getSize();
			mApplet.resize(dim.width - 2, dim.height);
		}
		if (mProcessingGUI != null) {
			mProcessingGUI.update(EResetZoomer.YES);
			mProcessingGUI.relocate();
		}
	}

	/**
	 * Handle mix of heavyweight ({@link PApplet}) and leightweight (
	 * {@link JMenuBar}) components.
	 */
	public void handleHLWeight() {
		final Container parent = mView.component().getParent();
		if (parent instanceof JComponent) {
			((JComponent) parent).revalidate();
		}
		// final Window window = SwingUtilities.getWindowAncestor(this);
		// if (window != null) {
		// window.validate();
		// }
	}

	/**
	 * Provide hovering mechanisms for the current {@link VisualItem}
	 * implementation.
	 *
	 * @param pItem
	 *          {@link VisualItem} implementation
	 */
	public void hover(final VisualItem pItem) {
		mView.hover(pItem);
	}
}


text:
@implementation DependencyDocument

- (id)init
{
    self = [super init];
    if (self)
    {
        _projectPath = @"";
        _excludedNames = @[];
        _dependencies = [[DependencyGraph alloc] init];
    }
    return self;
}

- (NSString *)windowNibName
{
    // Override returning the nib file name of the document
    // If you need to use a subclass of NSWindowController or if your document supports multiple NSWindowControllers, you should remove this method and override -makeWindowControllers instead.
    return @"DependencyDocument";
}

- (void)windowControllerDidLoadNib:(NSWindowController *)aController
{
    [super windowControllerDidLoadNib:aController];
    // Add any code here that needs to be executed once the windowController has loaded the document's window.
}

+ (BOOL)autosavesInPlace
{
    return YES;
}

- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
{
    NSDictionary *dict = @{ @"projectPath": self.projectPath, @"excludedNames": self.excludedNames };
    return [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:outError];
}

- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError
{
    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:outError];
    if (!dict)
        return NO;
    if (![dict isKindOfClass:[NSDictionary class]])
    {
        if (outError)
            *outError = [NSError errorWithDomain:@"ObjCDepDomain" code:1 userInfo:nil];
        return NO;
    }
    NSString *path = dict[@"projectPath"];
    if ([path isKindOfClass:[NSString class]])
        self.projectPath = path;
    NSArray *names = dict[@"excludedNames"];
    if ([names isKindOfClass:[NSArray class]])
    {
        BOOL allStrings = YES;
        for (id value in names)
        {
            if (![value isKindOfClass:[NSString class]])
            {
                allStrings = NO;
                break;
            }
        }
        if (allStrings)
            self.excludedNames = names;
    }
    // Insert code here to read your document from the given data of the specified type. If outError != NULL, ensure that you create and set an appropriate error when returning NO.
    // You can also choose to override -readFromFileWrapper:ofType:error: or -readFromURL:ofType:error: instead.
    // If you override either of these, you should also override -isEntireFileLoaded to return NO if the contents are lazily loaded.
    if (self.projectPath)
    {
        self.pathControl.URL = [NSURL fileURLWithPath:self.projectPath];
    }
    return YES;
}

- (IBAction)chooseFolder:(id)sender
{
    NSOpenPanel *panel = [NSOpenPanel openPanel];
    panel.canChooseFiles = YES;
    panel.canChooseDirectories = YES;
    panel.allowsMultipleSelection = YES;
    panel.title = @"Select File/Folder";
    [panel beginWithCompletionHandler:^(NSInteger result) {
        if (result == NSFileHandlingPanelOKButton)
        {
            [self processURLs:panel.URLs];
            [self analyzeDependencies:sender];
        }
    }];
}

- (BOOL)hasSourceFileSuffix:(NSString *)filename
{
    NSArray *suffixes = @[ @".m", @".mm", @".c", @".cpp", @".cxx", @".cc", @".C" ];
    for (NSString *suffix in suffixes)
    {
        if ([filename hasSuffix:suffix])
            return YES;
    }
    return NO;
}

- (void)addFilesFromDirectory:(NSString *)path toFiles:(NSMutableArray *)files
{
    NSFileManager *fmgr = [NSFileManager defaultManager];
    BOOL isDirectory;
    for (NSString *file in [fmgr enumeratorAtPath:path])
    {
        NSString *filepath = [path stringByAppendingPathComponent:file];
        if ([fmgr fileExistsAtPath:filepath isDirectory:&isDirectory])
        {
            if (!isDirectory && [self hasSourceFileSuffix:file])
                [files addObject:filepath];
        }
    }
}

- (void)processURLs:(NSArray *)urls
{
    NSMutableArray *filesToAnalyze = [[NSMutableArray alloc] init];
    NSFileManager *fmgr = [NSFileManager defaultManager];
    [urls enumerateObjectsUsingBlock:^(NSURL *url, NSUInteger idx, BOOL *stop) {
        NSString *path = [url path];
        BOOL isDirectory;
        if (![fmgr fileExistsAtPath:path isDirectory:&isDirectory])
        {
            NSLog(@"FAIL: Got a file path that doesn't even exist: %@", path);
            return;
        }
        if (isDirectory)
        {
            [self addFilesFromDirectory:path toFiles:filesToAnalyze];
        }
        else if ([self hasSourceFileSuffix:[path lastPathComponent]])
        {
            [filesToAnalyze addObject:path];
        }
    }];
    self.filesToAnalyze = filesToAnalyze;
}

- (IBAction)analyzeDependencies:(id)sender
{
    [_dependencies removeAllDependencies];
    [self.dependencyBrowser reloadColumn:0];
    if ([self.filesToAnalyze count] == 0)
        return;

    NSMutableSet *directorySet = [[NSMutableSet alloc] init];
    [self.filesToAnalyze enumerateObjectsUsingBlock:^(NSString *path, NSUInteger idx, BOOL *stop) {
        [directorySet addObject:[path stringByDeletingLastPathComponent]];
    }];
    NSMutableArray *args = [[NSMutableArray alloc] initWithCapacity:[directorySet count]];
    [directorySet enumerateObjectsUsingBlock:^(NSString *dir, BOOL *stop) {
        [args addObject:[NSString stringWithFormat:@"-I\"%@\"", dir]];
    }];
    self.fileProgress.maxValue = (double) [self.filesToAnalyze count];
    self.fileProgress.doubleValue = 0.0;
    [self.fileProgress setHidden:NO];
    [self.currentFileName setHidden:NO];
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        ClangIndex *index = [ClangIndex indexWithOptions:ClangIndexOptionsDisplayDiagnostics];
        [self.filesToAnalyze enumerateObjectsUsingBlock:^(NSString *file, NSUInteger idx, BOOL *stop) {
            dispatch_sync(dispatch_get_main_queue(), ^{
                self.currentFileName.stringValue = [file lastPathComponent];
            });
            ClangTranslationUnit *unit = [index parseTranslationUnit:file args:args unsavedFiles:@[] options:0];
            if (!unit)
            {
                NSLog(@"Failed to parse file: %@", file);
                return;
            }
            NSArray *diagnostics = unit.diagnostics;
            for (ClangDiagnostic *diagnostic in diagnostics)
            {
                NSLog(@"Diagnostic: %@", diagnostic.textContent);
            }
            DependencyExtractor *extractor = [[DependencyExtractor alloc] initWithTranslationUnit:unit];
            extractor.graph = _dependencies;
            [extractor extractDependencies];
            dispatch_sync(dispatch_get_main_queue(), ^{
                [self.fileProgress incrementBy:1.0];
            });
        }];
        double delayInSeconds = 1.0;
        dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
        dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
            [self.fileProgress setHidden:YES];
            [self.currentFileName setHidden:YES];
            self.fileProgress.doubleValue = 0.0;
            [self.dependencyBrowser reloadColumn:0];
        });
    });
}

#pragma mark - NSBrowserDelegate methods

static DependencyItem *s_rootItem;

- (id)rootItemForBrowser:(NSBrowser *)browser
{
    if (!s_rootItem)
        s_rootItem = [[DependencyItem alloc] initWithName:@"_root" parent:nil];
    return s_rootItem;
}

- (NSInteger)browser:(NSBrowser *)browser numberOfChildrenOfItem:(id)item
{
    if (item == s_rootItem)
        return [_dependencies.knownClasses count];
    else
        return [[_dependencies dependenciesForClass:[item name]] count];
}

- (id)browser:(NSBrowser *)browser child:(NSInteger)index ofItem:(id)item
{
    NSString *value;
    if (item == s_rootItem)
        value = _dependencies.knownClasses[index];
    else
        value = [_dependencies dependenciesForClass:[item name]][index];
    return [[DependencyItem alloc] initWithName:value parent:[item name]];
}

- (BOOL)browser:(NSBrowser *)browser isLeafItem:(id)item
{
    return ![[item parent] isEqual:@"_root"];
}

- (id)browser:(NSBrowser *)browser objectValueForItem:(id)item
{
    return [item name];
}

@end


text:
import { Component, OnInit, Output, EventEmitter } from '@angular/core';

@Component({
  selector: 'app-toolbar',
  templateUrl: './toolbar.component.html',
  styleUrls: ['./toolbar.component.scss']
})
export class ToolbarComponent implements OnInit {
  @Output() navToggle = new EventEmitter<boolean>();
  navOpen() {
    this.navToggle.emit(true);
  }

  constructor() {}

  ngOnInit() {}
}