首先,我们来看两个OGG同步中可能的问题:

l oracle在线日志包含已提交的和未提交的事务,但OGG只会将已提交的事务写入到队列文件。因此,针对未提交的事务,特别是未提交的长事务,OGG会怎样处理呢?

l 有些长事务是在批处理作业中,需要几个小时才能执行完成,比如晚上跑批的作业。OGG在解析过程中,会从这些事务一执行就开始读取在线日志,但这些事务可能会持续很久,
这期间,在线日志可能会切换到归档日志,同时这期间也会有其它事务在执行和提交,如果长事务一直未提交,归档日志又因为定期的rman备份而删除,OGG将如何处理? 针对以上情况,OGG有2种处理方式,
第一种就是使用正常恢复归档的方式,即恢复OGG需要的所有归档日志,可能是从长事务开始的那个归档开始,
这样OGG将从事务开始的检查点开始解析; 第二种方式就是使用Bounded Recovery的方式,下面的内容将讨论这种方式。 简单来说,BR(Bounded Recovery )默认的设置是4小时,即每4小时OGG抽取进程会做一个检查点,在每个检查点的时间点上,
OGG会检查长事务,并将超过4小时的长事务的状态写入到磁盘(如果没有达到4小时,则此事务不会被BR写入),
默认保存在OGG安装目录的BR目录下。在每个BR的间隔点,这个操作会一直持续,直到事务提交,或事务回滚。 下面的示例中,我们设置BRINTERVAL为20分钟: BR BRINTERVAL 20M 下面是针对BR的官方文档描述: 使用磁盘持久保存数据,用于恢复长事务,让抽取进程可以确保捕获性能(虽然只有在极端情况下才会发生捕获延迟)。
如果抽取进程停止时,有些事务的开始时间远在这个时间点之前,那么系统需要占用大量的日志空间,也有可能这些日
志文件不在磁盘上或已被删除。而且,重新从一个很早的日志文件开始读取事务,这种做法是不可接受的,因为这些
日志文件中的其它事务已经被解析并被写入到队列文件。 如果通过持久化数据能恢复这些长事务的状态,那么就可以消除这个往返读取的动作。极端的情况下,如果有多个长事务,
如果每个事务都要求从起点重新读取,那么OGG的捕获性能将大大降低。 在本示例中,我们将BR的间隔设置为20分钟,然后执行一个insert语句,但不提交。
此时,抽取进程会从在线日志的某个点开始读取,在线日志的序号为:#。 然后我们切换几组日志,备份并删除序号为14878的日志文件。我们可以看到每隔20分钟,BR checkpoint就会执行,
此时,长事务的状态信息及数据就会被写入到磁盘上。即使磁盘上没有对应的归档日志文件,抽取进程也不会再去读取这些日志,
而是直接从磁盘上保存的BR数据中进行恢复,如果事务提交,则OGG会直接将BR目录下的数据写入到队列中。 测试步骤如下: 执行下面的INSERT语句,但不提交,用于测试长事务的场景: SQL> insert into myobjects select object_id,object_name,object_type from dba_objects;
rows created. 通过infor ext1检查当前读取的在线日志序号,本测试中是14878 GGSCI > info ext1 EXTRACT EXT1 Last Started -- : Status RUNNING
Checkpoint Lag :: (updated :: ago)
Process ID
Log Read Checkpoint Oracle Redo Logs
-- :: Seqno , RBA
SCN 0.9137531 () 使用SEND EXTRACT SHOWTRANS查看是否有事务是打开状态: GGSCI > send ext1 showtrans Sending SHOWTRANS request to EXTRACT EXT1 …
Oldest redo log file necessary to restart Extract is:
Redo Log Sequence Number , RBA
————————————————————
XID: 10.16.
Items:
Extract: EXT1
Redo Thread:
Start Time: --:::
SCN: 0.9137521 ()
Redo Seq:
Redo RBA:
Status: Running INFO EXTRACT SHOWCH会显示抽取进程检查点的更多信息,
包括当前事务(日志)中的读取点,写入队列文件的位置等。
下面的示例中,第一个检查点是抽取进程启动时的读取点:,接着是最早未提交事务的读取点:序号14878,SCN:,
最后是抽取进程当前的日志读取检查点,序号仍然是14878,但SCN是9137612,说明在这个未提交的事务之后,DB已经有一些其它操作。 GGSCI > info ext1 showch EXTRACT EXT1 Last Started -- : Status RUNNING
Checkpoint Lag :: (updated :: ago)
Process ID
Log Read Checkpoint Oracle Redo Logs
-- :: Seqno , RBA
SCN 0.9137612 () Current Checkpoint Detail:
Read Checkpoint #
Oracle Redo Log Startup Checkpoint (starting position in the data source):
第一个检查点是抽取进程启动时的读取点
Thread #: 1
Sequence #:
RBA:
Timestamp: -- ::33.000000
SCN: 0.9129707 ()
Redo File: /u01/app/oracle/fast_recovery_area/GGATE1/archivelog/2014_06_21/o1_mf_1_14861_9tbo7pys_.arc Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
接着是最早未提交事务的读取点:序号14878,SCN:9137521
Thread #:
Sequence #:
RBA:
Timestamp: -- ::14.000000
SCN: 0.9137521 ()
Redo File: /u01/app/oracle/oradata/ggate1/redo03.log Current Checkpoint (position of last record read in the data source):
最后是抽取进程当前的日志读取检查点,序号仍然是14878,但SCN是9137612,说明在这个未提交的事务之后,DB已经有一些其它操作
Thread #:
Sequence #:
RBA:
Timestamp: -- ::41.000000
SCN: 0.9137612 ()
Redo File: /u01/app/oracle/oradata/ggate1/redo03.log Write Checkpoint #
GGS Log Trail
Current Checkpoint (current write position):
Sequence #:
RBA:
Timestamp: -- ::44.414364
Extract Trail: ./dirdat/zz
Trail Type: RMTTRAIL 大约20分钟之后,我们继续使用showch,看看与前面的命令相比,输出有哪些差异:
可以看到,当前读取的在线日志序号已经变为14884(以前是14878)。
但恢复检查点仍然没有变化,与上一个命令执行结果相同。 GGSCI > info ext1 showch EXTRACT EXT1 Last Started -- : Status RUNNING
Checkpoint Lag :: (updated :: ago)
Process ID
Log Read Checkpoint Oracle Redo Logs
-- :: Seqno , RBA
SCN 0.9139491 () Current Checkpoint Detail:
Read Checkpoint #
Oracle Redo Log Startup Checkpoint (starting position in the data source):
Thread #:
Sequence #:
RBA:
Timestamp: -- ::33.000000
SCN: 0.9129707 ()
Redo File: /u01/app/oracle/fast_recovery_area/GGATE1/archivelog/2014_06_21/o1_mf_1_14861_9tbo7pys_.arc Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
Thread #:
Sequence #:
RBA:
Timestamp: -- ::14.000000
SCN: 0.9137521 ()
Redo File: /u01/app/oracle/oradata/ggate1/redo03.log Current Checkpoint (position of last record read in the data source):
Thread #:
Sequence #:
RBA:
Timestamp: -- ::34.000000
SCN: 0.9139491 ()
Redo File: /u01/app/oracle/oradata/ggate1/redo03.log 通过上面的命令,我们看到了BR检查点的相关信息,前面我们把BR间隔从默认4小时改为20分钟,因此,每隔20分钟
(本示例中是::,:,:...),长事务当前的状态信息会被抽取进程写入到磁盘上的BR目录。
因此,我们看到在18:27的BR间隔时间点,BR将在线日志14881的信息持久到磁盘上,如果这个时候extract有错误或重启,
extract不再需要从早于14881序号的redo或归档里读取数据。 BR Previous Recovery Checkpoint:
Thread #:
Sequence #:
RBA:
Timestamp: -- ::35.982719
SCN: Not available
Redo File: BR Begin Recovery Checkpoint:
Thread #:
Sequence #:
RBA:
Timestamp: -- ::14.000000
SCN: 0.9137521 ()
Redo File: BR End Recovery Checkpoint:
Thread #:
Sequence #:
RBA:
Timestamp: -- ::38.000000
SCN: 0.9138688 ()
Redo File: 在BR目录中我们可以看到抽取进程ext1生成的一些文件:
GGSCI > info ext1 EXTRACT EXT1 Last Started -- : Status RUNNING
Checkpoint Lag :: (updated :: ago)
Process ID
Log Read Checkpoint Oracle Redo Logs
-- :: Seqno , RBA
SCN 0.9139583 () GGSCI > shell ls -l ./BR/EXT1
total
-rw-r—– oracle oinstall Jun : CP.EXT1.
drwxr-x— oracle oinstall Jun : stale 此时,如果我们删除14878的归档日志会怎样呢?因为BR检查点已经将包含长事务的日志序号为14878的信息写入到磁盘,
extract进程将不再需要这些旧的归档文件。为了测试这个功能,我们将14878归档备份之后删除,
记住,这个序号是长事务开始时的序号,在抽取进程检查点日志中有记录。 RMAN> backup archivelog sequence delete input; Starting backup at -JUN-
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID= device type=DISK
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread= sequence= RECID= STAMP=
channel ORA_DISK_1: starting piece at -JUN-
channel ORA_DISK_1: finished piece at -JUN-
piece handle=/u01/app/oracle/fast_recovery_area/GGATE1/backupset/2014_06_21/o1_mf_annnn_TAG20140621T234659_9tcb7msp_.bkp tag=TAG20140621T234659 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: ::
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/u01/app/oracle/fast_recovery_area/GGATE1/archivelog/2014_06_21/o1_mf_1_14878_9tbpowlm_.arc RECID= STAMP=
Finished backup at -JUN- 好,我们现在来提交这个交易。 SQL> insert into myobjects
select object_id,object_name,object_type from dba_objects;
rows created. SQL> commit;
Commit complete. 在抽取进程ext1的日志报告中,可以看到有长事务的信息、BR检查点的信息,而且每隔20分钟,
BR检查点写入的redo日志序号是在增长的,即OGG抽取进程每20分钟会将当前日志序号写入,同时在OGG日志报告中体现出来。 -- :: WARNING OGG- Long Running Transaction: XID 10.16., Items , Extract EXT1, Redo Thread , SCN 0.9137521 (), Redo Seq #, R
edo RBA .
-- :: INFO OGG- The previous message, ‘WARNING OGG-′, repeated times.
-- :: INFO OGG- BOUNDED RECOVERY: CHECKPOINT: for object pool : p23540_extr: start=SeqNo: , RBA: , SCN: 0.9137521 (), Timest
amp: -- ::14.000000, end=SeqNo: , RBA: , SCN: 0.9138688 (), Timestamp: -- ::38.000000, Thread: .
-- :: INFO OGG- BOUNDED RECOVERY: CHECKPOINT: for object pool : p23540_extr: start=SeqNo: , RBA: , SCN: 0.9139983 (), Timest
amp: -- ::47.000000, Thread: , end=SeqNo: , RBA: , SCN: 0.9139983 (), Timestamp: -- ::47.000000, Thread: .
-- :: INFO OGG- BOUNDED RECOVERY: CHECKPOINT: for object pool : p23540_extr: start=SeqNo: , RBA: , SCN: 0.9141399 (), Timest
amp: -- ::56.000000, Thread: , end=SeqNo: , RBA: , SCN: 0.9141399 (), Timestamp: -- ::56.000000, Thread: .
 
首先,我们来看两个OGG同步中可能的问题:

l oracle在线日志包含已提交的和未提交的事务,但OGG只会将已提交的事务写入到队列文件。因此,针对未提交的事务,特别是未提交的长事务,OGG会怎样处理呢?

l 有些长事务是在批处理作业中,需要几个小时才能执行完成,比如晚上跑批的作业。OGG在解析过程中,会从这些事务一执行就开始读取在线日志,但这些事务可能会持续很久,
这期间,在线日志可能会切换到归档日志,同时这期间也会有其它事务在执行和提交,如果长事务一直未提交,归档日志又因为定期的rman备份而删除,OGG将如何处理? 针对以上情况,OGG有2种处理方式,
第一种就是使用正常恢复归档的方式,即恢复OGG需要的所有归档日志,可能是从长事务开始的那个归档开始,
这样OGG将从事务开始的检查点开始解析; 第二种方式就是使用Bounded Recovery的方式,下面的内容将讨论这种方式。 简单来说,BR(Bounded Recovery )默认的设置是4小时,即每4小时OGG抽取进程会做一个检查点,在每个检查点的时间点上,
OGG会检查长事务,并将超过4小时的长事务的状态写入到磁盘(如果没有达到4小时,则此事务不会被BR写入),
默认保存在OGG安装目录的BR目录下。在每个BR的间隔点,这个操作会一直持续,直到事务提交,或事务回滚。 下面的示例中,我们设置BRINTERVAL为20分钟: BR BRINTERVAL 20M 下面是针对BR的官方文档描述: 使用磁盘持久保存数据,用于恢复长事务,让抽取进程可以确保捕获性能(虽然只有在极端情况下才会发生捕获延迟)。
如果抽取进程停止时,有些事务的开始时间远在这个时间点之前,那么系统需要占用大量的日志空间,也有可能这些日
志文件不在磁盘上或已被删除。而且,重新从一个很早的日志文件开始读取事务,这种做法是不可接受的,因为这些
日志文件中的其它事务已经被解析并被写入到队列文件。 如果通过持久化数据能恢复这些长事务的状态,那么就可以消除这个往返读取的动作。极端的情况下,如果有多个长事务,
如果每个事务都要求从起点重新读取,那么OGG的捕获性能将大大降低。 在本示例中,我们将BR的间隔设置为20分钟,然后执行一个insert语句,但不提交。
此时,抽取进程会从在线日志的某个点开始读取,在线日志的序号为:#14878。 然后我们切换几组日志,备份并删除序号为14878的日志文件。我们可以看到每隔20分钟,BR checkpoint就会执行,
此时,长事务的状态信息及数据就会被写入到磁盘上。即使磁盘上没有对应的归档日志文件,抽取进程也不会再去读取这些日志,
而是直接从磁盘上保存的BR数据中进行恢复,如果事务提交,则OGG会直接将BR目录下的数据写入到队列中。 测试步骤如下: 执行下面的INSERT语句,但不提交,用于测试长事务的场景: SQL> insert into myobjects select object_id,object_name,object_type from dba_objects;
75372 rows created. 通过infor ext1检查当前读取的在线日志序号,本测试中是14878 GGSCI 2> info ext1 EXTRACT EXT1 Last Started 2014-06-21 18:07 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:08 ago)
Process ID 15190
Log Read Checkpoint Oracle Redo Logs
2014-06-21 18:10:21 Seqno 14878, RBA 5936128
SCN 0.9137531 (9137531) 使用SEND EXTRACT SHOWTRANS查看是否有事务是打开状态: GGSCI 4> send ext1 showtrans Sending SHOWTRANS request to EXTRACT EXT1 …
Oldest redo log file necessary to restart Extract is:
Redo Log Sequence Number 14878, RBA 116752
————————————————————
XID: 10.16.1533
Items: 75372
Extract: EXT1
Redo Thread: 1
Start Time: 2014-06-21:18:10:14
SCN: 0.9137521 (9137521)
Redo Seq: 14878
Redo RBA: 116752
Status: Running INFO EXTRACT SHOWCH会显示抽取进程检查点的更多信息,
包括当前事务(日志)中的读取点,写入队列文件的位置等。
下面的示例中,第一个检查点是抽取进程启动时的读取点:14861,接着是最早未提交事务的读取点:序号14878,SCN:9137521,
最后是抽取进程当前的日志读取检查点,序号仍然是14878,但SCN是9137612,说明在这个未提交的事务之后,DB已经有一些其它操作。 GGSCI 5> info ext1 showch EXTRACT EXT1 Last Started 2014-06-21 18:07 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:06 ago)
Process ID 15190
Log Read Checkpoint Oracle Redo Logs
2014-06-21 18:11:41 Seqno 14878, RBA 5977088
SCN 0.9137612 (9137612) Current Checkpoint Detail:
Read Checkpoint #1
Oracle Redo Log Startup Checkpoint (starting position in the data source):

