All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.groupbyinc.flux.cluster.routing.allocation.AllocationService.class Maven / Gradle / Ivy

There is a newer version: 129
Show newest version
????4?@com/groupbyinc/flux/cluster/routing/allocation/AllocationService6com/groupbyinc/flux/common/component/AbstractComponentAllocationService.javaBcom/groupbyinc/flux/cluster/routing/allocation/AllocationService$1Ocom/groupbyinc/flux/cluster/routing/allocation/AllocationService$CommandsResultCommandsResult;com/groupbyinc/flux/common/collect/ImmutableOpenMap$Builder3com/groupbyinc/flux/common/collect/ImmutableOpenMap
Builder0com/groupbyinc/flux/cluster/ClusterState$Builder(com/groupbyinc/flux/cluster/ClusterState/com/groupbyinc/flux/cluster/ClusterState$CustomCustomAcom/groupbyinc/flux/cluster/routing/RoutingNodes$UnassignedShards0com/groupbyinc/flux/cluster/routing/RoutingNodesUnassignedShardsTcom/groupbyinc/flux/cluster/routing/RoutingNodes$UnassignedShards$UnassignedIteratorUnassignedIterator8com/groupbyinc/flux/cluster/routing/RoutingTable$Builder0com/groupbyinc/flux/cluster/routing/RoutingTable!9com/groupbyinc/flux/cluster/routing/UnassignedInfo$Reason#2com/groupbyinc/flux/cluster/routing/UnassignedInfo%ReasonCcom/groupbyinc/flux/cluster/routing/UnassignedInfo$AllocationStatus(AllocationStatus%java/lang/invoke/MethodHandles$Lookup+java/lang/invoke/MethodHandles-LookupallocationDecidersKLcom/groupbyinc/flux/cluster/routing/allocation/decider/AllocationDeciders;gatewayAllocator.Lcom/groupbyinc/flux/gateway/GatewayAllocator;shardsAllocatorJLcom/groupbyinc/flux/cluster/routing/allocation/allocator/ShardsAllocator;clusterInfoService0Lcom/groupbyinc/flux/cluster/ClusterInfoService;$assertionsDisabledZ$(Lcom/groupbyinc/flux/common/settings/Settings;Lcom/groupbyinc/flux/cluster/routing/allocation/decider/AllocationDeciders;Lcom/groupbyinc/flux/gateway/GatewayAllocator;Lcom/groupbyinc/flux/cluster/routing/allocation/allocator/ShardsAllocator;Lcom/groupbyinc/flux/cluster/ClusterInfoService;)V?(Lcom/groupbyinc/flux/common/settings/Settings;Lcom/groupbyinc/flux/cluster/routing/allocation/decider/AllocationDeciders;Lcom/groupbyinc/flux/cluster/routing/allocation/allocator/ShardsAllocator;Lcom/groupbyinc/flux/cluster/ClusterInfoService;)V:<
=setGatewayAllocator1(Lcom/groupbyinc/flux/gateway/GatewayAllocator;)V?@
AthisBLcom/groupbyinc/flux/cluster/routing/allocation/AllocationService;settings.Lcom/groupbyinc/flux/common/settings/Settings;1(Lcom/groupbyinc/flux/common/settings/Settings;)V:G
H01	J45	L67	N23	PapplyStartedShardsf(Lcom/groupbyinc/flux/cluster/ClusterState;Ljava/util/List;)Lcom/groupbyinc/flux/cluster/ClusterState;java/util/ListTisEmpty()ZVWUXgetMutableRoutingNodes^(Lcom/groupbyinc/flux/cluster/ClusterState;)Lcom/groupbyinc/flux/cluster/routing/RoutingNodes;Z[
\
unassignedE()Lcom/groupbyinc/flux/cluster/routing/RoutingNodes$UnassignedShards;^_
`shuffle()Vbc
d@com/groupbyinc/flux/cluster/routing/allocation/RoutingAllocationf.com/groupbyinc/flux/cluster/ClusterInfoServicehgetClusterInfo+()Lcom/groupbyinc/flux/cluster/ClusterInfo;jkilcurrentNanoTime()Jno
p?(Lcom/groupbyinc/flux/cluster/routing/allocation/decider/AllocationDeciders;Lcom/groupbyinc/flux/cluster/routing/RoutingNodes;Lcom/groupbyinc/flux/cluster/ClusterState;Lcom/groupbyinc/flux/cluster/ClusterInfo;JZ)V:r
gsjava/util/ArrayListu(Ljava/util/Collection;)V:w
vx"java/lang/invoke/LambdaMetafactoryzmetafactory?(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;|}
{~&(Ljava/lang/Object;)Ljava/lang/Object;?0com/groupbyinc/flux/cluster/routing/ShardRouting?primary?W
???G(Lcom/groupbyinc/flux/cluster/routing/ShardRouting;)Ljava/lang/Boolean;?apply()Ljava/util/function/Function;???java/util/Comparator?	comparing5(Ljava/util/function/Function;)Ljava/util/Comparator;????java/util/Collections?sort)(Ljava/util/List;Ljava/util/Comparator;)V??
??U(Lcom/groupbyinc/flux/cluster/routing/allocation/RoutingAllocation;Ljava/util/List;)VR?
?,com/groupbyinc/flux/gateway/GatewayAllocator?
??rerouteE(Lcom/groupbyinc/flux/cluster/routing/allocation/RoutingAllocation;)V??
?lambda$applyStartedShards$0F(Lcom/groupbyinc/flux/cluster/routing/ShardRouting;)Ljava/lang/String;??
????'firstListElementsToCommaDelimitedStringA(Ljava/util/List;Ljava/util/function/Function;)Ljava/lang/String;??
?java/lang/StringBuilder?:c
??shards started [?append-(Ljava/lang/String;)Ljava/lang/StringBuilder;??
??] ...?toString()Ljava/lang/String;??
??buildResultAndLogHealthChange?(Lcom/groupbyinc/flux/cluster/ClusterState;Lcom/groupbyinc/flux/cluster/routing/allocation/RoutingAllocation;Ljava/lang/String;)Lcom/groupbyinc/flux/cluster/ClusterState;??
?clusterState*Lcom/groupbyinc/flux/cluster/ClusterState;
startedShardsDLjava/util/List;Ljava/util/List;routingNodes2Lcom/groupbyinc/flux/cluster/routing/RoutingNodes;
allocationBLcom/groupbyinc/flux/cluster/routing/allocation/RoutingAllocation;startedShardsAsStringLjava/lang/String;routingTable4()Lcom/groupbyinc/flux/cluster/routing/RoutingTable;??
?4()Lcom/groupbyinc/flux/cluster/routing/RoutingNodes;??
g?
 ?version?o
"?updateNodeso(JLcom/groupbyinc/flux/cluster/routing/RoutingNodes;)Lcom/groupbyinc/flux/cluster/routing/RoutingTable$Builder;??
 ?build??
 ? updateMetaDataWithRoutingChangesc(Lcom/groupbyinc/flux/cluster/routing/RoutingTable;)Lcom/groupbyinc/flux/cluster/metadata/MetaData;??
g?89	?validate2(Lcom/groupbyinc/flux/cluster/metadata/MetaData;)Z??
"?java/lang/AssertionError?
??java/lang/String?-com/groupbyinc/flux/cluster/metadata/MetaData?builder^(Lcom/groupbyinc/flux/cluster/ClusterState;)Lcom/groupbyinc/flux/cluster/ClusterState$Builder;??
?f(Lcom/groupbyinc/flux/cluster/routing/RoutingTable;)Lcom/groupbyinc/flux/cluster/ClusterState$Builder;??
?metaDatac(Lcom/groupbyinc/flux/cluster/metadata/MetaData;)Lcom/groupbyinc/flux/cluster/ClusterState$Builder;??
?restore?customE(Ljava/lang/String;)Lcom/groupbyinc/flux/cluster/ClusterState$Custom;?
g-com/groupbyinc/flux/cluster/RestoreInProgress#updateRestoreInfoWithRoutingChanges`(Lcom/groupbyinc/flux/cluster/RestoreInProgress;)Lcom/groupbyinc/flux/cluster/RestoreInProgress;
g
getCustoms7()Lcom/groupbyinc/flux/common/collect/ImmutableOpenMap;	

gt(Lcom/groupbyinc/flux/common/collect/ImmutableOpenMap;)Lcom/groupbyinc/flux/common/collect/ImmutableOpenMap$Builder;?
put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
?

customsi(Lcom/groupbyinc/flux/common/collect/ImmutableOpenMap;)Lcom/groupbyinc/flux/cluster/ClusterState$Builder;
,()Lcom/groupbyinc/flux/cluster/ClusterState;?
5com/groupbyinc/flux/cluster/health/ClusterStateHealth-(Lcom/groupbyinc/flux/cluster/ClusterState;)V:
 logClusterHealthStateChange?(Lcom/groupbyinc/flux/cluster/health/ClusterStateHealth;Lcom/groupbyinc/flux/cluster/health/ClusterStateHealth;Ljava/lang/String;)V"#
$customsBuilder?Lcom/groupbyinc/flux/common/collect/ImmutableOpenMap$Builder;=Lcom/groupbyinc/flux/common/collect/ImmutableOpenMap$Builder;updatedRestoreInProgress/Lcom/groupbyinc/flux/cluster/RestoreInProgress;oldStatereasonoldRoutingTable2Lcom/groupbyinc/flux/cluster/routing/RoutingTable;newRoutingNodesnewRoutingTablenewMetaData/Lcom/groupbyinc/flux/cluster/metadata/MetaData;newStateBuilder2Lcom/groupbyinc/flux/cluster/ClusterState$Builder;restoreInProgressnewStateapplyFailedShard?(Lcom/groupbyinc/flux/cluster/ClusterState;Lcom/groupbyinc/flux/cluster/routing/ShardRouting;)Lcom/groupbyinc/flux/cluster/ClusterState;:com/groupbyinc/flux/cluster/routing/allocation/FailedShard9\(Lcom/groupbyinc/flux/cluster/routing/ShardRouting;Ljava/lang/String;Ljava/lang/Exception;)V:;
:<
singletonList$(Ljava/lang/Object;)Ljava/util/List;>?
?@	emptyList()Ljava/util/List;BC
?DapplyFailedShardsv(Lcom/groupbyinc/flux/cluster/ClusterState;Ljava/util/List;Ljava/util/List;)Lcom/groupbyinc/flux/cluster/ClusterState;FG
HfailedShard2Lcom/groupbyinc/flux/cluster/routing/ShardRouting;failedShardsNLjava/util/List;Ccom/groupbyinc/flux/cluster/routing/allocation/IndexMetaDataUpdaterNremoveStaleIdsWithoutRoutingsPS
OQiterator()Ljava/util/Iterator;STUUjava/util/IteratorWhasNextYWXZnext()Ljava/lang/Object;\]X^getRoutingEntry4()Lcom/groupbyinc/flux/cluster/routing/ShardRouting;`a
:b1()Lcom/groupbyinc/flux/cluster/metadata/MetaData;?d
geshardId+()Lcom/groupbyinc/flux/index/shard/ShardId;gh
?i'com/groupbyinc/flux/index/shard/ShardIdkgetIndex#()Lcom/groupbyinc/flux/index/Index;mn
logetIndexSafeW(Lcom/groupbyinc/flux/index/Index;)Lcom/groupbyinc/flux/cluster/metadata/IndexMetaData;qr
?s
currentNodeIdu?
?vaddIgnoreShardForNode>(Lcom/groupbyinc/flux/index/shard/ShardId;Ljava/lang/String;)Vxy
gzallocationId4()Lcom/groupbyinc/flux/cluster/routing/AllocationId;|}
?~0com/groupbyinc/flux/cluster/routing/AllocationId?getId??
??getByAllocationIdo(Lcom/groupbyinc/flux/index/shard/ShardId;Ljava/lang/String;)Lcom/groupbyinc/flux/cluster/routing/ShardRouting;??
?logger8Lcom/groupbyinc/flux/common/apache/logging/log4j/Logger;??	?M{} shard routing modified in an earlier iteration (previous: {}, current: {})?6com/groupbyinc/flux/common/apache/logging/log4j/Logger?traceK(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V????2com/groupbyinc/flux/cluster/metadata/IndexMetaData?unassignedInfo6()Lcom/groupbyinc/flux/cluster/routing/UnassignedInfo;??
??getNumFailedAllocations()I??
&?ALLOCATION_FAILED;Lcom/groupbyinc/flux/cluster/routing/UnassignedInfo$Reason;??	$?
getMessage??
:?
getFailure()Ljava/lang/Exception;??
:?java/lang/System?currentTimeMillis?o
??
NO_ATTEMPTELcom/groupbyinc/flux/cluster/routing/UnassignedInfo$AllocationStatus;??	)??(Lcom/groupbyinc/flux/cluster/routing/UnassignedInfo$Reason;Ljava/lang/String;Ljava/lang/Exception;IJJZLcom/groupbyinc/flux/cluster/routing/UnassignedInfo$AllocationStatus;)V:?
&?changes>()Lcom/groupbyinc/flux/cluster/routing/RoutingChangesObserver;??
g?	failShard(Lcom/groupbyinc/flux/common/apache/logging/log4j/Logger;Lcom/groupbyinc/flux/cluster/routing/ShardRouting;Lcom/groupbyinc/flux/cluster/routing/UnassignedInfo;Lcom/groupbyinc/flux/cluster/metadata/IndexMetaData;Lcom/groupbyinc/flux/cluster/routing/RoutingChangesObserver;)V??
?={} shard routing failed in an earlier iteration (routing: {})?9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V????F?
??lambda$applyFailedShards$1P(Lcom/groupbyinc/flux/cluster/routing/allocation/FailedShard;)Ljava/lang/String;??
????shards failed [?failedAllocationsI4Lcom/groupbyinc/flux/cluster/routing/UnassignedInfo;shardToFail
indexMetaData4Lcom/groupbyinc/flux/cluster/metadata/IndexMetaData;failedShardEntry;tmpStateJfailedShardsAsStringdeassociateDeadNodesi(Lcom/groupbyinc/flux/cluster/ClusterState;ZLjava/lang/String;)Lcom/groupbyinc/flux/cluster/ClusterState;??
?routingNodesChanged?W
g?removeDelayMarkersX()Lcom/groupbyinc/flux/cluster/routing/RoutingNodes$UnassignedShards$UnassignedIterator;S?
?
Z\a
?	isDelayed?W
&?getCurrentNanoTime?o
g?index?n
??getSettings0()Lcom/groupbyinc/flux/common/settings/Settings;??
??getRemainingDelay2(JLcom/groupbyinc/flux/common/settings/Settings;)J??
&?	getReason=()Lcom/groupbyinc/flux/cluster/routing/UnassignedInfo$Reason;??
&?
&?
&?getUnassignedTimeInNanoso
&getUnassignedTimeInMilliso
&getLastAllocationStatusG()Lcom/groupbyinc/flux/cluster/routing/UnassignedInfo$AllocationStatus;
&recoverySource6()Lcom/groupbyinc/flux/cluster/routing/RecoverySource;

?updateUnassigned?(Lcom/groupbyinc/flux/cluster/routing/UnassignedInfo;Lcom/groupbyinc/flux/cluster/routing/RecoverySource;Lcom/groupbyinc/flux/cluster/routing/RoutingChangesObserver;)Lcom/groupbyinc/flux/cluster/routing/ShardRouting;
newComputedLeftDelayNanosshardRoutingunassignedIteratorVLcom/groupbyinc/flux/cluster/routing/RoutingNodes$UnassignedShards$UnassignedIterator;stream()Ljava/util/stream/Stream;U
java/util/stream/Streamlimit(J)Ljava/util/stream/Stream; map8(Ljava/util/function/Function;)Ljava/util/stream/Stream;"#$, &java/util/stream/Collectors(joining6(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;*+
),collect0(Ljava/util/stream/Collector;)Ljava/lang/Object;./0elementsLjava/util/List;	formatter4Ljava/util/function/Function;Ljava/util/function/Function;maxNumberOfElements?(Lcom/groupbyinc/flux/cluster/ClusterState;Lcom/groupbyinc/flux/cluster/routing/allocation/command/AllocationCommands;ZZ)Lcom/groupbyinc/flux/cluster/routing/allocation/AllocationService$CommandsResult;
debugDecision(Z)V9:
g;
ignoreDisable=:
g>Icom/groupbyinc/flux/cluster/routing/allocation/command/AllocationCommands@execute?(Lcom/groupbyinc/flux/cluster/routing/allocation/RoutingAllocation;Z)Lcom/groupbyinc/flux/cluster/routing/allocation/RoutingExplanations;BC
ADreroute commandsF?(Lcom/groupbyinc/flux/cluster/routing/allocation/RoutingExplanations;Lcom/groupbyinc/flux/cluster/ClusterState;Lcom/groupbyinc/flux/cluster/routing/allocation/AllocationService$1;)V:H
	IcommandsKLcom/groupbyinc/flux/cluster/routing/allocation/command/AllocationCommands;explainretryFailedexplanationsDLcom/groupbyinc/flux/cluster/routing/allocation/RoutingExplanations;h(Lcom/groupbyinc/flux/cluster/ClusterState;Ljava/lang/String;)Lcom/groupbyinc/flux/cluster/ClusterState;i(Lcom/groupbyinc/flux/cluster/ClusterState;Ljava/lang/String;Z)Lcom/groupbyinc/flux/cluster/ClusterState;?R
Sdebug	getStatus:()Lcom/groupbyinc/flux/cluster/health/ClusterHealthStatus;VW
X6com/groupbyinc/flux/cluster/health/ClusterHealthStatusZequals(Ljava/lang/Object;)Z\]
[^?Cluster health status changed from [{}] to [{}] (reason: [{}]).`infob??cpreviousStateHealth7Lcom/groupbyinc/flux/cluster/health/ClusterStateHealth;newStateHealthpreviousHealth8Lcom/groupbyinc/flux/cluster/health/ClusterHealthStatus;
currentHealthhasDeadNodesE(Lcom/groupbyinc/flux/cluster/routing/allocation/RoutingAllocation;)Z
U/com/groupbyinc/flux/cluster/routing/RoutingNodennodes3()Lcom/groupbyinc/flux/cluster/node/DiscoveryNodes;pq
gr/com/groupbyinc/flux/cluster/node/DiscoveryNodestgetDataNodesv

uwnodeIdy?
ozcontainsKey|]
}routingNode1Lcom/groupbyinc/flux/cluster/routing/RoutingNode;kl
?Ddead nodes should be explicitly cleaned up. See deassociateDeadNodes?(Ljava/lang/Object;)V:?
??size??
???
?allocateUnassigned??
??Hcom/groupbyinc/flux/cluster/routing/allocation/allocator/ShardsAllocator?allocate????assertShardStats5(Lcom/groupbyinc/flux/cluster/routing/RoutingNodes;)Z??
?mutableIterator?T
?
copyShards?C
o?'INDEX_DELAYED_NODE_LEFT_TIMEOUT_SETTING-Lcom/groupbyinc/flux/common/settings/Setting;??	&?+com/groupbyinc/flux/common/settings/Setting?getB(Lcom/groupbyinc/flux/common/settings/Settings;)Ljava/lang/Object;??
??)com/groupbyinc/flux/common/unit/TimeValue?nanos?o
??	NODE_LEFT??	$?
node_left[?]?remove?cX?delayednodeitGLjava/util/Iterator;Ljava/util/Iterator;0non-empty list of started shard entries expected?initializing?W
??'only initializing shards can be started??r
??.shard started for unknown index (shard entry: ?-(Ljava/lang/Object;)Ljava/lang/StringBuilder;??
??)?Bshard routing to start does not exist in routing table, expected: ?
 but was: ?
