public ObjectDefinition child(IClientContext ctx) {
		int index = 0;
		if (scriptId == -1) {
			index = configId != -1 ? ctx.varpbits.varpbit(configId) : -1;
		} else {
			final Script script = ctx.definitions.varp(scriptId);
			if (script != null) {
				index = ctx.varpbits.varpbit(script.configId) >> script.lowerBitIndex & Script.MASKS[script.upperBitIndex - script.lowerBitIndex];
			}
		}
		if (index >= 0 && index < childrenIds.length && childrenIds[index] != -1) {
			return ctx.definitions.object(childrenIds[index]);
		}
		return null;
	}