第一个检查点是抽取进程启动时的读取点

Thread #: 1
Sequence #: 14861
RBA: 5918224
Timestamp: 2014-06-21 16:49:33.000000
SCN: 0.9129707 (9129707)
Redo File: /u01/app/oracle/fast_recovery_area/GGATE1/archivelog/2014_06_21/o1_mf_1_14861_9tbo7pys_.arc Recovery Checkpoint (position of oldest unprocessed transaction in the data source):

接着是最早未提交事务的读取点:序号14878,SCN:9137521

Thread #: 1
Sequence #: 14878
RBA: 116752
Timestamp: 2014-06-21 18:10:14.000000
SCN: 0.9137521 (9137521)
Redo File: /u01/app/oracle/oradata/ggate1/redo03.log Current Checkpoint (position of last record read in the data source):

最后是抽取进程当前的日志读取检查点,序号仍然是14878,但SCN是9137612,说明在这个未提交的事务之后,DB已经有一些其它操作

Thread #: 1
Sequence #: 14878
RBA: 5977088
Timestamp: 2014-06-21 18:11:41.000000
SCN: 0.9137612 (9137612)
Redo File: /u01/app/oracle/oradata/ggate1/redo03.log Write Checkpoint #1
GGS Log Trail
Current Checkpoint (current write position):
Sequence #: 3
RBA: 8130790
Timestamp: 2014-06-21 18:11:44.414364
Extract Trail: ./dirdat/zz
Trail Type: RMTTRAIL 大约20分钟之后,我们继续使用showch,看看与前面的命令相比,输出有哪些差异:
可以看到,当前读取的在线日志序号已经变为14884(以前是14878)。
但恢复检查点仍然没有变化,与上一个命令执行结果相同。 GGSCI 2> info ext1 showch EXTRACT EXT1 Last Started 2014-06-21 18:07 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:04 ago)
Process ID 15190
Log Read Checkpoint Oracle Redo Logs
2014-06-21 18:40:34 Seqno 14884, RBA 72704
SCN 0.9139491 (9139491) Current Checkpoint Detail:
Read Checkpoint #1
Oracle Redo Log Startup Checkpoint (starting position in the data source):
Thread #: 1
Sequence #: 14861
RBA: 5918224
Timestamp: 2014-06-21 16:49:33.000000
SCN: 0.9129707 (9129707)
Redo File: /u01/app/oracle/fast_recovery_area/GGATE1/archivelog/2014_06_21/o1_mf_1_14861_9tbo7pys_.arc Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
Thread #: 1
Sequence #: 14878
RBA: 116752
Timestamp: 2014-06-21 18:10:14.000000
SCN: 0.9137521 (9137521)
Redo File: /u01/app/oracle/oradata/ggate1/redo03.log Current Checkpoint (position of last record read in the data source):
Thread #: 1
Sequence #: 14884
RBA: 72704
Timestamp: 2014-06-21 18:40:34.000000
SCN: 0.9139491 (9139491)
Redo File: /u01/app/oracle/oradata/ggate1/redo03.log 通过上面的命令,我们看到了BR检查点的相关信息,前面我们把BR间隔从默认4小时改为20分钟,因此,每隔20分钟
(本示例中是:18:07,18:27,18:47...),长事务当前的状态信息会被抽取进程写入到磁盘上的BR目录。
因此,我们看到在18:27的BR间隔时间点,BR将在线日志14881的信息持久到磁盘上,如果这个时候extract有错误或重启,
extract不再需要从早于14881序号的redo或归档里读取数据。 BR Previous Recovery Checkpoint:
Thread #: 0
Sequence #: 0
RBA: 0
Timestamp: 2014-06-21 18:07:35.982719
SCN: Not available
Redo File: BR Begin Recovery Checkpoint:
Thread #: 0
Sequence #: 14878
RBA: 116752
Timestamp: 2014-06-21 18:10:14.000000
SCN: 0.9137521 (9137521)
Redo File: BR End Recovery Checkpoint:
Thread #: 1
Sequence #: 14881
RBA: 139776
Timestamp: 2014-06-21 18:27:38.000000
SCN: 0.9138688 (9138688)
Redo File: 在BR目录中我们可以看到抽取进程ext1生成的一些文件:
GGSCI 4> info ext1 EXTRACT EXT1 Last Started 2014-06-21 18:07 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:06 ago)
Process ID 15190
Log Read Checkpoint Oracle Redo Logs
2014-06-21 18:41:35 Seqno 14884, RBA 131072
SCN 0.9139583 (9139583) GGSCI 3> shell ls -l ./BR/EXT1
total 20
-rw-r—– 1 oracle oinstall 65536 Jun 21 18:27 CP.EXT1.000000015
drwxr-x— 2 oracle oinstall 4096 Jun 19 17:07 stale 此时,如果我们删除14878的归档日志会怎样呢?因为BR检查点已经将包含长事务的日志序号为14878的信息写入到磁盘,
extract进程将不再需要这些旧的归档文件。为了测试这个功能,我们将14878归档备份之后删除,
记住,这个序号是长事务开始时的序号,在抽取进程检查点日志中有记录。 RMAN> backup archivelog sequence 14878 delete input; Starting backup at 21-JUN-14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=24 device type=DISK
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=14878 RECID=30497 STAMP=850846396
channel ORA_DISK_1: starting piece 1 at 21-JUN-14
channel ORA_DISK_1: finished piece 1 at 21-JUN-14
piece handle=/u01/app/oracle/fast_recovery_area/GGATE1/backupset/2014_06_21/o1_mf_annnn_TAG20140621T234659_9tcb7msp_.bkp tag=TAG20140621T234659 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/u01/app/oracle/fast_recovery_area/GGATE1/archivelog/2014_06_21/o1_mf_1_14878_9tbpowlm_.arc RECID=30497 STAMP=850846396
Finished backup at 21-JUN-14 好,我们现在来提交这个交易。 SQL> insert into myobjects
2 select object_id,object_name,object_type from dba_objects;
75372 rows created. SQL> commit;
Commit complete. 在抽取进程ext1的日志报告中,可以看到有长事务的信息、BR检查点的信息,而且每隔20分钟,
BR检查点写入的redo日志序号是在增长的,即OGG抽取进程每20分钟会将当前日志序号写入,同时在OGG日志报告中体现出来。 2014-06-21 18:17:42 WARNING OGG-01027 Long Running Transaction: XID 10.16.1533, Items 75372, Extract EXT1, Redo Thread 1, SCN 0.9137521 (9137521), Redo Seq #14878, R
edo RBA 116752.
2014-06-21 18:27:41 INFO OGG-01971 The previous message, ‘WARNING OGG-01027′, repeated 1 times.
2014-06-21 18:27:41 INFO OGG-01738 BOUNDED RECOVERY: CHECKPOINT: for object pool 1: p23540_extr: start=SeqNo: 14878, RBA: 116752, SCN: 0.9137521 (9137521), Timest
amp: 2014-06-21 18:10:14.000000, end=SeqNo: 14881, RBA: 139776, SCN: 0.9138688 (9138688), Timestamp: 2014-06-21 18:27:38.000000, Thread: 1.
2014-06-21 18:47:50 INFO OGG-01738 BOUNDED RECOVERY: CHECKPOINT: for object pool 1: p23540_extr: start=SeqNo: 14885, RBA: 144912, SCN: 0.9139983 (9139983), Timest
amp: 2014-06-21 18:47:47.000000, Thread: 1, end=SeqNo: 14885, RBA: 145408, SCN: 0.9139983 (9139983), Timestamp: 2014-06-21 18:47:47.000000, Thread: 1.
2014-06-21 19:07:59 INFO OGG-01738 BOUNDED RECOVERY: CHECKPOINT: for object pool 1: p23540_extr: start=SeqNo: 14889, RBA: 176144, SCN: 0.9141399 (9141399), Timest
amp: 2014-06-21 19:07:56.000000, Thread: 1, end=SeqNo: 14889, RBA: 176640, SCN: 0.9141399 (9141399), Timestamp: 2014-06-21 19:07:56.000000, Thread: 1.