startShard?(Lcom/groupbyinc/flux/common/apache/logging/log4j/Logger;Lcom/groupbyinc/flux/cluster/routing/ShardRouting;Lcom/groupbyinc/flux/cluster/routing/RoutingChangesObserver;)Lcom/groupbyinc/flux/cluster/routing/ShardRouting;??
?startedShardroutingAllocationstartedShardEntries.(Lcom/groupbyinc/flux/cluster/ClusterState;Z)V:?
?nanoTime?o
??
l?sjava/lang/Class?desiredAssertionStatus?W
??CodeLocalVariableTableLineNumberTableLocalVariableTypeTable
StackMapTable	Signature?(Lcom/groupbyinc/flux/cluster/ClusterState;Ljava/util/List;)Lcom/groupbyinc/flux/cluster/ClusterState;?(Lcom/groupbyinc/flux/cluster/ClusterState;Ljava/util/List;)Lcom/groupbyinc/flux/cluster/ClusterState;?(Lcom/groupbyinc/flux/cluster/ClusterState;Ljava/util/List;Ljava/util/List;)Lcom/groupbyinc/flux/cluster/ClusterState;s(Ljava/util/List;Ljava/util/function/Function;)Ljava/lang/String;?(Lcom/groupbyinc/flux/cluster/routing/allocation/RoutingAllocation;Ljava/util/List;)VBootstrapMethods
SourceFileInnerClasses!0123456789:;?t*+,?>*-?B??>CDEF01234567?F
GH:<?x*+?I*,?K*-?M*?O??4CDEF014567?LM
NOP?@?>*+?Q??CD23?
STRS?5	?,?Y?+?*+?]N-?a?e?gY*?K-+*?O?m*?q?t:?vY,?yM,??????*,??*?Q,??*??*,????:*+??Y?????????????ð?>?CD??????}??5Y??m!???????6
]	^`bc&d5f>gJhQi[jakml????????+??:,??:? Y?????ݶ?:,??:??????Y???+??????:,???:		?0,	?:

	?!,??:?
?W??W?:
*?Y+?!?Y
?!-?%
???
z&(j%)*
?CD?+?????,??-.?/?"?0.*?12R]34]R5*	?6?
?z&'?Jpqr"s*tBuHvMwRx]ybzj{q|z}?~???????*?Bg?""??L78?\*+?:Y,?=?A?E?I?? CD??JK????FS?Z
*+,?E?I?? 
CD
??
L??
LM????FG?+m-?Y?,?Y?+?+-?R:*?]:?a?e*?q7?gY*?K*?O?m?t:,?V:		?[??	?_?::

?c:?f?j?p?t:?j?w?{?j?????:

?o
?*????j
??
???
?????6?&Y??
??
??`??????:*??
?????*????j????**?Q,??*??*,????:	*+??Y??Ͷ?	????????ð???7????s??K??????JK
l???
mCDm??mL?m??R??#J??1<n?N??K"??	?mLMm???v????#?+?1?A?N?l?s????????????????????????,?/?9???K??v?A	UUgX?r
UUgX:???@;?	UUgX???????	P*+?]:?a?e?gY*?K+*?O?m*?q?t:*???	*????+?*+-?ð?>PCDP??P?9P,?I??-#???*
????-?3?7?=?E?G???=g	???B
?+?նa??M+?fN,??r,??:??:??Z+??-??t????7	??<,?&Y???????????	???
+???W?????HC@?fK$_???CD???|w?2?F?????$?,?5?>?C?J?[?j?x??????????r????&
>+??!,?%'?-?1???*&CD&2?&46#7??&23&45??????%????8??	\*+?]:?gY*?K+*?O?m*?q?t:?<??,?E:??*???	Y*+G???J??R\CD\??\KL\M9\N9U??&6??;!OP?&		&,
2;AG?Q?F*+,?T?? CD??,???R??	L*+?]:?a?e?gY*?K+*?O?m*?q?t:?<*????+?*+,?ð?>LCDL??L,?LU9E??-???&	')*+-,3-9.A/C1??Cg"#??(+?Y:,?Y:?_?*??a-?d??>(CD(ef(gf(,?"hiji?5678':??'[[kl??3+?նmM,?[?#,?_?oN+?s?x-?{?~??????? ?3CD3???=>,?.A1B??X%?????V??*+?????Y????+?նa???*+??*?Q+??*?M+????+?ո????Y?????VCDV???FI&J+K3N=OUP?!????	?+?ն?M,?[??,?_?oN+?s?x-?{?~????-???V:?[???_??:+?f??t:??????????	???6?&Y????Y?????-?{???????+???????:+??*??+??????s,????8??R^i??{L?9???PwK???????CD????????:STU,W/ZP[^\{]?^?_?`?c?d?e?%?X?&o?
X?=??@?P?R??????,?Y???Y????+??N,?V:?[???_??:???????Y÷????8+?f?j?p???&??Y??Y??Ƕ???̶????????P-?j??????:??Y??Y??ζ???ж?-?j??????ʶ????-*??+????W??4??4=??K?CD??????????????*
hij=kVl?n?p?r?s?t??X?.?:?R???Z[?N?Y+??M,?? CD??
???
w
xno?.?ݭ?CD?}
???5*?c?j?ް?????
???2*?j?ް??K?k?c?4??????<?@? ??????????????Z	
				 "	$&'@)&*@,./




© 2015 - 2025 Weber Informatics LLC | Privacy Policy