最后,记住一点:如果使用BR默认的4小时,则当前磁盘上至少要保存过去8小时的归档日志,以便满足任何长事务的要求,
当然,在实际生产环境中,往往要求保存的时间会更长。下面的图示中
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAioAAACHCAIAAAC3T+X9AAAgAElEQVR4nOydeTyU3f//r+6lVaVSEmM2Y6yTlJ2sJVpkCUlRKS2iRTulUhJRSGQL2UmWiERkLbJmTXYhZB+GmfP74/w+8+jbfX8qPndNuq/nHx7jmnOdeV/v65zzus65znkfBKD8BwaD8YV//8fc/pE8f37+2Qucpu76q9nf40K+nCeDwWAmmKZu/N5Mtr6jbvzHQVhtwI+DwWCMjIz09/cPDg7CIzQabXBwsK+vb2xsDB4ZHh6m0+lUKhUWtbGxsbGxsdHR0f7+/qGhof7+/pGRkfHx8cHBwYGBAXginU6HmVCpVJjn8PAwzI1KpTKzYh6cmJgYHh6eVFGm0+n/kA/+AahU6sDAQH9/P/x3fHwceoZ5gdBFo6Oj4+PjAAAajTY6Okqj0aAPBwYGhoaGJiYm4GfoNzqdDjMZGhoCADAYjE/vETNn+AE2rPBO/eBr/0YYDAZ0C7NoMRgM6Le+vj6YhkajjYyM0On0kZER8J/CySxa0BvQjdDbAwMDdDp9bGzs00wGBwfHxsZgWRocHIQOGR8fh55nMBiw9KLt5t/CYDCY7oVHYLH8tDBTqVTafwAA0Gg0eIRZmAcHBz8tzCMjI7BwMgszAGBgYAD+HCzMnzYIsDCPjIxMTExM1vh/yA2s5F8kP6Ojo+rq6ng8HofD7d27d2JiIi4ujkAgEAgEPj6+oKCg8fFxFRWV4uJic3NzY2NjAICTk9OlS5du3LiBxWJJJBIOh7O0tIyIiCAQCEQikZeXNzAwMC8vj0gkwnx8fX1bW1ulpKRaWloAAGpqasnJyQCAiIgIPj6+iooKAEBBQYGCggKzxP83YPGi0WhWVlaxsbHf3TvfjJmZGR6Px+PxGhoaHz9+LC0t5ePjg0fs7OwAANu2bXv06JGbm9vatWsBAI8ePTp06FB4eDgOhyORSAQCQUtLKzU1lY+Pj0AgYLHYM2fONDY2CggIEAgEHA539uzZ4eFhZWXljIwMAMDOnTtv3boFACgsLCQSiYmJiQCAjo4OBQUF6M+fk8zMTCKRiMfjSSRSaGgoAGDPnj14PJ5AIMjLy7e1tSUnJ+vp6TU2NgoKCj5+/BgAsHXr1sTERE1NTQKBAAtbXFzcwYMH8Xg8kUgUFBRsaWmxtraGmUhKStbX13t4eMCC+vz5c2VlZfgApKent2nTJmjG2bNnT548+Y02wyKXn59vYmIy2dZwmmJlZQWLrqqqaldX17t37/j5+WE5PH36NADAxMTkwYMH/v7+UlJSDAYjLS1t165dDx8+hHeWQCCoq6tnZmYKCgrCs6ysrNra2igUCvzX0tKSSqWuW7cuISEBAGBubn758mUAQFVVFR8fX3h4OADg48ePioqKL1++/HazfXx8KBSKhYUFg8FoampSUlJSUVFpbm6m0+l79uxZuXIlbHZ+fv5F8jM0NMTDw+Pm5paRkfH7778XFRX5+/vjcLgXL17Y2NhwcXE1Nzfz8vLm5OTo6OggCNLW1mZjY7N9+/a3b98GBQWxsbG5uLiUl5dfuXJFSEjo5cuXubm5bW1t9+/f5+bmzsrKcnR0XLRoUXt7u4CAwKNHj9rb27m4uBobGwEARkZGCILcvn0bAJCens7BwdHT0/OpbW1tbWVlZeHh4VlZWZ8abGlpiSBIUFDQD/bVF5CQkLCwsHj58iUHB4ePj09BQQE7O3tGRkZAQMDMmTNra2ulpaUDAgKuXbuGIEhGRkZ0dLScnFxra2tSUhIXF9eRI0cKCgqioqKWLFmSk5OTl5dXW1ubl5e3cOHCx48fR0REzJw5s6ysTFNT09bWFgCAxWJTU1MBAPb29giC7N+/HwDQ0tLCwcHx6tWrTw0bHBwsKytLTk6Ojo5m+bNhREQEJydnYWGhtbU1Ly8vAEBSUnL//v2ZmZmioqInTpyIiYkRExOrra1FEEReXh4AICgo+PDhw7y8PDMzMxwOl5SU1N7eLiYmZm1t/erVq/z8fCqVqqKiYmxsnJWVJSMjs2vXrqysLB4eHgCAra2tmpoaAKCjo4ONjW3mzJlNTU0AgB07dhgYGHxmW3V1dXFxsZ+fX3NzMwCAwWAMDQ3BDlNKSgqFQiESiT/WWyxDWVnZxMTk1atXGAzmxo0btbW18+fPT05ODgsLmzVrVllZ2fr1693c3Nzd3REEiY+Pf/r0KYVCgU8PWCx23759eXl5T548Wbx4cVpaWn5+fnV1dVlZGTs7e3R0dHx8/KxZs/Ly8rZv337kyBEAAJFIjImJAQC4ubkhCGJkZAQA6OnpWbZsGXzYYjI8PFxaWpqWlhYREQE7tRMTE3BIoLW1dcWKFffv38disc+fPz98+LCxsfHOnTstLCyioqJWrlzp6OgoIiICe9U/Of8i+RkeHubn59+7d+/58+eFhIR6e3u9vb3FxcX7+/sDAwPFxMTev3/Pz8+fm5tramrKz89/6dKla9euwafLgYEBLBZbVVUFALh+/To/P7+/v7+Pj8/AwEBQUJCoqGh/f39sbCyZTB4dHTU3Nz9//nxMTIySkhIAoK+vT0pKau/evRs3bgQAZGVlYTCY3t7eT20LDAxcuHChtLT0woULKysr4UEGg9HW1iYlJeXn5/ejnfXfUVZW1tDQcHBwIJFI5eXl2dnZWCy2t7e3oKAAj8c3NjYqKioGBwdfu3YNj8fv2bMnNDRUUVERnrtq1aqwsDAAQGJiIgcHh7e3t4+PT1NTU1FREQ8PT3Nzc0VFBR6Pb2pq8vT01NLSKisrExQUhA/1ampqpqamMjIyNBqto6MDg8EUFRV9alh1dfWyZcvk5OTmzJnz4MGDH+6Y/0NsbOySJUucnJw0NDTMzMwAADIyMteuXevr69u0adOVK1cePXokLS1dWVlJoVBEREQeP36soKCQlJQEALh3756srCzMR0JCwtjY2NfXFz4+r1u37uzZs319fUZGRgcOHKDRaCQSqaysbOvWrfDhJjAwUFVVdcOGDZ6engCAPXv27Nq16zPbjI2NYW9eTk4ONm1Hjx4tLy8HAHz8+BHWhZ92YPOfZfPmzcrKyjdu3CCRSHl5eW/evOHm5m5raystLSUQCDU1NZs2bfL09HR3dyeRSIaGhlFRURISEvBcGRkZX19fAMCLFy+WLFni7u7u4+NTV1dXXV2NwWCqqqoaGhoIBEJFRcWDBw/U1NRqamrIZDKs+Jqamnv27JGUlITDd1gsNjMz81PDGhsbubi4pKWl582bB29lbW3t4cOHAQAjIyNFRUXp6eliYmKvXr1au3btixcv0tPTN2zYcOjQoZMnTzIYDDKZXFNT86O9OXn+RfIzMjLCz88vLi6uoqKCw+EaGhrCwsJ+//13HA6HIMi1a9cAAAQCITc3d9u2bVeuXDEwMNDS0tq3bx8AoK2tDYPBwMdtV1fX+fPny8nJSUlJNTQ0JCQk/Pbbb1gsFkEQa2trAEBYWNjWrVstLCzOnz8PAEhMTIQFhUAg9PX15efnYzCYjx8/fmqbt7f3qlWr6HT6mjVrQkJCjh07pqOj097eDgCQl5eHpfwnYd26dUQiUVNTc/ny5VlZWa9fv/799995eHj+/PPP7du3AwCkpKSCg4PPnTtnaWlpbm6ur6/PHAuiUCj+/v4AgCdPnsyaNUtKSkpSUjItLa2uru7PP//k5uaePXu2pqYmAKCsrExeXv7ixYuGhoYAgPr6eiKR+OrVK2Fh4YKCgr6+PgwG8/r1608Nq6ys5Obm7unpMTU1tbKy+tF++b/Ex8fPnTtXU1NTSEjI0NCQTqdv2LBh/vz53NzcM2fObGlpiYqKkpaWrqioUFBQcHV11dHRkZWVhfLj5uYmJSUF85GVlcXhcDIyMnv27AEA6Orqzps3D4PBzJgxIz8/HwCgo6Nja2urpKQEhyL19fXt7OyuX7++detWAICZmdlf5WfLli2nT59+9+4dDod79+7ds2fPZGVlr1+//ubNGwBAamoqhUL5l8iPtrY2FovduHEjJydnUlISLIc8PDyzZs3avHkzAEBNTc3T0/P69euHDh06dOiQgYGBiooKPFdSUtLDwwMAkJOTM2vWLAkJCUlJybi4uNbWVjY2Ni4urrlz58Lx53fv3klLS9vb28Ob0tbWRiAQCgoKVq1alZKSMj4+jsViPx32gKdwcnK2tLRYWlqampo2NDS4urpKSkqmpKTAV0pGRkbLli2rrq6WlJTMzc3NyMjYsGGDqampra0tg8EQEhIqLi7+wc6cAv8i+RkaGoJNGABAWlr6xo0bISEhoqKiFRUVp06dWrt27cDAAIlEys3N1dLSCgkJ8fX1RRAE9po/lZ/Lly+vX7+ema2fn5+AgEB5ebm9vT2FQmEwGB0dHStXruTj48vJyQEAnD59esaMGYKCggiCpKWllZSUYLHYz8bW7969C/NUUFAIDw8/d+6csbHx+/fvAQBycnI/lfxISUlBe3bv3r19+/aXL19yc3OXlJT4+PiQSKTBwUF5efng4OAzZ86cPHkyOzsbQRCoKOAT+Xn48CE/Pz8zz9zcXC4urry8vNDQUF5e3s7OzomJifXr12MwGNjzCwoKQhBESEgIQZCbN29SqVQMBvPZ811FRYWoqOjExIS5uTl8DmAh4eHhIiIiAID29vb58+e3traqqqqeOnWqpKRERETE19c3Li4Oyg+FQmlvb1dRUZk9ezYcgflUfsTExOCrI4iamtrhw4fLysqkpKQuXLgAAPD29ubm5tbU1KTT6TQajUgkcnBwLF26FIPBAADMzc1h3+tTtLW1nZ2dW1paxMTEcnJy1q9fz8HBQSaTb9y4AQBISkr698iPqqqqk5MTAMDa2lpDQ+PNmzdcXFwFBQVhYWFYLLa7u1tDQ8PT09PBwcHS0vL169czZsxgdkyZ8vPs2bNPhytLS0u5ubnT09Pj4+O5ubnfvn0LANDU1MRgMDD9w4cPEQQREBBAEMTGxgYAgMViP+vK19fXk0ikgYEBa2trKyurkJAQISGhxYsXKysrJyUlwSKhrq5+/fp1TU3NjIyM1NRUTU1NKyurY8eOjY+Pk8nkhoaGH+PD/4V/l/wsX75cTk7O0NBw3rx5+fn5np6esI2Ijo7G4XCdnZ2cnJxZWVkqKiru7u4jIyMzZsyA47MtLS3z58/Py8sDANjb28+ZM8fU1BS+Yw8ICCCRSACAtLS0JUuWwCFXCQmJefPmwUlf8HX6s2fP1NTUjIyMSkpKEATR1dXV09Njtiy3b9+GLY6goGBkZOSnZlMolDt37vxYV30JSUlJMplsamrKzs4eEBCQlZW1ZMkSAEBdXd2CBQvg6wpfX18rKyv43I3D4SgUCjwXi8V6eXkBAOLi4uDYt76+voeHR05OzqJFi8bHx9va2ubPn19dXQ0AOHDgAIIgsBYpKyvr6uqmp6cfPHhQTEwMtumqqqr6+vouLi4w85KSEh4enpGRESMjIzhMwUKio6MRBNm5c6ecnNyqVatGR0dFRESgqUpKShcuXIiOjhYUFIQ2U6nU4OBgBEGePn0KALhx44aQkBDMR0hISFRU1MTExNjYuLGxce3atRcvXgQA6OrqwpIJ3x5ZWloCAJKSkhYsWJCQkJCQkMDGxvb8+fPjx49zcHAYGxvv2LGjvr4e5rlu3To7O7v6+vply5Z1d3cDADZv3pyWlga/ffToEQ6H+/fIDx6P3717NwcHh5ubW1lZ2YIFC+h0ent7+4IFC969e7d27VoXF5cLFy7o6+sDAERFRbm5ueG5AgICULoyMjIQBNm2bZuhoeGNGzeKiooWLVrU09MzMjLCzs7OfAZFEASOq2/evFlTUzM9Pf3EiRN8fHxdXV1LlixRUFDQ19e/evUqzLyurm7p0qU9PT0HDhyAAwDwQQEA0NjYyM7ObmNjQyAQXrx4cf78eRUVFVVV1fPnz8MZPWZmZpKSknCq3k/Ov0h+aDSak5OTubn5vn37oqOjAQDZ2dnu7u4AgNraWkdHx56eHicnp8bGxoCAgOzsbABAQEAAfFfR399/9epVOJ8tJyfH0tJy//79u3fvjouLq6iogFOzmpub7e3t4ZS2uLi4e/fuAQB6e3vt7OzgUNurV69u377d3Nx88uRJc3NzU1NT+B4SAJCXl+fj4wMAcHd3/2xC1507dwoKCn6cm75GQEDAwYMH9+7dC4Wkrq7OwcGBTqf39fVduXKlo6PDy8vr9evXSUlJ0MlPnjyBTgYAuLi4wB5kbW3t8ePHoQ+9vLxaW1sdHBxGRkaGh4ft7e3fvXsHAHj58qWDgwMAgE6n29vbw6rb0tJib2/f3t5+7dq1AwcO7N69G46MAwDev3/v5OQ0Pj4eFRUFJ8ixkOrq6uPHj+/du/fEiRO1tbUAADc3txcvXgAAQkJC4uPjKyoqPDw8Ojo6bt68OTIyQqVSL1y4APtzzGIJAPDy8jp48OC+ffv279/f2NgYGBgIJSo2NjYgIAD8xznw2fnp06fw+RoA4Onp+fz58/T0dAsLi3379pmbmzMfhwMDAzMyMnp6ehwdHeHTUkhICPPbqqoqV1dXls/d+DGEhIQcOnRoz549bm5uDAajtbX16tWro6Ojg4ODsL4HBATk5uY+e/YMzlLLzMyEkgMAcHNzg61Ec3OztbW1ubn5nj17XF1d379/7+Dg0NfXNzExce3aNfjCuLS09MqVK1DUHR0d4chYd3f3pUuXWltbnZycYGFmPkt1d3fDu5OQkACfR1tbW5lTkGJjY9evXw+bnY8fP+7atcvExAROx798+fLGjRunxcgb+FfJDwoKCgrKzwMqPygoKCgoLACVHxQUFBQUFoDKDwoKCgoKC0DlBwUFBQWFBaDyg4KCgoLCAqax/IyPj8fExAQFBTGjI6M8f/78wYMHpaWlX0iTn58fGBg4XaZm/gDa29sDAwPj4+O/kObjx48RERHR0dH/kgUx30JCQkJYWBiMavhTwWAwYmNjAwMD4aomFABAZmbmgwcPfrZaP13lZ2JiAsbxNDEx6e7uHvrXMzg4ODQ0FBsbO3fuXHZ29vT09L/1W0xMzMyZM1esWJGXl8dqk38WmpqaVFVVEQSxsLCAXvpsp5ze3l45OTkEQS5cuAAD6aMMDg7CQJwwNtqPqfXfiImJCYIgW7Zsef/+Pav99LOQmJjIxsa2YMECuG7sJ2Fayk9PT4++vj6CIAiCCAoKkslkIgqRSCQSV65cuXDhQgRBFi5cCINUMmEwGMHBwTNnzkQQhJOTU1RUlNXG/iwICgoSiURYnMzNzT/rTL97905GRgZBkD/++ENUVJSPj4/V9v4U8PHxUSiUWbNmIQiCx+M/iz7OKoaGhnbs2AFvJT8/v4CAAKv99LOwcuVKdnZ2BEHmz5//8OFDVt+o/8+0kR+4d1Zra2tbW1tBQcGMGTMQBIF/Uf4WU1NTAEB/f39TU1NXVxedTt+4cSOrjfrZYWNjq6+v7+joaG5uHhoaAv8Jn4Oghe2LXLx4sb29va2tDW7c8OMZHBxsbm5+9uzZb7/9hqA364vs2LFjcHCwqamJ5YOT00Z+AADl5eWLFy9esmTJ27dv09PT58yZgyCIpaXl/fv3/VD8/Pz9/b29vVesWIEgyLZt2+B2ijdu3GBnZ1+3bh0AoK+vb/369QiCrFy50t/fn9X2/iwEBgbCzjQHB0d+fj6DwVi1ahU7OzuMjgoA8PLyQhBkxowZdnZ2AQEBrLb3pyAgIMDZ2Xnu3LkIgly9ejUvL4+DgwODwcB9hn489+7dg+U8KSkJDgCYmpoGBgay2k8/C97e3jw8PAiC6OjojI2NnTlzhp2d/a97Qf1gppP8FBcXQ/UuLCwEACQmJq5evXr37t3/kp0Zv4XIyEgKhbJ7927mQ+iFCxcQBBEXF4f/Dg4Obtu2TUJCIjc3l3Vm/lx8+PBBQ0NDWloaRoccHBzEYDAIgnwa6fXu3btiYmLnzp1jnZk/HTdv3hQVFYW7ijx79gxBkD///BPG6/vx3Lp1C0EQPB4PAEhLS5OQkNDV1WXumY0SExNDoVB27twJQ5GamZkhCKKurs5aq6aT/MBY0Uz5AQDQ6fT+/v7R0VHWGvaTwGAw+vr64OZsTC5duoQgCDOAP2RkZGRgYOBfElbyqwwPDw8MDDD/HRoaIhKJCILAmKpMxsfH+/v7WTW49LMBg8yOjY3Bf1NSUhAEYWNjY1WcfzgPgkwmw+aVwWAMDAx8Vhf+zfT393/qjYMHDyIIwtyIi1VMb/lhgrak/42/lR+ULzA4OPi38oPyBVJTU38S+WEqIsoXQOVn0jDl57OtmVC+ACo/kwWVnynAcvmBg28EAgGVn29h165dCIIoKiqy1gxUfn5xUPmZLKj8TAGWy4+Xl9ecOXNWr16Nys+3EB4evn///rt377LWDFR+fnFQ+ZksqPxMAZbLT19fX01NTUtLCzoOP41A5ecXB5WfyYLKzxRgufygTEdQ+fnFQeVnsqDyMwX+m/xMuS/yjSd+Fh6J5Xy7GQwG4yex+bvy5WtE5ecXB5WfyYLKzxT4Qu/H399/69at6urqJ0+eHB4e7u3tNTU11dDQ2Lhx4/379z9N+fjxYxkZGVVV1Tdv3gAArK2tq6qqvvrTbm5uDx48+GoyKpVqYmJSUlLy2fFXr159/Pjxq6cDAMrKykxMTAIDAwEAAwMDx48ft7W1hRPxXV1dzczMJrvklsFgNDU1FRQUZGdnt7S0QCOLi4tzcnLy8vI+mzVOo9FiYmLS0tLgv2/evPmWUMsNDQ3t7e1fTUaj0TIzM/v6+iZl/2e8efNmZGQEfm5paWlra4Of+/v7a2tr//YUVH5+cVD5mSyo/EyBL8iPnp6esLDw9evXFy9efP369c7Ozj///PPw4cNHjhz5888/mcufa2tr586de+rUKUNDQwwG09HRQSaTY2NjmetYBwYGKioqmNm+efOmp6cHALBlyxZLS0sAQHt7+/DwMI1Ga2xs7O3thck+fPgAxWx8fPzSpUt1dXXDw8NUKhUKG7zXISEhMPH4+DiVSu3s7IRC8umTe39/P5FI3L59OwaDefHixalTp5SUlBQUFFxcXBITE/n4+Hbs2LFx48bJLoE3NjaGIYCXL1+en5/f2Ng4e/bsZcuWsbOzy8nJMa+CSqWqqqpycXGxs7OfO3eORqPx8/O/fv36q/lv27btwoULX0328ePHDRs2lJWVfXbcysoKNrZf7sRMTEzs37+fm5tbRUVlZGTk+fPnvLy8eDw+Pz+/t7dXSkpqxYoVN2/e/OuJqPz84qDyM1lQ+ZkCX5AfIyMjPT294uJiWVnZu3fvtre3YzAYGE+Ph4fn0aNHMJmdnZ2kpCQAgE6n29nZ1dXVSUlJCQsLc3Bw+Pr69vb2SktLY7FYGJX84sWLS5YswWAwtbW1+/btu3LlysmTJ21sbBISEsTFxQUFBYWEhAYGBoqLi/F4PCcnp42NDYPB0NbWrqmpOX369OrVqzk5OU+fPv3kyZPff/99y5YtsHmtra2VlpaWkJBYunTp8+fPAQAtLS0ODg4AgPb2dvjTurq6NjY2ioqKr1+/LikpUVNTMzU1haEfhISE3r59Oym/bd682dLSkkajSUlJnTlzpqmpiYuLq6Ojo6enh42NLTExESbz8/NbsmRJd3f38+fP+fn5Kysr16xZc/DgQQsLC6iUt27dMjQ0LCgoAABUVlbu2LHj8uXLdDrdwMDg5s2bubm5AQEBlZWVfn5+x44du379OgBgbGzs3LlzxsbGsGvi7Ozc3t7++PHju3fvmpqavn79ury8fObMmbt374abjHR3d/v6+trb21tZWUFdHBwchMHOGxoaJCUla2pqBAQEUlNTdXV1HR0dL126ZGxs7OLisnHjxqdPn5JIpE8Xd0NQ+fnFQeVnsqDyMwW+ID/79++fM2cOHo+fNWvW8+fPOzs72dnZV65cycfHJy0tzRyuMTU1hUFyIXQ6nUAg+Pr6XrlyZdOmTTdu3Fi5cmVoaOjChQuTkpJIJFJOTo6tre3jx49PnjxJIpFkZGSGhoYCAgKWL19eXV0tJibm6+trYGBw/PjxiooKbm7u/Px8UVHR169f6+jomJqaJiUl4fH4lpYWCoUSEREBf7SiomL+/Pm5ubmamprHjx8fGxt7+vSpoqLihw8f4CBbcXExDod79eqVnp6enp6eqamprKzstWvXRERErl69Onfu3E/7Z9+CkZERFovV0NBYtGhRcXFxfX39smXLfHx8vLy8REREmDtZmJqaGhsbw88fP37s6enB4/GbN28WERE5ePBgQkICHx/fgQMHREVF379/Lycnp62tzc3NHRIScuzYsX379klKSsbHxz98+BBBEHNz8wULFrx48eLKlSuCgoJGRkarV69ua2sjkUjl5eWamprCwsKamppSUlIlJSWcnJxHjhyB8lNdXT1jxgxjY2MuLq6LFy9Cd+np6YH/xJi4fv26gIBAQ0ODrKxsQUFBWlrahg0bzMzMbG1tJyYmSCTSX4dSUfn5xUHlZ7Kg8jMFviA/hoaGhw8fBgDY2NgoKyu3tLRwcnJevXr1/PnzJBKJ+Ybg9OnTysrK8LO7u3tdXd3q1asrKysjIiK2bdtmbW1NJBL37dtnamrq7++/evVqmJJKpR4+fBhG0QUAeHt7w+i6pqamx48fV1ZWfvbsGQBATEwsNDRURkamuLjY0NDQ29u7sbFRWFj4w4cPkpKSsKMDACgrKyOTyQCAgwcP2tnZBQcHEwiEBQsWiIiIVFRUVFVVrV69Ojk5GQBQX19vbm6urq6uoKAwOjpqY2NjYGCAw+Em2/vR19eXk5O7fv36mjVrrl271tTUxMbGJiwszMnJKS8vz4zwtHPnTqY2j4+Pd3d38/Hx1dXV+fn56evrnzhxQlhY+NSpU1xcXKGhoaKioiMjI/39/a2trRYWFgiCbNiwAQAQGBgoISEBANizZ4+1tbWSktKTJ08AAGQy+dGjR9LS0td6YCwAACAASURBVBUVFVu2bPH396+rqxMQEKDRaHJycvB6AQBVVVVYLHZ8fPzYsWMWFhbPnz83MjIikUinTp2CN/HSpUsYDCYzM1NBQeHVq1dpaWnq6uq7d++2s7MbGxvj4+MrLy//7PJR+fnFQeVnsqDyMwW+ID/btm2TkpIKCQlRUFAwMjJqampavHhxX18fjUZbuHBhfn4+TPbq1auZM2cGBAScPHly8eLFra2tAgICr1698vPz09DQ8PT0lJKSys7OvnTpEuzNhIeHa2pqRkZGmpmZ7dmzR1JS0s3N7eHDhxwcHImJiQQCISoqat++ffr6+o8ePeLh4SkrKxMQECgsLNTS0nJ2dq6srMThcF1dXSQSydHREdpQXFy8YsWKsbGxHTt2WFlZDQwMxMTEyMrKVldX9/T0YLHYzZs3h4SE1NfXe3p6BgUFWVlZmZub5+bmXr58OTQ0VFxcnNmZ+0Y2b95sY2MDADh//ryiomJ1dTUGg+nq6qqtreXg4IBvrQAAt2/f5uXlpdPpxcXFFAqlvLycQqFUVlbeuXNnx44dp06dUlBQSExMdHd3z8rKwuPxvb29WVlZ+fn5Bw4cEBcXx+FwDQ0NMTExoqKiAAADAwMbGxtVVdXw8HAAAIFASE5OlpSUrKio2Lp16/3790tKSigUyuDgoLi4eFxcHLShsrKSj49vaGjIwsLi+PHjCQkJmpqaWCzW3Nw8Li7OysoKAKCuru7s7Lxx48aEhITw8HAtLa3Tp08fOHDgw4cPfHx8HR0dn10+Kj+/OKj8TBZUfqbAF+Tn5s2ba9asWbly5caNG5ubmzs6OnR0dDo6OkZHR/X09F6+fMlM6eHhwcPDIyAgkJGRAQDYtWtXTU3NkydPrK2th4eHDQwMiETi+fPnGQyGu7v7ihUrNDU1BwYGrl27FhYWlpiYePDgQX9/fzweLykpqampOT4+3tLSIiMjw8vL6+fnBzOsra21s7OLjo5uamoyNjYeGxuzs7MzMDCA40tv3741MjIaHx+/fv26u7s7AKC5uRm+12loaFBQUJCTkxMREYmPj8/KyiIQCDIyMnAHsjVr1pDJZGZL/e3o6enNnDlTUFBwwYIFERERtbW1ixYt+vDhw8ePHxctWpSXlweTffz4UURERFhYeOnSpfv27RsdHeXl5S0vL3d1dd20aVNOTg6JRDI0NNTV1e3r61u3bt3q1auXLFny9OnTXbt2ubq67tu3z9jYOCkpae7cuSoqKvPnz6+oqPD39+fm5paQkNi0aVNvby+RSCwrK1NXV793715RUREMX6SkpLR27VrYCauoqODi4hoYGDAzM4NdsdLS0i1btgAAoDavW7cOj8fX19e7u7uTSCQ+Pj5fX9+SkhIMBiMhIWFoaPjXy0fl5xcHlZ/JgsrPFPj2ZaefzaGC7T6TwcFBGDXnb6dawalukL+dLe3k5CQjI/Np3B0YBv7rF/A1/mrP0NAQc3BsYmLir+/Vv4Xi4uLIyMjg4GCoNP39/ampqVQqlU6np6SkwDnT8Ke7u7udnZ0DAgLgic+ePRsYGHj37h08MS0tzd7eHjq/s7PT0dExJSUFAFBYWPju3buurq6MjAx/f39paWlfX1/mPsjh4eFOTk79/f0ww/7+/pcvXzY1NfX19aWnpwMA6uvr4+Pj4XS+gYGBtLS08fHxsrKy0tJSAEBvby+c7AAAqK2ttbe3h/MY6XS6t7c3lHwAQFJSkpOT09/ehekkP0VFRVB+mNeM8lXOnj2LIIiQkBCrDZk2DAwMcHBwIAhy+/ZtVtsybXj8+DGsm/X19Sw048mTJ7a2tiw04GfG39//Z3sMnU7y09jYqK+vb2BgwNoiPr2Ijo7W0dGBAwgo3wKVSj1y5Iiurm5qaiqrbZk2lJaWbtu2bdeuXV1dXay25WeJgPCz0dnZCXstPw/TSX5QUFBQ/gqqN9MUVH5QUFCmPWNjYx8/fkT38P1GUlNT7e3to6OjWWvGd5QfVpWDX6/8/e0V/XqX+Z1AHfXP8iP9+e2/5efnx83NvXbtWrjZNsqXMTExQRBESUmJtWb8k/LT29tbWFiYk5NTXV0NAGAwGDU1Nfn5+bm5uR8+fPgscVZWVlxcHJw6UldX99cEf6Wrq6uuru5bLHn58mVzc/PU6klnZ+e3BOn7B+np6SksLMzOzmYucq6uroZ+6+7uBv+3EmZmZjLnotTW1sIEX6azs/MbV8MVFBS0trZ+emRSEYV/8Lg/nU6vqqrKy8srKCiA6y26u7thCfzrArfOzs7IyEhYMvv7+6uqqr56RXQ6vbKyEoaH+TLv379nrl/5Gejv7y8qKsrJyYGL8D+tiX+9Ry9evHj06BFstevr67+l8Hd3d39jTXz9+vX//qa2s7Pzq2lcXV0RBMHhcOh2c9/CL7jZdlBQ0MyZM7FYLDs7O5w1JC0tvXjxYh4eHgwG8+lsaTs7uwULFqxYsWL9+vVUKlVTU5M5S+8LuLu7q6qqfoslO3fuZIYRZOLi4hIVFfXlE589e0YikfB4fHx8/Lf80D+Cj48P02+enp4AADhtn5ubm5eX99MYvefPn1+wYAEXF9fGjRtHR0fV1NS+Jdavs7Pz+vXrv8WS7du3/7U/7uzszAzM9RnMFry/v//27dvf+Cv/FMPDw8LCwsuWLePi4pKRkRkeHg4ICICeXLBgwcmTJ5kp4Wo+Xl7eRYsWPX/+/NWrV6tWrfpq/oODg4KCgsy1F1/g8ePH+vr6nx2sr68/dOjQZC/qHyE+Pn7mzJm8vLzs7OwwPoqMjAysiTw8PJ9OHL1y5cr8+fO5ublVVVWpVKq+vv61a9e+mv+9e/e+sSYeOHAAFulP8fHx8fb2/pbTe3t7L1++vHXr1q+mdHd3RxCETCaj8vMt/ILy4+7uLioqSqVST506Bau3iIiIv78/lUpdvXo1syq+e/du3rx5ycnJPT09BAIhJSVl+/bthoaGhw4dgo+Q6enpRkZGoaGhAID+/v6jR49aWVmNjIzcvXtXQ0Ojq6vLxcWlrq4uIiLCwcHB2tp6dHQUAODj47N9+/bMzEwAgJeXV3FxcWlpaWBgoIWFRWhoaHd3NxaLlZSUhMHy6HR6VFSUp6fnvn37Pg0GrqamZmdn5+HhAaMf/hicnJxWrVpFpVKPHj0qLS0NACCTyaGhoSMjI2JiYnA5MQDg7du3c+fOffr0aVdXFx6Ph6H9jI2NDx069OrVKwDA06dPjYyMYACrjx8/WlpaHj16dHR01MXFZdOmTe/fv3d1da2rqwsPD7969eqpU6dgRfXy8jIyMsrOzgYA3Llzp7y8vKSkJDAw8PDhwxEREV1dXTw8PPLy8nDa/vj4eGRk5J07d/bv388MRQwAiI+Pp1AoMKTHD2NwcJBAICQkJHR0dMydO7ewsPDu3buSkpJjY2Ph4eFsbGzMpSEGBgbKyspDQ0OnT5/eunVrbm6usLDwyZMn7ezs6HT6yMjIiRMnLC0tYdmIjIw0MjKCSxz4+PiKiorCwsJycnIyMzMDAgL27NmTlZUFAKitrd21a5ednR2DwaioqPD09BwaGoqIiHBxcYFZXb9+fcaMGcyokUVFRUFBQRYWFr6+vt/bM6GhoSQSaWRkxMXFhUgkMhgMUVFRWBOlpKQOHDgAkzU0NLCxsSUkJPT29pJIpCdPnuzbt2/r1q0WFhYwVg0MrAKf5KhU6tmzZ/fv39/T0+Pv7w9r4s2bNxsbGyMiIpydnS0tLWEhCQ8P3759O7zwwMBA2AkLCgo6fPhwUFDQ4OAghULh5+d///49NOPRo0f37t0zMzODEZcZDEZ1dTXszoaEhPDz88M4Ol8GlZ9J8QvKj7+/Pxsbm5aWFhcX140bNwAAK1euPHXq1OPHj8XExIKCgmCysLAwfn5++Lmvr29gYADGzlNVVZWVla2vr+fn57ewsMBgMGVlZZaWlhISEhQK5cyZMyEhIRs2bNi+ffuJEydqamp+++03Q0PDFStWuLu7Jycnc3Jy7tmzh5eXt6GhQVVVNTQ01MPDY86cOTt37ly6dGl+fr64uPjatWvhyrWJiQk8Hq+kpCQmJqatrc1gMMbGxuh0OqwAbm5uCgoK/6Bnvszdu3fnz5+vpaW1fPnyW7duAQCEhYVtbGwSExNhmEWYLCgoSFBQ8FO/rVu3buXKlcrKymvXrq2treXj4zty5AgGg6moqDhw4IC0tLSQkNDFixcDAgI0NDT09fVPnz795s0bBEGMjIw4OTm9vb0TEhI4OTl3796NxWKbm5vl5eVjYmJu3bo1b948Y2PjZcuW5eXlrVy5UlVVFTblo6OjPDw8qqqqoqKi+vr6TL8BAEJDQ3/wqoLh4WEymSwpKamoqEihUGg0moeHh6Cg4JMnT44fP75u3TrmAkZBQUFmN7GrqysnJwdeIGx8z5w5o6ioqKKicuDAgfLy8uXLlxsYGPDy8lZWViooKJw8eXLlypVw0j8Gg9HW1hYSEmpvb5eQkNDR0eHn53dwcHj8+LGsrGxXV9eSJUu0tLRwOJyNjc2dO3fmz5/P7EY7OTnNnj17165dbGxskw1MOVliY2Pnzp27ZcsWLBZ7+vRpAICYmBisiatWrWIuXYyKiiKRSPBzf3//wMCAsbExgUDYvHmzkJDQmzdvBAQEDh8+zMPDU1JScunSJRERESkpKXNz84iICE1NTQMDA0tLy/fv38+ePVtLS4uPj8/W1ragoICTk3Pv3r2cnJyVlZW6urru7u4+Pj6zZs3auXPnokWLioqKlJSUKBQKc5Rv1apVa9askZeXl5eXh0e0tbWZAVq8vLxUVFS+esmo/EyKX1B+fHx8uLi4rl27pquru2nTprGxMWlp6eXLlxOJxMWLFzc2NsJkwcHBzFWQDAaDRqOpqqoGBATU1tbKyckFBwcvWrTI1tYWh8M5OTlJS0u/fPlyfHy8trY2JCQEQRB2dnYAQE1NDQ6HAwB4enpqaWnt3LkThk5SUlK6c+eOtrZ2eHj4rVu3dHR0AAACAgJv3rw5dOjQ1atX4e+Oj48LCwsXFBQ8evRIS0srLCyMl5f38uXLAICkpCQCgcDchuQH4OHhwc3N7eDgoK2tvXXr1tHRUXFxcS4uLgKBsHTpUrgPFQDAz8+PQqF86jcFBYXw8PA3b97IysrCkOwXLlzg5eV1dHRcs2ZNcXExjUarq6u7f/8+giAcHBwAgPLyciKRCAC4deuWnp7ezp077e3tAQDy8vLe3t4bN26MjY11dnY2MDAAAJBIpOrq6v379zs7O8PfpVKpAgICpaWlUVFRWlpagYGBvLy8MIeQkJAf2WUE/5EfY2NjGxsbPB5fUFDw4MGDWbNmCQkJ/fHHH3DQCQBAp9PJZDIzqvHY2NizZ89gCdy2bZuzs7OMjIyenp6BgYGiouLFixe3bdsGAKiurm5vbxcWFkYQBMZf0dTUhMHBKBTKzZs3RUREAACPHz9eu3ZtVFSUqqpqZ2cngUDo7Oy8cePGzp076+rqREREmKv6HRwcNm/eDAAQEBCAfYvvR3R09NKlS69cubJr1y5FRcX+/n45OTlYExcsWMB8bRMWFsZ8oGEwGOPj41u3bnVwcOjp6Vm5cqW/v/+SJUtsbW15eXldXV3V1dXhavmampqIiAgY42B8fLyzs5OXl3dgYCA+Pl5NTc3CwmL//v0AAB0dHXt7exMTE09PT09PT9jSiYiIFBcX29raws0LIBISEomJiQUFBatXr66pqbl48SKJRLKwsIC9TE9PT1R+/nF+Qflxd3eHDVB+fv7ChQs7OztXr14dHBw8MjIiKCh49+5dmKysrGzevHkwmp6UlNSTJ090dHTu37//+vVrRUXF0NBQHh6e2NhYLy+vgoICQUHBnJycxsbG5OTkwMBALBaLx+Pv37/f0tLCw8NDo9Fu3rypq6trZmZ27NgxAICMjIyfn9/WrVvDwsJu3boFm1FBQcGysjI4VAJtoNFoFAqloKAgLCxs48aNlZWV7u7ueXl56enpAgIC3zLc/w/i5OQkKysLAMjKylq8eHFHRwcMAj8yMkImk/39/WGy4uLiefPmwaFCCQmJlJSUTZs2RUREvHz5cu3atdA5jx498vLyysnJIZPJL1++rK+vT01N9fHxweFwOBwORkvEYrEMBsPBwcHQ0HDv3r1nzpyBGQYGBmpqasbGxjo5ORkbGzMYDDKZ/ObNGyMjI7jlCQBgZGRERESkpKQkKCho06ZN5eXl7u7uOTk5AIDg4OAfP/jGx8cHf51Cobi6ugYEBMjKytJotFu3bgkLCzNTqqurw3j1t27d0tfXz8rKEhcXBwDo6OjAnu7x48cjIiLi4uJsbW2hSISHh9fV1YmKioqLi8vJyQEAtLW1oaQJCQl5enrC0MgRERHKysoxMTHKysodHR38/Pytra329vZ79uwpLS0lk8nMiVjXrl2D0ekFBASYIZa/EyEhITC45Lt37+bPn19XVwfvL7x9zGgO5eXlbGxscCmirKzskydPdu3a5ejo2NTUJC4ufv/+fQwGExMTc/fu3ZKSEhkZmYcPH3Z1dcXHxz948ADWRB8fn4GBAW5u7o6OjvDwcHV19RMnTkBXb9iwwdnZ2cTE5M6dO3fu3IHXLioqWlxcfPToUeYAIABASkoqMTExIyNDVla2uLjY2NiYh4dny5YtUO08PDyYkbC/ACo/k+IXlB8fHx8EQcTFxZctW2ZmZsZgMEgkEhw4lpCQYPY8AAAmJibLli0TERERFBTs6+tTVVX18fEpLCwUERFpbm6WkJDYsWOHrKxsS0vLsWPHiETiihUrXFxcmLpCJBJfvXq1ePHitWvXzp8/Pzg4OD8/f+nSpSoqKoKCgp2dnUpKSg8ePHBycoIbSeHx+PLy8tOnT2MwGDizi0ajkcnknJycoKAg2PRDVFRUZs+eLS0tvXv37n/QM1/Gw8MDQZA1a9YsW7bs4MGDcKeTmJgYAIC4uLiTkxMz5Y4dO5YvXy4kJCQqKtrf3y8vLw+jRYmIiMAmw9jYWE5ODgZa5+fnX758uYeHh6enp56eXmBgoKCg4MuXLxctWqSoqMjGxhYREZGdnc3BwaGkpASDz8vKykZHRzs4OOjq6tLpdDgAdfz4cTweD0fqh4eH+fj4CgsL/fz8YKPMJCAggNk5+zEMDQ1hsVgeHh4REREuLq6GhgZXV9c1a9YAACIjI3E4HLPpz8zMZGNjk5GRmT17dlhYWEFBARx02rBhw927d+FZ69evd3JyqqysXLZsmYyMjJCQUFNTk7CwMJyNEhERcejQIS4uLgkJCSkpqb6+vvXr169Zs4aLi8vHxycxMVFKSur9+/cYDKa5ufnChQvbt29vaWmZOXMm86nr0qVLmpqaAAAsFvsDej8IgqxatWrFihW6urpwc0w4/CgtLc18CAMA7NmzZ+nSpRQKhUwm9/f3b9269cqVKw0NDXg8vrq6WkpKysjISE5OrqWl5erVq7y8vHBcMSgoSFtbOywsDIfDVVZWrlixQl5enoODw8XFpbq6mouLS1VVlZeXt7m5eevWrbdv33Zzc4MtHYlEKiwsdHZ2XrJkCfOdq5iYWGxsbFpaGlR0AICmpiZzI4Zbt259WkP/G6j8TIpfUH6amppCQ0N9fX3j4uJgzU9NTYWb8WVnZ386841Go3l7e1++fBlOqczMzGxoaPj48SMMk1dTU2NrawtDnlCp1Js3b/r4+AAA3r179+LFi4mJiYSEhNTUVAqF4u7ufu/ePZhnamqqra0tnLuckZHR0tJSW1sL+zEpKSl9fX09PT3h4eHMqQdPnz7t6elpbm6GsxUg6enpISEhvr6+zF0ufgANDQ1Mv8GZ6CkpKVAms7KyiouLmSlpNNrdu3ft7e3hfOuMjIzm5uaenh7oq6qqKltbW9i0DQ8POzk5wfmEb9++zc3NHR8fT0xMTElJERMT8/DwYL4AT05OtrW1hQMy6enpbW1tNTU1BQUFDAYjOTm5v7//w4cP4eHh8K3yxMREamrqx48fGxsbP/UbAKCpqYm5Ef2PYWJiIiUl5f79+3DkFgBQXV0NQyV2dXUlJCRQqVTwn+l5L1++tLW1hbe1q6sLeiw7OxtOSb97966TkxOcY/3s2bMLFy7AiRXJyclDQ0OFhYVFRUUGBgZmZmYuLi6wjHV3d1++fBm+0Wxra8vIyKBSqcnJycPDw5WVlXASTUpKCnMUt6qqCn5+8uTJ956h3t7eHh4e7ufnFx0dPTw8DC3525o4MTFx7969S5cuwXctOTk5VVVVw8PD0FF1dXXMmjgxMeHh4QHHIRsbG1+8eDE+Ph4fH19QUCAqKnrr1i1PT0/Y9Ofk5NjY2MByCz1cX18Prz01NbW3t3dwcDAyMpL5dufZs2dtbW2dnZ1Pnz6F9ys7O3twcBB++/bt289K2t+Cys+k+AXl50dSWlrKx8c32d01phffY31fYWEhPz8/M1IvyrezYcMGuEsxyqc0NTXhcDhmZ4VVoPIzKVD5+Z8YGhp6/fo1usJ5sgwODr5+/RqVnylQWVnZ3NzMait+OqhUalFREcsfBFH5mRSo/KCgoKD8M6DyMylQ+Zk0vb29wcHBwcHB3xJpBgVSWlrq5+f3I19lTXdoNFpsbGxAQACM0IPyLbS3twcGBoaFhTHf2fxgUPmZFKj8TBp0u7kpcO7cOQRB4DRclG9hYGCAk5MT3W5uUiQlJbF2uzlUfiYFKj+TBt1sewrAzbZ/8ILQaQ2M5YNutj0p4Gbb8+bN++pm298JVH4mBSo/kwaVnykA5edn22T3Z2ZwcJBIJKLyMymg/LCxsaHyMy1A5WfSoPIzBVD5mSyo/EwBVH6mF6j8TBpUfqYAKj+TBZWfKYDKz/QClZ9Jg8rPFEDlZ7Kg8jMFUPmZXqDyM2lQ+ZkCqPxMFlR+pgAqP9MLVH4mDSo/UwCVn8mCys8UQOVneoHKz6RB5WcKoPIzWVD5mQKo/EwvUPmZNKj8TAFUfiYLKj9TAJWf6QUqP5MGlZ8pgMrPZEHlZwqg8jO9QOVn0qDyMwVQ+ZksqPxMAVR+pheo/EwaVH6mACo/kwWVnymAys/0ApWfSYPKzxRA5WeyoPIzBVD5mV6g8jNpUPmZAqj8TBZUfqYAKj/TC1R+Jg0qP1MAlZ/JgsrPFEDlZ3qBys+kQeVnCqDyM1lQ+ZkC31V+GAzGV9Og8jMpUPmZNEz5qaurY7Ut04YbN24gCCInJ8dqQ6YTJBIJQZDg4GBWGzJtyMvLQxBk/vz5vb29X075BS35b199i/z4+fkhCCIkJPTVlCgAgKNHj6LyMzmY8nPp0qUHDx4EoHyN0NBQbW1tBEGIROL9+/fv37/Paot+dgIDA+/du7ds2TIEQUxNTUNDQ1lt0TQgJCTk5MmTCILMnj3b2dnZ398fPiC+ffvWx8eHmczHxyclJQUAQKPRIiMj/fz84HF/f//AwECoW3l5effu3WOe4u3tDYc6urq6YEp43NfX9+HDh3Q6HQCQmJgYFBS0c+dOBEG4uLj8/PwCAwN/4NVPP0JCQlRUVFD5mRwlJSW//fYbgoKC8nPj7e0NAPDx8fnsuISEBACgr69vzpw5n31VXFwMANi1a9dnxy0tLQEA2dnZnx3n4OCA42xkMvmfNf7fAyo/k4ApP8uXL8disRiUr4HD4RYuXIggyMyZMzEYDC8vL6st+tnh5eXl4eH5448/EARZtGgRDodjtUXTACwWu3TpUgRBZsyYwcXFxcvLGx0dDQB4+PDhZyl37NgBABgcHJSSkvr0OIFAqK6uBgCcP3/+s1McHR0BAMXFxZ8dV1JSotFoAAAtLS0cDrdo0SIEQf744w8MWs6/BhaLZWNjQ+VncjAH33JycoaHhwdRvsbIyIiNjQ2CIBISEqy2ZXowNDTU0dFBIBAQBHFzcxsZGWG1RdOAkZGR+Ph4BEHY2NgqKiqGhoagMNBotIGBAWaygYGBkZERAACDwRgaGmJ+BT/AkbTR0dHPThkdHQUATExMMFPCD8PDw7BZGB4eHh4ednFxQRCEn5+/t7f3x1359GRkZGTfvn2o/EwOpvyUlpay2pZpg729PYIg0tLSrDZk2jA6OsrHx4cgiI+PD6ttmTakp6dD+WltbWWJAZ6engiCCAgIfMs8BZTDhw+j8jM5ioqKoPwUFBSw2pZpw9mzZxF0RtBkGBgYWLJkCYIgt2/fZrUt04bHjx/DullfX88SA5ycnOCwPDrx+luA79iUlJRYa8Z0kp+mpiZjY2NjY2NWLW2bjsTGxuro6Fy8eJHVhkwbqFTqsWPHdHV1nz17xmpbpg1lZWWGhoZ79+7t6upiiQEpKSk6OjonT54cHx9niQHTC39/fx0dHWdnZ9aaMZ3kBwUFBQXllwGVHxQUFBQUFoDKDwoKCgoKC0DlBwUFBQWFBaDyg4KCgoLCAn4W+WEwGI8fP379+jXzSFdX15MnTyYmJlho1bTgzZs3n4YAf/HiRVVVFQvt+TlhLgd58uQJjO8Cj/T29iYlJaHTpb5MdnY2c0Y1g8FISUlpa2v7Tr81Pj5eWFjI/Le0tLSvrw8A0N3dHRMT093dDY9nZGRkZ2eD/9zH/v7+xMREuEb13wOzVJeXl3d2dgIARkdH4+LimDcrKysrMzMTfq6pqUlISIBFHZ6YkZHB2vDNP4v8WFlZ4fF4DAYDgxICAJ49e8bHxwfXQqP8N0ZHR7m4uLZu3co8oqamBuOUoPyVy5cvc3NzY7HYFy9ewCMFBQVYLPbf1mxNisrKSgRBXFxc4L90Op1EIiUnJ3+P36qurjY1NYUB2vv6+ry8vDg5OWtra0dHR5WUlMhk8rp162g0WlBQEC8v79KlSyMiIuCJ5eXlK1asgEL17wHGjwgPD1+6dGlmZiaDwdDT08PhcPz8/C0tLbGxscuXL+fi4oqKimppaSGTyby8vIcOHWKeLiUl5enpyUL7WSY/DAaDKd3j4+N8wtwrrAAAIABJREFUfHw5OTl79+61srKCB3NycohEopaWlra2dk9Pz/j4uLm5+erVq0NCQgAAFy5cKCsry8vLc3Z27unpsbOz2717d0ZGhqurq4yMzOXLl/8l3aagoCA2NjZTU1PmEUNDw7Vr1yoqKgYGBgIAsrKyZGVlN2/e/OHDh/Ly8gsXLgAALl68WFZWFhcXZ2lpee7cuZqamk2bNikrK//a63nHxsbIZPKLFy+OHTtmYmICD5aUlBAIhC1btmhpaX348IFOpx88eFBcXBx67/Lly8XFxXl5eY6Oju3t7efOndu9e3dubq67u7uMjMzFixf/DcXsxIkTCxYscHd3h/8yGAwpKSkNDQ1lZeX09HQAgI+Pj7i4+JEjRxgMRmRkpK+v79DQkLW1dVdXl7u7u7m5+b179168eKGkpLRt27Yvd5vi4uLk5eVVVFQAAO/evTM1NV2yZMn79+/T09Ph0mlVVdWoqCgNDY2AgIDk5GRmP6m6uhqPx2tpaWlqasLIC8ePH1+1atXdu3cBANeuXcvLyystLb1y5UpXV9eFCxdMTU0zMjJ8fX1lZGROnz49fRertre3W1lZLVy4sKioqKurS0xMrLe3d9OmTU5OTtu2bfPy8goICNDS0rp27Zqent7bt28JBEJHRwc8d+PGjWpqaoqKiuHh4QCAuLg4CQmJHTt2jI6OZmZmXr9+ncFgnD17tqmpKTIy8siRIxcvXiwuLlZXV1dXV/9HhlhYLD+dnZ3V1dU0Gu38+fNYLJaHhycvLw8myM/Pnzt3rqOjIy8vb0BAgJubG4VCcXd3X7FiRVVVlbi4eEJCQnBwsJKSUnt7+6xZs3R1daOjo9nZ2Z2dnc3MzD58+MCqS/ve0Gi0t2/ftra2fvjw4eDBg6dPn961axfzW21tbUVFRWtrazKZ/P79eyEhoYsXL2pra+/evTspKUlYWBgAICQk9Pjx41OnTs2ZMwcGq5eVlbW1tb116xbrLuu709raKiAg0N3d7eHhoaGhAQ+Wl5fPnTvXwcGBQCDcu3fPy8tLSEjIw8Nj+fLlZWVlMjIyjx49CgwMlJeXr62tRRBk+/btSUlJCxcuvHHjxt69e9+/f8/ai/reFBQUHD9+3NjY+NOyISQktHPnTkNDw/Xr15eVlS1fvvzOnTtkMtnX19fW1tbY2Linp4eTk7OhoUFCQoJIJD59+pRCoezdu/fQoUNPnjz58i9GRUUpKirCz/39/WQyuaWlJTMzE1Z8SUnJS5cuycrKksnklStXMofr6+rq5s6de/nyZWFhYQcHhwcPHhCJRE9Pz2XLlr18+VJFRSUoKCg+Pn7VqlWNjY0zZ87csmXL06dPFy1aZG9vv3fv3sbGxu/jvx8EhUJJT0+n0+mDg4MTExMUCiUkJGTdunVZWVk5OTlqampmZmanT59mMBj8/PzMsXo1NbUNGzYcOXJEVFT03bt3WCzWxcVFXl7+woULAQEBcnJyDAYDj8cXFRUdPHiQjY0N7tSwZcsWa2vrf2Q3LBYPvu3fv//PP/+8f/++np7eyZMnVVRU7Ozs4FeZmZkiIiIAAGNjY0dHR21tbRjFXUFBwdvbe/369WlpabGxsZs2bWppaSEQCN3d3VQqVV5eXlBQ0MbGZmhoiJUX9j15+/btokWLFBUVnZyctmzZsnfv3jVr1vT09MBvN23a5OXl9f79e0lJyZSUFH5+fgDA69evV69eHR4erqCgAACQlZVNSUk5evTowYMHAQAhISG8vLwqKipfbRqmNUz5cXd319TUhAcLCwvJZDIAwMTExNHR0dDQELazKioq/v7+W7ZsSU1NjYmJ0dDQqKqqIhKJo6OjVCpVUVFRQEDg7NmzAwMDrLyk74+JiYm5ubmiouLu3bthF4HBYIiKir58+TI5OVldXf327duqqqoAAAcHByMjI3t7+0OHDg0NDQkICDQ2NsrJyUVFRQEArK2tV6xYYWho+ObNmy//YkBAAFN+Wltb+fj4qqurJyYm9uzZs3r16qVLlzo6OoqLi8fFxR0+fFhbWxumrKysJBAIAICjR4+eOXNm165dsCXR1NR0cXHZtm1bdHR0Wlra2rVr6+vriUTihw8fGAyGuro6iUQ6fvz4V3fJ+5kZHR0VFhaGQTrGxsY2bNhw7NgxOp0uKSkJ5WfdunWfyg989wkAUFJSCg8Pr66ulpGRefDggbi4OADg0aNHKioq9+7d27x5MwBAXFy8tLTU3Nz8xIkTAAAXF5cVK1Zs3LgxNzf3f7ecxfJTU1Pz4sWLoqIiTk7Ovr6+q1evqqmpwa+eP38uKCgIANDV1XV1dd23b5+FhcXg4CCJREpMTJSTk4uMjHR2dlZXV29paSESia2tre/evXNzcwsODv7zzz8TEhJYemXfkZGRkezs7IqKisjISA0NDTwev3jx4oqKCvitpqbm7du3q6urxcXFCwsLeXl5GxsbAwIC5OXl4+LiKBTKhw8fCARCWlqapaXl4cOHAQCRkZFhYWFGRkZQq35VxsbGBAQE4OAbc7iysLCQRCIBAPT19Z2dnS0sLMzMzIaGhshkckJCgqqqamhoqKurq6qqamVlJR8fX19fX2Njo4eHR3Bw8O+//x4TE8PSa/ruXL16df369QsXLoRB0wEADAZDREQkKysrKipq/fr1kZGRAgICQ0NDO3futLKyunz58vbt26uqqjg5OZubm2VlZaOiohgMhpeX18OHDwUFBY2Njb/8i35+fvLy8vBza2srDoerrq4eGhqKiIioq6uTkJCIj49XU1MrLi6+ceOGlpYWTPnmzRscDjc6Orp///7z58+fPn3awMBgaGhIREQkNDR048aN9+7d8/Pzk5L6f+2dezzU2/7/7XPOPufs3b5Up4v7ZYZh3Ma4DSKNWwjZlVzSTZRRkWyJEGpv0k12qQi5NMgllyKXagiF3HInjQlFjAgzw5hZvz/W4zcPu93u9D1bJvo8//CYz3XWWvPxea/1Xu/1fhGg+env7+/v74+MjExJSfnXv/4VGxv7SZvxk8JisWRlZR88eMDlcq2trbdu3To4ODg1NWVoaHj58uX4+Hhra+vQ0NDNmze/43xbu3bt9evXq6urNTQ0SkpKpKSk3rx5ExwcvGnTpri4OF1d3YGBARERkaamJhcXF29vbwBAQkJCenq6oaHh2rVr/3rJP5fQg127dsnJyUlKSubm5sI9ZWVlOBwOAGBraxsREdHc3CwqKopCoczNzaenpw8dOrRq1Sp5eXkHB4e+vj4sFvvy5UsqlYpCoYyNjfF4/PPnz/laofkjPDzc1taWt2ltbX3x4sXOzk48Hj81NXX48GFRUdHVq1enpaXR6XQREREFBYWVK1dWVFR4eXkdPHgQAHD8+HE0Gq2uru7p6cm/eswHJ06cEBUVlZSUhEFTAIDa2lrokNy2bdupU6c6OjrExMTQaLSJiQmLxfLx8Vm5cqW8vLydnV17e7u8vPzY2BiNRpORkTEyMlJWVu7s7ORrheaJLVu2nD17Fn7mcDiqqqoPHz7MzMwkEokTExNGRkYoFEpSUrKzs5NCoSxZskRFRQX2CNetWwe1f6ysrDQ1NWVlZeGk2gdISEggEonwc19fn6ysbFdX18TEhJqaGhaLNTMzm5mZiYmJgcpMd+7cgWe2trZiMBgWi+Xm5nb06FEqlYpGo9FotK6uLoPBOHny5PLlyxUUFCwsLJ4/fw5fF4ODg/Ly8gYGBgoKCg0NDZ+s8T45LBZLSUmpqqoKTkOgUCgxMbG0tLT8/HwhISEhIaGMjAw49JeQkIA9ToihoWFiYuKTJ09UVVVZLJajo6OkpKSQkFBZWdmzZ89+/PFHPB4vLCzc3t7u5ubm4+MDAHB1dVVUVFRUVAwNDf3rJf9czM/MzEx+fv7swOuJiYmOjg4AQE9PDzTXHR0dt2/fhpIhk5OTJSUlz58/7+vrm56ebmtrg8FLvb29mZmZL168AB8nEb8IGBwcpNFovE0qlTo0NMRisaB+FwCguLi4uroafm5tba2srKTRaOPj4/39/bz0+BQKpaio6EtoseLi4tmCHZOTk7ChaDQanMh59uxZXl4elJNhMpklJSXd3d29vb1MJhPOUwIA+vr6MjMzZzf74oZKpfJyiXK53I6OjomJidHRURi2Oz4+npeXx+vwVVRUNDY20mg0Fov17Nkz6NdisVi3b9/+r7EtXC53ZGTk2bNncBP+azOZTADAq1evcnNzebFtFAqlpqaGdxWLxWpra+Nyub29vfCpptFoubm5Y2NjAICpqal79+51dXX19vbCfw34uhgcHMzKyuJXlu65gsPhdHR0TE5OMpnMhoaGJ0+ePH78GMZhV1RU8II8u7q68vPzZwfLdHd30+l03r8Am83Oz89vamqCR+vq6mpqamg0GoPB6O3tffnyJQCAy+UWFxdTKJQ5KfnnYn7+K7PfjF/CW/J/48Mt896jX2xjvveJ+pjH7Etrsf/hofrr3zU7Mhb8t9/lY/Z84Lu+BP5rE3148xOxYMwPAgICAsJiAjE/CAgICAh8ADE/CAgICAh8ADE/CAgICAh8ADE/CAgICAh8ADE/CAgICAh8ADE/CAgICAh84F3z80XFwiMgICAg8Iv3jH6Kiori4uJu3rwZGxtbVlY2h1/GZrNnZmbevn0bHx//5s2bObwzAgICAsLC4j3m5+DBg1JSUgICAjIyMrz803NCSEjI6dOnWSyWra3tl5OwBAEBAQHhj/zO/PA8b/X19SIiItBCJCYmHjp0KDg4uKWlhUgkmpiYdHZ2UqlUX19fGxsbOzs7JpPZ1tZmbm4ONYiYTKajo6OOjk5KSgoAoLCwkEAg7N27t7u7G4PBSEhIPH36NCQkZGxsrL+/38LCQldXt76+fnJyMjAw0NnZ2cTEhL/6r7P5AjWYP1I/7QtsGQQEhLnl/aEHT58+FRERgbqEdnZ2P/74Y0ZGRmho6MGDB9esWUMikerq6gQEBEJDQ1euXJmVlbVjxw4ikXj06NGUlJSysrKNGzeSSCQsFjswMIDBYPz8/NTU1GJiYrZs2WJmZtbe3o5CoWg0mo2NjY2Njaenp6amZmdn55IlS3x8fHA4HE/wdD4pLS01MzOztbXdtGmTnZ0dm81OTU0lk8lTU1Oenp4+Pj4cDqegoMDPz+/EiRNXrlwpLCz85Zdf5r+cc8jRo0ctLCwcHBzMzc1jYmIAAL6+vm/evKFQKPb29llZWQAAqGh38uRJaJbGx8dh5uPS0tIzZ87wt/wICAgLmvebHzj6gXmjt27devToUQBAcXHxrl27FBQUSCRSVVWVsrIyAMDCwiI2NvbGjRsiIiLm5ubV1dW9vb0kEsnQ0JBAIPA0e7hcLoPB8PDw8PX1ZTKZioqKdXV1srKyMNcsFou9ffu2qqoqlD3ds2fP/DXA/6ehocHb23vZsmWamponT56k0+lEIrG9vd3Z2VlLS0tTU9Pf3z82NlZfX19NTe3rr79ua2szMjLiZZJeiERHR9va2n711Veurq6FhYXZ2dm2traDg4OSkpJubm5iYmLt7e0uLi6GhoZycnLx8fGdnZ3r168XEhKamZmh0+na2tpfjqoFAgLCnPN+81NXVwfVogAANjY2AQEBAAA8Hn/u3DkSibR79+6qqiooRWpsbHzp0qWcnJy0tDRra2sikXj48GFLS8sbN26oqqpWVVWJiIi8evUqKirq/v37Bw4cIJFIY2NjWCy2ra0Nh8Pl5ubCwVBpaamysvLY2JinpydfzA/E0NAwMjISAFBcXLxmzRoAAJQ6T09Px+Px8Bxvb+9Dhw4BANzc3Pz8/PhV1DmhublZUlISetJsbGwuX77c39+vrKz85MkTHR2doqIiVVXV9vb2qKioLVu29Pb2hoaGKikpQc2LLVu2LG5xbgSED4Ok4f+LvN/8NDQ0SEhIQPPj4OAQGBgIAPjpp590dXWVlZVJJNLjx4/V1NQAABs2bEhISDh58qScnBwejw8LC7t8+bKMjIy5ubmysjKDwbC1tYWSR21tbTExMcLCwvfu3dPQ0BgcHIyLi1u5cqWQkNCxY8cGBgaUlZVHR0e9vb1dXV3nswlms3bt2rCwMADA6dOnLSws4E4Wi6Wurv7rr78CALq6ujAYDJS+OHfu3IYNG/hV1DmhoqJCXFx8eHgYAIDH46HYtr6+/vLlyzU0NHp7e3E4HI1Gi4+Ph+KG9fX1SkpKUAvH09Nz586dfC0+32Cz2dnZ2WQyOSsrKzExsbW1FQCQnZ0N4zl7enqgsM3w8HBLS0tLSwvUCZ1NV1dXdXX10NAQmUyG2jMQqCfU39+fkpLy3gm2t2/fPnjwoLOzs7i4+NNVcBEzMzOTk5PD++3a2toAAFlZWWw2e2ho6M6dO7B3BcVvent74VWVlZUVFRW8mzQ0NLS2tkKT8+LFi56eHrj/3r17UC/n7t27VCp1fmu28Hi/+YHRBPA/gSfDNTQ0dPv2bRqN1tPTMz4+DgMEnj9/DuWkiouL4cuLy+UWFBS0tbV1dXVxOBwWi5WVlQVPZrPZTU1NdDq9q6sL3vzhw4fwqpmZmY6OjpmZmZcvX/I00OYfnvkJCgqCEqIjIyMbNmzw9/eHJwQGBm7evBl+vnr1qp6eHr+KOidA80On0wEAcnJyNTU1ZWVlysrKPT09Ojo6Fy5cIBAIUKt7/fr1AIDy8nKe+QkMDNy0aROfK8AnGAyGubm5oKCggICAnJxcampqTU0NFEgFAKiqqmpqagIASCTSihUrREVF/2gqIiIiTE1Nu7q6tm3bNts4HTx4MDc3t6ury8HBAcqsvQPUS25tbTUyMkKcn/8DLBbLwsJCSEgI/nYZGRklJSW2trZ0Ol1NTQ2FQllbWzOZTOh/xuPxIyMjSUlJ4uLi4uLi0dHRAAA6nf7dd9+5u7sDAMrKypSUlKKiogAAx48fFxUVFRcXf/z4cXx8vIuLC5+r+tmDZD34Herq6iEhIQCAc+fOmZubAwC2bdsmISGRkpIC3yC6urrnz5+HJ58+fZonNb9AKSsrW7Zs2dDQEABAXV2dQqGUlpaKiYk1NDRgsdi0tDQzMzOoEn/48GEAAIVCkZKSmpiYAAB4eHjw0U36OXDjxg05OTnYkdq1a9epU6cAAEVFRd9//z0cOtvZ2cXExPA0UiF5eXmGhoYGBgZ2dnZ9fX0nTpwYGRmJiIj4+eefg4KChISEDAwMampq4GibTCbr6OjAZ5JGo5mbm2/evFlRUZHL5e7fvx+eg/B/hcvlpqamKigowO7C5s2bU1JS8vPzjYyMRkdH0Wg0mUzGYrHd3d1mZmZxcXE2NjYXL168fPmyvr4+ACAyMvKbb76BM+LBwcGrV6+Oj48HABAIhEePHvn6+tra2jIYDDU1NRi9hfBnIObnd+zfvz8pKQkAUFZWtmbNmpmZmV27dmlpaSkqKsJ4vF27dlVWVsKT9+zZExwczM/i/mWePn1qbW0Nx6/bt28PDw8HABw4cACNRru4uHC53NLSUgUFBX19feiFaGho2L59O+yVW1tbX7lyhb/l5y9paWm8yBocDldcXMzhcNzc3Hx8fH766ScAAA6Hk5GRMTQ0fPny5Zs3b169ejU8PIxCoZydnfF4vL29fX19PQqF6uvrExERUVNTy8rKUldXd3d3v3fvnoKCQl1dnaSk5NmzZ4WFhSkUiqurq7a29vbt21etWgUAuHLlykL3/fKRmzdvwtnrqakpHA5XXV09OTkJtb1lZWXJZLK6ujoAgEQiBQQE5OTkSEpKolCopKQkOp1OIpFcXFzgBDAAwMrK6rfffgMAQCf2xo0bf/75ZwCAtrZ2bm4u32q4EPid+ZmYmPD19XVwcHB0dMzLy/vwldHR0RcuXHjvoe7u7n379m3dutXd3f2PnrT3Xvjq1avPypMwPT29bt26Bw8e/NkJb9680dbWbm5unsdCfVry8vLMzMxggDV0x0EmJyc5HM47J9NoNC0tLTgH9sWSkpIiJycHAJiYmJCRkWlvby8sLDQwMPj555/l5eUHBgbS09Nra2u1tLSCg4Pt7e1Xr14dGxuroqICAIiNjbW2tm5sbMThcH19ffLy8o8ePQIAWFlZ3bhxo6mpac2aNYmJicuWLSORSHJychcuXFi3bl1FRcX4+Li0tDSbzU5LSyMQCHxuggULHP0AAPr7+9FoNJwdePbsmaKiYmpqaktLCzROJBLJz8/Pz8/P3t7ezs7Oy8srNDR0x44dW7duNTc3h7NEpqam0PwAADw9PU1MTKA3lUgkXrx4kW81XAj8zvy8fv36hx9+cHBwcHJy+vbbb+GE6uvXr1+/fg1PmJ6efvXqFZfLnZ6eJpPJcXFxbDabw+EMDw/P9l8XFxcLCAi4urpiMBgrKyu4k0qlwldbcnIyvJDL5Q4PD0NPjre3N2+qv7u7+yMXP35S8vLyyGTynx1taGiAMXKLhpmZmfDwcDjPB/lAYE9paWlsbOz8Fe6zhEwmy8jIAABYLJasrGxTU1NZWZmhoaGMjMwPP/yQlpYG/bRbt2718fF5+vTp/fv36+rqxMXFX758GRgYaGVl1djYqKio2NfXp6ioCEfVhoaGUVFR9fX1BALh1q1b4uLiDx48uHLlSnNzs56eXkJCQkNDA4x9v3Hjho6ODp+bYMHC6zoMDQ3JyspSqdTh4WElJaUzZ86wWKyOjg4JCYmBgQFra+vz589raGiUlZWVlpaqqaldvnzZyMho5cqVEhIS0LdmYmICXwWBgYEaGho9PT3QPbBu3bpr167xt5qfOe+aH3Fx8dzc3PLycjQa3dPT8+DBA2lpaWlp6aKiIjabbWRkhMFgNDQ08vLyYmNjIyMja2pq1q5di8PhlJSUeI7OwsJCaWlpAEBeXh4KhWKxWHv37hUTE9PX1x8bG4uKioqMjKyurtbT08PhcKqqqs3NzTgc7vvvv6+rqzt06JCKioqhoSEcySLMM0j86MeTkpKCxWJhi+np6aWlpcH9cXFxxsbGDAaDQCAoKSlhMJjZo+TNmzdLSUmJiIjs2LGjsbFRRUWlr68Ph8OVl5cDAFxdXZWVlW/dukUgEEZGRszMzHR1dXE43MuXL+Pi4pYuXYrD4cTFxQEA4eHh27dv50e9FwNw9MPhcLhcLoFAqKqqyszMFBAQwGAwUlJSHR0de/fulZGRUVBQePnyZXh4uIyMjIyMDG+yzc3Nzc3NDX42NTW9fPkyAEBKSmr16tWSkpK+vr4AAHV1dfibIvwZvzM/dDpdVFR06dKlS5YsUVdXn5iYWLNmjYeHB4lEMjAwyMrKwmAwtbW1EhIS165dCwgIgE7q5cuXV1ZWotHo5ORkeJ/S0tIlS5bs3LkTjUa7urrevXtXUlKyqalJV1f39OnT/v7+8MKlS5dWVlZKS0tnZmYGBgZu3LiRRqN9/fXXYWFhZ86cmd0NR0D43OByuSMjI7zo26CgoAMHDsBDdDq9s7MTADA2NpacnNzR0TH7wrdv32ZlZbW2tvb29jIYDBiY0NbWBt0A4+PjdXV1w8PD7e3tAIDR0dGkpCTeHe7evVtTUwM9RRs3boR5rRD+r8Dfrq2tDf52Hh4egYGBdDq9pqamsrLy0aNHU1NTLBYrJSWF1/L5+fkFBQW8O/T29sJ1KQCAZ8+ewb7y06dPq6qqHj58SKVS6+vrdXV1oXcO4c/4nfkZHByUkJAoLy9/+/YtFou9cuWKlpYWkUi0s7M7duxYUFCQjY0NAOCnn366evVqcHCwl5dXUVERjAYxMDC4fv06vE9pael33323ffv2I0eOvH37NjQ01NraGgAQEhLi5OQUFBTk5eVVWFgIo5aJRGJ2dvbZs2dhV87Pzw+FQhkbG8N/4EUG9FvO3px99L2BtouPj6zm7NUwnz8vXrywsbEZHR2dn6/r6uqC6Rbn5+sWN62trfb29nObxvCXX37hTQgh/Bnvmp8VK1acOnUqIyNjxYoVOTk55ubmwcHBubm5KSkpd+/eFRQUTExMFBERSU5OPnbs2IEDBwoKCuD6U01Nzbi4OHifgoICQUFB3m1v3bolJiZWU1OjpaUVERHBu1BVVRUAoKGhkZGRERYWpqWl1dra6u7uXlRUtGzZsj+La1hAeHp6amlpmZiYEAgEmCHN1dUVdprS0tL2798PACgpKdm5c6ejo2NdXV1ERER6ejqfCz2nnDt3TlNT08TERFtbGzorvL29Gxsba2pqLC0tYfq4pqYmZ2dnBwcHmGXu3LlzVlZWT5486erqcnd3X0DOwKGhoXnr7b59+3beTN3iBj5gQ0NDU1NTc3jbwcHBPwbsILzD78zP6OioiYmJnJycrKzswYMHYdytoqKitLQ0fDX4+vqamJhgMJhr165FR0efOXOmsrISLn3fvXs3L1iusrJy/fr1vK7ZzMwMiUQSFBQ0NTVlMBgRERHwwh07dgAAnJyciouLnzx5oq6uXlpaumPHDiwWa2pqyltvvHDJzs728PD4xz/+4evrW15enpGRAQMxGAyGsLCwiIgIAMDV1dXQ0HD//v11dXWlpaXGxsafQ9jFXEGhUIKCgv72t7+5urrm5OTU1NQYGBiMjIzgcLgjR46oqKiUl5dHRUXh8fgDBw7cuXOnvLxcSkrqwIEDeDx+amrK2Ni4pKSE35X4KBaQmUSYDfLD8ZF31/1wOJzp6enZ49DR0VHo2ezs7PTx8SkoKECj0YmJiQAALpfL5XKhkYeTeLybzN6E8MwJ7yjvL+8O8AQajbZoXsFUKlVCQmJsbAwAsGXLFrgyMTo6Wl9ff926dQAAOzs7OOADAIyPj+NwOJi0Y9HA4XDExMRgpfz8/Dw9PXt7e8XExAAAx44dO3r0aEBAwLZt22D/JiAgwMHBAQAgKyv7/PnzwMBA3oQKAgLCIuNDy07fsR9jY2N79uzR0NA4fPjwO3759/YgPn7nIqaxsVFMTAyaXm1t7by8vNHR0d27d6empsJZ36kCAAALdklEQVSUpnZ2dqampqtWrYIzZ7q6uh+I9l6I0Ol0ERERuKjF2to6PDycyWRKS0vv27dPWlra29s7JCSESCSiUKjw8PCAgIB9+/YBAOTk5Orr6xMTEw0MDPhdAwQEhE+CAACAwWC8ffsWKmGz2Wy4IufP7MTc2g8Wi/XhGWYWiwWHDgsUaH7g2ls1NbXHjx+Xl5cLCgrq6up+++23mZmZcFhw7NgxmD/NwMBgkaUSgObn8ePHAABTU1M430OhUI4cOaKtre3l5QWXl6WkpBCJxICAgF27dgEA5OXlu7q6UlJStLS0+Ft+BASET4QAh8M5dOjQpUuXFBUVcTicoqKiurr6O/MulZWV9+7dm8NvnZ6eTkhI4HK5ERERMHPfn0Gn0x0dHQcHB+fw2+eTurq6H3/8EerG6unp3bx5c3R09NatWwcPHly+fHlFRQWBQIiJidHV1YXidVpaWjk5Ofwu9VwyPDz8/fffP3z4EABgZ2cH0xTt2rUrNTVVS0srKytr48aNJ06csLOzI5FIRUVFcnJy58+fl5GRYbPZFy9ehJn3EBAQFh8CDx8+NDMz6+/vT09Pl5OTs7S0zMnJmR0EMjMzY2lpqaurOzIyQqPR6uvrX7x4MTAwkJCQ0NLSAgCgUqnt7e03b96ERqKnp+f69etwacL09HRGRgYvXr6pqYlMJjOZzIaGhu+++66goKCiogIu1oNpZeHqvL6+vmfPnt26dQvGXjs5OcFcZAsRKpXq4uICc3rCBB5wf1tbm7e3NwDgxo0bOBzO3t5+fHycTqfDRYj8LPFcMz4+vmfPHriK5fz583Bq5+LFiwoKCl5eXgCAsrIyGB0HK+7h4aGsrHzz5k0AgLOz80LPqoeAgPBnCBw7dgy+BwEAFhYWJ0+eBAD09/fn5+ffvXu3oKCgtbVVUVER+k/U1NQEBQUTEhKgmCkajR4cHNy9e7eEhAQKhTI3Nx8cHCQQCCYmJhoaGiMjI35+fnJycqKiomQyuaurS0xMTEpKytLSMioq6t///ndISMipU6dcXFwYDIaOjo6SkpKwsHBzc/PZs2dXrFihpKQkLS3NYDBSU1ONjY352kpzQ3l5ub6+/gdicy9fvgzfzosVmCnuI+3r8PCwtrY2dM0hICAsPgQ2bdrEy4u3fv16KGxz584dIyMjExMTY2Pj+vr64OBgEonEZrMFBQVTUlImJibOnTsXGhr6ww8/NDQ02Nraent7t7S0yMjIVFVVLV261MvLKz4+fnJyMjMz8/z583g83s/Pz9/f39HRcWxs7Lfffuvq6sJisYODg0FBQXv27Llz5w4Wi+VwOHv37nVzcwsNDV2/fv34+LiwsHBnZ2dVVZW8vPziWD989erVDwSUJycnNzY2zmd55p+UlJT6+vqPObO1tTUhIeFTlwcBAYFfCGzYsOHq1atwg2d+nj9/fvPmzczMzPT09JGRkSNHjri7u8/MzCgoKPT19fX29mprax85ckRKSqqxsdHBwSEyMrKnpwdaFChNhkKhqqurPTw8tm/fbmRkFBQU5OLiAl1PULBOTk5udHQ0JCRk7969iYmJMHXCqVOn7OzsTp486ezsDADAYDAdHR21tbUYDGZBByC8w5cW/oeAgIDwRwScnJygvicAQEdHB7rjc3Nz165dSyQS9fX1a2trg4ODMRhMa2urlJQUlUotLCxcuXJlYmLiP//5z9ra2o0bN/76668dHR1SUlIUCsXIyOj69euCgoLJyclYLBaOfg4fPpyYmIhGo48cOYLD4ahU6ooVK2JjY/38/GxsbLq7u1evXh0aGgoVNfz9/bds2TIzM7Ny5crOzk4KhaKmpja3KTEQFgdsNntiYoLFYjEYDLjMmcVi/ddktX80/1wud+GGtyD8RTgcDnx+mEwmg8GACxDnKuckfNg4HA5PNwCBh8C1a9d4eXMvXLjw3rCr5ubmvXv3VlVVhYaGDgwMMBiMPXv2uLq6Hj16tL29PS4urri4+PXr10FBQZOTk2fOnFm7dm1gYODMzEx0dPTmzZv9/f3JZDKHw/Hw8OCJ6Jw/f/78+fO3b9+G+rVwHQwUEMzOzr5+/TqHwwkICHjz5s3Zs2d37949f02CsHCIj4+XkJCQlZVFoVBEIpHL5R45ciQzMxMAkJqaCh+nN2/ebNq0SUtLq6amBgBw4sQJPB4PcyABAHJyctasWTM1NcW7EOFLo7m5WVpaGua0lpaWplKp6enpQUFBExMT1tbWWlpaUAsjLCwMj8dDbYWMjAx1dfUdO3Ywmcyenh4TExMdHZ0nT54AAPz9/VVUVKD89m+//YbH448dO8bhcJycnKqqqvhb088NgVevXq1Zs+az1Q1js9nGxsZzG/aNsGigUql5eXmrVq1yd3evqKhob2/X1taemJiIj49fsWIFlEIPCQlZt26dj4+PhYVFeXn5f/7zn4SEBGFh4bq6OgCAlpbWV199xWQy8/LykCDvL5PR0dG7d+/q6+vr6ekVFhaOj4+vX7++trbW29tbX1//+PHjurq6DQ0NkpKS0dHRaDS6uroag8HExMSoqKgkJCR4eHhs27bNx8dnw4YNFApFRUUlKSnJzc2tvr5eREQkKSlp9erVzc3NUVFRX7g4/R8RAADk5eW9kxP+84FOp6empvK7FAifNcrKyjBV66VLlywtLQEAQ0ND3t7ecCWvhYXF1atXoaZORUVFdnY2AACDwTx69Cg/P9/KykpdXX1kZGR4eFhBQeGzktxFmE/27dsHzUNzc7OioiKDwcjLy+vu7q6rq8PhcFFRUaampgAAHR0dMpm8devWsLAwIpH44MGDyMhIBwcHd3d3f3//iIgINTU1Hx+fioqK0dHRJ0+eFBYWKikpvXjxoqmpSUVFBcpqIEA+lHQHAWFBoKCgkJSUBAA4cOAAr4PJk/kwNDSMjY3t6+vDYrGTk5MAgP3795uZmY2Pjzs4ONy6dUtBQWFgYIDL5eJwOGSc/cXi5OQEpyGys7PV1NRg2smxsTEVFZUrV65ER0dDOWY9PT0ymezm5iYuLi4kJNTa2nrr1q0VK1YICgpevHgxLCwMjUY7Ozuj0Wg4GWlhYSEsLPz69euBgQFpaWm4IBIBgpgfhAUPz/zs27ePRCLBnSdOnIDmx9ra+tKlSy9evMBisWw2OyAgAO7v7e0VEREhEAh///vfoSq2qqrqbEkxhC8KJycnmIM/PT0dpnoaHBwkEonnzp0DAPCic/X09MLCwpSUlAAAnp6erq6u5ubmWVlZDQ0NGhoa3t7ehw8fBgDIyspmZ2fD2URNTc2YmBgGgyEjIwOX6iNAEPODsOARFRWNiYkBAAQFBdna2sKdfn5+MF1pREQEDoezs7Ozt7d//PixgIDApk2bdu7cWVtb29jYeOPGjW+++aahoYHJZMrLy3/kmiSExYetre3mzZsBAKWlpdC6uLu7CwgIuLq6+vv7t7S0SEhIeHl5ycrK1tTUyMrKnjhxAofDRUdHu7q6WlpaOjs7W1lZUSgUHA7n5eWloaHx8OHD5cuXBwcHi4uLV1VV9fX1ycrKIvFvs0HMD8KC58yZMzCq7f79+2vXroWBsyUlJTCJOJPJdHd337Rp08DAQFNTE+yxOjs7wzxA4+Pjp06d4nA4dXV1BAJhcaxuRvgfSEtLg+Llo6OjGhoaNBotOTn50KFDzs7Ox48fBwCQyWQTExM4oCkuLjY1NfX19QUAvH792tHRccuWLd3d3QCAyMhIMzMzCoUCAEhOTjYyMoILK9PT09evX8+/+n2OIOYHYWEzexHP9PS0iYnJ/fv333v0w9d6e3sHBAR8ihIiLDg8PT1DQkJm7/nIpeKzT3vns729PU8PGgGCmB+Ehc0774WWlhYYUf3HE9672pS38969e4h8NQJkeHj444NQPkabZnp6urCwEFk7/w7/D8isMhW1nZH6AAAAAElFTkSuQmCC" alt="" />
T27, T45开始于BR N-1之前,会在BR N这个检查点上记录状态;而T801是在BR N-1之后开始,在BR N检查点时,由于不满足BR interval的时间要求,因此不会被记录到BR N这个检查点上,而是会记录在BR N+1这个检查点上。
一旦在BR N和BR N+1这个时间范围内,extract当掉,则T801的所有信息丢失,重启extract之后,将会从T801开始的时间点解析日志。

ogg BR – BOUNDED RECOVERY 测试案例的更多相关文章

  1. ogg BR – BOUNDED RECOVERY

    BR – BOUNDED RECOVERY 适用于 Extract 进程(仅适用于 Oracle数据库) 使用 BR 参数可以控制 GoldenGate 的 Bounded Recovery (BR) ...

  2. KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(一)

    KingbaseES R6集群repmgr.conf参数'recovery'测试案例(一) 案例说明: 在KingbaseES R6集群中,主库节点出现宕机(如重启或关机),会产生主备切换,但是当主库 ...

  3. GoldenGate BR(bounded Recovery)简单说明

    背景 Oracle数据库的在线日志包含已提交的和未提交的事务,但OGG只会将已提交的事务写入到队列文件.因此,针对未提交的事务,特别是未提交的长事务,OGG会怎样处理呢? 有些长事务是在批处理作业中, ...

  4. KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(三)

    案例三:测试'recovery = manual' 1.查看集群节点状态信息: [kingbase@node1 bin]$ ./repmgr cluster show ID | Name | Role ...

  5. KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(二)

    案例二:测试'recovery = automatic' 1.查看集群节点状态信息: [kingbase@node1 bin]$ ./repmgr cluster show ID | Name | R ...

  6. GoldenGate 之 Bounded Recovery说明

    首先,我们来看两个OGG同步中可能的问题: l oracle在线日志包含已提交的和未提交的事务,但OGG只会将已提交的事务写入到队列文件.因此,针对未提交的事务,特别是未提交的长事务,OGG会怎样处理 ...

  7. nginx整合tomcat集群并做session共享----测试案例

    最近出于好奇心,研究了一下tomcat集群配置,并整合nginx,实现负载均衡,session共享,写篇记录,防止遗忘.---------菜鸡的自我修炼. 说明:博主采用一个web项目同时部署到两台t ...

  8. Storm自带测试案例的运行

    之前Storm安装之后,也知道了Storm的一些相关概念,那么怎么样才可以运行一个例子对Storm流式计算有一个感性的认识呢,那么下面来运行一个Storm安装目录自带的测试案例,我们的Storm安装在 ...

  9. 编写优美的GTest测试案例

    http://www.cnblogs.com/coderzh/archive/2010/01/09/beautiful-testcase.html 使用gtest也有很长一段时间了,这期间也积累了一些 ...

随机推荐

  1. JavaScript for/in 语句 遍历数组内容

    for-in遍历 for-in是为遍历对象而设计的,不适用于遍历数组. 遍历数组的缺点:数组的下标index值是数字,for-in遍历的index值"0","1" ...

  2. 如何用ABP框架快速完成项目(8) - 用ABP一个人快速完成项目(4) - 能自动化就不要手动 - 使用自动化测试(BDD/TDD)

    做为一个程序员, 深深知道计算机自动化的速度是比人手动的速度快的, 所以”快速”完成项目的一个重要武器就是: 能自动化就不要手动.   BDD/TDD有很多优势, 其中之一就是自动化, 我们这节文章先 ...

  3. 小程序实践(二):swiper组件实现轮播图效果

    swiper组件类似于Android中的ViewPager,实现类似轮播图的效果,相对于Android的Viewpager,swiper实现起来更加方便,快捷. 效果图: 首先看下swiper支持的属 ...

  4. Android为TV端助力 遥控器的映射

    第一编写kl文件时先在盒子上输入getevent -v查看设备信息,设备信息里有vendor.product.version, 假如分别是xxxx,yyyy,zzzz,那么你的文件名就要命名为Vend ...

  5. DAY4(PYTHON)列表的嵌套,range,for

    li=['a','b','开心','c'] print(li[2].replace ( ' 心 ', ' kaixin ' ) ) 输出:'a','b','开kaixin','c' li= ['abc ...

  6. ASP.NET Core 入门教程 1、使用ASP.NET Core 构建第一个Web应用

    一.前言 1.本文主要内容 Visual Studio Code 开发环境配置 使用 ASP.NET Core 构建Web应用 ASP.NET Core Web 应用启动类说明 ASP.NET Cor ...

  7. 前端 CSS预处理器Less

    引文 Less是一种动态的样式语言.Less扩展了CSS的动态行为,比如说,设置变量(Variables).混合书写模式(Mixins).操作(Operations)和功能(Functions)等等, ...

  8. sql 语句按字段指定值排序及分页

    为特定字段赋值并排序 表[Table_temp]中列[col1]为字符,属性为varchar(),排序时需要按照B.A.C的顺序显示,则可按照以下SQL语句: select * from Table_ ...

  9. C#学习之接口

    什么是接口?其实,接口简单理解就是一种约定,使得实现接口的类或结构在形式上保持一致.个人觉得,使用接口可以使程序更加清晰和条理化,这就是接口的好处,但并不是所有的编程语言都支持接口,C#是支持接口的. ...

  10. 智能合约 solidity 开发的环境基本搭建

    以太坊Dapp开发快速入门 以太坊为开源社区,虽然设计东西都很优秀,但是组件十分的杂乱,因此下面首先简单介绍下以太坊的一些常用组件以及各种工具介绍 Geth Geth是由以太坊基金会提供的官方客户端软 ...